RISC-V Software News

July 2024 — Upstream Open Source Activity

The Big Picture

The RISC-V open source ecosystem logged 306 commits across 11 projects in July 2024. LLVM (RISC-V) led with 177 commits (57%). Also active: Linux Kernel (RISC-V) (48), QEMU (RISC-V) (34), OpenSBI (16). Software support advanced for Smcntrpmf, Zacas, Zawrs, Zbc, Zbkb, Zfhmin, Zvfhmin.

RISC-V International

The spec repos saw 71 commits this month, led by ISA Manual with 50 commits.

Spec Repository Activity

RepositoryCommitsContributors
ISA Manual 50 12
Profiles 9 1
Debug Spec 7 2
ELF psABI 5 4

Linux Kernel (RISC-V)

48
Commits
32
Contributors
1686
Lines Added
412
Lines Removed

Linux Kernel (RISC-V) saw healthy activity with 48 commits from 32 contributors. Charlie Jenkins was the most active contributor with 4 commits. New feature work included 14 commits: "riscv: enable HAVE_ARCH_STACKLEAK"; "RISC-V: ACPI: Enable SPCR table for console output on RISC-V". Extension support saw 7 commits covering Zawrs, Zbc. Platform and DT work accounted for 6 commits. Optimisation efforts accounted for 5 commits.

14 New features & support 7 ISA extensions 6 Device tree / platform support 5 Performance optimisations 2 Security & memory safety fixes 2 Bug fixes 1 KVM / Virtualisation 1 Vector extension (RVV) 1 Cleanup & refactoring

Notable Changes

  • riscv, bpf: Add 12-argument support for RV64 bpf trampoline (and 2 more) (6801b0aef7, Pu Lehui)
  • riscv: Introduce vendor variants of extension helpers (and 2 more) (0f24254111, Charlie Jenkins)
  • ACPI: RISCV: Add NUMA support based on SRAT and SLIT (eabd9db64e, Haibo Xu)
  • riscv: Optimize crc32 with Zbc extension (a43fe27d65, Xiao Wang)
  • riscv: Add Zawrs support for spinlocks (b8ddb0df30, Christoph Müllner)
  • riscv: cpufeature: Extract common elements from extension checking (d4c8d79f51, Charlie Jenkins)
  • RISC-V: ACPI: Enable SPCR table for console output on RISC-V (38738947db, Sia Jee Heng)
  • mm: implement update_mmu_tlb() using update_mmu_tlb_range() (8f65aa3223, Bang Li)
  • riscv: dts: starfive: add PCIe dts configuration for JH7110 (2904244a8c, Minda Chen)
  • trace: riscv: Remove deprecated kprobe on ftrace support (3308172276, Jinjie Ruan)
  • riscv: hwprobe: export highest virtual userspace address (c9b8cd139c, Clément Léger)
  • riscv: stacktrace: fix usage of ftrace_graph_ret_addr() (393da6cbb2, Puranjay Mohan)
  • riscv: dts: add clock generator for Sophgo SG2042 SoC (b1240a3951, Chen Wang)
  • mm: provide mm_struct and address to huge_ptep_get() (e6c0c03245, Christophe Leroy)
  • riscv: Add tracepoints for SBI calls and returns (56c1c1a09a, Samuel Holland)

Top Contributors

AuthorCommits
Charlie Jenkins4
Yunhui Cui3
Andrew Jones3
Samuel Holland3
Pu Lehui3
Jisheng Zhang2
Conor Dooley2
Arnd Bergmann2
Puranjay Mohan2
Bang Li2

OpenSBI

16
Commits
6
Contributors
307
Lines Added
184
Lines Removed

OpenSBI saw moderate activity with 16 commits from 6 contributors. Leading the charge was Anup Patel with 6 commits. New feature work included 6 commits: "lib: sbi: Introduce an early console buffer for caching early prints"; "include: sbi: Add macros to create FIFO as local or global variable". 1 commit targeted performance improvements.

6 New features & support 1 ISA extensions 1 Performance optimisations 1 Device tree / platform support

