跳到主要内容

RuyiSDK 双周报

每两周获得最新开发进展

第 023 期·2024 年 06 月 11 日

· 阅读需 6 分钟
xijing21
RuyiSDK 项目经理
ArchFeh
RuyiSDK 社区经理(已离职)

卷首语

RuyiSDK V0.12 版本已于今日发布。 在这个版本中,操作系统支持矩阵为3 款开发板新增了其支持的操作系统,RuyiSDK 包管理器本期重点修复并完善了一些缺陷,并增加了 Ubuntu 24.04 LTS 系统的支持和测试;官网建设方面申请了公用邮箱contact@ruyisdk.cn,优化了订阅体验。

RuyiSDK 目前采用先调研摸底、然后包管理器集成支持(含设备安装器集成支持)、再 IDE 集成支持的大致路线推进。前期初步完成了首批 RISC-V 开发板的初步调研(50 款),并优先在包管理器和安装器中提供了集成化的系统镜像安装服务。随着 RuyiSDK 对开发板的深入支持,计划与厂商对接,一起合作推动相关工作的开展。

RuyiSDK 更多进展细节详见下方详情,欢迎大家试用并提供反馈和建议。下一个开发版本 RuyiSDK V0.13 版本将在 6 月 25 日发布。

包管理器

RuyiSDK 0.12 对应的包管理器版本也为 0.12.0,已于今日发布。您可移步 GitHub ReleasesISCAS 镜像源下载体验。

本次 RuyiSDK 包管理器的更新主要包含了以下内容:

  • 修复了先前 Pine64 Star64 Armbian 镜像无法下载的问题。
  • 对于部分必须由用户手工下载的文件,支持了相应的用户体验:按照当前系统语言设置,渲染相应的提示语。
  • 升级了 pygit2 依赖库版本到 1.5.0,以支持 libgit2 的 1.8 版本。
  • 修复了 XDG_STATE_HOME 环境变量被无视的问题。

为了支持刷写方式复杂、需要夹杂人工干预、镜像文件需要手工下载等复杂情况下的设备初始化,我们正在对设备安装器进行重构,预计将于下个版本付诸测试。届时旧版 ruyi 的设备安装器功能将不可用,请先升级再进行体验。

欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。

IDE

基于 VSCode IDE,以及包管理器提供的数据接口,在 VSCode 中实现获取全部的 environment。

GCC

支持了 Zimop, Zfbfmin 等多个新扩展,更新修复了 GCC14 的部分回归测试问题。

LLVM

项目大部分 intrinsic 函数已经得到支持,目前正在完善测试流程和测试数据。 至上次更新依赖,新修复了如下问题:

  • 修复了 __riscv_v_elen__riscv_v_elen_fp 在开启 XTHeadVector 拓展时的定义缺失的问题
  • 新增加了两个工具内建函数:vundefinedvreinterpret
  • 将带 mask 的 RVV intrinsic 函数的 policy 从默认的 TAMA (tail agnostic and masked-off agnostic) 修改为 TAMU (tail agnostic and masked-off undisturbed), 使得这些内建函数符合 T-Head Vector 规范。
  • 新增了更多测试用例:例如 rvv_index.c, rvv_branch.c 等。

V8

  1. 继续添加 TurboShaft IR 的指令选择支持。
  2. 添加 WASM 新特性 JSPI 的支持。

OpenJDK

  1. Proposed JDK-mainline PRs:
  1. Reviewed JDK-mainline PRs:

官网

增加了contact@ruyisdk.cn邮箱,优化了订阅体验。

截止今日 6 月 11 日,订阅人数一共 33 人(增加 1 人)。RuyiSDK 网站访问人数 291 人(增加 114 人),访问页面 848 次(增加 440 次)。

操作系统支持矩阵

本周在支持矩阵中新增了更多开发板和操作系统:

  • Milk-V Mars: BuildRoot
  • Milk-V Duo/Duo S/Duo 256M: Zephyr
  • D1: Arch Linux

内容请详见:ruyisdk/support-matrix

第 022 期·2024 年 05 月 28 日

· 阅读需 7 分钟
xijing21
RuyiSDK 项目经理
ArchFeh
RuyiSDK 社区经理(已离职)

卷首语

RuyiSDK V0.11 版本已于今日发布。 RuyiSDK 社区首次线下 Meetup 成功举办。RuyiSDK 包管理器本期重点修复并完善了一些缺陷,同时 RuyiSDK 软件源增加支持了 Pine64 Star64 开发板,此外正在设计第三方系统镜像在如意软件源的二次分发管理(很多系统镜像存放在网盘、Google Drive、MEGA 等平台上,不便于下载)、以及根据源码自构建出的系统镜像的管理(一些开发板未提供二进制,仅提供源码,需要用户自己编译构建系统镜像),后续将为用户提供更方便的镜像服务。

支持矩阵参考 RISC-V Open Hours 中汇总的 RISC-V 开发板,针对国外主流开发板进行了补充,此外增补了全志处理器的一些开发板的调研,目前支持矩阵已经覆盖了 milkv、矽速、嘉楠、赛昉、沁恒微电子、全志、芯来 这 7 家企业几乎全部 RISC-V 开发板(已知的)、5 款较为流行的国外 RISC-V 开发板,已提交调研和测试结果的开发板数量已有 49 款;RuyiSDK 计划集成所有流行的 RISC-V 开发板,欢迎大家继续补充遗漏的开发板型号。

RuyiSDK 更多进展细节详见下方详情,欢迎大家试用并提供反馈和建议。下一个开发版本 RuyiSDK V0.12 版本将在 6 月 11 日发布。

