RISC-V Software News

January 2025 — Upstream Open Source Activity

The Big Picture

The RISC-V open source ecosystem logged 316 commits across 13 projects in January 2025. The most active projects were LLVM (RISC-V) (137), QEMU (RISC-V) (51), Linux Kernel (RISC-V) (40). Extension support work touched Smctr, Ssctr, Zvkb. Most-discussed mailing list thread: "[PATCH v3] RISC-V: Fix IFUNC resolver cannot access gp pointer" (glibc (RISC-V), 12 replies).

RISC-V International

The spec repos saw 69 commits this month, led by ISA Manual with 35 commits.

Spec Repository Activity

RepositoryCommitsContributors
ISA Manual 35 18
SBI Spec 28 6
Debug Spec 5 2
ELF psABI 1 1

Linux Kernel (RISC-V)

40
Commits
16
Contributors
1297
Lines Added
243
Lines Removed

A productive month for Linux Kernel (RISC-V) with 40 commits from 16 contributors. Leading the charge was Charlie Jenkins with 8 commits. New feature work included 19 commits: "riscv: add a warning when physical memory address overflows"; "mm/memblock: add memblock_alloc_or_panic interface". Vector extension support moved forward with 6 commits. Board and device tree support got 6 commits.

19 New features & support 6 Vector extension (RVV) 6 Device tree / platform support 5 ISA extensions 5 Bug fixes 3 Performance optimisations 1 Security & memory safety fixes 1 Interrupt controllers (AIA/APLIC/PLIC)

Notable Changes

  • riscv: dts: allwinner: Add xtheadvector to the D1/D1s devicetree (ce1daeeba6, Charlie Jenkins)
  • riscv: hwprobe: Add thead vendor extension probing (a5ea53da65, Charlie Jenkins)
  • riscv: vector: Support xtheadvector save/restore (d863910eab, Charlie Jenkins)
  • riscv: add SpacemiT SoC family Kconfig support (8814aa123a, Yangyu Chen)
  • riscv: sbi: vendorid_list: Add Microchip Technology to the vendor list (c138285233, Valentina Fernandez)
  • mm: pgtable: introduce generic __tlb_remove_table() (and 2 more) (2dccdf7076, Qi Zheng)
  • riscv: dts: spacemit: add pinctrl property to uart0 in BPI-F3 (3579b3506f, Yixun Lan)
  • riscv: dts: spacemit: add Banana Pi BPI-F3 board device tree (d60d57ab6b, Yangyu Chen)
  • riscv: add a warning when physical memory address overflows (101971298b, Yunhui Cui)
  • riscv: mm: Fix the out of bound issue of vmemmap address (f754f27e98, Xu Lu)
  • riscv: csr: Add CSR encodings for CSR_VXRM/CSR_VXSAT (b9a9314424, Charlie Jenkins)
  • riscv: dts: add initial SpacemiT K1 SoC device tree (d8fe646919, Yangyu Chen)
  • mm/memblock: add memblock_alloc_or_panic interface (c6f239796b, Guo Weikang)
  • RISC-V: define the elements of the VCSR vector CSR (66f197785d, Heiko Stuebner)
  • riscv: kprobes: Fix incorrect address calculation (13134cc949, Nam Cao)

Top Contributors

AuthorCommits
Charlie Jenkins8
Qi Zheng4
Yangyu Chen4
Kevin Brodsky3
Atish Patra3
Clément Léger3
Yunhui Cui2
Xu Lu2
Valentina Fernandez2
Yixun Lan2

OpenSBI

8
Commits
2
Contributors
272
Lines Added
121
Lines Removed

A quieter month for OpenSBI, with 8 commits from 2 contributors. Most of the work came from Clément Léger (7 of 8 commits, 87%).

3 New features & support 2 Bug fixes

Notable Changes

  • lib: sbi: pmu: add the PMU SSE event only if overflow IRQ is supported (and 5 more) (5c7e2c8334, Clément Léger)
  • include: lib: add a simple singly linked list implementation (147978f312, Clément Léger)
  • include: utils/fdt_helper: fix typo har't'id (555055d145, Leo Yu-Chi Liang)

Top Contributors

