RISC-V Software News

May 2024 — Upstream Open Source Activity

The Big Picture

In May 2024, the RISC-V ecosystem saw 252 commits across 11 projects. The most active projects were LLVM (RISC-V) (127), Linux Kernel (RISC-V) (47), OpenSBI (30). Extension support continued to broaden, with work on Smstateen, Zaamo, Zalrsc, Zba, Zicsr. Most-discussed mailing list thread: "miscellaneous about sbi_dtbr" (OpenSBI, 11 replies).

RISC-V International

The spec repos saw 81 commits this month, led by ISA Manual with 57 commits.

Spec Repository Activity

RepositoryCommitsContributors
ISA Manual 57 15
Debug Spec 12 3
Profiles 5 3
SBI Spec 4 3
ELF psABI 3 3

Linux Kernel (RISC-V)

47
Commits
23
Contributors
754
Lines Added
381
Lines Removed

A productive month for Linux Kernel (RISC-V) with 47 commits from 23 contributors. Leading the charge was Andy Chiu with 6 commits. New feature work included 8 commits: "riscv: hwprobe: add zve Vector subextensions into hwprobe interface"; "riscv: cpufeature: add zve32[xf] and zve64[xfd] isa detection". Bug fixes accounted for 7 commits (14%). Vector extension support moved forward with 5 commits. Work on Zba accounted for 4 commits.

8 New features & support 7 Bug fixes 5 Vector extension (RVV) 4 ISA extensions 4 Device tree / platform support 2 Performance optimisations 1 Interrupt controllers (AIA/APLIC/PLIC) 1 Cleanup & refactoring

Notable Changes

  • riscv: hwprobe: add zve Vector subextensions into hwprobe interface (de8f8282a9, Andy Chiu)
  • riscv: vector: add a comment when calling riscv_setup_vsize() (77afe3e514, Andy Chiu)
  • riscv: add support for kernel-mode FPU (and 2 more) (77acc6b55a, Samuel Holland)
  • riscv: cpufeature: call match_isa_ext() for single-letter extensions (98a5700dfa, Andy Chiu)
  • riscv: cpufeature: add zve32[xf] and zve64[xfd] isa detection (1e7483542b, Andy Chiu)
  • riscv: enable HAVE_ARCH_HUGE_VMAP for XIP kernel (and 2 more) (7bed516174, Nam Cao)
  • riscv: Fix fully ordered LR/SC xchg[8|16]() implementations (1d84afaf02, Alexandre Ghiti)
  • riscv: vector: adjust minimum Vector requirement to ZVE32X (ac295b6742, Andy Chiu)
  • riscv: dts: microchip: add pac1934 power-monitor to icicle (1c80d50bb6, Conor Dooley)
  • riscv: cpufeature: Fix thead vector hwcap removal (e482eab4d1, Charlie Jenkins)
  • riscv: defconfig: Enable CONFIG_CLK_SOPHGO_CV1800 (92cce91949, Inochi Amaoto)
  • riscv: cpufeature: Fix extension subset checking (e67e98ee89, Charlie Jenkins)
  • mm/execmem, arch: convert simple overrides of module_alloc to execmem (f6bec26c0a, Mike Rapoport (IBM))
  • riscv, bpf: Try RVC for reg move within BPF_CMPXCHG JIT (and 3 more) (99fa63d9ca, Xiao Wang)
  • kbuild: use $(src) instead of $(srctree)/$(src) for source directory (b1992c3772, Masahiro Yamada)

Top Contributors

AuthorCommits
Andy Chiu6
Xiao Wang6
Puranjay Mohan4
Nam Cao3
Samuel Holland3
Mike Rapoport (IBM)3
Alexandre Ghiti2
Geert Uytterhoeven2
Emil Renner Berthing2
Charlie Jenkins2

OpenSBI

30
Commits
11
Contributors
669
Lines Added
239
Lines Removed

A steady month for OpenSBI with 30 commits from 11 contributors. Clément Léger was the most active contributor with 8 commits. New feature work included 9 commits: "lib: utils/irqchip: Add sanity checks in imsic_get_data() and imsic_get_target_file()"; "platform: generic: thead: add Sophgo CV18XX/SG200X series". Bug fixes accounted for 4 commits (13%). The interrupt subsystem got 2 patches of attention this month. On the mailing list, "[PATCH v4] firmware: remove FW_TEXT_START" drew 10 replies.

