RISC-V Software News

April 2025 — Upstream Open Source Activity

The Big Picture

A strong April for the RISC-V software stack: 347 commits across 12 projects. LLVM (RISC-V) led with 183 commits (52%). Also active: Linux Kernel (RISC-V) (43), U-Boot (RISC-V) (30), OpenSBI (25). Extension support work touched Smcntrpmf, Zicsr. Most-discussed mailing list thread: "RISC-V: Combine vec_duplicate + vadd.vv to vadd.vx on GR2VR cost" (GCC (RISC-V), 12 replies).

RISC-V International

The spec repos saw 38 commits this month, led by ISA Manual with 30 commits.

Spec Repository Activity

RepositoryCommitsContributors
ISA Manual 30 7
SBI Spec 8 2

Linux Kernel (RISC-V)

43
Commits
21
Contributors
744
Lines Added
433
Lines Removed

Linux Kernel (RISC-V) had a solid month with 43 commits from 21 contributors. Top contributor: Eric Biggers with 5 commits. New feature work included 9 commits: "riscv: defconfig: spacemit: enable clock controller driver for SpacemiT K1"; "riscv: dts: thead: Introduce reset controller node". Bug fixes accounted for 5 commits (11%).

9 New features & support 5 Bug fixes 2 Device tree / platform support 1 Security & memory safety fixes

Notable Changes

  • riscv: defconfig: spacemit: enable gpio support for K1 SoC (8ec8b25dde, Yixun Lan)
  • riscv: defconfig: spacemit: enable clock controller driver for SpacemiT K1 (60c6d37972, Haylen Chu)
  • riscv: Make sure toolchain supports zba before using zba instructions (8a2f20ac8e, Alexandre Ghiti)
  • riscv: dts: thead: Introduce power domain nodes with aon firmware (2bae46e3de, Michal Wilczynski)
  • riscv: uprobes: Add missing fence.i after building the XOL buffer (7d1d19a11c, Björn Töpel)
  • RISC-V: vDSO: Wire up getrandom() vDSO implementation (89079520ce, Xi Ruoyao)
  • riscv: misaligned: Add handling for ZCB instructions (7b30b1b04e, Nylon Chen)
  • riscv: Add norvc after .option arch in runtime const (6ee928185a, Charlie Jenkins)
  • riscv: dts: thead: Introduce reset controller node (1b136de08b, Michal Wilczynski)
  • riscv: Enable PM_GENERIC_DOMAINS for T-Head SoCs (54fe9380a5, Michal Wilczynski)
  • riscv: misaligned: fix sleeping function called during misaligned access handling (61a74ad254, Nylon Chen)
  • crypto: lib/chacha - remove INTERNAL symbol and selection of CRYPTO (and 4 more) (879f47548b, Eric Biggers)
  • riscv: KGDB: Remove ".option norvc/.option rvc" for kgdb_compiled_break (550c2aa787, WangYuli)
  • riscv: switch set_icache_stale_mask() to using non-atomic assign_cpu() (e5bf9a4b68, Yury Norov)
  • riscv: Fix hugetlb retrieval of number of ptes in case of !present pte (83d78ac677, Alexandre Ghiti)

Top Contributors

AuthorCommits
Eric Biggers5
Herbert Xu5
Björn Töpel4
Charlie Jenkins3
Michal Wilczynski3
Nathan Chancellor3
Nylon Chen2
WangYuli2
Andrew Jones2
Samuel Holland2

OpenSBI

25
Commits
8
Contributors
569
Lines Added
506
Lines Removed

OpenSBI kept moving with 25 commits from 8 contributors. Top contributor: Samuel Holland with 12 commits. The interrupt subsystem got 1 patch of attention this month.

5 New features & support 2 Bug fixes 1 ISA extensions 1 Interrupt controllers (AIA/APLIC/PLIC) 1 Device tree / platform support