Notable Changes

  • lib: utils/fdt: Add support for parsing riscv,isa-extensions (f7a92f6b67, Conor Dooley)
  • lib: sbi: Introduce an early console buffer for caching early prints (and 3 more) (bb7267a07f, Anup Patel)
  • include: sbi: Add macros to create FIFO as local or global variable (d35c76a766, Anup Patel)
  • .github: Add repo lockdown GitHub workflow and update .gitignore (c531adbf08, Dongdong Zhang)
  • scripts/carray.sh: Add comment to generated files (75ad25ab59, Ivan Orlov)
  • lib: tests: add math test suite (b7e7e66026, Dongdong Zhang)
  • lib: tests: enhance test output with colored pass/fail messages (c5c1d04346, Dongdong Zhang)
  • lib: sbi_hsm: Save/restore menvcfg only when it exists (4afb57c9eb, Samuel Holland)
  • platform: Setup serial console device in early_init() (9e8a18fd0d, Anup Patel)
  • lib: sbi_emulate_csr: Do not log illegal CSR accesses (d8608e615f, Samuel Holland)
  • Makefile: change to using .carray.c for carray files (fd9e8b17ed, Ben Dooks)
  • docs: writing tests: update cleaning instructions (0a66754295, Ivan Orlov)
  • Makefile: remove any .carray.c during clean (1ede0cab0e, Ben Dooks)

Top Contributors

AuthorCommits
Anup Patel6
Dongdong Zhang3
Samuel Holland2
Ivan Orlov2
Ben Dooks2
Conor Dooley1

QEMU (RISC-V)

34
Commits
12
Contributors
1319
Lines Added
255
Lines Removed

QEMU (RISC-V) saw moderate activity with 34 commits from 12 contributors. Leading the charge was LIU Zhiwei with 11 commits. New feature work included 15 commits: "hw/riscv/virt-acpi-build.c: Add namespace devices for PLIC and APLIC"; "target/riscv: Implement privilege mode filtering for cycle/instret". Work on Smcntrpmf, Zawrs accounted for 12 commits. Virtualisation work accounted for 1 patch, continuing to mature RISC-V KVM support.

15 New features & support 12 ISA extensions 2 Device tree / platform support 1 KVM / Virtualisation 1 Interrupt controllers (AIA/APLIC/PLIC) 1 Compiler backend / code generation 1 Bug fixes

Notable Changes

  • target/riscv: Add cycle & instret privilege mode filtering support (and 2 more) (b54a84c15e, Kaiwen Xue)
  • disas/riscv: Add decode for Zawrs extension (4d46d84ea7, Balaji Ravikumar)
  • target: Set TCGCPUOps::cpu_exec_halt to target's has_work implementation (4f7b1ecba8, Peter Maydell)
  • hw/riscv/virt-acpi-build.c: Add namespace devices for PLIC and APLIC (a54dd0cd6b, Sunil V L)
  • target/riscv: Expose zabha extension as a cpu property (and 7 more) (8aebaa2591, LIU Zhiwei)
  • disas/riscv: Support zabha disassemble (and 2 more) (ae4bdcef6f, LIU Zhiwei)
  • target/riscv: raise an exception when CSRRS/CSRRC writes a read-only CSR (38c83e8d3a, Yu-Ming Chang)
  • target/riscv: More accurately model priv mode filtering. (and 2 more) (74112400df, Rajnesh Kanwal)
  • hw/riscv/virt-acpi-build.c: Update the HID of RISC-V UART (faacd2e6b6, Sunil V L)
  • hw/riscv/virt.c: re-insert and deprecate 'riscv,delegate' (38facfa843, Daniel Henrique Barboza)
  • target/riscv: Expose the Smcntrpmf config (and 6 more) (6f6592d62e, Atish Patra)
  • target/riscv/kvm: update KVM regs to Linux 6.10-rc5 (3cb9f20499, Daniel Henrique Barboza)
  • target/riscv: Validate the mode in write_vstvec (910c18a917, Jiayi Li)
  • target/riscv: Simplify probing in vext_ldff (3f57638a7e, Richard Henderson)
  • target/riscv: Restrict semihosting to TCG (10425887ba, Philippe Mathieu-Daudé)

Top Contributors

AuthorCommits
LIU Zhiwei11
Atish Patra7
Rajnesh Kanwal3
Kaiwen Xue3
Sunil V L2
Daniel Henrique Barboza2
Richard Henderson1
Philippe Mathieu-Daudé1
Yu-Ming Chang1
Balaji Ravikumar1

LLVM (RISC-V)

177
Commits
38
Contributors
17714
Lines Added
21483
Lines Removed

