RISC-V Software News

June 2024 — Upstream Open Source Activity

The Big Picture

The RISC-V open source ecosystem logged 300 commits across 9 projects in June 2024. The most active projects were LLVM (RISC-V) (125), QEMU (RISC-V) (62), Linux Kernel (RISC-V) (56). The extension landscape saw work on Svadu, Zacas, Zbkb, Zmmul, Zvbb, Zve32x, Zve64x, Zvfhmin. Virtualisation saw 17 KVM-related patches.

RISC-V International

The spec repos saw 80 commits this month, led by ISA Manual with 67 commits.

Spec Repository Activity

RepositoryCommitsContributors
ISA Manual 67 8
Profiles 5 2
Debug Spec 3 3
SBI Spec 3 2
ELF psABI 2 2

Linux Kernel (RISC-V)

56
Commits
28
Contributors
1411
Lines Added
390
Lines Removed

Linux Kernel (RISC-V) had a solid month with 56 commits from 28 contributors. Björn Töpel was the most active contributor with 10 commits. New feature work included 20 commits: "riscv: Enable DAX VMEMMAP optimization"; "riscv: mm: Add support for ZONE_DEVICE". Virtualisation work accounted for 9 patches, continuing to mature RISC-V KVM support. Platform and DT work accounted for 7 commits.

20 New features & support 10 ISA extensions 9 KVM / Virtualisation 7 Device tree / platform support 6 Interrupt controllers (AIA/APLIC/PLIC) 2 Bug fixes 2 Cleanup & refactoring 2 Performance optimisations 1 Security & memory safety fixes 1 Vector extension (RVV)

Notable Changes

  • riscv, bpf: Introduce shift add helper with Zba optimization (96a27ee76f, Xiao Wang)
  • riscv: add ISA extension parsing for Zcmop (and 3 more) (164d644059, Clément Léger)
  • riscv: mm: Add support for ZONE_DEVICE (and 7 more) (216e04bf1e, Björn Töpel)
  • riscv: dmi: Add SMBIOS/DMI support (d6ecd18893, Haibo Xu)
  • riscv: dts: starfive: jh7110: Add the core reset and jh7110 compatible for uarts (4ed81d9dd7, Hal Feng)
  • function_graph: Everyone uses HAVE_FUNCTION_GRAPH_RET_ADDR_PTR, remove it (5f7fb89a11, Steven Rostedt (Google))
  • riscv: dts: microchip: add an initial devicetree for the BeagleV Fire (3f41368fbf, Conor Dooley)
  • RISC-V: KVM: Allow Zcmop extension for Guest/VM (and 2 more) (29cf9b803e, Clément Léger)
  • riscv: hwprobe: export Zcmop ISA extension (and 2 more) (fc078ea317, Clément Léger)
  • RISCV: KVM: add tracepoints for entry and exit events (91195a90f1, Shenlin Liang)
  • riscv: dts: starfive: add Star64 board devicetree (2606bf583b, Henry Bell)
  • riscv: defconfig: Enable StarFive JH7110 drivers (d8a7d89abb, Hal Feng)
  • RISC-V: fix vector insn load/store width mask (04a2aef59c, Jesse Taube)
  • riscv: dts: thead: th1520: Add PMU event node (c61fea676b, Inochi Amaoto)
  • riscv: Enable memory hotplugging for RISC-V (f8c2a24055, Björn Töpel)

Top Contributors

AuthorCommits
Björn Töpel10
Clément Léger10
Samuel Holland8
Alexandre Ghiti2
Anup Patel2
Hal Feng2
Haibo Xu1
Andy Chiu1
Yu-Wei Hsu1
Shenlin Liang1

OpenSBI

22
Commits
9
Contributors
594
Lines Added
190
Lines Removed

OpenSBI saw moderate activity with 22 commits from 9 contributors. Xiang W was the most active contributor with 8 commits. Device tree and platform support saw 9 commits. Bug fixes accounted for 6 commits (27%). New feature work included 6 commits: "lib: sbi: implement SBI FWFT extension"; "lib: sbi: fwft: add support for SBI_FWFT_PTE_AD_HW_UPDATING". ISA extension work spanned 3 commits, touching Svadu.

9 Device tree / platform support 6 Bug fixes 6 New features & support 3 ISA extensions 2 Interrupt controllers (AIA/APLIC/PLIC)

