RISC-V Software News

February 2026 — Upstream Open Source Activity

The Big Picture

In February 2026, the RISC-V ecosystem saw 269 commits across 11 projects. LLVM (RISC-V) led with 167 commits (62%). Also active: OpenSBI (32), Linux Kernel (RISC-V) (23), GCC (RISC-V) (14). Software support advanced for Zba, Zbb, Zbkb, Zicsr, Zmmul, Zvabd. Virtualisation saw 8 KVM-related patches. Most-discussed mailing list thread: "RISC-V: Bugfix adjust_stmt_cost doesn't honor param=gpr2vr-cost [PR123916]" (GCC (RISC-V), 8 replies).

RISC-V International

The spec repos saw 48 commits this month, led by ISA Manual with 44 commits.

Spec Repository Activity

RepositoryCommitsContributors
ISA Manual 44 14
Profiles 2 2
SBI Spec 2 1

Community Buzz (r/RISCV)

The most popular posts on r/RISCV this month, ranked by upvotes.

Linux Kernel (RISC-V)

23
Commits
14
Contributors
480
Lines Added
141
Lines Removed

Linux Kernel (RISC-V) kept moving with 23 commits from 14 contributors. KVM and virtualisation received 8 patches. New feature work included 6 commits: "Convert 'alloc_flex' family to use the new default GFP_KERNEL argument"; "Convert 'alloc_obj' family to use the new default GFP_KERNEL argument". AIA and interrupt controller work accounted for 4 patches.

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

Notable Changes

  • bpf, riscv: add fsession support for trampolines (35b3515be0, Menglong Dong)
  • Convert 'alloc_flex' family to use the new default GFP_KERNEL argument (323bbfcf1e, Linus Torvalds)
  • Convert 'alloc_obj' family to use the new default GFP_KERNEL argument (bf4afc53b7, Linus Torvalds)
  • bpf, riscv: introduce emit_store_stack_imm64() for trampoline (93fd420d71, Menglong Dong)
  • riscv: KVM: allow Zilsd and Zclsd extensions for Guest/VM (f326e846ff, Pincheng Wang)
  • riscv: vector: init vector context with proper vlenb (ef3ff40346, Sergey Matyukevich)
  • riscv: ptrace: validate input vector csr registers (f4be988f5b, Sergey Matyukevich)
  • RISC-V: KVM: Allow Zalasr extensions for Guest/VM (655d330c05, Xu Lu)
  • riscv: dts: microchip: add can resets to mpfs (ff4b6bf7ee, Conor Dooley)
  • riscv: lib: optimize strlen loop efficiency (18be4ca5cb, Feng Jiang)
  • RISC-V: KVM: Transparent huge page support (ed7ae7a34b, Jessica Liu)
  • RISC-V: KVM: Skip IMSIC update if vCPU IMSIC state is not initialized (and 2 more) (003b9dae53, Jiakai Xu)
  • irqchip/riscv-imsic: Adjust the number of available guest irq files (376e2f8cca, Xu Lu)
  • irqchip/sifive-plic: Handle number of hardware interrupts correctly (42e025b719, Thomas Gleixner)
  • irqchip/sifive-plic: Fix frozen interrupt due to affinity setting (1072020685, Nam Cao)

Top Contributors

AuthorCommits
Linus Torvalds3
Sergey Matyukevich3
Jiakai Xu3
Kees Cook2
Menglong Dong2
Xu Lu2
Nathan Chancellor1
Nam Cao1
Feng Jiang1
Conor Dooley1

Notable Discussions

OpenSBI

32
Commits
6
Contributors
2239
Lines Added
854
Lines Removed

OpenSBI kept moving with 32 commits from 6 contributors. Vladimir Kondratiev dominated with 22/32 commits (68%). New feature work included 9 commits: "platform: generic: eyeq7h: enable ECC on L1 cache"; "platform: generic: mips: add P8700 based "eyeq7h" and "boston"". Bug fixes accounted for 4 commits (12%).

9 New features & support 4 Bug fixes