9 New features & support 4 Bug fixes 2 Interrupt controllers (AIA/APLIC/PLIC) 2 Cleanup & refactoring

Notable Changes

  • utils/reset: Add SG2042 hwmon MCU support. (ea9cf6aa28, Inochi Amaoto)
  • lib: utils/irqchip: Add sanity checks in imsic_get_data() and imsic_get_target_file() (858754a544, Cyan Yang)
  • sbi: sbi_domain_context: Add spinlock for updating domain assigned_harts (17e829129d, Alvin Chang)
  • platform: generic: thead: add Sophgo CV18XX/SG200X series (2bed4c1c57, Inochi Amaoto)
  • platform: generic: thead: add Canaan Kendryte K230 (019a8e69a1, Yangyu Chen)
  • lib: tests: Add test for spinlocks (and 2 more) (7b1ed968e4, Ivan Orlov)
  • lib: sbi: Refine the settings for switching to Virtual Supervisor Mode. (1d89a9da64, Pope B.Lei)
  • lib: sbi: sse: handle missing writable attributes (and 7 more) (ae5ef1848d, Clément Léger)
  • lib: sbi: simplify inline function in sbi_dtbr.c (and 5 more) (1cb792d606, Xiang W)
  • firmware: Bring back FW_TEXT_START as an optional parameter (96f0a2e3ea, Anup Patel)
  • platform: andes: Change all occurrences of andes45 to andes (2b93ce0954, Ben Zong-You Xie)
  • platform: andes: Rename files with the prefix andes45 (f68b3aed9d, Ben Zong-You Xie)
  • lib: sbi: Put event after use in sbi_sse_exit() loop (533067d182, Anup Patel)
  • platform: generic: thead: separate T-Head PMU Errata (33e21c9476, Yangyu Chen)
  • lib: utils/irqchip: Check before initializing imsic (e3a30a2c91, Cheng Yang)

Top Contributors

AuthorCommits
Clément Léger8
Xiang W6
Inochi Amaoto3
Ivan Orlov3
Anup Patel2
Yangyu Chen2
Ben Zong-You Xie2
Cyan Yang1
Cheng Yang1
Alvin Chang1

Notable Discussions

QEMU (RISC-V)

7
Commits
3
Contributors
29
Lines Added
24
Lines Removed

QEMU (RISC-V) saw lighter activity with 7 commits from 3 contributors.

Notable Changes

  • accel/tcg: Provide default implementation of disas_log (962a145cdc, Richard Henderson)
  • meson: pick libfdt from common_ss when building target-specific files (727bb5b477, Paolo Bonzini)
  • exec/cpu: Extract page-protection definitions to page-protection.h (74781c0888, Philippe Mathieu-Daudé)
  • kconfig: express dependency of individual boards on libfdt (d641ec30be, Paolo Bonzini)
  • accel/tcg: Access tcg_cflags with getter / setter (b254c342cf, Philippe Mathieu-Daudé)
  • target/riscv: Use translator_ld* for everything (1f9c446233, Richard Henderson)
  • riscv: switch boards to "default y" (a980c33dea, Paolo Bonzini)

Top Contributors

AuthorCommits
Paolo Bonzini3
Richard Henderson2
Philippe Mathieu-Daudé2

LLVM (RISC-V)

127
Commits
31
Contributors
27038
Lines Added
17807
Lines Removed

LLVM (RISC-V) saw heavy activity with 127 commits from 31 contributors. +27,038/-17,807 lines changed — a big diff. Top contributor: Craig Topper with 39 commits. Code generation improvements dominated with 38 commits. New feature work included 35 commits: "[DAGCombiner][VP] Add DAGCombine for VP_MUL (#80105)"; "[RISCV] Support (truncate (smin (smax X, C1), C2)) for vnclipu in combineTruncToVnclip. (#93756)". The vector extension (RVV) saw 29 commits of continued development.

39 Cleanup & refactoring 38 Compiler backend / code generation 35 New features & support 29 Vector extension (RVV) 10 ISA extensions 5 Bug fixes 1 Security & memory safety fixes

