#11246·rt-thread

[Feature] RISC-V 近期调整

Author: GuEe-GUICreated Mar 10, 2026Updated Sep 17, 2026
LabelsArch: RISC-V

Describe problem solved by the proposed feature

已有问题

只列当前 ISSUE 会解决的问题

Describe your preferred solution

已有提交

后续计划

对于架构本身的改进,https://github.com/RT-Thread/rt-thread/pull/10320#issuecomment-2906928709 已经做了详细规划,在与社区的协商下,进行了一定的调整(带 MMU 的 SoC 平台)。

  • 支持动态 ISA 管理
  • 合并 32/64 位公共代码
  • 支持统一 cache 操作
  • MMU 支持到标准
  • 合并 M/S 模式公共代码
  • 支持 SMP
  • 支持 DM
  • 合并 T-HEAD Vendor 代码
  • RT-Thread 支持非 0 核启动
  • libcpu 目录改进
    • common 实现仍然作为切入点和统一目录
    • 原本的 common 改名为 legacy_common,使用原本 common 的 bsp 如果没有采用新添加的宏 RT_USING_RISCV_NEW_COMMON 就会自动使用 legacy_common,t-head 目录同理
    • qemu-virt64-riscv 是第一个使用新 common 的 BSP,并在同一目录支持 RV32 和 RV64 S-mode,同时 DM 在 32位下部分数据打印截断问题也修复。
    • 对于非 0 核启动问题,不再修改内核 master CPU 语义,而是 RISC-V 架构层维护 physical HART ID 与 logical CPU ID 的转换表:
      • 最先启动的 HART 注册为 logical CPU0。
      • 其余 HART 按平台枚举顺序映射为 CPU1、CPU2 等。
    • SBI HSM、IPI、timer 和 per-CPU 中断初始化统一经过该映射。
    • 后续继续在维护的 BSP,开源逐个接入新的 common,同时按照现实要求完善 common,最终没有 BSP 引用 legacy_ 时,即可删除 legacy_ 和全部 BSP 的RT_USING_RISCV_NEW_COMMON,RISC-V 架构则算重构完成。

需要维护(Sync)的 BSP

RV32

  • bluetrum
  • bouffalo_lab
  • core-v-mcu
  • hpmicro
  • nuclei
  • xuantie/smartl
  • rv32m1_vega
  • wch/riscv
  • gd32/risc-v
  • sparkfun-redv
  • ES-PDS-ES32VF2264

RV64

  • allwinner
  • cvitek
  • K230
  • qemu-virt64-riscv
  • xuantie/xiaohui
  • spacemit/k1

Describe possible alternatives

No response