Zweiwöchentlicher RuyiSDK-Bericht
Erhalten Sie alle zwei Wochen die neuesten Entwicklungsupdates
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 Releases 或 ISCAS 镜像源下载体验。
本次 RuyiSDK 包管理器的更新主要包含了以下内容:
本次 RuyiSDK 软件源的更新主要包含了以下内容:
- 支持矽速(Sipeed)全线 RISC-V 产品。Ruyi 设备安装器现已新增支持以下设备型号:
- Sipeed LicheeRV Nano
- Sipeed Lichee Cluster 4A
- Sipeed Lichee Console 4A
- Sipeed Maix-I
- Sipeed Tang Mega 138K Pro
欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。
本期暂无进展。
继续维护 RUYISDK GCC 的版本支持,修复了 gcc12 构建时的一些问题,正在同步最新的 GCC14 release 特性。
- 继续完善 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
- Proposed JDK-mainline PRs:
- Reviewed JDK-mainline PRs:
解决了指针压缩开启后,32 位指针与 0 比较时依然使用 64 位比较指令的 bug。
使用 RISC-V 提供的 sys_riscv_hwprobe 系统调用来进行运行时指令集的探测。
本期暂无进展。
新增对 Canaan Kendryte K510、Sipeed Tang Mega 138K Pro 等开发板的系统支持情况调研。基于矽速各开发板展开测试验证,输出测试报告。
内容详见:https://github.com/ruyisdk/support-matrix
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 Releases 或 ISCAS 镜像源下载体验。
本次 RuyiSDK 包管理器的更新主要包含了以下内容:
- 默认禁止了以
root
身份运行 ruyi
,以提升安全性。如确有需要,可 按程序提示设置环境变量以绕过检查,但我们不推荐这么做。
- 迭代了软件源格式:
- 支持以 TOML 格式撰写软件源全局配置及包定义文件。相比先前采用的 JSON 格式,更便于手工编辑、添加注释、标记文件格式版本等,有利于维护。
- 支持定义上游镜像了。后续对那些本身也通过镜像分发的软件包,也能借助此功能,利用上它们的镜像了,有利于提高用户一侧的下载速度与可靠性。
- 支持在
wget
与 curl
均不可用的系统上下载文件了。
- 安装软件包时的解包操作现在具备原子性了。这意味着一旦解包被中断,重试时,
ruyi
不会错误以为该包已经安装完成了。
- 持续优化工程实践:
- 目前所有代码贡献都会在代码风格、类型注解、开源许可证遵守方面接受检查了。
- 改进了打包流程,使
ruyi
官方二进制的包体得到了一定的瘦身。
欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。
本期暂无显著进展。
修复了 Zicond 扩展与新版本 newlib 不兼容的问题,协助解决了 B-type 指令的添加问题,
补充了香山 Branch 流水线的指令支持类型,继续集成新的 RISC-V 特性到 RUYISDK GNU 工具链中。
- 继续完善 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 版本。
-
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/ )
-
Proposed riscv-port-jdk11u backport PRs to fix GHA linux-cross-build (linux-riscv64) failure:
- Reviewed JDK-mainline PRs:
- Reviewed JDK21u upstream PRs:
- Reviewed JDK11u upstream PRs:
- Reviewed riscv-port-jdk11u backport PRs:
- OpenJDK PRs
- 修复沙盒 SandBox 支持的 BUG,在 RISC-V 架构上开启该功能,加强 V8 的安全特性。
- 移植 TurboShaft IR 的单元测试集到 RISC-V 架构。
- 在 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
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 Releases 或 ISCAS 镜像源下载体验。
本次 RuyiSDK 包管理器的更新主要包含了以下内容:
- 修复了在部分系统上找不到 TLS 根证书的问题。
- Ruyi 设备安装器(
ruyi device provision
)现在可以帮忙制作安装介质(如 LiveUSB)了。
此外,我们完善了持续集成基础设施:从此版本开始,RuyiSDK 包管理器的所有版本发布将以自动化方式完成了。这有助于我们更高效、更可靠地推进开发工作、解决问题。
欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。
集成开发环境 VSCode 开发部分目前征集到一位内部兼职开发者,开始尝试基于 VSCode 实现 Milkv 开发板的集成开发工作。
香山南湖的微架构支持已合入 GCC 上游,继续推进 RUYISDK 多版本 GCC 的支持工作,更新了“-march=help”特性的支持。
- 继续完善 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 RV64 继续持续负责 OpenJDK RISC-V 相关代码的日常开发、测试、代码检视和架构看护。
- Reviewed JDK-mainline PRs:
- Reviewed JDK21u upstream PRs:
- Reviewed JDK11u upstream PRs:
- Reviewed riscv-port-jdk11u backport PRs:
- riscv-port-jdk11u daily build available at: https://builds.shipilev.net/openjdk-jdk11-riscv/
- Troubleshoot GHA linux-cross-build (linux-riscv64) failure (https://bugs.openjdk.org/browse/JDK-8326960 )
- 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
RuyiSDK V0.6 版本如期而至,RuyiSDK 官网上线内测,网站各基础板块已具备,文档和内容已初步成型。RISC-V 开发板操作系统支持矩阵一直在持续更新,本期在官网上发布第一版结果。操作系统安装器对已集成 的开发板可用操作系统的类型进行了增加。
此外调研了 milkv、矽速、沁恒微电子三家厂商的 RISC-V 产品,开始启动 milkv、矽速全产品线支持计划。
更多更新详见下方详情,欢迎大家试用并提供反馈和建议。下一个开发版本 RuyiSDK V0.7 版本将在 3 月 26 日发布。
RuyiSDK 0.6 对应的包管理器版本也为 0.6.0,已于今日发布。您可移步
GitHub Releases 或 ISCAS 镜像源下载体验。
本次更新主要包含了以下内容:
- 不再依赖系统提供的
git
命令进行软件源同步了。相应地,您需要确保系统中存在
TLS 根证书(例如名为 ca-certificates
或类似的包),以及 OpenSSL
库;这对我们官方支持的发行版不是问题。
ruyi news
展示的新闻内容的标题样式更简洁了。
欢迎试用或来上游围观;您的需求是我们迭代开发的目标和动力。
本期暂无进展。
联合玄铁团队发布了新 32 位 产品级开源工具链,利用 64 位指令有效减少 32 位应用的指令数量。
Zabha 扩展 patch 已被上游接受合入,继续推进 gprofng 与 libmvec 库的支持中。
- 继续完善 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 RV64 继续持续负 责 OpenJDK RISC-V 相关代码的日常开发、测试、代码检视和架构看护。
- Reviewed JDK-mainline PRs:
- 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)
- 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
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 Releases 或 ISCAS 镜像源下载体验。
本次更新主要包含了以下内容:
- 新增了 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 部分主要开展了 Dart 、Chisel RISC-V 架构上编译和调试现有插件的调研。Dart 目前可以借助 JIT 或 AOT 在 linux 系统本机编译或运行 RISC-V 目标的程序 (实验性),不能在本机进行交叉编译 (除 flutter)。
Chisel 所需的 Verilog 仿真器 Verilator 目前在部分 Linux(如 openEuler)发行版支持还需完善,此外运行过程中遇到一些问题还在继续了解中。Chisel 对 RISC-V 项目的支持目前比较普及,国内很多 RISC-V 处理器设计相关项目均采用的 Chisel,如香山。
更新了 RV64ILP32 的工具链仓库,同步更新了各个子模块的实现与构建,补充了中文构建使用说明测试文档
首先是常规进度更新,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 RV64 继续持续负责 OpenJDK RISC-V 相关代码的日常开发、测试、代码检视和架构看护。
- 完成阿里提交的 jdk11u linux-riscv64 代码检视和测试, 目前已经合并到了 riscv-port-jdk11u 仓库
- 为 OpenJDK 主线 linux-riscv64 后端轻量级锁进行了重入锁实现等
- 检视/测试 OpenJDK 社区关于加解密 intrinsic 的实现等
- 向 V8 上游提交了 RISCV64 Android 构建的支持,已合并;
- 实现了 WebAssembly 的新特性 Out of Bounds Trap Handling 在 RISC-V 后端的支持。
- 在 RISC-V 笔记本上安装和运行了包管理工具 ruyi,运行正常。
- 基于 openEuler 23.09 版本的软件包基础依赖情况,实现了 ruyi 包管理器工具的打包,目前已经将相关 rpm 包提交给 RISC-V 笔记本组。详见:https://gitlab.inuyasha.love/weilinfox/plct-working/-/blob/master/Done/Month08/Week1/ruyi-rpm.md
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 Releases 或 ISCAS 镜像源下载体验。
本次更新主要包含了以下内容:
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 部分主要开展了 Eclipse 和 VSCode 对 C、Rust、Golang 进行了 RISC-V 架构上编译和调试现有插件的调研,目前整体来说 C、Rust 和 Golang 在 RISC-V 架构下的交叉编译可走通,但是调试插件还或多或少存在一些问题,缺乏成熟插件甚至无可用调试插件支持。
上游已经接受了 Bitmanip/Scalar Crypto intrinsic 的支持,对 Zcmp/Zcmt 的 patch 提出了新的修改意见,目前正在修改中。 持续推进 RUYISDK GCC 的多版本支持工作,预计下个月提交发布版本进行打包测试。
OpenJDK RV64 继续持续负责 OpenJDK RISC-V 相关代码的日常开发、测试、代码检视和架构看护。
- 两个 OpenJDK LTS (OpenJDK 17.0.10 / OpenJDK 21.0.2) 版本完成 release 发版。
- 期间向社区提交/检视多个优化的 patch, 并排查解决两起社区使用 OpenJDK 相关的问题。
完成 V8 on Android RISC-V 的英文文档,并向 RISE 汇报了此项任务的完成(https://github.com/riscv-collab/v8/wiki/How-to-Run-v8-on-Android-RISCV)。
RuyiSDK V0.3 版本今日发布,这是 RuyiSDK 项目切换为开发迭代模式后的第一次发版,为了更好的让用户了解版本功能的演进,包管理器提供了软件源新闻消息的功能。此外新增了主流的 3 款 RISC-V 开发板的 可用镜像信息维护与下载、开发板系统安装引导程序,方便 RISC-V 开发者获取指定开发板可用的 OS 并可方便的安装 OS 的安装。欢迎大家试用并提供反馈和建议。下一个开发版本 RuyiSDK V0.4 版本将在 1 月 30 日发布。