Notable Changes

  • lib: sbi: Add support for Svade and Svadu extensions (53844c98d0, Yong-Xuan Wang)
  • platform: generic: andes: Add support for RV32 to set up PMA (52dcf351cd, Ben Zong-You Xie)
  • lib: utils/irqchip: Skip initialize irqchip when dt is not enabled (b1c7c750f7, Xiang W)
  • lib: utils/serial: Skip initialize serial when dt is not enabled (179e00a320, Xiang W)
  • lib: utils/timer: Skip initialize timer when dt is not enabled (5e3ad7d577, Xiang W)
  • lib: utils/ipi: Skip initialize ipi when dt is not enabled (c5be0e1ed1, Xiang W)
  • lib: sbi: check incoming dbtr shmem address (23b7badeee, Sergey Matyukevich)
  • lib: sbi: fwft: return SBI_EINVAL rather than SBI_ERR_INVALID_PARAM (and 5 more) (caae2f7d45, Clément Léger)
  • lib: utils/reset: Try initializing all reset devices in dt (and 2 more) (62e178a0a7, Xiang W)
  • sbi: sbi_domain_context: Fix trap context for domain context switching (3a94a32580, Yu Chien Peter Lin)
  • lib: utils/serial: Fix fdt_serial to match more dt nodes (86bbe6c52f, Xiang W)
  • platform: generic: andes: Refine Andes PMA related code (f09f16430a, Ben Zong-You Xie)
  • lib: utils/fdt: Fix DT property for APLIC delegation (df3db6a901, Anup Patel)
  • lib: serial: fix RX path in litex-uart (7830e98785, Gabriel Somlo)
  • docs: Fix wrong filename (0e45b63471, Jacob Lin)

Top Contributors

AuthorCommits
Xiang W8
Clément Léger6
Ben Zong-You Xie2
Sergey Matyukevich1
Jacob Lin1
Yong-Xuan Wang1
Gabriel Somlo1
Yu Chien Peter Lin1
Anup Patel1

QEMU (RISC-V)

62
Commits
24
Contributors
1526
Lines Added
434
Lines Removed

QEMU (RISC-V) had a solid month with 62 commits from 24 contributors. Leading the charge was Daniel Henrique Barboza with 14 commits. New feature work included 21 commits: "target/riscv: Add functions for common matching conditions of trigger"; "target/riscv: Add Zc extension implied rule". ISA extension work spanned 14 commits, touching Zvbb, Zve32x, Zve64x, Zvfhmin, Zvkb. Virtualisation work accounted for 8 patches, continuing to mature RISC-V KVM support. Bug fixes accounted for 8 commits (12%).

21 New features & support 14 ISA extensions 8 KVM / Virtualisation 8 Bug fixes 7 Interrupt controllers (AIA/APLIC/PLIC) 5 Vector extension (RVV) 4 Device tree / platform support 3 Cleanup & refactoring

Notable Changes

  • target/riscv/kvm: add software breakpoints support (80b605056d, Chao Du)
  • target/riscv: rvv: Remove redudant SEW checking for vector fp narrow/widen instructions (and 3 more) (93cb52b7a3, Max Chou)
  • hw/riscv/boot.c: Support 64-bit address for initrd (0390039950, Cheng Yang)
  • target/riscv: Remove extension auto-update check statements (and 5 more) (cb5b50d91d, Frank Chang)
  • target/riscv: Relax vector register check in RISCV gdbstub (and 2 more) (4a90991234, Jason Chien)
  • riscv, gdbstub.c: fix reg_width in ricsv_gen_dynamic_vector_feature() (583edc4efb, Daniel Henrique Barboza)
  • target/riscv: rvzicbo: Fixup CBO extension register calculation (c5eb8d6336, Alistair Francis)
  • target/riscv: Implement dynamic establishment of custom decoder (8c8a7cd647, Huang Tao)
  • hw/riscv/virt.c: imsics DT: add 'qemu, imsics' to 'compatible' (8fb0bb5e8a, Daniel Henrique Barboza)
  • hw/riscv/virt.c: aplic DT: add 'qemu, aplic' to 'compatible' (362b31fc35, Daniel Henrique Barboza)
  • target/riscv: Remove experimental prefix from "B" extension (73ef14b127, Rob Bradford)
  • target/riscv/kvm: implement SBI debug console (DBCN) calls (a6b53378f5, Daniel Henrique Barboza)
  • target/riscv: Support the version for ss1p13 (and 4 more) (3adf4def19, Fea.Wang)
  • disas/riscv: Decode all of the pmpcfg and pmpaddr CSRs (915758c537, Alistair Francis)
  • target/riscv/cpu.c: fix Zvkb extension config (ff33b7a969, Yangyu Chen)

