RISC-V Software News

March 2025 — Upstream Open Source Activity

The Big Picture

A strong March for the RISC-V software stack: 422 commits across 11 projects. The most active projects were LLVM (RISC-V) (205), Linux Kernel (RISC-V) (68), QEMU (RISC-V) (68). The extension landscape saw work on Smnpm, Sscofpmf, Ssnpm, Zaamo, Zalrsc, Zawrs, Zicbom, Zicntr. Virtualisation saw 10 KVM-related patches. Most-discussed mailing list thread: "lib: sbi_ipi: Return error for invalid hartids" (OpenSBI, 8 replies).

RISC-V International

The spec repos saw 34 commits this month, led by ISA Manual with 26 commits.

Spec Repository Activity

RepositoryCommitsContributors
ISA Manual 26 14
SBI Spec 8 4

Linux Kernel (RISC-V)

68
Commits
34
Contributors
1603
Lines Added
733
Lines Removed

Linux Kernel (RISC-V) saw healthy activity with 68 commits from 34 contributors. Top contributor: Andrew Jones with 7 commits. New feature work included 23 commits: "riscv: Support CONFIG_RELOCATABLE on riscv32"; "riscv: Support CONFIG_RELOCATABLE on NOMMU". ISA extension work spanned 12 commits, touching Zaamo, Zalrsc, Zawrs, Zicbom, Zicntr, Zihpm. Bug fixes accounted for 10 commits (14%). 8 commits targeted performance improvements.

23 New features & support 12 ISA extensions 10 Bug fixes 8 Performance optimisations 4 KVM / Virtualisation 3 Vector extension (RVV) 3 Cleanup & refactoring 1 Device tree / platform support

Notable Changes

  • riscv/crc32: reimplement the CRC32 functions using new template (72acff5f81, Eric Biggers)
  • riscv: add ISA extension parsing for bfloat16 ISA extension (e186c28dda, Inochi Amaoto)
  • RISC-V: add f & d extension validation checks (and 4 more) (12e7fbb6a8, Conor Dooley)
  • riscv/crc: add "template" for Zbc optimized CRC functions (bbe2610bc5, Eric Biggers)
  • riscv/crc-t10dif: add Zbc optimized CRC-T10DIF function (8bf3e17898, Eric Biggers)
  • riscv: add parsing for Zaamo and Zalrsc extensions (35173b666a, Clément Léger)
  • riscv/crc64: add Zbc optimized CRC64 functions (511484fa88, Eric Biggers)
  • riscv: Add runtime constant support (a44fb57221, Charlie Jenkins)
  • riscv: ftrace: Add parentheses in macro definitions of make_call_t0 and make_call_ra (5f1a58ed91, Juhan Jin)
  • kbuild: Introduce Kconfig symbol for linking vmlinux with relocations (9b400d1725, Ard Biesheuvel)
  • RISC-V: KVM: Optimize comments in kvm_riscv_vcpu_isa_disable_allowed (b3f263a98d, Chao Du)
  • riscv: Fix missing __free_pages() in check_vector_unaligned_access() (33981b1c4e, Alexandre Ghiti)
  • riscv: Add parameter for skipping access speed tests (and 6 more) (aecb09e091, Andrew Jones)
  • riscv: Simplify base extension checks and direct boolean return (7f238b1266, Chin Yik Ming)
  • riscv: Fix the __riscv_copy_vec_words_unaligned implementation (475afa39b1, Tingbo Liao)

Top Contributors

AuthorCommits
Andrew Jones7
Samuel Holland5
Conor Dooley5
Clément Léger4
Mike Rapoport (Microsoft)4
Eric Biggers4
Charlie Jenkins3
Atish Patra2
Pu Lehui2
Alexandre Ghiti2

OpenSBI

22
Commits
9
Contributors
503
Lines Added
146
Lines Removed

A steady month for OpenSBI with 22 commits from 9 contributors. Top contributor: Clément Léger with 7 commits. New feature work included 6 commits: "lib: utils/serial: Add PXA UARTs support"; "lib: sbi: sse: Add support for SSTATUS.SDT". The interrupt subsystem got 2 patches of attention this month.

6 New features & support 3 ISA extensions 2 Interrupt controllers (AIA/APLIC/PLIC) 2 Bug fixes 1 Cleanup & refactoring 1 Performance optimisations 1 Device tree / platform support

