基础开发工具上游进展
本月,进迭时空基础支持已随 Binutils 2.47 和 LLVM 23 正式发布。LLVM/Clang 还采用了进迭时空 X60 调度模型,作为 RISC-V ‘-mtune=generic’ 的通用优化参考。
-
进迭时空基础支持已随 Binutils 2.47 和 LLVM 23 发布。扩展阅读:https://mp.weixin.qq.com/s/PetsgtP6N6o2mpyVM4WeBg
-
LLVM/Clang 采用进迭时空 X60 调度模型作为 RISC-V ‘-mtune=generic’ 的通用优化参考。扩展阅读:https://mp.weixin.qq.com/s/CFRpUjX9W1o0AmI1Rs2MOw
K3/X60 工具链里程碑
K3 的两款主要 CPU Target——X100 和 A100——均已合入 LLVM 和 GCC 上游。面向 AI 工作负载的自定义矩阵扩展指令已合入 LLVM、GCC 和 Binutils 上游,X100 的调度模型及指令融合支持也已进入 LLVM 上游。
开发者现在可以直接使用社区主线 Clang/LLVM 和 GCC,通过 ‘-mcpu=spacemit-x100’ 或 ‘-mcpu=spacemit-a100’ 选择对应的目标核心,并使用进迭时空自定义 AI 指令。
进迭时空 X60 调度模型现已进入 LLVM 上游,并被用作 RISC-V ‘-mtune=generic’ 的通用调优参考。在未指定具体微架构时,LLVM/Clang 可基于 X60 调度模型作出更合理的指令调度决策。
LLVM 社区性能跟踪基础设施中也包含搭载 K1/X60 的真实硬件平台,使相关编译器优化能够持续在真实硬件上进行验证。
Linux 内核上游进展
K1
已合入
-
K1 CPU 调频支持:Making sure you're not a bot!
-
K1 PDMA 符号化请求 ID:https://lore.kernel.org/all/20260620-b4-k1-pdma-req-macros-v4-1-3cf77d0bd0d6@gmail.com/
-
K1 SPI TX FIFO slot 处理修复:https://lore.kernel.org/all/20260715-k1-spi-tx-fifo-fix-v1-for-next-v1-1-02024223b08a@gmail.com/
审核中
-
K1 热关机及注册顺序修复 v2:Making sure you're not a bot!
-
DWC PCIe capability offset 缓存及 K1 支持 v3:Making sure you're not a bot!
-
K1 板卡 CPU 核心最大电压修复 v1:Making sure you're not a bot!
K3
已合入
-
K3 USB2 AHB reset 修复:https://lore.kernel.org/all/20260518-06-clk-reset-usb-fix-v1-0-14fc235e692b@kernel.org/
-
K3 HDMA critical clock 修复:Making sure you're not a bot!
-
K3 Pico-ITX 以太网 TX 时序修复:Making sure you're not a bot!
-
K3 UFS 时钟支持:https://lore.kernel.org/all/20260630-06-clk-ufs-support-v1-0-cf7521d1d0fe@kernel.org/
-
K3 Pico-ITX 串口、I2C 及以太网改进:Making sure you're not a bot!
-
K3 SD 卡支持:Making sure you're not a bot!
-
K3 Pico-ITX QSPI 支持:Making sure you're not a bot!
-
K3 PCIe/USB combo PHY 支持:Making sure you're not a bot!
-
K3 SPI compatible binding 支持:Making sure you're not a bot!
-
K3 I2S 设备树集成,第 1~2/3 个补丁:Making sure you're not a bot!
-
K3 Wi-Fi 36 位 DMA 支持:Making sure you're not a bot!
-
K3 SPI PDMA 及控制器节点:Making sure you're not a bot!
-
K3 以太网 PHY ID 修复:Making sure you're not a bot!
审核中
-
K3 I2S 控制器 DTS 节点,第 3/3 个补丁,v1:Making sure you're not a bot!
-
K3 RCPU critical clock v1:Making sure you're not a bot!
-
K3 PCIe 根复合体控制器支持 v4:https://lore.kernel.org/all/20260709040027.958400-1-inochiama@gmail.com/
-
K3 I2S 时钟拓扑及分频器修复 v1:Making sure you're not a bot!
-
K3 UFS 主机控制器支持 v2:Making sure you're not a bot!
-
K3 显示支持 v1:Making sure you're not a bot!
-
K3 USB 及 PCIe 设备节点 v2:https://lore.kernel.org/all/20260727094726.890179-1-inochiama@gmail.com/
-
K3 PDMA extended DRCMR base 修复 v2:Making sure you're not a bot!
-
允许 K3 GPU 驱动在没有 power-domains 时执行 probe,v3:Making sure you're not a bot!
-
K3 Pico-ITX 蓝牙/Wi-Fi rfkill 支持 v2:Making sure you're not a bot!
-
K3 以太网 PHY DT schema 修复 v1:Making sure you're not a bot!
-
K3 使用 ACLINT 替换 CLINT,v1:Making sure you're not a bot!
-
K3 M-level IMSIC guest properties 修复 v1:Making sure you're not a bot!
板级 DTS 及设备支持
-
Orange Pi R2S PCIe 支持:Making sure you're not a bot! —— 已合入
-
K3 CoM260 EEPROM 节点:Making sure you're not a bot! —— 已合入
-
Banana Pi BPI-CM6 I/O 板支持:Making sure you're not a bot! —— 已合入
-
启用 K3 CoM260-IFX SPI0,v1:Making sure you're not a bot! —— 审核中
-
Sensylink CTF2301 及 K3 CoM260 支持 v2:Making sure you're not a bot! —— 审核中
-
Milk-V Jupiter CPU 调频及 M1 板卡支持 v2:Making sure you're not a bot! —— 审核中
通用修复
-
RVA23U64 hwprobe 基础补丁,第 1~3/17 个:Making sure you're not a bot! —— 已合入
-
RVA23U64 hwprobe 及 K1/K3 Zic64b 剩余补丁 v5:Making sure you're not a bot! —— 审核中
-
修复进迭时空 DWC PCIe 驱动中的 MODULE_DEVICE_TABLE:https://lore.kernel.org/all/20260704122538.92830-1-pengpeng@iscas.ac.cn/ —— 已合入
-
修复进迭时空 SPI DMA descriptor 提交顺序:Making sure you're not a bot! —— 已合入
-
修复 K1/K3 板卡 PHY reset deassert 延迟:Making sure you're not a bot! —— 已合入
-
进迭时空 SPI DMA 清理:Making sure you're not a bot! —— 已合入
-
修复进迭时空 I2C 驱动中的 spurious IRQ,v2:https://lore.kernel.org/all/ef8b623f45d4e430721e46572c2598d882044aed.1783667875.git.xiaopei01@kylinos.cn/ —— 审核中
-
校验进迭时空 thermal trip threshold,v1:Making sure you're not a bot! —— 审核中
-
在初始化进迭时空 I2C 控制器后申请 IRQ,v2:Making sure you're not a bot! —— 审核中
-
修复进迭时空 RTC 驱动中 regmap_test_bits 的错误处理,v2:Making sure you're not a bot! —— 审核中
-
校验进迭时空 pinctrl 驱动中的 pinconf 参数,v1:https://lore.kernel.org/all/20260729-spacemit-pinconf-validation-fixes-v1-1-edeaff398fb3@linux.spacemit.com/ —— 审核中
-
更新进迭时空 SoC Git tree 地址,v1:https://lore.kernel.org/all/20260707-07-spacemit-git-repo-url-v1-1-137697316a4c@kernel.org/ —— 审核中
Box64
-
支持通过 BOX64_TRACE 配置地址列表:https://github.com/ptitSeb/box64/pull/3998 —— 已合入
-
添加 MallocHookRun,并在 RunElfInit 前调用 startMallocHook:https://github.com/ptitSeb/box64/pull/3999 —— 已合入
-
修复 INSTALL_PATH 尾部斜杠问题:https://github.com/ptitSeb/box64/pull/4015 —— 已合入
-
修复 getMmapped 中的 mmap 标志检查:https://github.com/ptitSeb/box64/pull/4003 —— 已合入
-
支持打包的 libpipewire:https://github.com/ptitSeb/box64/pull/4019 —— 已合入
-
RV64_DYNAREC:修复源寄存器值被覆盖的问题:https://github.com/ptitSeb/box64/pull/4032 —— 已合入
-
RV64_DYNAREC:将 addsd、subsd、mulsd 和 divsd 的 sNaN 转换为 qNaN:https://github.com/ptitSeb/box64/pull/4035 —— 已合入
-
同时启用 dynarec_trace 和 trace 时禁用 dynacache:https://github.com/ptitSeb/box64/pull/4051 —— 已合入
-
RV64_DYNAREC:通过 Zicbom 支持 CLWB、CLFLUSH 和 CLFLUSHOPT:https://github.com/ptitSeb/box64/pull/4070 —— 已合入
-
RV64_DYNAREC:通过 Zicbop 支持 prefetch 系列指令:https://github.com/ptitSeb/box64/pull/4073 —— 已合入
-
RV64_DYNAREC:减少 64 位加法进位标志所需的指令数:https://github.com/ptitSeb/box64/pull/4079 —— 已合入
-
RV64_DYNAREC:使用 Zbb 减少 GETSEB/GETSGW 的指令数:https://github.com/ptitSeb/box64/pull/4090 —— 已合入
-
RV64_DYNAREC:支持部分 BMI 及 BMI2 指令:https://github.com/ptitSeb/box64/pull/4098 —— 已合入
-
RV64_DYNAREC:使用 Zicond 消除部分用于设置标志的分支:https://github.com/ptitSeb/box64/pull/4099 —— 已合入
-
RV64_DYNAREC:移除冗余 SMREAD 操作:https://github.com/ptitSeb/box64/pull/4100 —— 已合入
-
RV64_DYNAREC:支持 BMI2 PDEP、MULX 和 SHRX 指令:https://github.com/ptitSeb/box64/pull/4110 —— 已合入
-
RV64_DYNAREC:支持 BMI2 PEXT、SARX 和 RORX 指令:https://github.com/ptitSeb/box64/pull/4116 —— 已合入
-
RV64_DYNAREC:支持 POPCNT、TZCNT 和 LZCNT 的 16 位操作数:https://github.com/ptitSeb/box64/pull/4125 —— 已合入
-
RV64_DYNAREC:将部分 BNEZ+ORI 序列替换为 SET_FLAGS_EQZ:https://github.com/ptitSeb/box64/pull/4126 —— 已合入
-
RV64_DYNAREC:支持 HSUBPS 和 MOVDQ2Q 指令:https://github.com/ptitSeb/box64/pull/4140 —— 已合入
-
RV64_DYNAREC:支持 VMOVLPS/VMOVHPS Ex,Gx:https://github.com/ptitSeb/box64/pull/4141 —— 已合入
-
RV64_DYNAREC:支持 MOVQ2DQ 和 ADOX 指令:https://github.com/ptitSeb/box64/pull/4146 —— 已合入
-
添加 syscall 32 支持:https://github.com/ptitSeb/box64/pull/4156 —— 已合入
GCC
-
RISC-V:添加进迭时空 A100 核心的初步支持:https://sourceware.org/pipermail/gcc-patches/2026-June/722133.html —— 已合入
-
RISC-V:更新 spacemit-x60 以使用 RVA22U64 profile:https://sourceware.org/pipermail/gcc-patches/2026-July/722711.html —— 已合入
LLVM
-
[RISCV] 使 AsmParser 报告所有近似匹配原因:https://github.com/llvm/llvm-project/pull/205721 —— 已合入
-
[AsmMatcher] 当所有候选项均有多个操作数不匹配时报告近似匹配:https://github.com/llvm/llvm-project/pull/206390 —— 已合入
-
[TargetParser][NFC] 使 FeatureBitset 可迭代:https://github.com/llvm/llvm-project/pull/206394 —— 已合入
-
[RISCV][NFC] 在 RISCV.td 中为布尔字段使用 true/false:https://github.com/llvm/llvm-project/pull/206399 —— 已合入
-
[modules][test] 放宽 embed-files-compressed.cpp 的大小检查:https://github.com/llvm/llvm-project/pull/206879 —— 已合入
-
[lld][ELF][test] 接受 zlib-ng 压缩后产生的大小:https://github.com/llvm/llvm-project/pull/206880 —— 已合入
-
[RISCV] 使 AsmParser 对多余操作数报告“unexpected excess operand”:https://github.com/llvm/llvm-project/pull/207142 —— 已合入
-
[RISCV] 在主机检测期间将进迭时空微架构字符串映射至 CPU 名称:https://github.com/llvm/llvm-project/pull/207636 —— 已合入
-
[RISCV] 为 spacemit-x100 添加 TuneNoDefaultUnroll:https://github.com/llvm/llvm-project/pull/209069 —— 已合入
-
[flang-rt] 交叉编译时默认禁用测试:https://github.com/llvm/llvm-project/pull/208926 —— 已合入
-
[RISCV] 支持进迭时空 vsmtvdotii 扩展:https://github.com/llvm/llvm-project/pull/202533 —— 已合入
-
[RISCV] 拆分并重命名 WriteVSlideI、WriteVISlide1X 和 WriteVFSlide1F:https://github.com/llvm/llvm-project/pull/212184 —— 已合入
OpenOCD
-
target/riscv:添加 hart 索引边界检查:https://review.openocd.org/c/openocd/+/9755 —— 已合入
-
target/riscv:移除 target_list_t 类型:https://review.openocd.org/c/openocd/+/9798 —— 已合入
-
tcl/target:添加进迭时空 Keystone K3 配置文件:https://review.openocd.org/c/openocd/+/9753 —— 已合入
-
tcl/target:重构进迭时空 Keystone K1 配置文件:https://review.openocd.org/c/openocd/+/9754 —— 已合入
-
target/riscv:在获取 nextdm 前激活 DM:https://review.openocd.org/c/openocd/+/9221 —— 已合入
riscv-tests
-
[debug] 基于 HwbpManual 支持 mcontrol 和 mcontrol6:https://github.com/riscv-software-src/riscv-tests/pull/541 —— 已合入
-
[debug] 为 PrivRw 添加 hypervisor 支持:https://github.com/riscv-software-src/riscv-tests/pull/540 —— 已合入
riscv-gnu-toolchain
-
Makefile.in:将 OpenMP 构建切换至 runtimes 模式:https://github.com/riscv-collab/riscv-gnu-toolchain/pull/1870 —— 已合入
-
Makefile.in:添加 LLVM_OPENMP_EXTRA_CONFIGURE_FLAGS 变量:https://github.com/riscv-collab/riscv-gnu-toolchain/pull/1871 —— 已合入
-
将 LLVM 升级至 22.1.8:https://github.com/riscv-collab/riscv-gnu-toolchain/pull/1873 —— 已合入
-
启用 LLVM Flang:https://github.com/riscv-collab/riscv-gnu-toolchain/pull/1874 —— 已合入
-
build:添加 LLVM_GENERATOR 选项并默认使用 Ninja:https://github.com/riscv-collab/riscv-gnu-toolchain/pull/1875 —— 已合入
-
将 musl 升级至 v1.2.6:https://github.com/riscv-collab/riscv-gnu-toolchain/pull/1876 —— 已合入
riscv-elf-psabi-doc
- 修复向量函数命名规范示例中的拼写错误:https://github.com/riscv-non-isa/riscv-elf-psabi-doc/pull/506 —— 已合入
sbc-bench
-
通过 cluster0 thermal zone 检测进迭时空 K3 CPU 温度:https://github.com/ThomasKaiser/sbc-bench/pull/137 —— 已合入
-
忽略没有在线 CPU 的 policy:https://github.com/ThomasKaiser/sbc-bench/pull/139 —— 已合入
stress-ng
- core-asm-riscv:提高 pause 及 CBO 指令汇编输出的可读性:https://github.com/ColinIanKing/stress-ng/commit/443ee4f563204f427a25765a17d9c6b4d30f69ac —— 已合入
ruapu
- RISC-V:修复 zvksed 和 zvksh 指令码颠倒的问题:https://github.com/nihui/ruapu/pull/186 —— 已合入
PoCL
- SPIRVParser:处理 OpTypeUntypedPointerKHR:https://github.com/pocl/pocl/pull/2246 —— 已合入
U-Boot 和 OpenSBI 上游进展
U-Boot
-
进迭时空 K1 PCIe 及 combo PHY 支持 v1:https://lore.kernel.org/all/20260705-pci-v1-0-beca83440a27@riscstar.com/ —— 审核中
-
进迭时空 K1 MMC/SD/eMMC 支持 v4:https://lore.kernel.org/all/20260707-m4-v4-0-dbd01185f911@riscstar.com/ —— 审核中
OpenSBI
- 进迭时空 K3 平台支持 v1:https://lore.kernel.org/all/20260724-spacemit-k3-v1-0-f0e49329feb8@linux.spacemit.com/ —— 审核中