跳到主要内容

RuyiSDK 双周报

每两周获得最新开发进展

第 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 版本

第 013 期·2024 年 01 月 02 日

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

卷首语

2024 年 RuyiSDK 项目将切换为更加敏捷的开发迭代模式,预期每 2 周发布一个开发版本,提供一些新功能,如包管理器能力迭代、RuyiSDK 软件源提供新的软件包或者软件包版本升级、或工具链、板卡的新增适配等等,这些更新将以 release note 的方式公开。下次更新的 RuyiSDK V0.3 版本将在 1 月 16 日发布。

包管理器

在 Ruyi 包管理器方面,近 2 周的工作主要是制定本里程碑的开发计划,以及与包管理器功能开发相关的技术设计,如包管理器对自我更新的支持(涉及软件源结构的新增),以及更容易感知的 Ruyi 软件源数据整体版本等。

此外,2024 年我们将切换为更加敏捷的开发迭代模式:预期每 2 周都将提供一些新功能,如包管理器能力迭代,或工具链、板卡的新增适配等等。 更新大致与双周报的节奏同步:下次更新会发生在 1 月 16 日前后。

IDE

IDE 开发者还在招聘中,开发进度暂无进展。

GCC

开始更新 GCC11/12 分支上的 RISC-V 扩展支持,修复了 Zca option 的冲突问题,添加了 Profiles 支持所需的一些新扩展

第 012 期·2023 年 12 月 19 日

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

卷首语

RuyiSDK V0.2 版本发布,为大家提供了一个基础的以编译工具链和模拟器运行环境为主的包管理器,并在 12 月 15 日举办的 PLCT Lab OpenDay 2023 线上会议上分享了 RuyiSDK V0.2 的建设成果和未来计划,希望这个版本能够给大家带来不一样的编译环境搭建体验,从文档开始,欢迎大家关注和试用。

包管理器

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

Ruyi 0.2 在上周五成功发布了,可移步 GitHub ReleasesISCAS 镜像源下载体验。发布前做了以下的修复与功能改进:

  • Issue #12 的进一步用户体验优化:在需要用到某个命令如 tarzstd 而当前环境内却未提供的时候,提前报错退出,而不仅仅只是警告然后在实际调用时向用户展示满屏的 Python backtrace。
  • Issue #24:GNU 工具链包中的 GDB 先前非预期地动态链接到了构建环境中的 Python 3.8,导致这些 gdb 二进制在 Python 版本不是 3.8.x 的系统上无法工作。考虑到 Python 版本的多样性,以及目前 Ruyi 所计划支持的宿主发行版均已提供 gdb 包,目前暂时先禁用了软件源中三种 GNU 工具链包的 GDB Python 支持。后续将调研以静态链接的方式恢复支持。

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

IDE

本期暂无进展。

GCC

Bitmanip/Scalar Crypto 的 intrinsic patch 收到了 review 意见,开发过程中发现了 gcc upstream 的模板错误,已反馈社区进行了修复。RISC-V Profiles 根据 review 意见重新提交了 patch,目前收到新的反馈意见,等待修改后重新发送。修复了 OpenHW 社区发现的 Zca .option 段冲突问题,目前已被 OpenHW 社区合并。Gprofng/libmvec RISC-V 后端 porting 工作持续推进中。

第 011 期·2023 年 12 月 05 日

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

卷首语

2023 年即将结束,小伙伴们都开始盘点和总结今年的工作,RuyiSDK 团队则在紧锣密鼓地准备 V0.2 版本的发布。RuyiSDKV0.2 版本很快就将与大家见面,希望能成为 2023 年底的一份小礼物,为大家在寒冬中带来一丝温暖。

包管理器

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

Ruyi 0.2.x 分支的功能开发已完成,代码已冻结,进入测试阶段。

目前已经支持了以下功能:

  • 源代码包的解压式安装。
  • 带或不带 sysroot 的虚拟环境创建。
  • 虚拟环境内自带 CMake、Meson 交叉编译定义文件。
  • LLVM/Clang 工具链的集成;需要搭配 GCC 工具链的 sysroot 以及 gcc 支持库使用。
  • QEMU linux-user 静态模拟器的集成,可以通过 ruyi-qemu wrapper 方便地调用,也在虚拟环境中自带了适用 systemd-binfmt 的配置文件。

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

IDE

IDE 开发者还在招聘中,本期暂无开发进展。

针对 Eclipse 对 RISC-V 的现有支持插件进行了一些试用尝试:

  • 【完成 & 支持】为 Hello World 工程指定 RISC-V Cross Toolchain 并成功完成交叉编译;

  • 【进行中 & 暂未走通】为 Hello World 工程配置 Run Configurations,在 Eclipse 中集成 qemu 环境,并完成可执行程序传递、程序执行、执行结果查看;

    通过串口设置可以在 Eclipse Console 中显示 qemu 加载 oerv 23.09 镜像的过程:成功显示了 qemu 启动 oerv23.09 系统过程并显示系统登录提示信息。后续操作需要手动(或者说还未找到更加便捷的方式打通)。

    qemu user 模式设置配置项可能存在问题,未成功在 Console 中显示打印信息,呈现出预期想要的效果;

  • 【进行中 & 暂未走通】为 Hello World 工程配置 Debug Configurations,在 qemu 中执行交叉调试;

GCC

完成了 Zcmt 扩展的 Rebase 工作,并已向 Binutils 上游提交。完成了 K 扩展的 intrinsics 支持工作,向上游提交了 patch, B 扩展的 intrinsics 工作仍在进行测试中,预计本周内提交支持。RUYISDK 工具链方面提交了 RUYISDK 工具链的介绍文档,包含常用的 RISC-V GNU 工具介绍及支持扩展,常用选项说明,持续更新工具链仓库中。