AuthorCommits
Clément Léger7
Leo Yu-Chi Liang1

QEMU (RISC-V)

51
Commits
13
Contributors
1979
Lines Added
776
Lines Removed

QEMU (RISC-V) saw healthy activity with 51 commits from 13 contributors. Clément Léger was the most active contributor with 9 commits. New feature work included 39 commits: "target/riscv: Support Supm and Sspm as part of Zjpm v1.0"; "hw/riscv/riscv-iommu.c: Introduce a translation tag for the page table cache". AIA and interrupt controller work accounted for 3 patches. RVV work continued with 2 commits touching vector-related code.

39 New features & support 22 ISA extensions 3 Interrupt controllers (AIA/APLIC/PLIC) 2 Vector extension (RVV) 2 Bug fixes 1 KVM / Virtualisation 1 Performance optimisations

Notable Changes

  • target/riscv: Add Smdbltrp ISA extension enable switch (and 8 more) (2d8e825928, Clément Léger)
  • target/riscv: Add counter delegation/configuration support (and 5 more) (6247dc2ef7, Kaiwen Xue)
  • target/riscv: Add Smrnmi cpu extension (and 4 more) (f9653d4eb2, Tommy Wu)
  • target/riscv: Add Zicfilp support for Smrnmi (0266fd8b56, Frank Chang)
  • target/riscv: Add RISC-V CSR qtest support (1addf57177, Ivan Klokov)
  • target/riscv: Add configuration for S[m|s]csrind, Smcdeleg/Ssccfg (and 4 more) (fdb7bce43f, Atish Patra)
  • hw/riscv/riscv-iommu.c: Introduce a translation tag for the page table cache (fa622855ea, Jason Chien)
  • target/riscv: Support Supm and Sspm as part of Zjpm v1.0 (and 7 more) (941f76e293, Alexey Baturo)
  • target/riscv: add trace in riscv_raise_exception() (and 7 more) (8f1a128942, Daniel Henrique Barboza)
  • riscv/gdbstub: add V bit to priv reg (e9952b3631, Yanfeng Liu)
  • target/riscv/tcg: add sha (f4df21e07f, Daniel Henrique Barboza)
  • target/riscv: Have kvm_riscv_get_timebase_frequency() take RISCVCPU cpu (7703a1d1e6, Philippe Mathieu-Daudé)
  • target/riscv: rvv: fix typo in vext continuous ldst function names (ffd23ae2a6, Craig Blackmore)
  • target/riscv: rvv: speed up small unit-stride loads and stores (d4ce7ef4b3, Craig Blackmore)
  • disas/riscv: Guard dec->cfg dereference for host disassemble (f65f3ebfad, LIU Zhiwei)

Top Contributors

AuthorCommits
Clément Léger9
Daniel Henrique Barboza9
Alexey Baturo8
Kaiwen Xue6
Atish Patra5
Tommy Wu5
Philippe Mathieu-Daudé2
Craig Blackmore2
Jason Chien1
Frank Chang1

GCC (RISC-V)

38
Commits
14
Contributors
1739
Lines Added
638
Lines Removed

GCC (RISC-V) kept moving with 38 commits from 14 contributors. Top contributor: Jeff Law with 6 commits. Bug fixes accounted for 12 commits (31%). New feature work included 10 commits: "Revert "[PATCH 1/2] RISC-V:Add intrinsic support for the CMOs extensions""; "RISC-V: Add a new constraint to ensure that the vl of XTheadVector does not get a non-zero immediate". The vector extension (RVV) saw 6 commits of continued development.

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