包管理器

RuyiSDK 0.11 对应的包管理器版本也为 0.11.0,已于今日发布。您可移步 GitHub ReleasesISCAS 镜像源下载体验。

本次 RuyiSDK 包管理器的更新主要包含了以下内容:

  • 去除了先前唯一的 LGPL 依赖。现在 RuyiSDK 包管理器及其所有依赖都采用宽松开源许可证了,方便下游用户在商业场景取用。

本次 RuyiSDK 软件源的更新主要包含了以下内容:

  • Ruyi 设备安装器现已新增支持以下设备型号:
    • Pine64 Star64

我们注意到越来越多的设备型号,甚至如最新面世的 BananaPi BPI-F3 等等,其系统镜像仅以网盘(百度网盘、Google Drive、MEGA 等服务)方式分发。对这些设备型号的妥善支持面临挑战;在接下来的版本迭代中,我们将尝试支持此场景,敬请期待或参与进来。

欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。

IDE

基于 VSCode IDE,以及包管理器提供的数据接口,初步在 VSCode 中实现了 news、如意软件源工具链、demo 等资源的获取,初步可以展示 news(软件更新新闻),软件源工具链资源的选择和安装、基于虚拟环境的 demo 的编译等初步模块化功能。

GCC

更新了 RV64ILP32 的支持,,包括 Binutils,QEMU,说明文档等,发布了新的 release 工具版本。

LLVM

  • 继续完善 LLVM intrinsic 函数,自上次更新以来,新支持了这些类别下的函数:
    • 14.7. Vector Floating-Point Square-Root Operations
    • 14.10. Vector Floating-Point MIN/MAX Operations
    • 14.11. Vector Floating-Point Sign-Injection Operations
    • 14.12. Vector Floating-Point Compare Operations
    • 14.13. Vector Floating-Point Classify Operations
    • 14.14. Vector Floating-Point Merge Operations
    • 14.15. Vector Floating-Point Move Operations
    • 14.16. Single-Width Floating-Point/Integer Type-Convert Operations
    • 14.17. Widening Floating-Point/Integer Type-Convert Operations
    • 14.18. Narrowing Floating-Point/Integer Type-Convert Operations
  • 完善测试流程和测试数据
    • 增加了 rvv-intrinsic-doc 仓库中位于 examples/ 目录下的测试用例
    • 在 GitHub Actions 中使用 qemu 6.2 对编译器输出的程序进行模拟运行测试
    • 重新整理 clang 部分对 RVV intrinsic 的测试用例,使其符合用例规范

OpenJDK

  1. Proposed JDK-mainline PRs:
  1. Reviewed JDK-mainline PRs:

官网

RuyiSDK 首次线下 Meetup 圆满结束,下次见!

RuyiSDK 网站添加统计功能,增加了德语支持。ruyisdk.cn 域名 ICP 备案完成,技术论坛筹备中。

截止今日 5 月 28 日,订阅人数增加 14 人(由 meetup 引流),一共 32 人。RuyiSDK 网站自 5 月 16 日添加统计功能后,访问人数 177 人,访问页面 408 次。

操作系统支持矩阵

本周在支持矩阵中新增了更多开发板和操作系统:

  • R128
  • BeagleV-Ahead
  • BeagleV-Fire
  • Star64
  • MongoPi MQ Pro
  • Duo 256M
  • BPi-F3
  • DongshanPI-哪吒 STU
  • DongshanPI D1s
  • D1s NeZha
  • Mangopi MQ
  • CH573
  • Polarfire SoC FPGA Icicle Kit

内容请详见:ruyisdk/support-matrix

至此,操作系统支持矩阵已覆盖了近 50 款开发板,撒花~

第 021 期·2024 年 05 月 14 日

· 阅读需 7 分钟
xijing21
RuyiSDK 项目经理
ArchFeh
RuyiSDK 社区经理(已离职)

卷首语

RuyiSDK V0.10 版本已于今日发布。 如意软件源仓库发布了 PLCT 实验室提交的支持 T-Head Vector 的 LLVM 17.0.6 版本。RISC-V 设备集成与支持方面,RuyiSDK 完成了对沁恒微电子现有 RISC-V 全产品系列的调研,并在设备系统安装器中添加支持。 此外,全志、芯来RISC-V 处理器的开发板也已经加入集成设备清单,目前相关开发板大部分已经完成调研,接下来也会集成到如意设备安装器中。

为了完善国内注册功能,如意官网在进一步的完善后端服务端和推进 ruyisdk.cn 域名备案。RuyiSDK 推广工作也开始筹备,RuyiSDK 社区首次线下 Meetup 完成筹备,将于 5 月 18 举办

RuyiSDK 更多进展细节详见下方详情,欢迎大家试用并提供反馈和建议。下一个开发版本 RuyiSDK V0.11 版本将在 5 月 28 日发布。

包管理器

RuyiSDK 0.10 对应的包管理器版本也为 0.10.0,已于今日发布。您可移步 GitHub ReleasesISCAS 镜像源下载体验。

本次 RuyiSDK 包管理器的更新主要包含了以下内容:

  • 支持了全局选项 --porcelain 以方便外部程序与 ruyi 交互。初期适配了 ruyi listruyi news list 两种操作。
  • ruyi news 在某条新闻存在当前系统语言翻译版本时,会优先展示此语言版本了。