Top Contributors

AuthorCommits
Daniel Henrique Barboza14
Frank Chang6
Fea.Wang5
Philippe Mathieu-Daudé4
Max Chou4
Alvin Chang3
Jason Chien3
Clément Léger2
Chao Du2
Rajnesh Kanwal2

LLVM (RISC-V)

125
Commits
32
Contributors
18103
Lines Added
5805
Lines Removed

It was a busy month in LLVM (RISC-V) land, with 125 commits from 32 contributors. That's +18,103/-5,805 lines of churn. Leading the charge was Craig Topper with 53 commits. New feature work included 46 commits: "[IR] Add getDataLayout() helpers to Function and GlobalValue (#96919)"; "[RISCV] Add test for extending AVL live range across blocks. NFC". The compiler backend saw heavy activity with 42 commits touching code generation. Cleanup and refactoring made up 40 commits (32%). ISA extension work spanned 18 commits, touching Zbkb, Zmmul, Zvfhmin.

46 New features & support 42 Compiler backend / code generation 40 Cleanup & refactoring 18 ISA extensions 16 Vector extension (RVV) 5 Bug fixes

Notable Changes

  • [RISCV] Unify all the code that adds unaligned-scalar/vector-mem to Features vector. (#94660) (2d65097b4f, Craig Topper)
  • Reland "[RISCV] Support select/merge like ops for bf16 vectors when have Zvfbfmin" (#94565)" (be18daad06, Jianjian GUAN)
  • Revert "[RISCV] Support select/merge like ops for bf16 vectors when have Zvfbfmin" (#94565) (8c452d0cc5, Mehdi Amini)
  • [clang] Reland Add tanf16 builtin and support for tan constrained intrinsic (#94559) (189d471191, Farzon Lotfi)
  • [RISCV] Support select/merge like ops for bf16 vectors when have Zvfbfmin (#91936) (d5ab38f69c, Jianjian Guan)
  • [RISCV] Make the vsll->vadd intrinsic pattern support tail undisturbed intrinsics. (a3d9ca9297, Craig Topper)
  • [RISCV][GISel] Add calling convention support for half (#94110) (643e4718af, Yingwei Zheng)
  • [RISCV][NFC] Add UnsupportedSched multiclasses (#95948) (1a364b4eef, Anton Sidorenko)
  • [CodeGen] Support vectors across all backends (#95518) (6355fb45a5, Farzon Lotfi)
  • [RISCV] Codegen support for XCVmem extension (#76916) (2afea72968, Liao Chunyu)
  • [RISCV] Add Smcsrind and Sscsrind extension (#93952) (2fe72385a4, Monad)
  • [RISCV] Add smcdeleg and ssccfg extensions (#95163) (307d91ee62, Monad)
  • Recommit "[RISCV] Use vadd.vi for tail undisturbe vsub intrinsic with small immediate." (baa6609fad, Craig Topper)
  • [CodeGen][NewPM] Split `MachineDominatorTree` into a concrete analysis result (#94571) (837dc542b1, paperchalice)
  • Revert "[RISCV] Use vadd.vi for tail undisturbe vsub intrinsic with small immediate." (16aef9ec52, Craig Topper)

Top Contributors

AuthorCommits
Craig Topper53
Luke Lau8
Philip Reames8
Simon Pilgrim6
paperchalice5
Nikita Popov4
Anton Sidorenko4
Yingwei Zheng4
Gábor Spaits3
Pengcheng Wang3

glibc (RISC-V)

6
Commits
4
Contributors
249
Lines Added
67
Lines Removed

A quieter month for glibc (RISC-V), with 6 commits from 4 contributors.

3 New features & support

Notable Changes

  • Implement C23 exp2m1, exp10m1 (7ec903e028, Joseph Myers)
  • Implement C23 log10p1 (55eb99e9a9, Joseph Myers)
  • Implement C23 logp1 (bb014f50c4, Joseph Myers)
  • Convert to autoconf 2.72 (vanilla release, no distribution patches) (98ffc1bfeb, Andreas K. Hüttel)
  • RISC-V: Execute a PAUSE hint in spin loops (81c7f6193c, Christoph Müllner)
  • RISC-V: Update ulps (9f2bf0e23a, Julian Zhu)

Top Contributors

AuthorCommits
Joseph Myers3
Christoph Müllner1
Julian Zhu1
Andreas K. Hüttel1

Binutils (RISC-V)

16
Commits
8
Contributors
558
Lines Added
201
Lines Removed

Binutils (RISC-V) saw moderate activity with 16 commits from 8 contributors. ISA extension work spanned 12 commits, touching Zacas, Zvkn, Zvknha. New feature work included 11 commits: "RISC-V: Add Zabha extension CAS instructions."; "RISC-V: Add SiFive cease extension v1.0".

12 ISA extensions 11 New features & support

Notable Changes

  • RISC-V: Add support for XCVmem extension in CV32E40P (and 2 more) (29de80758f, Mary Bennett)
  • RISC-V: Add support for Zvfbfwma extension (and 2 more) (0b4595be3f, Xiao Zeng)
  • opcodes/riscv: add styling support to print_reg_list (47277edc32, Andrew Burgess)
  • RISC-V: Add Zabha extension CAS instructions. (805df5e4a8, Jiawei)
  • RISC-V: Support S[sm]csrind extension csrs. (b7641ae1af, Jiawei)
  • RISC-V: Add SiFive cease extension v1.0 (7003edc383, Hau Hsu)
  • RISC-V: Support Zacas extension. (88729e9616, Gianluca Guida)
  • RISC-V: Remove implicit enablement of Zvknha from Zvkn. (da16a23481, Feng Wang)
  • opcodes/riscv: prevent future use of disassemble_info::fprintf_func (5ccd31931e, Andrew Burgess)
  • RISC-V: Shrink the riscv_implicit_subsets table. (and 2 more) (685dcd295a, Nelson Chu)

Top Contributors

AuthorCommits
Nelson Chu3
Xiao Zeng3
Mary Bennett3
Jiawei2
Andrew Burgess2
Feng Wang1
Hau Hsu1
Gianluca Guida1

OpenOCD (RISC-V)

5
Commits
4
Contributors
43
Lines Added
14
Lines Removed

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

2 New features & support 1 ISA extensions

Notable Changes

  • flash/nor/nrf5: add basic nRF53 and nRF91 support (d94daf776c, Tomas Vanek)
  • target/riscv: support for smp group manipulation (d382c95d57, Parshintsev Anatoly)
  • doc: Minimally describe the BSCAN tunnel interface. (2f8bb252ff, Tim Newsome)
  • pld/intel: remove idcodes from intel.c (9bc7a381b2, Daniel Anselmi)
  • pld: small documentation fixes. (bf4be566a7, Daniel Anselmi)

Top Contributors

AuthorCommits
Daniel Anselmi2
Tomas Vanek1
Parshintsev Anatoly1
Tim Newsome1

OpenBLAS (RISC-V)

2
Commits
1
Contributors
11
Lines Added
8
Lines Removed

A light month for OpenBLAS (RISC-V) with 2 commits. Martin Kroeker was the driving force, authoring 2 of 2 commits (100%).

Notable Changes

  • Drop the -static Fortran flag from generic builds as it breaks OpenMP (df87aeb5a2, Martin Kroeker)
  • Handle INF and NAN in inputs (c1019d5832, Martin Kroeker)

Top Contributors

AuthorCommits
Martin Kroeker2

Linux Kernel Docs & DT (RISC-V)

6
Commits
4
Contributors
98
Lines Added
20
Lines Removed

Linux Kernel Docs & DT (RISC-V) saw lighter activity with 6 commits from 4 contributors. Board and device tree support got 6 commits. The interrupt subsystem got 1 patch of attention this month.

6 Device tree / platform support 5 New features & support 3 ISA extensions 1 Interrupt controllers (AIA/APLIC/PLIC)

Notable Changes

  • dt-bindings: riscv: add Zcmop ISA extension description (and 2 more) (700556a73b, Clément Léger)
  • dt-bindings: riscv: cpus: add ref to interrupt-controller (1f6e218859, Kanak Shilledar)
  • dt-bindings: riscv: starfive: add Star64 board compatible (c249e17c37, Henry Bell)
  • dt-bindings: riscv: microchip: document beaglev-fire (76ed031dc7, Conor Dooley)

Top Contributors

AuthorCommits
Clément Léger3
Kanak Shilledar1
Conor Dooley1
Henry Bell1