Notable Changes

  • RISC-V: Add a new constraint to ensure that the vl of XTheadVector does not get a non-zero immediate (and 3 more) (3024b12f2c, Jin Ma)
  • Revert "[PATCH 1/2] RISC-V:Add intrinsic support for the CMOs extensions" (3f641a8f1d, Jeff Law)
  • [PR target/118357] RISC-V: Disable fusing vsetvl instructions by VSETVL_VTYPE_CHANGE_ONLY for XTheadVector. (b9493e98da, Jin Ma)
  • [PR target/114442] Add reservations for all insn types to xiangshan-nanhu model (64a162d556, Jeff Law)
  • RISC-V: Add sifive_vector.h (43a6001ff5, Kito Cheng)
  • [PATCH] riscv: add mising masking in lrsc expander (PR118137) (013e66ea95, Andreas Schwab)
  • [RISC-V][PR target/118170] Add HF div/sqrt reservation (d6f1961e68, Anton Blanchard)
  • RISC-V: vector absolute difference expander [PR117722] (b755c151fd, Vineet Gupta)
  • [PR target/116256] Fix latent regression in pattern to associate arithmetic to simplify constants (59e5d086a3, Jeff Law)
  • RISC-V: Improve bitwise and ashift reassociation for single-bit immediate without zbs [PR 115921] (107d5d6825, Xi Ruoyao)
  • RISC-V: Update Xsfvfnrclip implementation. (030aaea78c, Jiawei)
  • RISC-V: Fix incorrect code gen for scalar signed SAT_TRUNC [PR117688] (and 4 more) (5a48079c15, Pan Li)
  • RISC-V: Remove zba check in bitwise and ashift reassociation [PR 115921] (a9ebf24906, Xi Ruoyao)
  • RISC-V: Remove unused variable in riscv_file_end function. (and 4 more) (3c34cea666, Monk Chiang)
  • RISC-V: Refine registered_functions list for rvv overloaded intrinsics. (00b77db92e, xuli)

Top Contributors

AuthorCommits
Jeff Law6
Pan Li5
Robin Dapp5
Jin Ma5
Monk Chiang5
Kito Cheng2
Xi Ruoyao2
Vineet Gupta2
Liao Shihua1
Jiawei1

LLVM (RISC-V)

137
Commits
28
Contributors
29434
Lines Added
19467
Lines Removed

LLVM (RISC-V) saw heavy activity with 137 commits from 28 contributors. +29,434/-19,467 lines changed — a big diff. Craig Topper was the most active contributor with 35 commits. New feature work included 58 commits: "[RISCV] Add DAG combine for forming VAADDU_VL from VP intrinsics. (#124848)"; "[RISCV] Add MIPS extensions (#121394)". RVV work continued with 15 commits touching vector-related code. Compiler backend and code generation improvements accounted for 14 commits.

58 New features & support 30 Cleanup & refactoring 15 Vector extension (RVV) 14 Compiler backend / code generation 12 Bug fixes 7 ISA extensions 2 Performance optimisations 1 Interrupt controllers (AIA/APLIC/PLIC)