Notable Changes

  • [RISCV] Inogre CallingConv::RISCV_VectorCall in getCalleeSavedRegs if V/Zve is not enabled. (435771228c, Craig Topper)
  • [RISCV] Refactor combineTruncToVnclipu to prepare for adding signed vnclip support. NFC (424f82c204, Craig Topper)
  • [GISel] Add narrowScalar/widenScalar support for `G_CONSTANT_FOLD_BARRIER` (#93031) (821bcba00d, Yingwei Zheng)
  • [TableGen][RISCV] Add initial support for marking profiles as experimental (#91993) (e5a277b167, Alex Bradbury)
  • [GISel][RISCV] Add irtranslator/legalizer/selector support for G_FREEZE. (#92744) (76748119bf, Yingwei Zheng)
  • [RISCV] Gate unratified profiles behind -menable-experimental-extensions (#92167) (891d687137, Alex Bradbury)
  • [DAGCombiner] Mark vectors as not AllAddOne/AllSubOne on type mismatch (#92195) (4ab2ac22d0, Patrick O'Neill)
  • [RISCV] Teach .option arch to support experimental extensions. (#89727) (d70267fbae, Yeting Kuo)
  • [RISCV] Support interleaved accesses for scalable vector. (#90583) (3f1fef3699, Mel Chen)
  • [RISCV] Add Sched classes for vector crypto instructions (#90068) (56b8bd7744, Michael Maitland)
  • [RISCV][llvm-mca] Add vector crypto llvm-mca tests for P600 (4821882cdf, Michael Maitland)
  • [RISCV] Codegen support for XCVbi extension (#89719) (f4d2f7a3b7, Liao Chunyu)
  • [RISCV] Pass subvector type to isLegalInterleavedAccessType in getInterleavedMemoryOpCost. (#91825) (487b43cdc9, Craig Topper)
  • [RISCV] Add codegen support for Zvfbfmin (#87911) (37fcb323f6, Jianjian Guan)
  • [RISCV] Add isel special case for (and (shl X, c2), c1) -> (slli_uw (srli x, c3-c2), c3). (#91638) (dfff57e751, Craig Topper)

Top Contributors

AuthorCommits
Craig Topper39
Luke Lau27
Yingwei Zheng11
Michael Maitland6
Yeting Kuo5
Min-Yih Hsu4
Philip Reames4
Alex Bradbury4
Jianjian Guan2
Sergei Barannikov2

glibc (RISC-V)

2
Commits
2
Contributors
16
Lines Added
1
Lines Removed

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

1 New features & support

Notable Changes

  • Implement C23 log2p1 (79c52daf47, Joseph Myers)
  • Remove the clone3 symbol from libc.a [BZ #31770] (437c94e04b, H.J. Lu)

Top Contributors

AuthorCommits
H.J. Lu1
Joseph Myers1

Binutils (RISC-V)

5
Commits
3
Contributors
137
Lines Added
121
Lines Removed

Not the busiest month for Binutils (RISC-V): 5 commits from 3 contributors. Most of the work came from Nelson Chu (3 of 5 commits, 60%). Extension support saw 1 commit covering Zaamo, Zalrsc.

1 ISA extensions 1 New features & support

Notable Changes

  • RISC-V: PR31733, Change initial CFI operation from DW_CFA_def_cfa_register to DW_CFA_def_cfa (3ce12d6d4a, Sung-hun Kim)
  • RISC-V: Fixed overwritten IRELATIVE relocs in the .rel.iplt for data reloc. (and 2 more) (e8c2682572, Nelson Chu)
  • RISC-V: Search for mapping symbols from the last one found (7a7ec56c81, Joseph Faulls)

Top Contributors

AuthorCommits
Nelson Chu3
Sung-hun Kim1
Joseph Faulls1

GDB (RISC-V)

1
Commits
1
Contributors
2
Lines Added
1
Lines Removed

GDB (RISC-V) had exactly one commit this month. Bug fixes dominated: 1/1 commits (100%). A month focused on getting things right.

1 Bug fixes

Notable Changes

  • sim: riscv: Fix build issue due to recent binutils commit (b75187cd94, Bernd Edlinger)

Top Contributors

AuthorCommits
Bernd Edlinger1

U-Boot (RISC-V)

22
Commits
7
Contributors
684
Lines Added
56
Lines Removed

U-Boot (RISC-V) saw moderate activity with 22 commits from 7 contributors. Top contributor: Tom Rini with 6 commits. New feature work included 10 commits: "board: starfive: support Pine64 Star64 board"; "board: starfive: support Pine64 Star64 board".

10 New features & support 4 Device tree / platform support 2 Bug fixes 2 Cleanup & refactoring 1 ISA extensions

Notable Changes

  • cmd: sbi: add Supervisor Software Events extension (c57c187bd4, Heinrich Schuchardt)
  • board: add support for Milk-V Mars CM (de3229599d, Heinrich Schuchardt)
  • board: sipeed: Remove and add needed includes (dbfdce274f, Tom Rini)
  • board: thead: Remove and add needed includes (31534d8ad5, Tom Rini)
  • riscv: dts: sophgo: Add spi nor flash controller node (df0bfaa136, Kongyang Liu)
  • sysreset: Remove and add needed includes (33a67c5eee, Tom Rini)
  • board: starfive: support Pine64 Star64 board (a0dce09222, H Bell)
  • board: starfive: support Pine64 Star64 board (7ebf7e77c0, H Bell)
  • riscv: remove cache enablement in start.S (cea0ed2e3f, Leo Yu-Chi Liang)
  • riscv: dts: sophgo: Add ethernet node (5a4e0625ac, Kongyang Liu)
  • starfive: add mac vendor sub-command (fcaf019c4e, Heinrich Schuchardt)
  • Revert "Merge patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet"" (d678a59d2d, Tom Rini)
  • Restore patch series "arm: dts: am62-beagleplay: Fix Beagleplay Ethernet" (03de305ec4, Tom Rini)
  • board: starfive: Rename spl_soc_init() to spl_dram_init() (19b762cf83, Lukas Funke)
  • global: Make include (6a7185887b, Tom Rini)

Top Contributors

AuthorCommits
Tom Rini6
Heinrich Schuchardt6
Leo Yu-Chi Liang3
H Bell2
Lukas Funke2
Kongyang Liu2
Yu Chien Peter Lin1

OpenOCD (RISC-V)

3
Commits
2
Contributors
15
Lines Added
4
Lines Removed

OpenOCD (RISC-V) was quiet this month with 3 commits from 2 contributors. Most of the work came from R. Diez (2 of 3 commits, 66%). Stabilisation was the theme, with fixes accounting for 2/3 commits (66%).

2 Bug fixes 1 New features & support

Notable Changes

  • target/target: Add 'debug_reason' to current target (8667a72653, Marc Schink)
  • Documentation: Fix 2 warnings "Underfull \hbox (badness 10000)" (7c4ddfb546, R. Diez)
  • Documentation: fix warning "unbalanced square brackets" (437dde701c, R. Diez)

Top Contributors

AuthorCommits
R. Diez2
Marc Schink1

musl libc (RISC-V)

6
Commits
2
Contributors
2
Lines Added
44
Lines Removed

Not the busiest month for musl libc (RISC-V): 6 commits from 2 contributors. Rich Felker was the driving force, authoring 5 of 6 commits (83%).

Notable Changes

  • align aarch64, riscv64, loongarch64 stat structure padding type (ef600888d2, Rich Felker)
  • unistd.h: derive ILP32/LP64 macros from __LONG_MAX instead of arch bits (29b216b2f2, Rich Felker)
  • stdint.h: derive limits from __LONG_MAX, use common fast16 types (2c124e13bd, Rich Felker)
  • riscv mcontext_t/sigcontext: use __aligned__ instead of aligned (a23cf8f9c5, Michael Forney)
  • unify bits/stat.h for all archs sharing a common definition (0dfa1d8caa, Rich Felker)
  • sys/reg.h: derive __WORDSIZE from __LONG_MAX (e709a6f07a, Rich Felker)

Top Contributors

AuthorCommits
Rich Felker5
Michael Forney1

Linux Kernel Docs & DT (RISC-V)

2
Commits
2
Contributors
31
Lines Added
0
Lines Removed

Linux Kernel Docs & DT (RISC-V) was quiet this month with 2 commits from 2 contributors.

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

Notable Changes

  • dt-bindings: riscv: add Zve32[xf] Zve64[xfd] ISA extension description (037df2966a, Andy Chiu)
  • dt-bindings: riscv: Add T-HEAD C908 compatible (709407de64, Yangyu Chen)

Top Contributors

AuthorCommits
Andy Chiu1
Yangyu Chen1