Notable Changes

  • lib: sbi_trap: Add support for vectored interrupts (afa0e3091b, Samuel Holland)
  • lib: sbi: Handle length of extension name string exceed buffer size error (d2166a9d40, Jimmy Ho)
  • lib: sbi: Enable Control Transfer Records (CTR) Ext using xstateen. (aa40c53ce4, Rajnesh Kanwal)
  • docs: pmu_support: fix example typos (5ab908d622, Leo Yu-Chi Liang)
  • sbi: Introduce sbi_hartmask_weight (a6e5f8878c, Andrew Jones)
  • lib: sbi: Allow programmable counters to monitor cycle/instret events for Andes PMU (0442f1318e, Leo Yu-Chi Liang)
  • platform: rzfive: Call andes_pma_setup_regions() only during cold boot (ac2e428c4b, Samuel Holland)
  • platform: generic: Initialize overrides with fdt_driver (and 6 more) (1c579675be, Samuel Holland)
  • lib: sbi: Set the scratch allocation to alignment to cacheline size (99aabc6b84, Raj Vishwanathan)
  • lib: sbi_domain: Reduce memory usage of per-domain hart context (4d0128ec58, Alvin Chang)
  • lib: sbi: Remove unnecessary SBI_INIT_LIST_HEAD (and 3 more) (190979b4fc, Xiang W)
  • Makefile: Avoid repeated evaluation of shell commands (2142618f12, Samuel Holland)
  • lib: sbi_platform: Remove the vendor_ext_check hook (2b09a98701, Samuel Holland)
  • lib: sbi_mpxy: Change MPXY state as per-domain data (fda0742e76, Alvin Chang)
  • lib: sbi_ipi: Return error for invalid hartids (37eaca4ab3, Andrew Jones)

Top Contributors

AuthorCommits
Samuel Holland12
Xiang W4
Alvin Chang2
Leo Yu-Chi Liang2
Andrew Jones2
Raj Vishwanathan1
Jimmy Ho1
Rajnesh Kanwal1

Notable Discussions

QEMU (RISC-V)

25
Commits
4
Contributors
94
Lines Added
100
Lines Removed

QEMU (RISC-V) saw moderate activity with 25 commits from 4 contributors. Leading the charge was Philippe Mathieu-Daudé with 11 commits. The interrupt subsystem got 1 patch of attention this month.

2 Cleanup & refactoring 1 Interrupt controllers (AIA/APLIC/PLIC)

Notable Changes

  • tcg: Convert TARGET_SUPPORTS_MTTCG to TCGCPUOps::mttcg_supported field (a3d40b5eff, Philippe Mathieu-Daudé)
  • include/system: Move exec/address-spaces.h to system/address-spaces.h (dfc56946a7, Richard Henderson)
  • tcg: Move qemu_tcg_mttcg_enabled() to 'system/tcg.h' (and 3 more) (60b2c2e66b, Philippe Mathieu-Daudé)
  • target/riscv: Do not expose rv128 CPU on user mode emulation (8280a8b866, Philippe Mathieu-Daudé)
  • target/riscv: Remove ifndef CONFIG_USER_ONLY from cpu_cfg.h (e4610f3809, Richard Henderson)
  • target/riscv: Remove AccelCPUClass::cpu_class_init need (f50d0f335a, Philippe Mathieu-Daudé)
  • codebase: prepare to remove cpu.h from exec/exec-all.h (2ec0dc245f, Pierrick Bouvier)
  • qom: Have class_init() take a const data argument (12d1a768bd, Philippe Mathieu-Daudé)
  • cleanup: Drop pointless return at end of function (8a2b516ba2, Markus Armbruster)
  • target/riscv: Restrict SoftMMU mmu_index() to TCG (bf8dc33bbc, Philippe Mathieu-Daudé)
  • exec/cpu-all: remove this header (and 6 more) (0df783b2fb, Pierrick Bouvier)
  • exec: Restrict 'cpu_ldst.h' to accel/tcg/ (42fa9665e5, Philippe Mathieu-Daudé)
  • cleanup: Re-run return_directly.cocci (720a0e417e, Markus Armbruster)
  • qom: Make InterfaceInfo[] uses const (2cd09e47aa, Philippe Mathieu-Daudé)
  • include/exec: Split out watchpoint.h (3e57baa22e, Richard Henderson)

Top Contributors

AuthorCommits
Philippe Mathieu-Daudé11
Pierrick Bouvier8
Richard Henderson4
Markus Armbruster2

GCC (RISC-V)

23
Commits
14
Contributors
745
Lines Added
450
Lines Removed