Notable Changes

  • lib: sbi: sse: Add support for SSTATUS.SDT (and 6 more) (3ac49712e3, Clément Léger)
  • lib: utils/serial: Add PXA UARTs support (8fe835303c, Junhui Liu)
  • lib: sbi_scratch: Add sbi_hart_count() and for_each_hartindex() (and 2 more) (757f7acafd, Samuel Holland)
  • lib: tests: add bitwise operations unit tests (3e6bd14246, Dongdong Zhang)
  • lib: add tests for sbi_ecall functionality (0b78665a6c, Akshay Behl)
  • Revert "lib: utils/irqchip: Match against more specific compatible strings first" (98c0a3860a, Samuel Holland)
  • scripts: Fix firmware binaries compilation in create-binary-archive.sh (8573a9b858, Anup Patel)
  • lib: sbi: Return SBI_EALREADY error code if SSE event is present (b2e8e6986d, Himanshu Chauhan)
  • lib: utils: Make sure that hartid and the scratch are aligned (321ca8063b, Raj Vishwanathan)
  • lib: sbi: Fix potential garbage data in string copy functions (56341e95ae, Dongdong Zhang)
  • lib: sbi: Avoid GOT indirection for global symbol references (86c01a73ff, Samuel Holland)
  • lib: sbi: Use sbi_hart_count() and sbi_for_each_hartindex() (949c83a799, Samuel Holland)
  • lib: utils/fdt: Respect compatible string fallback priority (0ffe265fd9, Samuel Holland)
  • lib: Emit lr and sc instructions based on -march flags (995f226f3f, Chao-ying Fu)

Top Contributors

AuthorCommits
Clément Léger7
Samuel Holland7
Dongdong Zhang2
Chao-ying Fu1
Junhui Liu1
Raj Vishwanathan1
Himanshu Chauhan1
Anup Patel1
Akshay Behl1

Notable Discussions

QEMU (RISC-V)

68
Commits
18
Contributors
2094
Lines Added
291
Lines Removed

A productive month for QEMU (RISC-V) with 68 commits from 18 contributors. Leading the charge was Daniel Henrique Barboza with 22 commits. New feature work included 26 commits: "Revert "target/riscv/kvm: add missing KVM CSRs""; "target/riscv: Add check for 16-bit aligned PC for different priv versions.". Bug fixes accounted for 14 commits (20%). The KVM subsystem saw 6 patches this month. Extension support saw 6 commits covering Sscofpmf.

26 New features & support 14 Bug fixes 6 KVM / Virtualisation 6 ISA extensions 4 Vector extension (RVV) 4 Cleanup & refactoring 1 Interrupt controllers (AIA/APLIC/PLIC) 1 Performance optimisations

Notable Changes

  • target/riscv: Add support to access ctrsource, ctrtarget, ctrdata regs. (and 5 more) (8b65852196, Rajnesh Kanwal)
  • optimize the memory probing for vector fault-only-first loads. (17288e38be, Paolo Savini)
  • target/riscv/kvm: Add some exts support (1c17df6fc4, Quan Zhou)
  • target/riscv: rvv: Fix unexpected behavior of vector reduction instructions when vl is 0 (ffd455963f, Max Chou)
  • target/riscv: fix handling of nop for vstart >= vl in some vector instruction (4e9e2478df, Chao Liu)
  • target/riscv: Add check for 16-bit aligned PC for different priv versions. (ffe4db11f8, Yu-Ming Chang)
  • target/riscv: machine: Add Control Transfer Record state description (bda6522e3f, Rajnesh Kanwal)
  • hw/riscv/riscv-iommu: add hpm events mmio write (and 5 more) (4faa3e6f90, Tomasz Jeznach)
  • target/riscv/cpu: remove unneeded !kvm_enabled() check (1a65210876, Daniel Henrique Barboza)
  • target/riscv/kvm: add missing KVM CSRs (and 2 more) (4db19d5b21, Daniel Henrique Barboza)
  • hw/riscv/riscv-iommu.c: add RISCV_IOMMU_CAP_HPM cap (3b1d07b627, Tomasz Jeznach)
  • Revert "target/riscv/kvm: add missing KVM CSRs" (897c68fb79, Daniel Henrique Barboza)
  • target/riscv: add RVA23S64 profile (and 6 more) (c91f74b91d, Daniel Henrique Barboza)
  • hw/riscv/riscv-iommu.h: add missing headers (5bdbbacb8c, Daniel Henrique Barboza)
  • hw/riscv/virt: Add serial alias in DTB (f73456781b, Vasilis Liaskovitis)