本次 RuyiSDK 软件源的更新主要包含了以下内容:

  • 新增打包了 PLCT 维护的 LLVM 工具链 toolchain/llvm-plct,主要特色是 XTHeadVector 支持。
  • 新增支持了大量沁恒微电子(WCH)RISC-V MCU 评估板。Ruyi 设备安装器现已新增支持以下设备型号:
    • WCH CH32V103 评估板
    • WCH CH32V203 评估板
    • WCH CH32V208 评估板
    • WCH CH32V303 评估板
    • WCH CH32V305 评估板
    • WCH CH32V307 评估板
    • WCH CH582F 评估板
    • WCH CH592X 评估板

欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。

IDE

本期无可见交付进展。

GCC

更新了 RUYISDK GCC14 分支,目前正在 rebase rv64ilp32/SIMD/Profiles 等特性中。

LLVM

  • 增加针对 T-Head Vector 的优化 Pass

    • 增加了 RedundantVSETVLIElimination 优化过程,用于消除冗余的 vsetvli 指令
  • 继续完善 LLVM intrinsic 函数,自上次更新以来,新支持了这些类别下的函数:

    • 14.1. Vector Single-Width Floating-Point Add/Subtract Operations
    • 14.2. Vector Widening Floating-Point Add/Subtract Operations
    • 14.3. Vector Single-Width Floating-Point Multiply/Divide Operations
    • 14.4. Vector Widening Floating-Point Multiply Operations
    • 14.5. Vector Single-Width Floating-Point Fused Multiply-Add Operations
    • 14.6. Vector Widening Floating-Point Fused Multiply-Add Operations
    • 14.7. Vector Floating-Point Square-Root Operations
    • 14.8. Vector Floating-Point Reciprocal Square-Root Estimate Operations
    • 14.9. Vector Floating-Point Reciprocal Estimate Operations
    • 14.10. Vector Floating-Point MIN/MAX Operations
    • 14.11. Vector Floating-Point Sign-Injection Operations
    • 14.12. Vector Floating-Point Compare Operations
    • 14.13. Vector Floating-Point Classify Operations
    • 14.14. Vector Floating-Point Merge Operations
    • 14.15. Vector Floating-Point Move Operations
    • 14.16. Single-Width Floating-Point/Integer Type-Convert Operations
    • 14.17. Widening Floating-Point/Integer Type-Convert Operations
    • 14.18. Narrowing Floating-Point/Integer Type-Convert Operations
    • 17.2. Integer Scalar Move Operations
    • 17.3. Floating-Point Scalar Move Operations
    • 17.4. Vector Slide Operations
    • 17.5. Vector Register Gather Operations
    • 17.6. Vector Compress Operations
  • 继续完善 Clang intrinsic 函数,自上次更新以来,新支持了这些类别下的函数:

    • 14.1. Vector Single-Width Floating-Point Add/Subtract Operations
    • 14.2. Vector Widening Floating-Point Add/Subtract Operations
    • 14.3. Vector Single-Width Floating-Point Multiply/Divide Operations
    • 14.4. Vector Widening Floating-Point Multiply Operations
    • 14.5. Vector Single-Width Floating-Point Fused Multiply-Add Operations
    • 14.6. Vector Widening Floating-Point Fused Multiply-Add Operations
    • 15.1. Vector Single-Width Integer Reduction Operations
    • 15.2. Vector Widening Integer Reduction Operations
    • 15.3. Vector Single-Width Floating-Point Reduction Operations
    • 15.4. Vector Widening Floating-Point Reduction Operations
    • 17.4. Vector Slide Operations
    • 17.5. Vector Register Gather Operations
    • 17.6. Vector Compress Operations

OpenJDK

  1. OpenJDK PRs:
  1. Reviewed riscv-port-jdk11u backport PRs:
  1. CFV: New RISC-V Port Committer: Gui Cao

V8

  1. 新增 fastcall 特性的 JavaScript 可重入特性。
  2. 修复内置模拟器 RVV 寄存器内容未初始化、指针压缩开启后,32 位模式下指针判零等 bug。

官网

RuyiSDK 社区首次线下 Meetup 来啦,5 月 18 日软件所见!

为了完善国内注册功能,如意官网在进一步的完善后端服务端和推进 ruyisdk.cn 域名备案。

操作系统支持矩阵

新增部分全志、芯来开发板的系统支持情况调研;基于现有开发板和相关文档展开测试验证,产出测试报告。

  • Milk-V Duo S
    • NuttX
      • 新版本重新测试
    • BuildRoot
    • Debian
  • CanMV / Kendryte K230
    • NuttX
    • RT-Thread
  • StarFive VisionFive 2
    • NuttX
  • Maix-I K210
    • NuttX
  • Nuclei DDR200T
    • FreeRTOS
    • RT-Thread
  • Longan Nano
    • RT-Thread
  • RV Star
    • FreeRTOS
    • RT-Thread
  • 100ASK-V853-PRO (Allwinner V853)
    • Melis
  • CM32M433R-START
    • FreeRTOS
    • RT-Thread
  • TinyVision
    • Melis
  • Allwinner V853
    • Melis
  • Youmu Pi
    • Melis

内容请详见:ruyisdk/support-matrix

第 020 期·2024 年 04 月 23 日

· 阅读需 5 分钟
xijing21
RuyiSDK 项目经理
ArchFeh
RuyiSDK 社区经理(已离职)

卷首语

RuyiSDK V0.9 版本已于今日发布。 RuyiSDK 完成了对矽速现有 RISC-V 全产品线的调研,并在设备系统安装器中添加支持,除 RISCV FPGA 系列中无 RISC-V 硬核的开发板,均已集成到 RuyiSDK 中。同时,完成了对 嘉楠勘智 K510 的支持