A steady month for GCC (RISC-V) with 23 commits from 14 contributors. Pan Li was the most active contributor with 4 commits. The vector extension (RVV) saw 9 commits of continued development. Bug fixes accounted for 7 commits (30%). The thread "RISC-V: Combine vec_duplicate + vadd.vv to vadd.vx on GR2VR cost" generated notable discussion with 12 replies.

9 Vector extension (RVV) 7 Bug fixes 4 Cleanup & refactoring 3 New features & support 2 ISA extensions 2 Compiler backend / code generation

Notable Changes

  • RISC-V: Disable unsupported vsext/vzext patterns for XTheadVector. (196b45caca, Jin Ma)
  • [PATCH] riscv: Add support for riscv*-gnu (GNU/Hurd on RISC-V) (869f2ab30a, Hakan Candar)
  • [PATCH v2] RISC-V: Fixbug for slli + addw + zext.w into sh[123]add + zext.w (dd6ebc0a34, Jin Ma)
  • RISC-V: Extract vector stepped for expand_const_vector [NFC] (and 3 more) (ab22b8c630, Pan Li)
  • [PATCH] [RISC-V]Support -mcpu for Xuantie cpu (bd8a48500c, Yixuan Chen)
  • [PATCH] RISC-V: Do not free a riscv_arch_string when handling target-arch attribute (2d6f1ca17f, 翁愷邑)
  • [PATCH] [RISC-V] Tune for removal unnecessary sext in builtin overflows [PR108016] (529a43109f, Alexey Merzlyakov)
  • RISC-V: Fix the behavior for multilib-generator with --cmodel=large on rv32 (72dff34bcd, Kito Cheng)
  • [riscv] vec_dup immediate constants in pred_broadcast expand [PR118182] (14fa625bcb, Alexandre Oliva)
  • [RISC-V][PR target/118410] Improve code generation for some logical ops (874f4c1647, Jeff Law)
  • RISC-V: vsetvl: elide abnormal edges from LCM computations [PR119533] (edb4867412, Vineet Gupta)
  • RISC-V: Do not lift up vsetvl into non-transparent blocks [PR119547]. (517f7e3f02, Robin Dapp)
  • [RISC-V][PR target/119865] Don't free ggc allocated memory (1a64b224fa, Jeff Law)
  • RISC-V: Fix register move cost for SIBCALL_REGS/JALR_REGS (102eccaf8e, Zhijin Zeng)
  • RISC-V: Fix vec_duplicate[bimode] expander [PR119572]. (716d39f0a2, Robin Dapp)

Top Contributors

AuthorCommits
Pan Li4
Jeff Law3
Kito Cheng2
Robin Dapp2
Jakub Jelinek2
Jin Ma2
Zhijin Zeng1
Yixuan Chen1
Alexandre Oliva1
Hakan Candar1

LLVM (RISC-V)

183
Commits
38
Contributors
34846
Lines Added
15881
Lines Removed

It was a busy month in LLVM (RISC-V) land, with 183 commits from 38 contributors. +34,846/-15,881 lines changed — a big diff. Top contributor: Craig Topper with 40 commits. New feature work included 51 commits: "[RISCV] Fix Defs/Uses for SiFive CLIC Support (#137724)"; "Revert "[llvm] Add support for llvm IR atomicrmw fminimum/fmaximum instructions" (#137657)". Work on Smcntrpmf, Zicsr accounted for 42 commits. Backend and code generation work was the biggest theme at 30 commits.

51 New features & support 42 ISA extensions 41 Cleanup & refactoring 30 Compiler backend / code generation 12 Bug fixes 4 Vector extension (RVV) 1 Interrupt controllers (AIA/APLIC/PLIC) 1 Performance optimisations