Top Contributors

AuthorCommits
Daniel Henrique Barboza22
Philippe Mathieu-Daudé8
Tomasz Jeznach8
Rajnesh Kanwal7
Jason Chien3
Rob Bradford3
Chao Liu2
Deepak Gupta2
Markus Armbruster2
Atish Patra2

GCC (RISC-V)

8
Commits
3
Contributors
150
Lines Added
51
Lines Removed

GCC (RISC-V) saw lighter activity with 8 commits from 3 contributors. Jeff Law was the most active contributor with 4 commits. Bug fixes accounted for 4 commits (50%). The vector extension (RVV) saw 2 commits of continued development.

4 Bug fixes 2 Vector extension (RVV) 1 New features & support

Notable Changes

  • RISC-V: Mask values before initializing bitmask vector [PR119114]. (and 2 more) (b58a0af4e2, Robin Dapp)
  • [RISC-V][PR target/118934] Fix ICE in RISC-V long branch support (67e824c249, Jeff Law)
  • [RISC-V][PR target/116256][V4] Fix minor code quality regression in reassociated arithmetic (9d68a2a673, Jeff Law)
  • [RISC-V] Fix unreported code quality regression with single bit manipulations (d9a8ec7fe0, Jeff Law)
  • RISC-V: disable the abd expander for gcc-15 release [PR119224] (cb6070c79d, Vineet Gupta)
  • [RISC-V] Fix another unreported code quality regression (e9888795b8, Jeff Law)

Top Contributors

AuthorCommits
Jeff Law4
Robin Dapp3
Vineet Gupta1

LLVM (RISC-V)

205
Commits
40
Contributors
46335
Lines Added
30686
Lines Removed

LLVM (RISC-V) saw an exceptional level of activity with 205 commits from 40 contributors. A hefty +46,335/-30,686 line diff. Leading the charge was Craig Topper with 50 commits. Code housekeeping was a significant theme at 65 commits (31%). New feature work included 53 commits: "[RISCV] Initial codegen support for the XRivosVizip extension (#131933)"; "[RISCV] Add Qualcomm uC Xqciio (External Input Output) extension (#132721)". Extension support saw 33 commits covering Zvbb, Zvfhmin. Bug fixes accounted for 15 commits (7%).

65 Cleanup & refactoring 53 New features & support 33 ISA extensions 15 Bug fixes 12 Compiler backend / code generation 11 Vector extension (RVV) 5 Performance optimisations 2 Interrupt controllers (AIA/APLIC/PLIC)