近期提交了基于 17.0.6 版本添加 xtheadvector 支持的 LLVM 工具链,这一支持后续也将集成到 RuyiSDK 中。此外,包管理器工具针对开发板镜像或 SDK 格式多元化的特点,修复了多文件压缩包下载时的 bug,增加 lz4 压缩格式解包等。RuyiSDK 更多进展细节详见下方详情,欢迎大家试用并提供反馈和建议。

下一个开发版本 RuyiSDK V0.10 版本将在 5 月 14 日发布。

包管理器

RuyiSDK 0.9 对应的包管理器版本也为 0.9.0,已于今日发布。您可移步 GitHub ReleasesISCAS 镜像源下载体验。

本次 RuyiSDK 包管理器的更新主要包含了以下内容:

  • 支持解包 LZ4 格式的压缩文件了。

本次 RuyiSDK 软件源的更新主要包含了以下内容:

  • 支持矽速(Sipeed)全线 RISC-V 产品。Ruyi 设备安装器现已新增支持以下设备型号:
    • Sipeed LicheeRV Nano
    • Sipeed Lichee Cluster 4A
    • Sipeed Lichee Console 4A
    • Sipeed Maix-I
    • Sipeed Tang Mega 138K Pro

欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。

IDE

本期暂无进展。

GCC

继续维护 RUYISDK GCC 的版本支持,修复了 gcc12 构建时的一些问题,正在同步最新的 GCC14 release 特性。

LLVM

T-Head Vector 拓展

  • 继续完善 LLVM intrinsic 函数,自上次更新以来,新支持了这些类别下的函数:
    • 15.1. Vector Single-Width Integer Reduction Operations
    • 15.2. Vector Widening Integer Reduction Operations
    • 15.3. Vector Single-Width Floating-Point Reduction Operations
    • 15.4. Vector Widening Floating-Point Reduction Operations
    • 16.1. Vector Mask-Register Logical Operations
    • 16.2. Vector mask population count vpopc
    • 16.3. vfirst find-first-set mask bit
    • 16.4. vmsbf.m set-before-first mask bit
    • 16.5. vmsif.m set-including-first mask bit
    • 16.6. vmsof.m set-only-first mask bit
    • 16.7. Vector Iota Operations
    • 16.8. Vector Element Index Operations
  • 继续完善 Clang intrinsic 函数,自上次更新以来,新支持了这些类别下的函数:
    • 16.1. Vector Mask-Register Logical Operations
    • 16.2. Vector mask population count vpopc
    • 16.3. vfirst find-first-set mask bit
    • 16.4. vmsbf.m set-before-first mask bit
    • 16.5. vmsif.m set-including-first mask bit
    • 16.6. vmsof.m set-only-first mask bit
    • 16.7. Vector Iota Operations
    • 16.8. Vector Element Index Operations

OpenJDK

  1. Proposed JDK-mainline PRs:
  1. Reviewed JDK-mainline PRs:

V8

解决了指针压缩开启后,32 位指针与 0 比较时依然使用 64 位比较指令的 bug。 使用 RISC-V 提供的 sys_riscv_hwprobe 系统调用来进行运行时指令集的探测。

官网

本期暂无进展。

操作系统支持矩阵

新增对 Canaan Kendryte K510、Sipeed Tang Mega 138K Pro 等开发板的系统支持情况调研。基于矽速各开发板展开测试验证,输出测试报告。 内容详见:https://github.com/ruyisdk/support-matrix

第 019 期·2024 年 04 月 09 日

· 阅读需 7 分钟
xijing21
RuyiSDK 项目经理
ArchFeh
RuyiSDK 社区经理(已离职)

卷首语

RuyiSDK V0.8 版本已于今日发布。RuyiSDK 官网已正式上线;RuyiSDK 软件源已集成 PLCT 发布的支持香山南湖微处理器的 GNU

RuyiSDK 对 milkv 全产品线支持计划于上期基本完成,本期缺失待测设备还未就绪,因此仍需等待设备就绪后完成最后部分设备测试工作。对矽速全产品线支持计划本期完成了部分调研和集成准备工作,其 Linux RISC-V SBC 系列所有开发板、以及 Maix AI 视觉系列 RISC-V 设备的调研和集成准备工作基本就绪,RISCV FPGA 系列相关开发板还在调研了解中。

此外,包管理器工具完成了若干功能的完善和优化,更多进展详见下方详情,欢迎大家试用并提供反馈和建议。

下一个开发版本 RuyiSDK V0.9 版本将在 4 月 23 日发布。

包管理器

RuyiSDK 0.8 对应的包管理器版本也为 0.8.0,已于今日发布。您可移步 GitHub ReleasesISCAS 镜像源下载体验。

本次 RuyiSDK 包管理器的更新主要包含了以下内容:

  • 默认禁止了以 root 身份运行 ruyi,以提升安全性。如确有需要,可按程序提示设置环境变量以绕过检查,但我们不推荐这么做。
  • 迭代了软件源格式:
    • 支持以 TOML 格式撰写软件源全局配置及包定义文件。相比先前采用的 JSON 格式,更便于手工编辑、添加注释、标记文件格式版本等,有利于维护。
    • 支持定义上游镜像了。后续对那些本身也通过镜像分发的软件包,也能借助此功能,利用上它们的镜像了,有利于提高用户一侧的下载速度与可靠性。
  • 支持在 wgetcurl 均不可用的系统上下载文件了。
  • 安装软件包时的解包操作现在具备原子性了。这意味着一旦解包被中断,重试时,ruyi 不会错误以为该包已经安装完成了。
  • 持续优化工程实践:
    • 目前所有代码贡献都会在代码风格、类型注解、开源许可证遵守方面接受检查了。
    • 改进了打包流程,使 ruyi 官方二进制的包体得到了一定的瘦身。

欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。

IDE

本期暂无显著进展。

GCC

修复了 Zicond 扩展与新版本 newlib 不兼容的问题,协助解决了 B-type 指令的添加问题, 补充了香山 Branch 流水线的指令支持类型,继续集成新的 RISC-V 特性到 RUYISDK GNU 工具链中。

LLVM

T-Head Vector 拓展

  • 继续完善 LLVM intrinsic 函数,自上次更新以来,新支持了这些类别下的函数:
    • 14.1. Vector Single-Width Floating-Point Add/Subtract Operations
    • 14.3. Vector Single-Width Floating-Point Multiply/Divide Operations
  • 继续完善 Clang intrinsic 函数,自上次更新以来,新支持了这些类别下的函数:
    • 13.1. Vector Single-Width Saturating Add and Subtract
    • 13.5. Vector Narrowing Fixed-Point Clip Operations

此外,本次将 T-Head Vector 分支 rebase 到了 LLVM 17.0.6 版本。

OpenJDK

  1. Get familar with virtual thread pinning issue (Virtual Thread’s Next Steps: https://fosdem.org/2024/schedule/event/fosdem-2024-3255-virtual-thread-s-next-steps/ )

  2. Proposed riscv-port-jdk11u backport PRs to fix GHA linux-cross-build (linux-riscv64) failure:

  1. Reviewed JDK-mainline PRs:
  1. Reviewed JDK21u upstream PRs:
  1. Reviewed JDK11u upstream PRs:
  1. Reviewed riscv-port-jdk11u backport PRs:
  1. OpenJDK PRs

V8

  1. 修复沙盒 SandBox 支持的 BUG,在 RISC-V 架构上开启该功能,加强 V8 的安全特性。
  2. 移植 TurboShaft IR 的单元测试集到 RISC-V 架构。
  3. 在 V8 中实现相应的支持,以适配 openEuler RISC-V 新版本中的 SV57 虚拟内存特性。

官网

RuyiSDK 官网正式上线了!欢迎访问官网,了解更多关于 RuyiSDK 的信息,点击网站下方的订阅,获得我们的最新消息或者加入社区。

官网访问地址:https://ruyisdk.org/

官网仓库:https://github.com/ruyisdk/ruyisdk-website

操作系统支持矩阵

完成了对绝大多数市面常见 RISC-V 开发板操作系统支持情况的调研,并编写了测试报告。新增了对 Lichee Cluster 4A、Lichee Console 4A、Sipeed Maix-I、Lichee RV Nano 的系统支持情况调研。

内容详见:https://github.com/ruyisdk/support-matrix

第 018 期·2024 年 03 月 26 日

· 阅读需 6 分钟
xijing21
RuyiSDK 项目经理
ArchFeh
RuyiSDK 社区经理(已离职)

卷首语

RuyiSDK V0.7 版本今日正式发布。GCC 上游社区合并了 PLCT 提交的香山南湖微架构补丁,RuyiSDK 包管理器正在对最新的 gnu-upstream 进行新版本的打包分发,预计近日将发布;RuyiSDK 官网已公开内测;操作系统安装器新增了 Milk-V Duo S、Milk-V Mars、Milk-V Vega 等产品的集成,截止本版本为止,Milk-V 当前全产品线已经初步集成到 RuyiSDK 包管理器(Milk-V Duo S、Milk-V Mars 设备暂时未到位测试验证后续补充,欢迎有设备的开发者们试用反馈)。

更多更新详见下方详情,欢迎大家试用并提供反馈和建议。下一个开发版本 RuyiSDK V0.8 版本将在 4 月 9 日发布。

包管理器

RuyiSDK 0.7 对应的包管理器版本也为 0.7.0,已于今日发布。您可移步 GitHub ReleasesISCAS 镜像源下载体验。

本次 RuyiSDK 包管理器的更新主要包含了以下内容:

  • 修复了在部分系统上找不到 TLS 根证书的问题。
  • Ruyi 设备安装器(ruyi device provision)现在可以帮忙制作安装介质(如 LiveUSB)了。

此外,我们完善了持续集成基础设施:从此版本开始,RuyiSDK 包管理器的所有版本发布将以自动化方式完成了。这有助于我们更高效、更可靠地推进开发工作、解决问题。

欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。

IDE

集成开发环境 VSCode 开发部分目前征集到一位内部兼职开发者,开始尝试基于 VSCode 实现 Milkv 开发板的集成开发工作。

GCC

香山南湖的微架构支持已合入 GCC 上游,继续推进 RUYISDK 多版本 GCC 的支持工作,更新了“-march=help”特性的支持。

LLVM

T-Head Vector 拓展

  • 继续完善 LLVM intrinsic 函数,自上次更新以来,新支持了这些类别下的函数:
    • 13.1. Vector Single-Width Saturating Add and Subtract
    • 13.5. Vector Narrowing Fixed-Point Clip Operations
  • 继续完善 Clang intrinsic 函数,自上次更新以来,新支持了这些类别下的函数:
    • 12.7. Vector Integer Comparison Operations
    • 12.8. Vector Integer Min/Max Operations
    • 12.9. Vector Single-Width Integer Multiply Operations
    • 12.10. Vector Integer Divide Operations
    • 12.11. Vector Widening Integer Multiply Operations
    • 12.12. Vector Single-Width Integer Multiply-Add Operations
    • 12.13. Vector Widening Integer Multiply-Add Operations
    • 12.14. Vector Integer Merge Operations
    • 13.3. Vector Single-Width Fractional Multiply with Rounding and Saturation

OpenJDK

OpenJDK RV64 继续持续负责 OpenJDK RISC-V 相关代码的日常开发、测试、代码检视和架构看护。

  1. Reviewed JDK-mainline PRs:
  1. Reviewed JDK21u upstream PRs:
  1. Reviewed JDK11u upstream PRs:
  1. Reviewed riscv-port-jdk11u backport PRs:
  1. riscv-port-jdk11u daily build available at: https://builds.shipilev.net/openjdk-jdk11-riscv/
  2. Troubleshoot GHA linux-cross-build (linux-riscv64) failure (https://bugs.openjdk.org/browse/JDK-8326960 )
  3. OpenJDK PRs

官网

官网访问地址:https://ruyisdk.org/

官网仓库:https://github.com/ruyisdk/ruyisdk-website

官网近期完成了细节的更新、文档更新、i18n 多语言支持相关的工作。目前公开邀请测试中。

操作系统支持矩阵

对 RISC-V 开发板及其支持的操作系统的支持矩阵的内容和文档进行了更新和完善,并增加了 Milk-V Duo S、Milk-V Mars、Milk-V Vega 等新设备的支持调研,Milk-V Duo S、Milk-V Mars 在开发板上的实际测试验证等待采购设备到位后开展。

内容详见:https://github.com/ruyisdk/support-matrix

第 017 期·2024 年 03 月 12 日

· 阅读需 5 分钟
xijing21
RuyiSDK 项目经理
ArchFeh
RuyiSDK 社区经理(已离职)

卷首语

RuyiSDK V0.6 版本如期而至,RuyiSDK 官网上线内测,网站各基础板块已具备,文档和内容已初步成型。RISC-V 开发板操作系统支持矩阵一直在持续更新,本期在官网上发布第一版结果。操作系统安装器对已集成的开发板可用操作系统的类型进行了增加。

此外调研了 milkv、矽速、沁恒微电子三家厂商的 RISC-V 产品,开始启动 milkv、矽速全产品线支持计划。

更多更新详见下方详情,欢迎大家试用并提供反馈和建议。下一个开发版本 RuyiSDK V0.7 版本将在 3 月 26 日发布。

包管理器

RuyiSDK 0.6 对应的包管理器版本也为 0.6.0,已于今日发布。您可移步 GitHub ReleasesISCAS 镜像源下载体验。

本次更新主要包含了以下内容:

  • 不再依赖系统提供的 git 命令进行软件源同步了。相应地,您需要确保系统中存在 TLS 根证书(例如名为 ca-certificates 或类似的包),以及 OpenSSL 库;这对我们官方支持的发行版不是问题。
  • ruyi news 展示的新闻内容的标题样式更简洁了。

欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。

IDE

本期暂无进展。

GCC

联合玄铁团队发布了新 32 位产品级开源工具链,利用 64 位指令有效减少 32 位应用的指令数量。 Zabha 扩展 patch 已被上游接受合入,继续推进 gprofng 与 libmvec 库的支持中。

LLVM

T-Head Vector 拓展

  • 继续完善 LLVM intrinsic 函数,自上次更新以来,新支持了这些类别下的函数:
    • 13.2. Vector Single-Width Averaging Add and Subtract
    • 13.3. Vector Single-Width Fractional Multiply with Rounding and Saturation
  • 继续完善 Clang intrinsic 函数,自上次更新以来,新支持了这些类别下的函数:
    • 12.6. Vector Narrowing Integer Right Shift Operations

此外,第一阶段交给上游的 PR 已经提交,正在等待上游的响应。自上次更新以来的进度如下:

OpenJDK

OpenJDK RV64 继续持续负责 OpenJDK RISC-V 相关代码的日常开发、测试、代码检视和架构看护。

  1. Reviewed JDK-mainline PRs:
  1. Testing before Rampdown/CodeFreeze for LTS versions: OpenJDK 21.0.3 and OpenJDK 17.0.11
  • Run OpenJDK tier1-4 regression tests on Unmatched and Licheepi-4A boards.
  • Run MineCraft and typical Apache softwares (Netbeans, Lucene, Tomcat, Hadoop, Spark)
  1. Co-authored JDK-mainline PRs:

官网

官网已于 3 月 1 日开启内部测试,官网支持:

  • RuyiSDK 介绍
  • 查看支持文档
  • 链接社区
  • 新闻发布
  • 订阅 RuyiSDK newsletter
  • RuyiSDK 下载入口
  • 多语言支持

官网访问地址:https://ruyisdk.org/

官网仓库:https://github.com/ruyisdk/ruyisdk-website

操作系统支持矩阵

RISC-V 开发板及其支持的操作系统的支持矩阵公开发布第一版,目前已集成到官网。

内容详见:https://github.com/ruyisdk/support-matrix

第 016 期·2024 年 02 月 27 日

· 阅读需 7 分钟
xijing21
RuyiSDK 项目经理
ArchFeh
RuyiSDK 社区经理(已离职)

卷首语

RuyiSDK V0.5 版本如期发布,此版本集成并发布了 PLCT GNU 小队新发布的 GNU RV64ILP32 工具链,并更新了适用 th1520 的 plctxthead-linux-gnu 工具链。继续扩展了系统安装器支持的 RISC-V 开发板,添加了对 SiFive HiFive Unmatched 、Canaan Kendryte K230 两款 RISC-V 开发板的支持,包括镜像信息的维护与下载、开发板系统的安装引导。 此外,在 RuyiSDK 集成到 RISC-V 笔记本方面,完成 ruyi 包管理工具的安装和使用验证,各功能运行正常。还完成了基于 oerv23.09 软件包依赖的 ruyi 包管理器工具的 rpm 打包工作,在 openEuler 上可以通过 yum install python3-ruyi 方式完成安装。

更多更新详见下方详情,欢迎大家试用并提供反馈和建议。下一个开发版本 RuyiSDK V0.6 版本将在 3 月 12 日发布。

包管理器

RuyiSDK 0.5 对应的包管理器版本也为 0.5.0,已于今日发布。您可移步 GitHub ReleasesISCAS 镜像源下载体验。

本次更新主要包含了以下内容:

  • 新增了 RV64ILP32 ABI 的裸机工具链实验性支持。详见 ruyi news
  • 修复了 toolchain/gnu-plct-xthead 工具链输出的可执行程序无法在 RevyOS 运行的问题。
  • Ruyi 设备安装器:新增支持了 Canaan Kendryte K230 与 SiFive HiFive Unmatched 两款板卡。
  • Ruyi 设备安装器现在完全从 RuyiSDK 软件源拉取配置数据了。这意味着您只需运行 ruyi update 便可让 Ruyi 设备安装器支持后续新增的板卡、系统组合。
  • 包管理器在下载文件失败后的断点续传现在更加可靠了。
  • 可以自定义 RuyiSDK 软件源的本地存储位置、远端 URL 以及所用分支了,方便您的测试或其他高级使用场景。详见 ruyisdk/ruyi 项目的 README。

欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。

IDE

IDE 部分主要开展了 Dart 、Chisel RISC-V 架构上编译和调试现有插件的调研。Dart 目前可以借助 JIT 或 AOT 在 linux 系统本机编译或运行 RISC-V 目标的程序 (实验性),不能在本机进行交叉编译 (除 flutter)。

Chisel 所需的 Verilog 仿真器 Verilator 目前在部分 Linux(如 openEuler)发行版支持还需完善,此外运行过程中遇到一些问题还在继续了解中。Chisel 对 RISC-V 项目的支持目前比较普及,国内很多 RISC-V 处理器设计相关项目均采用的 Chisel,如香山。

GCC

更新了 RV64ILP32 的工具链仓库,同步更新了各个子模块的实现与构建,补充了中文构建使用说明测试文档

LLVM

T-Head Vector 拓展

首先是常规进度更新,RuyiSDK 分支中的 T-Head Vector 拓展的进度如下:

  • 继续完善 LLVM intrinsic 函数,自上次更新以来,新支持了这些类别下的函数:
    • 12.7. Vector Integer Comparison Operations
    • 12.8. Vector Integer Min/Max Operations
    • 12.9. Vector Single-Width Integer Multiply Operations
    • 12.10. Vector Integer Divide Operations
    • 12.11. Vector Widening Integer Multiply Operations
    • 12.12. Vector Single-Width Integer Multiply-Add Operations
    • 12.13. Vector Widening Integer Multiply-Add Operations
  • 继续完善 Clang intrinsic 函数,自上次更新以来,新支持了这些类别下的函数:
    • 12.1. Vector Single-Width Integer Add and Subtract
    • 12.2. Vector Widening Integer Add/Subtract Operations
    • 12.3. Vector Integer Add-with-Carry / Subtract-with-Borrow Operations
    • 12.4. Vector Bitwise Logical Operations
    • 12.5. Vector Single-Width Bit Shift Operations

此外,从年后开始,我们已经开始将 RuyiSDK 中的 T-Head Vector 拓展的代码与 LLVM 上游仓库合并, 并准备在近期向上游提交 PR。计划中初次 PR 的内容包含如下:

  • 注册 T-Head Vector 拓展的名字,版本,依赖拓展,以及对应的拓展冲突检测和相关测试(已完成)
  • 包括所有 T-Head Vector 中的汇编指令,即 LLVM MC 支持,以及对应的测试(正在进行)
    • 这部分工作基本以及完成,目前正在进行测试的移植。主要问题为 llvm-objdump 对部分操作数的输出采用了 16 进制格式,但是汇编器的输出是 10 进制格式,导致测试字符串对比不通过。目前正在进行修复。

相关参考链接:https://gcc.gnu.org/pipermail/gcc-patches/2024-January/643490.html

OpenJDK

OpenJDK RV64 继续持续负责 OpenJDK RISC-V 相关代码的日常开发、测试、代码检视和架构看护。

  1. 完成阿里提交的 jdk11u linux-riscv64 代码检视和测试, 目前已经合并到了 riscv-port-jdk11u 仓库
  2. 为 OpenJDK 主线 linux-riscv64 后端轻量级锁进行了重入锁实现等
  3. 检视/测试 OpenJDK 社区关于加解密 intrinsic 的实现等

V8

  1. 向 V8 上游提交了 RISCV64 Android 构建的支持,已合并;
  2. 实现了 WebAssembly 的新特性 Out of Bounds Trap Handling 在 RISC-V 后端的支持。

RuyiSDK 集成到 RISC-V 笔记本电脑

  1. 在 RISC-V 笔记本上安装和运行了包管理工具 ruyi,运行正常。
  2. 基于 openEuler 23.09 版本的软件包基础依赖情况,实现了 ruyi 包管理器工具的打包,目前已经将相关 rpm 包提交给 RISC-V 笔记本组。详见:https://gitlab.inuyasha.love/weilinfox/plct-working/-/blob/master/Done/Month08/Week1/ruyi-rpm.md

第 015 期·2024 年 01 月 30 日

· 阅读需 4 分钟
xijing21
RuyiSDK 项目经理
ArchFeh
RuyiSDK 社区经理(已离职)

卷首语

RuyiSDK V0.4 版本今日正式发布。此版本添加了对 Allwinner Nezha D1、Sipeed Lichee RV、StarFive VisionFive、StarFive VisionFive2 四款 RISC-V 开发板的支持,包括镜像信息的维护与下载、开发板系统的安装引导,为 RISC-V 开发者提供了更加便捷的 OS 获取及安装体验。此外 RuyiSDK 软件源新增提供了 riscv64 平台的 DynamoRIO 二进制软件包的下载和安装。

随着春节的临近,我们即将迈入 2024 年。在此,我们先向大家送上春节的祝福,祝大家新春愉快,万事如意! 另外,需要通知各位的是,RuyiSDK V0.5 版本的发布将稍作延迟,调整为 2 月 27 日。感谢大家的理解与支持,我们将会带来更多精彩的内容。再次祝大家春节快乐!

包管理器

RuyiSDK 0.4 对应的包管理器版本也为 0.4.0,已于今日发布。您可移步 GitHub ReleasesISCAS 镜像源下载体验。

本次更新主要包含了以下内容:

  • ruyi device provision 会将 fastboot 的调用以 sudo 包装了。
  • ruyi self uninstall --purge 不会忘记删除 ~/.local/state/ruyi 目录了。
  • 从软件源下载文件失败时,会提供一些有助于用户自助排查问题的提示讯息了。
  • 为提供更稳定的服务,RuyiSDK 软件源仓库现已搬迁至 GitHub。 视您所在地区或组织所可能设置的网络访问限制,您可能需要采取一些措施, 以便能继续与 RuyiSDK 软件源同步。
  • 在 RuyiSDK 软件源中,新增提供了上述四款 RISC-V 开发板的系统镜像包、运行于 amd64 架构的 RISC-V QEMU 系统模拟器二进制包,以及运行于 riscv64 架构的 DynamoRIO 二进制包。

请注意:原先位置的 RuyiSDK 软件源仓库将在 2024-02-01 前后停止更新。请尽早更新您的 ruyi 版本以自动迁移到最新配置。

欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。

IDE

IDE 部分主要开展了 Eclipse 和 VSCode 对 C、Rust、Golang 进行了 RISC-V 架构上编译和调试现有插件的调研,目前整体来说 C、Rust 和 Golang 在 RISC-V 架构下的交叉编译可走通,但是调试插件还或多或少存在一些问题,缺乏成熟插件甚至无可用调试插件支持。

GCC

上游已经接受了 Bitmanip/Scalar Crypto intrinsic 的支持,对 Zcmp/Zcmt 的 patch 提出了新的修改意见,目前正在修改中。 持续推进 RUYISDK GCC 的多版本支持工作,预计下个月提交发布版本进行打包测试。

OpenJDK

OpenJDK RV64 继续持续负责 OpenJDK RISC-V 相关代码的日常开发、测试、代码检视和架构看护。

  1. 两个 OpenJDK LTS (OpenJDK 17.0.10 / OpenJDK 21.0.2) 版本完成 release 发版。
  2. 期间向社区提交/检视多个优化的 patch, 并排查解决两起社区使用 OpenJDK 相关的问题。

V8

完成 V8 on Android RISC-V 的英文文档,并向 RISE 汇报了此项任务的完成(https://github.com/riscv-collab/v8/wiki/How-to-Run-v8-on-Android-RISCV)。

第 014 期·2024 年 01 月 16 日

· 阅读需 3 分钟
xijing21
RuyiSDK 项目经理
ArchFeh
RuyiSDK 社区经理(已离职)

卷首语

RuyiSDK V0.3 版本今日发布,这是 RuyiSDK 项目切换为开发迭代模式后的第一次发版,为了更好的让用户了解版本功能的演进,包管理器提供了软件源新闻消息的功能。此外新增了主流的 3 款 RISC-V 开发板的 可用镜像信息维护与下载、开发板系统安装引导程序,方便 RISC-V 开发者获取指定开发板可用的 OS 并可方便的安装 OS 的安装。欢迎大家试用并提供反馈和建议。下一个开发版本 RuyiSDK V0.4 版本将在 1 月 30 日发布。

包管理器

项目地址:https://github.com/ruyisdk/ruyi

RuyiSDK 包管理器 ruyi 的 0.3.0 版本已于今日发布,您可移步 GitHub ReleasesISCAS 镜像源下载体验。

本次的更新内容主要有:

  • 增加了软件源新闻消息功能。ruyi update 后,如有未读的新闻消息,会输出提示信息。 您可用新增的 ruyi news listruyi news read 命令阅读这些消息文章。
  • Issue 32:为 Milk-V Duo、Milk-V Pioneer、Sipeed LicheePi 4A 增加了多种系统镜像,详见 RuyiSDK 官方源的新闻。 由于这些镜像文件并非都直接由 RuyiSDK 团队打包,当您安装它们时,包管理器将从相应的源站下载:ruyi 的版本需要是 0.3.0 或更高。
  • 增加了开发板安装器功能:ruyi device provision。这是个一步步指导您为手头的 RISC-V 开发板烧写系统镜像、引导器等初始数据的向导。 初期支持的硬件范围同样是上述 3 种板卡的所有已知不同版本。

欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。

IDE

IDE 加强了基于 Eclipse 和 Vscode 的插件调研,本期跑通了 Rust 在 Eclipse 和 Vscode 的交叉编译。

GCC

根据上游的意见,重新提交了 Zc*与 Intrinsic 支持的 patch,继续移植 RUYISDK GCC11/12 版本