RISC-V Software News

November 2024 — Upstream Open Source Activity

The Big Picture

The RISC-V open source ecosystem logged 366 commits across 12 projects in November 2024. LLVM (RISC-V) led with 246 commits (67%). Also active: OpenSBI (35), Linux Kernel (RISC-V) (32), GCC (RISC-V) (14). The extension landscape saw work on Svadu, Zaamo, Zacas, Zalrsc, Zawrs, Zbb, Zbkb, Zdinx. Samuel Holland authored 80% of OpenSBI commits this month. Most-discussed mailing list thread: "lib: sbi: factorize previous mode computation" (OpenSBI, 20 replies).

RISC-V International

The spec repos saw 20 commits this month, led by ISA Manual with 18 commits.

Spec Repository Activity

RepositoryCommitsContributors
ISA Manual 18 13
SBI Spec 2 1

Linux Kernel (RISC-V)

32
Commits
18
Contributors
971
Lines Added
250
Lines Removed

Linux Kernel (RISC-V) kept moving with 32 commits from 18 contributors. Leading the charge was Alexandre Ghiti with 10 commits. New feature work included 16 commits: "kbuild: add $(objtree)/ prefix to some in-kernel build artifacts"; "RISC-V: KVM: Add Svade and Svadu Extensions Support for Guest/VM". Work on Svadu, Zacas, Zawrs accounted for 9 commits. Bug fixes accounted for 5 commits (15%).

16 New features & support 9 ISA extensions 5 Bug fixes 4 Device tree / platform support 3 KVM / Virtualisation 2 Interrupt controllers (AIA/APLIC/PLIC) 1 Security & memory safety fixes 1 Cleanup & refactoring 1 Performance optimisations

Notable Changes

  • RISC-V: KVM: Add Svade and Svadu Extensions Support for Guest/VM (97eccf7db4, Yong-Xuan Wang)
  • RISC-V: Add Svade and Svadu Extensions Support (94a7734d09, Yong-Xuan Wang)
  • riscv: dts: sophgo: Add emmc support for Huashan Pi (b5cf65cc0f, Inochi Amaoto)
  • riscv: Add qspinlock support (and 8 more) (ab83647fad, Alexandre Ghiti)
  • riscv: add PREEMPT_LAZY support (22aaec357c, Jisheng Zhang)
  • kbuild: add $(objtree)/ prefix to some in-kernel build artifacts (214c0eea43, Masahiro Yamada)
  • riscv: dts: sophgo: Add sdio configuration for Huashan Pi (06133f48a8, Inochi Amaoto)
  • riscv: defconfig: Enable T-HEAD C900 ACLINT SSWI drivers (6da33567c0, Inochi Amaoto)
  • arch: introduce set_direct_map_valid_noflush() (0c6378a715, Mike Rapoport (Microsoft))
  • riscv: dts: thead: Add TH1520 ethernet nodes (7e756671a6, Emil Renner Berthing)
  • riscv: dts: sophgo: fix pinctrl base-address (44196383a2, Thomas Bonnefille)
  • asm-generic: introduce text-patching.h (0c3beacf68, Mike Rapoport (Microsoft))
  • irqchip/riscv-aplic: Prevent crash when MSI domain is missing (1f181d1cda, Samuel Holland)
  • RISC-V: KVM: Fix APLIC in_clrip and clripnum write emulation (60821fb4dd, Yong-Xuan Wang)
  • vdso: Rename struct arch_vdso_data to arch_vdso_time_data (a812eee0b6, Nam Cao)

Top Contributors

AuthorCommits
Alexandre Ghiti10
Yong-Xuan Wang3
Inochi Amaoto3
Mike Rapoport (Microsoft)2
Masahiro Yamada1
Palmer Dabbelt1
Samuel Holland1
Dave Vasilevsky1
Charlie Jenkins1
Anshuman Khandual1

OpenSBI

35
Commits
7
Contributors
876
Lines Added
1279
Lines Removed

OpenSBI saw moderate activity with 35 commits from 7 contributors. Notably, more code was removed than added (+876/-1,279). Samuel Holland dominated with 28/35 commits (80%). Interrupt controller infrastructure (AIA/APLIC/PLIC/IMSIC) received 9 patches. Worth reading: the "lib: sbi: factorize previous mode computation" thread attracted 20 responses on the mailing list.

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