Notable Changes

  • [RISCV] Enable scalable loop vectorization for fmax/fmin reductions with f16/bf16 type for zvfhmin/zvfbfmin (#129629) (03505a004f, Jim Lin)
  • [RISCV] Add vector hasAndNot to enable optimizations (#132438) (96925fa84c, Piotr Fusik)
  • [RISCV] Add missing space to optimized-nf*-segment-load-store description. NFC (#132531) (fb44c54d65, Craig Topper)
  • Recommit "[RISCV] Add Qualcomm uC Xqcisync (Sync Delay) extension (#132184)" (#132520) (e7107973b8, Sudharsan Veeravalli)
  • [RISCV] Add Qualcomm uC Xqciio (External Input Output) extension (#132721) (edef028029, quic_hchandel)
  • Revert "[RISCV] Add Qualcomm uC Xqcisync (Sync Delay) extension (#132184)" (fe7776eab8, Kazu Hirata)
  • [MC] Rework AVR #121498 to not add extra argument to shouldForceRelocation (8a1b4d0ed2, Fangrui Song)
  • [RISCV] Add Qualcomm uC Xqcili (load large immediates) extension (#130012) (e61859f14d, u4f3)
  • [RISCV] Initial codegen support for the XRivosVizip extension (#131933) (f8ee58a3cb, Philip Reames)
  • [RISCV] Add coverage for vector stack slot coloring and dead copy elim (e86d627a8b, Philip Reames)
  • [RISCV] Add Qualcomm uC Xqcisim (Simulation Hint) extension (#128833) (467e5a1d41, Sudharsan Veeravalli)
  • [RISCV] Add Qualcomm uC Xqcibi (Branch Immediate) extension (#130779) (036c6cb37c, quic_hchandel)
  • [RISCV] Add Qualcomm uC Xqcibm (Bit Manipulation) extension (#129504) (6e7e46cafe, quic_hchandel)
  • [RISCV] Add Qualcomm uC Xqcisync (Sync Delay) extension (#132184) (3840f787a2, quic_hchandel)
  • [RISCV] Add Qualcomm uC Xqcilb (Long Branch) extension (#131996) (0744d4926a, quic_hchandel)

Top Contributors

AuthorCommits
Craig Topper50
Philip Reames34
Fangrui Song24
Jim Lin14
Sam Elliott8
Alex Bradbury7
Sudharsan Veeravalli7
quic_hchandel6
Piotr Fusik6
Mikhail R. Gadelha5

glibc (RISC-V)

8
Commits
5
Contributors
62
Lines Added
2934
Lines Removed

A quieter month for glibc (RISC-V), with 8 commits from 5 contributors. A net deletion month (+62/-2,934) — always satisfying. Joseph Myers was the most active contributor with 4 commits. New feature work included 6 commits: "Implement C23 pown"; "Add _FORTIFY_SOURCE support for inet_pton".

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

Notable Changes

  • Add _FORTIFY_SOURCE support for inet_pton (e3a6e85d67, Aaron Merey)
  • Add _FORTIFY_SOURCE support for inet_ntop (090dfa40a5, Frédéric Bérat)
  • Linux: Add the pthread_gettid_np function (bug 27880) (74d463c50b, Florian Weimer)
  • Implement C23 rsqrt (77261698b4, Joseph Myers)
  • Implement C23 pown (75ad83f564, Joseph Myers)
  • Implement C23 powr (409668f6e8, Joseph Myers)
  • math: Refactor how to use libm-test-ulps (3e8814903c, Adhemerval Zanella)
  • Update syscall lists for Linux 6.13 (eea6f1e079, Joseph Myers)

Top Contributors

AuthorCommits
Joseph Myers4
Aaron Merey1
Frédéric Bérat1
Adhemerval Zanella1
Florian Weimer1

Binutils (RISC-V)

14
Commits
8
Contributors
227
Lines Added
108
Lines Removed

Not the busiest month for Binutils (RISC-V): 14 commits from 8 contributors. Nelson Chu was the most active contributor with 6 commits. Extension support saw 5 commits covering Smnpm, Ssnpm, Zicsr. RVV work continued with 1 commit touching vector-related code.

5 ISA extensions 5 New features & support 1 Vector extension (RVV)

Notable Changes

  • RISC-V: Add extension XTheadVdot for T-Head VECTOR vendor extension [1] (66b81b40dc, Jin Ma)
  • RISC-V: Support ssqosid extension with version 1.0. (56a0188548, Kito Cheng)
  • RISC-V: Support pointer masking extension 1.0 (7b2a5f7183, Jerry Zhang Jian)
  • RISC-V: add Smrnmi 1.0 instruction support (a7ecc1ba97, Jerry Zhang Jian)
  • RISC-V: Don't show support for 1.9.1 priv spec (0d1f436268, Marek Pikuła)
  • RISC-V: Avoid parsing arch string repeatedly for dis-assembler (and 5 more) (e4c9f0e6c3, Nelson Chu)
  • RISC-V: Re-define mapping symbol $x to the file elf architecture attribute (ade87b8e62, Andrew Oates)
  • RISC-V: Ssnpm, smnpm and smmpm imply zicsr. (bc965121b5, Dongyan Chen)
  • RISC-V: use is_end_of_stmt() (64ac402023, Jan Beulich)

Top Contributors

AuthorCommits
Nelson Chu6
Jerry Zhang Jian2
Marek Pikuła1
Dongyan Chen1
Jin Ma1
Jan Beulich1
Kito Cheng1
Andrew Oates1

U-Boot (RISC-V)

17
Commits
10
Contributors
69
Lines Added
349
Lines Removed

U-Boot (RISC-V) saw moderate activity with 17 commits from 10 contributors. The codebase got leaner: +69/-349. Heinrich Schuchardt was the most active contributor with 5 commits. New feature work included 6 commits: "Add reset config options for k1"; "riscv: dts: k1: add reset controller node in device tree". Device tree and platform support saw 6 commits.

6 New features & support 6 Device tree / platform support 1 Cleanup & refactoring

Notable Changes

  • boot: arm: riscv: sandbox: Add a format for the booti file (098407e673, Simon Glass)
  • riscv: dts: k1: add reset controller node in device tree (d5b621d8b5, Huan Zhou)
  • treewide: Add a function to change page permissions (ec1c6cfb1c, Ilias Apalodimas)
  • spl: Add an SPL_HAVE_INIT_STACK option (d6a53f523a, Simon Glass)
  • Add reset config options for k1 (9c40d92305, Huan Zhou)
  • board: starfive: Remove compatible boards Milk-V Mars CM and Mars CM Lite (870c4d105a, E Shattow)
  • spl: starfive: visionfive2: Disable USB overcurrent pin by default. (05aa34cef9, Minda Chen)
  • riscv: dts: starfive: remove duplicate itb entries (and 2 more) (29dbfbeba4, Heinrich Schuchardt)
  • arm: riscv: efi: Export _start symbol from crt0_*_efi stubs (214a87757a, Sam Edwards)
  • usb: gadget: Remove final remnants of CONFIG_USB_DEVICE (7f061aba9a, Tom Rini)
  • riscv: dts: spacemit: Update UART compatible for k1 (f1ba590136, Junhui Liu)
  • board: starfive: spl: strip off 'starfive/' prefix (3962acf0a4, Heinrich Schuchardt)
  • spl: Use CONFIG_VAL() to obtain the SPL stack (ffa98c08e8, Simon Glass)
  • riscv: dts: cv18xx: Drop unused dummy clocks (a44f389263, Yao Zi)
  • common: clean up setjmp.h (7082c9e656, Heinrich Schuchardt)

Top Contributors

AuthorCommits
Heinrich Schuchardt5
Simon Glass3
Huan Zhou2
E Shattow1
Yao Zi1
Junhui Liu1
Sam Edwards1
Minda Chen1
Ilias Apalodimas1
Tom Rini1

Rust (RISC-V)

3
Commits
3
Contributors
7
Lines Added
7
Lines Removed

A light month for Rust (RISC-V) with 3 commits from 3 contributors. Bug fixes made up the majority: 2 of 3 commits (66%).

2 Bug fixes

Notable Changes

  • replace config.toml to bootstrap.toml in src:doc:rustc (85e9da8e60, bit-aloo)
  • Fix RISC-V VxWorks LLVM target triples (0434013a6e, Mads Marquart)
  • Fix some typos (4febd273e5, fuyangpengqi)

Top Contributors

AuthorCommits
bit-aloo1
Mads Marquart1
fuyangpengqi1

OpenOCD (RISC-V)

4
Commits
2
Contributors
70
Lines Added
13
Lines Removed

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

2 New features & support

Notable Changes

  • flash/nor: Add basic support for TI's MSPM0L/G family (8a6f89ca17, Nishanth Menon)
  • tcl/target: Add support for TI MSPM0 (c81cb4aa2d, Nishanth Menon)
  • doc: drop mention of not implemented SPI transport (e4a51b3235, Antonio Borneo)
  • adapter: drop command 'adapter transports' (6beb6280af, Antonio Borneo)

Top Contributors

AuthorCommits
Antonio Borneo2
Nishanth Menon2

Linux Kernel Docs & DT (RISC-V)

5
Commits
3
Contributors
149
Lines Added
0
Lines Removed

Not the busiest month for Linux Kernel Docs & DT (RISC-V): 5 commits from 3 contributors. Most of the work came from Conor Dooley (3 of 5 commits, 60%). Platform and DT work accounted for 5 commits. Extension support saw 3 commits covering Zaamo, Zalrsc. RVV work continued with 2 commits touching vector-related code.

5 Device tree / platform support 3 ISA extensions 3 New features & support 2 Vector extension (RVV)

Notable Changes

  • dt-bindings: riscv: add Zaamo and Zalrsc ISA extension description (a65e0f67da, Clément Léger)
  • dt-bindings: riscv: add bfloat16 ISA extension description (35bc188373, Inochi Amaoto)
  • dt-bindings: riscv: document vector crypto requirements (and 2 more) (a0d8572057, Conor Dooley)

Top Contributors

AuthorCommits
Conor Dooley3
Clément Léger1
Inochi Amaoto1