Notable Changes

  • [RISCV] Add codegen tests for `vector.(de)interleave3/5/7` on FP scalable vectors (#137257) (7122d9c562, Min-Yih Hsu)
  • Revert "[llvm] Add support for llvm IR atomicrmw fminimum/fmaximum instructions" (#137657) (7ee0097b48, Jonathan Thackray)
  • [RISCV] Add symbol parsing support for Xqcili load large immediate instructions (#134581) (1d2f5ead05, Sudharsan Veeravalli)
  • [RISCV] Add symbol parsing support for the Xqcibi branch immediate instructions (#134233) (ae5306f30e, Sudharsan Veeravalli)
  • [RISCV] Add new CondCode COND_CV_BEQIMM/COND_CV_BNEIMM for CV immediate branch (#135771) (0439a4eca7, Jim Lin)
  • [TableGen][RISCV][AArch64][GISel] Properly implement isAnyExtLoad/isSignExtLoad/isZeroExtLoad for IsAtomic in SelectionDAG. (#137096) (2ca071b1de, Craig Topper)
  • [llvm] Add support for llvm IR atomicrmw fminimum/fmaximum instructions (#136759) (ba420d8122, Jonathan Thackray)
  • [RISCV] Add symbol parsing support for Xqcilb long branch instructions (#135044) (eccd7aa888, Sudharsan Veeravalli)
  • [RISCV] Add test for vmv.s.x of an immediate into a zeroinitializer vector. NFC (c132bd6885, Luke Lau)
  • [RISCV] Add codegen support for ri.vinsert.v.x and ri.vextract.x.v (#136708) (9062a38d5d, Philip Reames)
  • AsmPrinter: Remove ELF's special lowerRelativeReference for unnamed_addr function; use lowerDSOLocalEquivalent in more cases (7117dea043, Fangrui Song)
  • [RISCV] Add Andes XAndesperf (Andes Performance) extension. (#135110) (6ba1a62a6c, Jim Lin)
  • [RISCV] Support vectorizing FMINIMUMNUM and FMAXIMUMNUM (#135727) (e9a34e4236, YunQiang Su)
  • [RISCV] Add test for vmv.s.x into a zeroinitializer vector. NFC (ffaaaceaa1, Luke Lau)
  • Reland "[SelectionDAG] Introducing a new ISD::POISON SDNode to represent the poison value in the IR." (#135056) (378ac572ac, zhijian lin)

Top Contributors

AuthorCommits
Craig Topper40
Fangrui Song23
Philip Reames22
Jim Lin11
Luke Lau10
Sergei Barannikov9
Sam Elliott9
Sudharsan Veeravalli8
Piotr Fusik7
Pengcheng Wang3

glibc (RISC-V)

2
Commits
2
Contributors
18
Lines Added
0
Lines Removed

glibc (RISC-V) was quiet this month with 2 commits from 2 contributors.

1 ISA extensions 1 Compiler backend / code generation 1 New features & support

Notable Changes

  • RISC-V: Use builtin for ffs and ffsll while supported extension available (4c966c0780, Julian Zhu)
  • stdlib: Implement C2Y uabs, ulabs, ullabs and uimaxabs (5b132ec2b7, Lenard Mollenkopf)

Top Contributors

AuthorCommits
Julian Zhu1
Lenard Mollenkopf1

Binutils (RISC-V)

2
Commits
2
Contributors
13
Lines Added
9
Lines Removed

Minimal activity in Binutils (RISC-V): 2 commits from 2 contributors.

1 New features & support

Notable Changes

  • RISC-V: Add missing disassembler option `max` (88891208c3, Marek Pikuła)
  • RISC-V: Mark fgt.*/fge.* as instruction alias (10ec3d5de0, Kito Cheng)

Top Contributors

AuthorCommits
Kito Cheng1
Marek Pikuła1

Notable Discussions

GDB (RISC-V)

6
Commits
4
Contributors
1450
Lines Added
38
Lines Removed

GDB (RISC-V) saw lighter activity with 6 commits from 4 contributors.

2 Bug fixes 2 New features & support 1 Cleanup & refactoring

Notable Changes

  • This commit adds record full support for rv64gc instruction set (b9c7eed0c2, Timur)
  • Internal TLS support for aarch64, x86_64, riscv, ppc64, and s390x (c34309bea2, Kevin Buettner)
  • Update copyright dates to include 2025 (d01e823438, Tom Tromey)
  • gdb: fix building with all targets (65ab41b7d5, Guinevere Larsen)
  • gdb: fix riscv record-full push (09338cf326, Timur)
  • Many minor typo fixes (973c575967, Tom Tromey)

Top Contributors

AuthorCommits
Timur2
Tom Tromey2
Kevin Buettner1
Guinevere Larsen1

U-Boot (RISC-V)

30
Commits
8
Contributors
560
Lines Added
294
Lines Removed

A steady month for U-Boot (RISC-V) with 30 commits from 8 contributors. Top contributor: Heinrich Schuchardt with 15 commits. New feature work included 12 commits: "doc: add DeepComputing FML13V01 documentation"; "board: starfive: spl: support DeepComputing FML13V01". Device tree and platform support saw 8 commits.

12 New features & support 8 Device tree / platform support 2 Cleanup & refactoring 1 Compiler backend / code generation

Notable Changes

  • riscv: lib: Add a default implementation of board_fdt_blob_setup (d0969a6b64, Yao Zi)
  • Revert "Merge patch series "pxe: Precursor series for supporting read_all() in extlinux / PXE"" (f892a7f397, Tom Rini)
  • doc: board: starfive: visionfive2: add missing format command to Flashing (84028132af, E Shattow)
  • riscv: dts: jh7110: add DeepComputing FML13V01 device-tree (and 2 more) (7125924a62, Heinrich Schuchardt)
  • board: starfive: spl: support DeepComputing FML13V01 (and 3 more) (62dad88db2, Heinrich Schuchardt)
  • doc: add DeepComputing FML13V01 documentation (612e832a9c, Heinrich Schuchardt)
  • doc: add DeepComputing FML13V01 documentation (9b0a451b9e, Heinrich Schuchardt)
  • riscv: dts: k1: add pinctrl property in dts. (d1cea78af4, Huan Zhou)
  • board: starfive: visionfive2: Order board detection logic to match config (62ea9c329a, E Shattow)
  • board: starfive: visionfive2: Order board detection logic to match config (5ac699efe9, E Shattow)
  • riscv: dts: binman.dtsi: Switch to u-boot-nodtb entry for proper U-Boot (efe9c12322, Yao Zi)
  • riscv: add initjmp() (3691328ef6, Jerome Forissier)
  • riscv: dts: starfive: Prevent binman from relocating symbols in SPL (97b433b4e3, Yao Zi)
  • riscv: Provide __image_copy_{start_end} symbols in linkerscript (d3c597f08a, Yao Zi)
  • sysreset: diverge GPIO reset and poweroff configs per-phase (782bd104b6, Svyatoslav Ryhel)

Top Contributors

AuthorCommits
Heinrich Schuchardt15
Yao Zi6
E Shattow3
Tom Rini2
Minda Chen1
Huan Zhou1
Jerome Forissier1
Svyatoslav Ryhel1

Rust (RISC-V)

3
Commits
2
Contributors
26
Lines Added
26
Lines Removed

Minimal activity in Rust (RISC-V): 3 commits from 2 contributors. Most of the work came from Tsukasa OI (2 of 3 commits, 66%).

1 ISA extensions 1 New features & support

Notable Changes

  • rustc_target: RISC-V: add base "I"-related important extensions (6f40f0cdab, Tsukasa OI)
  • rustc_target: Use "B" shorthand on the RISC-V Android target (52392ec9e1, Tsukasa OI)
  • Make target maintainers more easily pingable (864a9ba928, Noratrieb)

Top Contributors

AuthorCommits
Tsukasa OI2
Noratrieb1

OpenOCD (RISC-V)

2
Commits
2
Contributors
21
Lines Added
7
Lines Removed

A light month for OpenOCD (RISC-V) with 2 commits from 2 contributors.

Notable Changes

  • target: drop unused parameter to target_create() (9a09d38478, Antonio Borneo)
  • doc: document changes in rp2xxx flash driver (9fce121366, Tomas Vanek)

Top Contributors

AuthorCommits
Tomas Vanek1
Antonio Borneo1

OpenBLAS (RISC-V)

3
Commits
2
Contributors
550
Lines Added
293
Lines Removed

Minimal activity in OpenBLAS (RISC-V): 3 commits from 2 contributors. guoyuanplct dominated with 2/3 commits (66%). Optimisation efforts accounted for 2 commits.

2 Performance optimisations 1 ISA extensions

Notable Changes

  • Optimizing the Implementation of GEMV on the RISC-V V Extension (1ff303f36e, lglglglgy)
  • Optimized RVV_ZVL256B Implementation of zgemv_n (7616c42095, guoyuanplct)
  • Format the code (11ffc8680e, guoyuanplct)

Top Contributors

AuthorCommits
guoyuanplct2
lglglglgy1