Notable Changes

  • platform: ensure enough heap size with debug triggers extension (dcb68dd17d, Inochi Amaoto)
  • lib: utils/fdt: Add helpers for generic driver initialization (1ccc52c427, Samuel Holland)
  • platform: introduce DT-based configurable heap size (5d4e3fb2ee, Inochi Amaoto)
  • top: Add .editorconfig to set basic coding styles (369c64517e, Hui Min Mina Chou)
  • docs: add example of building the Linux kernel (701948bdec, Tim Hutt)
  • Makefile: enable --gc-sections (0171cfcc70, Kele Zhang)
  • lib: sbi_irqchip: Set the IRQ handler when registering a chip (and 2 more) (111772353f, Samuel Holland)
  • lib: utils/irqchip: Move per-hart data from fdt_plic to plic (and 4 more) (56fddce83f, Samuel Holland)
  • lib: utils/gpio: Use fdt_driver for initialization (and 2 more) (bef8f9b806, Samuel Holland)
  • platform: Drop irqchip warm init and exit hooks (and 2 more) (678f5909a3, Samuel Holland)
  • lib: sbi_ipi: Make .ipi_clear always target the current hart (be9752a071, Samuel Holland)
  • treewide: Make carray arrays const and NULL-terminated (df1c100001, Samuel Holland)
  • lib: sbi_ipi: Move initial IPI clear to sbi_ipi_init() (693afc818f, Samuel Holland)
  • lib: utils/serial: Use fdt_driver for initialization (a524f0a507, Samuel Holland)
  • lib: utils/regmap: Use fdt_driver for initialization (1f8db2f18f, Samuel Holland)

Top Contributors

AuthorCommits
Samuel Holland28
Inochi Amaoto2
Nick Hu1
Zhang RunMin1
Tim Hutt1
Kele Zhang1
Hui Min Mina Chou1

Notable Discussions

QEMU (RISC-V)

11
Commits
4
Contributors
475
Lines Added
252
Lines Removed

QEMU (RISC-V) saw lighter activity with 11 commits from 4 contributors. Max Chou dominated with 7/11 commits (63%). Vector extension support moved forward with 6 commits. Optimisation efforts accounted for 4 commits. The KVM subsystem saw 1 patch this month.

6 Vector extension (RVV) 4 Performance optimisations 2 Bug fixes 1 KVM / Virtualisation

Notable Changes

  • target/riscv: Set vdata.vm field for vector load/store whole register instructions (b48381b1ee, Max Chou)
  • target/riscv: rvv: Provide group continuous ld/st flow for unit-stride ld/st instructions (and 4 more) (e32988789b, Max Chou)
  • target/riscv: Inline unit-stride ld/st and corresponding functions for performance (f8ee6f533d, Max Chou)
  • hw/riscv/riscv-iommu: fix riscv_iommu_validate_process_ctx() check (d3b96a5319, Daniel Henrique Barboza)
  • target/riscv/kvm: Update kvm exts to Linux v6.11 (13d438502b, Quan Zhou)
  • hw/riscv/riscv-iommu: change 'depth' to int (cd5d265f42, Daniel Henrique Barboza)
  • hw/riscv/iommu: fix build error with clang (d37eede7a8, Pierrick Bouvier)

Top Contributors

AuthorCommits
Max Chou7
Daniel Henrique Barboza2
Quan Zhou1
Pierrick Bouvier1

GCC (RISC-V)

14
Commits
9
Contributors
1226
Lines Added
174
Lines Removed

GCC (RISC-V) saw lighter activity with 14 commits from 9 contributors.

4 New features & support 2 ISA extensions 2 Compiler backend / code generation