Notable Changes

  • lib: utils/serial: Add support for Altera JTAG UART (b07e449d15, Icenowy Zheng)
  • lib: utils/cache: add cache enable function (6d26b43c47, Ben Zong-You Xie)
  • platform: generic/andes: add CSR save and restore functions for AE350 platform (85bff9cc16, Ben Zong-You Xie)
  • lib: sbi_pmu: Add FW counter index validation when reading high bits on RV64 (9656943bd3, James Raphael Tiovalen)
  • platform: generic: eyeq7h: enable ECC on L1 cache (and 19 more) (8d1c21b387, Vladimir Kondratiev)
  • platform: generic: mips p8700: Add match data for CM info (bc2722b0f3, Benoît Monin)
  • lib: utils/cache: add Andes last level cache controller (82b0961821, Ben Zong-You Xie)
  • lib: utils/suspend: add Andes ATCSMU suspend driver (b27ecec76b, Ben Zong-You Xie)
  • lib: sbi_pmu: Fix multiple FW counter start operations with custom PMU device (a95c36f165, James Raphael Tiovalen)
  • lib: utils/hsm: factor out ATCSMU code into an HSM driver (9ffacc8ae1, Ben Zong-You Xie)
  • lib: sbi_hart_pmp: disable unconfigured PMP entries (ea45923765, Vladimir Kondratiev)
  • firmware: Initialize stack guard via Zkr (ecdb6c90c8, Xiang W)
  • lib: sbi: print hartid in hex (e58d528702, Vladimir Kondratiev)

Top Contributors

AuthorCommits
Vladimir Kondratiev22
Ben Zong-You Xie5
James Raphael Tiovalen2
Benoît Monin1
Icenowy Zheng1
Xiang W1

QEMU (RISC-V)

13
Commits
3
Contributors
204
Lines Added
202
Lines Removed

QEMU (RISC-V) saw lighter activity with 13 commits from 3 contributors. Philippe Mathieu-Daudé was the driving force, authoring 10 of 13 commits (76%).

1 Cleanup & refactoring

Notable Changes

  • exec: Drop TARGET_PHYS_ADDR_SPACE_BITS (cf884c075e, Anton Johansson)
  • hw/nvram/fw_cfg: Rename fw_cfg_init_mem_wide() -> fw_cfg_init_mem_dma() (99d1b03365, Philippe Mathieu-Daudé)
  • target/riscv: Remove unnecessary target_ulong type uses (and 5 more) (de32a75647, Philippe Mathieu-Daudé)
  • include/tcg/tcg-op.h: eradicate TARGET_INSN_START_EXTRA_WORDS (10059583c7, Pierrick Bouvier)
  • disas: Have disas_set_info() take a const CPUState (a63b90ca6c, Philippe Mathieu-Daudé)
  • monitor: Reduce target-specific declarations (a9edda7250, Philippe Mathieu-Daudé)
  • disas/riscv: Make rv_decode::cfg const (8a00198ab4, Philippe Mathieu-Daudé)
  • hw/riscv: Set IOMMU PAS via property (3a3cfcb29f, Anton Johansson)

Top Contributors

AuthorCommits
Philippe Mathieu-Daudé10
Anton Johansson2
Pierrick Bouvier1

GCC (RISC-V)

14
Commits
4
Contributors
445
Lines Added
46
Lines Removed

GCC (RISC-V) saw lighter activity with 14 commits from 4 contributors. Robin Dapp was the most active contributor with 6 commits. Vector extension support moved forward with 5 commits. Bug fixes accounted for 5 commits (35%).

5 Vector extension (RVV) 5 Bug fixes 3 ISA extensions 3 New features & support 1 Compiler backend / code generation 1 Performance optimisations