It was a busy month in LLVM (RISC-V) land, with 177 commits from 38 contributors. Notably, more code was removed than added (+17,714/-21,483). Craig Topper was the most active contributor with 51 commits. New feature work included 40 commits: "[RISCV] Add isel special case for (and (srl X, c2), c1) -> (slli_uw (srli x, c2+c3), c3). (#100966)"; "[RISCV] Add more srli+slli.uw tests cases for #100936. NFC". Code generation improvements dominated with 35 commits. Vector extension support moved forward with 25 commits.

40 New features & support 35 Compiler backend / code generation 32 Cleanup & refactoring 25 Vector extension (RVV) 19 ISA extensions 10 Bug fixes 2 Performance optimisations

Notable Changes

  • [RISCV] Implement Intrinsics Support for XCValu Extension in CV32E40P (#85603) (56f0ecd6db, realqhc)
  • [RISCV] Teach fillUpExtensionSupportForSplat to handle nxvXi64 VMV_V_X_VL on RV32. (#99251) (d85f1054fb, Craig Topper)
  • [RISCV] Add missing CHECK prefix to fixed-vectors-vfw-web-simplification.ll. NFC (deb40a253a, Craig Topper)
  • [RISCV][LoopIdiomVectorize] Support VP intrinsics in LoopIdiomVectorize (#94082) (8b55d342b6, Min-Yih Hsu)
  • [RISCV] Add capital letters to T-Head extension names in descriptions. (#99070) (e8ab413259, Craig Topper)
  • [RISCV] Add -m[no-]scalar-strict-align and -m[no-]vector-strict-align. (#95024) (73acf8d755, Craig Topper)
  • [RISCV][MC] Add support for hardcode encoding of .insn directive (#98030) (2a086dce69, Yingwei Zheng)
  • [RISCV] Implement Intrinsics for XCVmac Extension in CV32E40P (#83112) (6441df3b59, realqhc)
  • [RISCV] Don't crash in RISCVMergeBaseOffset if INLINE_ASM uses address register in a non-memory constraint. (#100790) (c901b739b6, Craig Topper)
  • [RISCV] Add support for getHostCPUFeatures using hwprobe (#94352) (578cf724de, Yingwei Zheng)
  • [RISCV] Add coverage of build vectors with rv32 + v + bitmanip (7217201dd9, Philip Reames)
  • [RISCV] Add QingKe "XW" compressed opcode extension (#97925) (3c5f929ad0, R)
  • [RISCV] Add FMA support to combineOp_VLToVWOp_VL. (#100454) (b582b658d6, Craig Topper)
  • [RISCV] Support vXf16 vector_shuffle with Zvfhmin. (#97491) (c67653fbc3, Craig Topper)
  • [RISCV] Add groupid/bitmask for RISC-V extension (#94440) (f4d4ce1a31, Piyou Chen)

Top Contributors

AuthorCommits
Craig Topper51
Luke Lau35
Fangrui Song16
Philip Reames14
Yingwei Zheng5
Yeting Kuo5
Alex Bradbury4
paperchalice3
Paul Kirth3
Julius Alexandre2

glibc (RISC-V)

3
Commits
3
Contributors
26
Lines Added
4
Lines Removed

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

Notable Changes

  • Update syscall lists for Linux 6.10 (eb0776d4e1, Adhemerval Zanella)
  • riscv: Update nofpu libm test ulps (b85a23d736, Darius Rad)
  • riscv: Update ulps (ff03b5efe6, Khem Raj)

Top Contributors

AuthorCommits
Adhemerval Zanella1
Khem Raj1
Darius Rad1

Binutils (RISC-V)

5
Commits
5
Contributors
157
Lines Added
111
Lines Removed

Binutils (RISC-V) saw lighter activity with 5 commits from 5 contributors.

1 ISA extensions 1 Bug fixes 1 New features & support

Notable Changes

  • RISC-V: Add platform property/capability extensions (25f05199bb, Tsukasa OI)
  • RISC-V: hash with segment id and pcrel_hi address while recording pcrel_hi (f9d218de5c, Lifang Xia)
  • RISC-V: PR32001, Untranslated "internal:" prefix for error message. (91a84aaf9a, Nelson Chu)
  • RISC-V: avoid use of match_opcode() in riscv_insn_types[] (8c1d0aea1d, Jan Beulich)
  • RISC-V: Fix BFD_RELOC_RISCV_PCREL_LO12_S patch issue (c83ea305e2, Sun Sunny)

Top Contributors

AuthorCommits
Nelson Chu1
Tsukasa OI1
Jan Beulich1
Sun Sunny1
Lifang Xia1

U-Boot (RISC-V)

5
Commits
4
Contributors
22
Lines Added
7
Lines Removed

A quieter month for U-Boot (RISC-V), with 5 commits from 4 contributors.

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

Notable Changes

  • Revert "riscv: dts: jh7110: Enable PLL node in SPL" (dd3cd9eecc, Leo Yu-Chi Liang)
  • riscv: add RISC-V fields to bdinfo command (66b5ee9c55, Heinrich Schuchardt)
  • board: sifive: unmatched: remove extra space in fdtfile value (763a5d03c4, Andreas Schwab)
  • doc: Move bootstd into its own directory (c684db989e, Simon Glass)
  • riscv: semihosting: correct alignment (36756308a2, Heinrich Schuchardt)

Top Contributors

AuthorCommits
Heinrich Schuchardt2
Leo Yu-Chi Liang1
Andreas Schwab1
Simon Glass1

Rust (RISC-V)

5
Commits
4
Contributors
403
Lines Added
106
Lines Removed

Not the busiest month for Rust (RISC-V): 5 commits from 4 contributors.

3 New features & support

Notable Changes

  • Add new maintainers (462a48e1e7, Ana Hobden)
  • Add target page for riscv64gc-unknown-linux-gnu (32efd23955, Ana Hobden)
  • Add NuttX based targets for RISC-V and ARM (a84ddc80ac, Huang Qi)
  • Fill out target-spec metadata for all targets (3b14526cea, Harry Moulton)
  • Reformat `use` declarations. (84ac80f192, Nicholas Nethercote)

Top Contributors

AuthorCommits
Ana Hobden2
Nicholas Nethercote1
Huang Qi1
Harry Moulton1

OpenOCD (RISC-V)

6
Commits
2
Contributors
72
Lines Added
42
Lines Removed

A quieter month for OpenOCD (RISC-V), with 6 commits from 2 contributors. Marc Schink was the driving force, authoring 4 of 6 commits (66%).

1 Bug fixes

Notable Changes

  • doc: document 'target create' flags '-dbgbase' and '-coreid' (c9f22c79df, Antonio Borneo)
  • doc: Remove outdated '-pipe' option (31e0fc4a7a, Marc Schink)
  • server/tcl: Restructure commands (73b15194ea, Marc Schink)
  • server/gdb: Restructure commands (44cfdef0a4, Marc Schink)
  • jtag/hla: Restructure commands (4d99e77419, Marc Schink)
  • doc: fix makeinfo warning (4c6646f10a, Antonio Borneo)

Top Contributors

AuthorCommits
Marc Schink4
Antonio Borneo2

OpenBLAS (RISC-V)

6
Commits
2
Contributors
106
Lines Added
59
Lines Removed

Not the busiest month for OpenBLAS (RISC-V): 6 commits from 2 contributors. Martin Kroeker was the driving force, authoring 4 of 6 commits (66%).

3 Bug fixes 1 New features & support

Notable Changes

  • Add autodetection for riscv64 (3b715e6162, Mark Ryan)
  • fix NAN handling and make it depend on dummy2 parameter (2020569705, Martin Kroeker)
  • Fix axpby_rvv kernels for cases where inc_y = 0 (67bf4b6998, Mark Ryan)
  • make NAN handling depend on dummy2 parameter (3870995f01, Martin Kroeker)
  • make NAN handling depend on dummy2 parameter (7284c533b5, Martin Kroeker)
  • fix inverted conditional for NAN handling (a875304eb0, Martin Kroeker)

Top Contributors

AuthorCommits
Martin Kroeker4
Mark Ryan2

Linux Kernel Docs & DT (RISC-V)

1
Commits
1
Contributors
7
Lines Added
0
Lines Removed

Linux Kernel Docs & DT (RISC-V) had exactly one commit this month. ISA extension work spanned 1 commit, touching Zawrs.

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

Notable Changes

  • dt-bindings: riscv: Add Zawrs ISA extension description (6d58528116, Andrew Jones)

Top Contributors

AuthorCommits
Andrew Jones1