Notable Changes

  • RISC-V: Add intrinsics support for SiFive Xsfvqmaccqoq/dod extensions. (356bfe8ca1, yulong)
  • RISC-V: Minimal support for svvptc extension. (e4f4b2dc08, Dongyan Chen)
  • [RISC-V][PR target/117690] Add missing shift in constant synthesis (9b7917b34f, Jeff Law)
  • [PATCH v7 03/12] RISC-V: Add CRC expander to generate faster CRC. (74eb3570e6, Mariam Arutunian)
  • [RISC-V][PR target/116590] Avoid emitting multiple instructions from fmacc patterns (41fb3a5669, Jeff Law)
  • [RISC-V][PR target/109279] Improve RISC-V constant synthesis (df2e832c90, Jeff Law)
  • RISC-V: Ensure vtype for full-register moves [PR117544]. (b82a5810e7, Robin Dapp)
  • RISC-V: avlprop: Do not propagate VL from slidedown. (9c82afd42e, Robin Dapp)
  • diagnostics: replace %<%s%> with %qs [PR104896] (9f06b910a8, David Malcolm)
  • Regeernate .opt.urls after nios2 removal (9afcbc2dd3, Andrew Pinski)
  • opt.url: Regenerate the .opt.urls files (cc0f32274d, Andrew Pinski)
  • build: Remove INCLUDE_MEMORY [PR117737] (b3f1b9e2aa, Andrew Pinski)
  • __builtin_prefetch fixes [PR117608] (f7bbdf7e4a, Jakub Jelinek)
  • RISC-V: Use dynamic shadow offset (c84a8a274a, Kito Cheng)

Top Contributors

AuthorCommits
Andrew Pinski3
Jeff Law3
Robin Dapp2
Mariam Arutunian1
yulong1
Jakub Jelinek1
David Malcolm1
Kito Cheng1
Dongyan Chen1

Notable Discussions

LLVM (RISC-V)

246
Commits
44
Contributors
153455
Lines Added
103759
Lines Removed

LLVM (RISC-V) saw an exceptional level of activity with 246 commits from 44 contributors. That's +153,455/-103,759 lines of churn. Leading the charge was Craig Topper with 90 commits. New feature work included 95 commits: "[RISCV] Add Qualcomm uC Xqcisls (Scaled Load Store) extension (#117987)"; "[RISCV] Add TuneDisableLatencySchedHeuristic". Code generation improvements dominated with 89 commits. Work on Zaamo, Zacas, Zalrsc, Zbb, Zbkb, Zdinx accounted for 36 commits.

95 New features & support 89 Compiler backend / code generation 48 Cleanup & refactoring 36 ISA extensions 15 Vector extension (RVV) 15 Bug fixes 4 Performance optimisations