Notable Changes

  • RISC-V: Add another combine pattern for vfmin/max on cost model (and 2 more) (63fc48f077, Pan Li)
  • [RISC-V][PR rtl-optimization/123322] Split general conditional moves into simpler sequences (e7c2fd08ce, Jeff Law)
  • [PR target/123911][RISC-V] Fix infinite recursion in riscv_legitimize_move (2f84ad4ddc, Jeff Law)
  • RISC-V: Consider uses for vsetvl LCM transparency. [PR122448] (and 5 more) (0635bfb53a, Robin Dapp)
  • [RISC-V][PR target/124048] Fix RTL generated by conditional AND splitter (3a7143ed83, Jeff Law)
  • [PR target/124147] Fix build failure with clang on RISC-V (136ef3b4dd, Jeff Law)
  • [PATCH] RISC-V: fix nullptr dereference in parse_arch (09d7a79c79, Yangyu Chen)

Top Contributors

AuthorCommits
Robin Dapp6
Jeff Law4
Pan Li3
Yangyu Chen1

Notable Discussions

LLVM (RISC-V)

167
Commits
36
Contributors
110220
Lines Added
64770
Lines Removed

It was a busy month in LLVM (RISC-V) land, with 167 commits from 36 contributors. +110,220/-64,770 lines changed — a big diff. Leading the charge was Craig Topper with 85 commits. Code housekeeping was a significant theme at 53 commits (31%). New feature work included 50 commits: "[RISCV] Add Defs = VXSAT to P extension instructions. (#183455)"; "[RISCV] Add processor definitions for XuanTie C910V2 and C920V2 (#174056)". The compiler backend saw heavy activity with 46 commits touching code generation. Extension support saw 29 commits covering Zba, Zbb, Zbkb, Zicsr, Zmmul, Zvabd.

53 Cleanup & refactoring 50 New features & support 46 Compiler backend / code generation 29 ISA extensions 9 Performance optimisations 7 Vector extension (RVV) 5 Bug fixes