Notable Changes

  • [RISCV][VLOPT] Add vector single width floating point add subtract instructions to isSupportedInstr (c036a9a2c2, Michael Maitland)
  • [RISCV][VLOPT] Add Vector Single-Width Averaging Add and Subtract to isSupportedInstr (#122351) (04e54cc19f, Michael Maitland)
  • [RISCV][VLOPT] Add vector widening floating point add subtract instructions to isSupportedInstr (8beb9d393d, Michael Maitland)
  • [RISCV][VLOPT] Add Vector Floating-Point Compare Instructions to getSupportedInstr (5f70fea79f, Michael Maitland)
  • [RISCV][VLOPT] Add vector fp-conversion instruction to isSupportedInstr (#122033) (e93181bf13, Michael Maitland)
  • [RISCV][VLOPT] Add vector fp min/max instructions to isSupportedInstr (#124196) (f402e06e7d, Michael Maitland)
  • [RISCV] Fold vp.store(vp.reverse(VAL), ADDR, MASK) -> vp.strided.store(VAL, NEW_ADDR, -1, MASK) (#123123) (0c6e03eea0, Craig Topper)
  • [RISCV][VLOPT] Add support for checkUsers when UserMI is a Single-Width Integer Reduction (#120345) (142787d368, Michael Maitland)
  • [RISCV] Add stack clash vector support (#119458) (6f53886a9a, Raphael Moreira Zinsly)
  • [RISCV][VLOPT] Add floating point widening and narrowing bf16 convert support (#122353) (e44f03dd4e, Michael Maitland)
  • [RISCV][VLOPT] Add strided, unit strided, and indexed loads to isSupported (#121705) (36e4176f1d, Michael Maitland)
  • [RISCV][VLOPT] Add floating point multiply divide instructions to getSupportedInstr (a484fa1d0a, Michael Maitland)
  • [RISCV] Add Qualcomm uC Xqcicli (Conditional Load Immediate) extension (#121292) (532a2691bc, Sudharsan Veeravalli)
  • [RISCV][VLOPT] Add vmv.x.s and vfmv.f.s to isVectorOpUsedAsScalarOp (#121588) (8b577043b1, Michael Maitland)
  • [RISCV] Add Qualcomm uC Xqcilo (Large Offset Load Store) extension (#123881) (163935a48d, quic_hchandel)

Top Contributors

AuthorCommits
Craig Topper35
Michael Maitland24
Philip Reames16
Luke Lau14
Min-Yih Hsu6
Pengcheng Wang5
quic_hchandel4
Piotr Fusik4
Alexey Bataev3
Sam Elliott3

glibc (RISC-V)

6
Commits
4
Contributors
326
Lines Added
130
Lines Removed

glibc (RISC-V) saw lighter activity with 6 commits from 4 contributors. On the mailing list, "[PATCH v3] RISC-V: Fix IFUNC resolver cannot access gp pointer" drew 12 replies.

1 New features & support 1 Cleanup & refactoring

Notable Changes

  • elf: Remove the remaining uses of GET_ADDR_OFFSET (cc74583f23, Florian Weimer)
  • Add missing include guards to (4a9a8a5098, Florian Weimer)
  • Move to kernel-independent sysdeps directories (7a3e2e877a, Florian Weimer)
  • Update copyright dates with scripts/update-copyrights (2642002380, Paul Eggert)
  • riscv: Update nofpu libm test ulps (274f73978c, Darius Rad)
  • RISC-V: Regenerate ULPs (d4b16e22e7, Aurelien Jarno)

Top Contributors

AuthorCommits
Florian Weimer3
Darius Rad1
Aurelien Jarno1
Paul Eggert1

Binutils (RISC-V)

12
Commits
6
Contributors
246
Lines Added
29
Lines Removed

A quieter month for Binutils (RISC-V), with 12 commits from 6 contributors. Alan Modra was the most active contributor with 4 commits. ISA extension work spanned 5 commits, touching Smctr, Ssctr.

5 ISA extensions 2 Bug fixes 2 New features & support 2 Cleanup & refactoring

Notable Changes

  • RISC-V: Support CFI Zicfiss and Zicfilp instructions and CSR. (b4681c2e8a, Monk Chiang)
  • RISC-V: Use t2 for tail if Zicfilp enabled (1c618df713, Kito Cheng)
  • RISC-V: PR32499, Fix PR18841 segfault caused by ifunc relocation ordering (and 3 more) (a223bdd674, Nelson Chu)
  • Update year range in copyright notice of binutils files (e8e7cf2abe, Alan Modra)
  • RISC-V: Eliminate redundant instruction macro (a61beb42b0, Xiao Zeng)
  • RISC-V: Fix display of partial instructions (6a04e82307, Charlie Jenkins)
  • sec->alloced and freeing section contents (cb6326b5ce, Alan Modra)
  • gas HANDLE_ALIGN and frag_alloc (b477fdd746, Alan Modra)
  • gas tc_gen_reloc memory leaks (3fb6f5457e, Alan Modra)

Top Contributors

AuthorCommits
Alan Modra4
Nelson Chu4
Kito Cheng1
Monk Chiang1
Charlie Jenkins1
Xiao Zeng1

GDB (RISC-V)

4
Commits
3
Contributors
65
Lines Added
32
Lines Removed

Minimal activity in GDB (RISC-V): 4 commits from 3 contributors.

2 New features & support 1 Bug fixes

Notable Changes

  • gdb/riscv: Add command to switch between numeric & abi register names (2047479c10, Ciaran Woodward)
  • gdb: add "unwinder class" to frame unwinders (ce36ef63aa, Guinevere Larsen)
  • [gdb/tdep] Fix gdb.cp/non-trivial-retval.exp on riscv64-linux (84067a55fc, Tom de Vries)
  • gdb: Migrate frame unwinders to use C++ classes (1239e7cf37, Guinevere Larsen)

Top Contributors

AuthorCommits
Guinevere Larsen2
Ciaran Woodward1
Tom de Vries1

U-Boot (RISC-V)

7
Commits
4
Contributors
1121
Lines Added
303
Lines Removed

U-Boot (RISC-V) saw lighter activity with 7 commits from 4 contributors.

2 New features & support 2 Device tree / platform support 1 ISA extensions 1 Bug fixes

Notable Changes

  • riscv: cpu: k230: Add support for Canaan Kendryte K230 SoC (78d9ce3e36, Junhui Liu)
  • riscv: dts: canaan: Add basic device tree for K230 CanMV board (a1135b7526, Junhui Liu)
  • riscv: Enhance extension probing (ab15e20ea9, Mayuresh Chitale)
  • riscv: dts: starfive: split out visionfive2 target specific configuration (9c4d760637, E Shattow)
  • efi_loader: correct SizeOfCode, SizeOfInitializedData (216459d2cf, Heinrich Schuchardt)
  • efi_loader: use INCLUDE in EFI linker scripts (6a628c1503, Heinrich Schuchardt)
  • riscv: Fallback to riscv,isa (4492c8db60, Mayuresh Chitale)

Top Contributors

AuthorCommits
Heinrich Schuchardt2
Junhui Liu2
Mayuresh Chitale2
E Shattow1

Rust (RISC-V)

1
Commits
1
Contributors
10
Lines Added
10
Lines Removed

Just a single commit landed in Rust (RISC-V) this month.

1 New features & support

Notable Changes

  • Mark all NuttX targets as tier 3 target and support the standard library (ebf53630db, Huang Qi)

Top Contributors

AuthorCommits
Huang Qi1

OpenOCD (RISC-V)

4
Commits
4
Contributors
138
Lines Added
2
Lines Removed

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

3 New features & support 1 Cleanup & refactoring

Notable Changes

  • Add Linux SPI device SWD adapter support (83e0293f7b, Richard Pasek)
  • flash/stm32l4x: add STM32C071xx support (250ab1008b, David (Pololu))
  • flash/nor: add DesignWare SPI controller driver (eb6f2745b7, Sergey Matsievskiy)
  • helper: list: rename macro clashing with sys/queue.h (26f2df80c3, Antonio Borneo)

Top Contributors

AuthorCommits
Sergey Matsievskiy1
Richard Pasek1
Antonio Borneo1
David (Pololu)1

OpenBLAS (RISC-V)

4
Commits
2
Contributors
531
Lines Added
190
Lines Removed

A light month for OpenBLAS (RISC-V) with 4 commits from 2 contributors. tingbo.liao was the driving force, authoring 3 of 4 commits (75%). Optimisation efforts accounted for 2 commits. The vector extension (RVV) saw 1 commit of continued development.

2 Performance optimisations 1 Vector extension (RVV)

Notable Changes

  • Optimized the gemm_tcopy_8_rvv to be compatible with the vlens 128 and 256. (ef7f54b357, tingbo.liao)
  • Optimize the omatcopy_cn and zomatcopy_cn kernels with RVV 1.0 intrinsic. (0a5dbf13d3, tingbo.liao)
  • Further rearranged the rotm kernel for the different architectures. (3c8df6358f, tingbo.liao)
  • Update Makefile.riscv64 (05dce05c24, Felix LeClair)

Top Contributors

AuthorCommits
tingbo.liao3
Felix LeClair1

Linux Kernel Docs & DT (RISC-V)

4
Commits
2
Contributors
58
Lines Added
0
Lines Removed

A light month for Linux Kernel Docs & DT (RISC-V) with 4 commits from 2 contributors. Vector extension support moved forward with 2 commits.

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

Notable Changes

  • dt-bindings: riscv: Add xtheadvector ISA extension description (e576b7cb81, Charlie Jenkins)
  • dt-bindings: cpus: add a thead vlen register length property (bf6279b38a, Charlie Jenkins)
  • dt-bindings: riscv: Add SpacemiT X60 compatibles (16c9147e6a, Yangyu Chen)
  • dt-bindings: riscv: add SpacemiT K1 bindings (244fe889b9, Yangyu Chen)

Top Contributors

AuthorCommits
Charlie Jenkins2
Yangyu Chen2