Notable Changes

  • Revert "[DAGCombiner] Add support for scalarising extracts of a vector setcc (#116031)" (#117556) (9b76e7fc60, David Sherwood)
  • [DAGCombiner] Add support for scalarising extracts of a vector setcc (#116031) (22ec44f509, David Sherwood)
  • [RISCV] Add an implementation of findRepresentativeClass to assign i32 to GPRRegClass for RV64. (#116165) (900c056531, Craig Topper)
  • [RISCV] Add additional CHECK prefixes to fixed-vectors-strided-load-store-asm.ll. NFC (2187738508, Craig Topper)
  • [RISCV] Enable scalable loop vectorization for zvfhmin/zvfbfmin (#115272) (b2e2d8b3f6, Luke Lau)
  • [RISCV][SLEEF]: Support SLEEF vector library for RISC-V target. (#114014) (93caee17ad, Mark Goncharov)
  • [RISCV] Add Qualcomm uC Xqcisls (Scaled Load Store) extension (#117987) (8fcbba82d6, Sudharsan Veeravalli)
  • [RISCV][GISel] Support s32/s64 G_FSUB/FDIV/FNEG without F/D extensions. (bb5bbe523d, Craig Topper)
  • [RISCV][GISel] Remove s32 support for G_ADD/SUB/AND/OR/XOR on RV64. (c280522f7e, Craig Topper)
  • [RISCV] Add coverage for recently added vectorization intrinsics (1f342f94b2, Philip Reames)
  • [DAGCombiner] Add basic support for `trunc nsw/nuw` (#113808) (f74aed7938, Yingwei Zheng)
  • [RISCV] Add Qualcomm uC Xqcicsr (CSR) extension (#117169) (c4645ffeda, Sudharsan Veeravalli)
  • [RISCV] Add explicit VLS test line for vector spill/fill (6da8ff82a8, Philip Reames)
  • [RISCV] Add Zfinx/Zdinx RUN lines to rv64d-double-convert-strict.ll and rv64f-float-convert-strict.ll. NFC (f4270045f4, Craig Topper)
  • [RISCV] Add +optimized-nfN-segment-load-store (#114414) (beb12f92c7, Luke Lau)

Top Contributors

AuthorCommits
Craig Topper90
Luke Lau26
Philip Reames19
Fangrui Song18
Pengcheng Wang12
Sam Elliott7
Alex Bradbury7
LiqinWeng6
Brandon Wu6
Kazu Hirata4

glibc (RISC-V)

13
Commits
2
Contributors
4
Lines Added
210
Lines Removed

A quieter month for glibc (RISC-V), with 13 commits from 2 contributors. The codebase got leaner: +4/-210. Adhemerval Zanella was the driving force, authoring 11 of 13 commits (84%).

2 Compiler backend / code generation

Notable Changes

  • RISC-V: Use builtin for copysign and copysignf (d2264de5db, Julian Zhu)
  • math: Use tanf from CORE-MATH (and 10 more) (bccb0648ea, Adhemerval Zanella)
  • RISC-V: Use builtin for fma and fmaf (32445b6dd2, Julian Zhu)

Top Contributors

AuthorCommits
Adhemerval Zanella11
Julian Zhu2

Binutils (RISC-V)

4
Commits
3
Contributors
137
Lines Added
15
Lines Removed

Binutils (RISC-V) was quiet this month with 4 commits from 3 contributors.

2 ISA extensions 2 New features & support 1 Bug fixes

Notable Changes

  • RISC-V: Support SiFive extensions: xsfvqmaccdod, xsfvqmaccqoq and xsfvfnrclipxfqf (595e49a4b7, Nelson Chu)
  • RISC-V: Add Zcmt instructions and csr. (00ef37e860, Jiawei)
  • RISC-V: Don't report warnings when linking different privileged spec objects. (cb45bd5948, Nelson Chu)
  • opcodes: fix Werror=format build breaker in opcodes/riscv-dis.c (6206516653, Tom de Vries)

Top Contributors

AuthorCommits
Nelson Chu2
Tom de Vries1
Jiawei1

GDB (RISC-V)

2
Commits
2
Contributors
2
Lines Added
2
Lines Removed

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

Notable Changes

  • gdbserver: pass osabi to GDB in more target descriptions (1048062a3f, Andrew Burgess)
  • gdbserver: remove lwpid_of(thread) (5929ef8975, Simon Marchi)

Top Contributors

AuthorCommits
Andrew Burgess1
Simon Marchi1

U-Boot (RISC-V)

2
Commits
2
Contributors
101
Lines Added
1
Lines Removed

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

2 New features & support

Notable Changes

  • dm: Add dm_remove_devices_active() for ordered device removal (dabaa4ae32, Janne Grunau)
  • riscv: Introduce configuration for 64bit version Microblaze V (d5f5e77818, Michal Simek)

Top Contributors

AuthorCommits
Janne Grunau1
Michal Simek1

Rust (RISC-V)

2
Commits
2
Contributors
3
Lines Added
2
Lines Removed

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

Notable Changes

  • tests: use `max-llvm-major-version` instead of `ignore-llvm-version` range like `N - 99` (91fa16b211, 许杰友 Jieyou Xu (Joe))
  • Update linux_musl base to dynamically link the crt by default (9c37c14aa2, Wesley Wiser)

Top Contributors

AuthorCommits
Wesley Wiser1
许杰友 Jieyou Xu (Joe)1

OpenOCD (RISC-V)

2
Commits
2
Contributors
8
Lines Added
15
Lines Removed

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

1 New features & support

Notable Changes

  • stlink: deprecate HLA support (34ec5536c0, Antonio Borneo)
  • target: riscv: convert 'unsigned' to 'unsigned int' (134e56338d, Mark Zhuang)

Top Contributors

AuthorCommits
Mark Zhuang1
Antonio Borneo1

Linux Kernel Docs & DT (RISC-V)

3
Commits
2
Contributors
40
Lines Added
0
Lines Removed

A light month for Linux Kernel Docs & DT (RISC-V) with 3 commits from 2 contributors. Most of the work came from Alexandre Ghiti (2 of 3 commits, 66%).

3 New features & support 3 Device tree / platform support 2 ISA extensions

Notable Changes

  • dt-bindings: riscv: Add Ziccrse ISA extension description (447b2afbcd, Alexandre Ghiti)
  • dt-bindings: riscv: Add Zabha ISA extension description (51624ddcf5, Alexandre Ghiti)
  • dt-bindings: riscv: Add Svade and Svadu Entries (b8d4816717, Yong-Xuan Wang)

Top Contributors

AuthorCommits
Alexandre Ghiti2
Yong-Xuan Wang1