Notable Changes

  • [RISCV] Add basic scalar support for MERGE, MVM, and MVMN from P extension (#180677) (31e1bcfd09, Craig Topper)
  • [RISCV][llvm] Support INSERT_VECTOR_ELT codegen for P extension (#179471) (d99f1cdd66, Brandon Wu)
  • Revert "[LLD] Add support for statically resolved vendor-specific RISCV relocations. (#169273)" (#181336) (78d995758d, Fangrui Song)
  • [RISC] Rename the P extensions srx/slx tests and add fshl/fshr intrinsic tests. NFC (#180984) (9a496ddca3, Craig Topper)
  • [RISCV] Partial support for using PPAIRE.B/H to optimize unaligned load sequences. (#183423) (8533889a54, Craig Topper)
  • [RISCV] Use PADD_DW instead of ADDD for GPRPair copy on RV32 with P extension (#181316) (b39ab2e0ef, Craig Topper)
  • [RISCV] Introduce a new syntax for processor-specific tuning feature strings (#175063) (6441f1c9d5, Min-Yih Hsu)
  • [RISCV] Combine ADDD(lo, hi, x, 0) -> WADDAU(lo, hi, x, 0). Combine WADDAU (WADDAU lo, hi, x, 0), y, 0 -> WADDAU lo, hi, x, y (#181396) (75cc975c2c, Craig Topper)
  • Revert "[Clang][inlineasm] Add special support for "rm" output constraints (#92040)" (c4721872af, Nikita Popov)
  • [RISCV] Rename FeatureEnableSelectOptimize to TuneEnableSelectOptimize (#180496) (776297b0a6, Pengcheng Wang)
  • [RISCV] Support scalar bitreverse using P extension rev instruction. (#183245) (b68307569b, Craig Topper)
  • [SystemZ, LoopVectorizer] Enable vectorization of epilogue loops. (#172925) (d3081aafc4, Jonas Paulsson)
  • [Clang][inlineasm] Add special support for "rm" output constraints (#92040) (45e666a853, Bill Wendling)
  • [RISCV] Add support for forming WMULSU during type legalization. (#180331) (a563e6bb7e, Craig Topper)
  • [RISCV] Add (BSETI x0, 11) to isLoadImm for optimizeCondBranch (#180820) (f668c9ff2b, Craig Topper)

Top Contributors

AuthorCommits
Craig Topper85
Luke Lau13
Pengcheng Wang9
Jim Lin8
Min-Yih Hsu7
Sam Elliott6
Mark Zhuang3
Carlos Alberto Enciso2
Brandon Wu2
Paul Kirth2

glibc (RISC-V)

1
Commits
1
Contributors
2
Lines Added
0
Lines Removed

One lone commit for glibc (RISC-V) this month.

Notable Changes

  • elf: Use dl-symbol-redir-ifunc.h instead _dl_strlen (0a380fe9a3, Adhemerval Zanella)

Top Contributors

AuthorCommits
Adhemerval Zanella1

Binutils (RISC-V)

1
Commits
1
Contributors
2
Lines Added
2
Lines Removed

One lone commit for Binutils (RISC-V) this month. This was primarily a stabilisation month — 1 of 1 commits (100%) were fixes.

1 Bug fixes

Notable Changes

  • Fix even more -Wdiscarded-qualifers issues (36974d77e9, Keith Seitz)

Top Contributors

AuthorCommits
Keith Seitz1

GDB (RISC-V)

1
Commits
1
Contributors
4
Lines Added
4
Lines Removed

Just a single commit landed in GDB (RISC-V) this month. Almost entirely a bug-fix month at 100% (1 of 1 commits).

1 Bug fixes

Notable Changes

  • [gdb] Fix typo recordered -> recorded (96cc0a530d, Tom de Vries)

Top Contributors

AuthorCommits
Tom de Vries1

Rust (RISC-V)

1
Commits
1
Contributors
2
Lines Added
2
Lines Removed

One lone commit for Rust (RISC-V) this month. This was primarily a stabilisation month — 1 of 1 commits (100%) were fixes.

1 Bug fixes

Notable Changes

  • Fix typos in riscv64a23-unknown-linux-gnu.md (34cdaebf37, Wolf Vollprecht)

Top Contributors

AuthorCommits
Wolf Vollprecht1

OpenOCD (RISC-V)

4
Commits
3
Contributors
26
Lines Added
3
Lines Removed

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

2 New features & support 1 ISA extensions

Notable Changes

  • configure.ac: Replace --enable-malloc-logging with a new runtime log level. (129e9d3005, R. Diez)
  • README: Use Markdown extension (bcfa2bc6b5, Marc Schink)
  • flash: ROM support (8ee7cb12cf, Tomas Vanek)
  • flash: read only alias (2b986178cf, Tomas Vanek)

Top Contributors

AuthorCommits
Tomas Vanek2
R. Diez1
Marc Schink1

OpenBLAS (RISC-V)

12
Commits
1
Contributors
2375
Lines Added
485
Lines Removed

A quieter month for OpenBLAS (RISC-V), with 12 commits. Chip Kerchner was the driving force, authoring 12 of 12 commits (100%). Vector extension support moved forward with 1 commit.

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

Notable Changes

  • Convert inputs from BF16 to FP32 and use FP32 vector madds. 18% faster. (33560437f5, Chip Kerchner)
  • Fixed MADD to use float16 values. Use LMUL = 2 in main loop. Now 1.85X faster on BananaPi. (e3cb067bf4, Chip Kerchner)
  • Add flag for not converting A & B - will be used in future to do conversion during packing. (7a1d23400f, Chip Kerchner)
  • Added ability to accumulate in FP16 for GEMM. Widens once at the end of loops. (b5f2a50fe9, Chip Kerchner)
  • Convert BF16 values once (and vectorized). (4121a22c02, Chip Kerchner)
  • Add dummy memsets - just in case. (1d6aa0dc31, Chip Kerchner)
  • Add pre-RVA23 to BF16 GEMM. (efe63e7970, Chip Kerchner)
  • Forget to add defintion. (74d9fe2832, Chip Kerchner)
  • Only convert B if M is greater or equal to 4. (1cc377ef61, Chip Kerchner)
  • Conversion from BF16 to FP32 only once. (0acb60aab3, Chip Kerchner)
  • One small change. (9701a80a9f, Chip Kerchner)
  • 128-bit versions. (aa1cebd45b, Chip Kerchner)

Top Contributors

AuthorCommits
Chip Kerchner12