RISC-V Software News

August 2024 — Upstream Open Source Activity

The Big Picture

The RISC-V upstream saw 262 commits across 9 projects this August. LLVM (RISC-V) led with 160 commits (61%). Also active: Linux Kernel (RISC-V) (41), OpenSBI (36), Binutils (RISC-V) (7). The extension landscape saw work on Smctr, Sscofpmf, Ssctr, Zbkb, Zdinx, Zfhmin, Zfinx, Zhinx. Most-discussed mailing list thread: "[PATCH] RISC-V: Minimal support for Zimop extension." (Binutils (RISC-V), 10 replies).

RISC-V International

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

Spec Repository Activity

RepositoryCommitsContributors
ISA Manual 20 9
Debug Spec 7 3
SBI Spec 3 1
ELF psABI 1 1

Linux Kernel (RISC-V)

41
Commits
24
Contributors
881
Lines Added
345
Lines Removed

Linux Kernel (RISC-V) saw healthy activity with 41 commits from 24 contributors. Top contributor: Sunil V L with 6 commits. New feature work included 16 commits: "irqchip/riscv-aplic: Add ACPI support"; "irqchip/riscv-imsic: Add ACPI support". Device tree and platform support saw 13 commits. Bug fixes accounted for 8 commits (19%). AIA and interrupt controller work accounted for 7 patches.

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

Notable Changes

  • riscv: Enable generic CPU vulnerabilites support (0e3f3649d4, Jinjie Ruan)
  • irqchip/riscv-intc: Add ACPI support for AIA (f8619b66bd, Sunil V L)
  • irqchip/riscv-aplic: Add ACPI support (5122e380c2, Sunil V L)
  • irqchip/riscv-imsic: Add ACPI support (fbe826b1c1, Sunil V L)
  • riscv: Fix out-of-bounds when accessing Andes per hart vendor extension array (e01d48c699, Alexandre Ghiti)
  • riscv/kexec_file: Fix relocation type R_RISCV_ADD16 and R_RISCV_SUB16 unknown (c6ebf2c528, Ying Sun)
  • riscv/mm: Add handling for VM_FAULT_SIGSEGV in mm_fault_error() (0c710050c4, Zhe Qiao)
  • riscv: Re-introduce global icache flush in patch_text_XXX() (ee9a68394b, Alexandre Ghiti)
  • RISC-V: hwprobe: Add SCALAR to misaligned perf defines (1f5288874d, Evan Green)
  • riscv: mm: Do not restrict mmap address based on hint (2116988d53, Charlie Jenkins)
  • syscalls: fix syscall macros for newfstat/newfstatat (343416f0c1, Arnd Bergmann)
  • RISC-V: Enable the IPI before workqueue_online_cpu() (3908ba2e0b, Nick Hu)
  • ACPI: RISC-V: Implement PCI related functionality (01415e78cf, Sunil V L)
  • riscv: defconfig: sophgo: enable clks for sg2042 (3ccedd259c, Chen Wang)
  • RISC-V: lib: Add pi aliases for string functions (d57e19fcbf, Jesse Taube)

Top Contributors

AuthorCommits
Sunil V L6
Drew Fustini6
Jesse Taube4
Anup Patel2
Atish Patra2
Alexandre Ghiti2
Evan Green2
Charlie Jenkins1
Dan Carpenter1
Chen Wang1

OpenSBI

36
Commits
12
Contributors
757
Lines Added
372
Lines Removed

OpenSBI kept moving with 36 commits from 12 contributors. Leading the charge was Samuel Holland with 16 commits. Board and device tree support got 16 commits. Bug fixes accounted for 7 commits (19%). New feature work included 7 commits: "lib: utils/fdt: Add fdt_get_address_rw() helper"; "platform: generic: andes: add a new Andes SBI call to free a PMA entry".

16 Device tree / platform support 7 Bug fixes 7 New features & support 2 Cleanup & refactoring 1 Security & memory safety fixes 1 ISA extensions 1 Interrupt controllers (AIA/APLIC/PLIC)

Notable Changes

  • platform: generic: andes: add a new Andes SBI call to free a PMA entry (and 3 more) (3d1f53b173, Ben Zong-You Xie)
  • lib: utils: fdt_domain: Use consistent device-tree address when next-arg1 is missing (56183ca609, Yu Chien Peter Lin)
  • lib: utils/fdt: Add fdt_get_address_rw() helper (and 2 more) (8cb7f89d7c, Samuel Holland)
  • lib: sbi: Implement aligned memory allocators (and 2 more) (b9c091ed89, Gregor Haas)
  • lib: sbi: check result of pmp_get() in is_pmp_entry_mapped() (and 2 more) (6a090ee9dc, Carlos López)
  • platform: generic: Fix fw_platform_coldboot_harts_init() function (c4940a9517, Anup Patel)
  • lib: utils: fdt_domain: Make opensbi-domain optional in CPU node (b0ad9e0bdd, Gregor Haas)
  • platform: generic: Constify FDT pointers in fw_platform_init() (3f964652d9, Samuel Holland)
  • lib: utils/irqchip: Constify FDT pointers in parsing functions (7df1c8126f, Samuel Holland)
  • lib: utils/serial: Constify FDT pointers in parsing functions (bd76eb4950, Samuel Holland)
  • lib: utils/regmap: Constify FDT pointers in parsing functions (1bbda9b26f, Samuel Holland)
  • lib: utils/reset: Constify FDT pointers in parsing functions (57a0479302, Samuel Holland)
  • lib: utils/timer: Constify FDT pointers in parsing functions (b15cc7715a, Samuel Holland)
  • lib: utils/gpio: Constify FDT pointers in parsing functions (c585354380, Samuel Holland)
  • lib: utils/ipi: Constify FDT pointers in parsing functions (d561418f22, Samuel Holland)

Top Contributors

AuthorCommits
Samuel Holland16
Gregor Haas4
Ben Zong-You Xie4
Carlos López3
Yu Chien Peter Lin2
Anup Patel1
Zhang RunMin1
Daniel Henrique Barboza1
Clément Léger1
Leo Yu-Chi Liang1

QEMU (RISC-V)

5
Commits
3
Contributors
30
Lines Added
13
Lines Removed

Not the busiest month for QEMU (RISC-V): 5 commits from 3 contributors. Most of the work came from LIU Zhiwei (3 of 5 commits, 60%).

3 New features & support 1 Security & memory safety fixes 1 Device tree / platform support

Notable Changes

  • Revert "hw/riscv/virt.c: imsics DT: add '#msi-cells'" (6df664f87c, Andrew Jones)
  • target/riscv: Add asserts for out-of-bound access (73b0195416, Atish Patra)
  • target/riscv: Relax fld alignment requirement (and 2 more) (5e54b439f5, LIU Zhiwei)

Top Contributors

AuthorCommits
LIU Zhiwei3
Andrew Jones1
Atish Patra1

LLVM (RISC-V)

160
Commits
35
Contributors
39907
Lines Added
40257
Lines Removed

Plenty of action in LLVM (RISC-V) this month: 160 commits from 35 contributors. A net deletion month (+39,907/-40,257) — always satisfying. Top contributor: Craig Topper with 72 commits. The compiler backend saw heavy activity with 49 commits touching code generation. New feature work included 48 commits: "[RISCV] Add constant folding combine for FMV_X_ANYEXTW/H. (#106653)"; "[RISCV][TTI] Add legality check of vector of address for gather/scatter. (#106481)". Extension support saw 19 commits covering Smctr, Ssctr, Zdinx, Zfhmin, Zfinx, Zhinx.

49 Compiler backend / code generation 48 New features & support 44 Cleanup & refactoring 19 ISA extensions 14 Vector extension (RVV) 10 Bug fixes 4 Performance optimisations

Notable Changes

  • [RISCV] Implement RISCVTTIImpl::shouldConsiderAddressTypePromotion for RISCV (#102560) (abaa53199e, LiqinWeng)
  • [RISCV][TTI] Add legality check of vector of address for gather/scatter. (#106481) (e29c5f387f, Elvis Wang)
  • [RISCV] Add CSRs and an instruction for Smctr and Ssctr extensions. (#105148) (0ca77f6656, Craig Topper)
  • [RISCV] Add vector and vector crypto to SiFiveP400 scheduler model (#102155) (7efa068f7a, Michael Maitland)
  • [GlobalISel] Add bail outs for scalable vectors to some combines. (#106496) (4ca817d051, Craig Topper)
  • [RISCV][MC] Support experimental extensions Zvbc32e and Zvkgs (#103709) (a80a90e34b, Pengcheng Wang)
  • [RISCV] Add coverage for VP div[u]/rem[u] with non-power-of-2 vectors (aaba552f51, Philip Reames)
  • [LTO] enable `ObjCARCContractPass` only on optimized build (#101114) (74e4694b8c, Peter Rong)
  • Recommit "[RISCV] Add isel optimization for (and (sra y, c2), c1) to recover regression from #101751. (#104114)" (0381e01424, Craig Topper)
  • [RISCV] Add coverage for fp reductions of <2^N-1 x FP> vectors (c9ba6d35c1, Philip Reames)
  • Revert "[RISCV] Add isel optimization for (and (sra y, c2), c1) to recover regression from #101751. (#104114)" (858afe90aa, Hans Wennborg)
  • [RISCV] Add coverage for int reductions of <3 x i8> vectors (3145cff24b, Philip Reames)
  • [RISCV] Support new groupid/bitmask for cpu_model (#101632) (82f52d9c42, Piyou Chen)
  • RISC-V: Add fminimumnum and fmaximumnum support (#104411) (2b84fe6f16, YunQiang Su)
  • Revert b1234ddbe2652aa7948242a57107ca7ab12fd2f8. "[DAG] Add legalization handling for ABDS/ABDU (#92576)" (e4e96b3e26, Simon Pilgrim)

Top Contributors

AuthorCommits
Craig Topper72
Luke Lau16
Philip Reames15
Anton Sidorenko5
Fangrui Song5
Simon Pilgrim5
Brandon Wu4
Piyou Chen3
Pengcheng Wang3
Yeting Kuo3

glibc (RISC-V)

2
Commits
2
Contributors
99
Lines Added
32
Lines Removed

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

1 Bug fixes

Notable Changes

  • nptl: Fix Race conditions in pthread cancellation [BZ#12683] (89b53077d2, Adhemerval Zanella)
  • RISC-V: Regenerate ULPs (a0ecbb4596, Julian Zhu)

Top Contributors

AuthorCommits
Adhemerval Zanella1
Julian Zhu1

Binutils (RISC-V)

7
Commits
6
Contributors
433
Lines Added
58
Lines Removed

Binutils (RISC-V) saw lighter activity with 7 commits from 6 contributors. Extension support saw 5 commits covering Zbkb. On the mailing list, "[PATCH] RISC-V: Minimal support for Zimop extension." drew 10 replies.

5 ISA extensions 4 New features & support

Notable Changes

  • RISC-V: Add support for XCvBitmanip extension in CV32E40P (2f1739a348, Mary Bennett)
  • RISC-V: Add support for Zcmop extension (8a3ffa7194, Xiao Zeng)
  • RISC-V: Add support for Zimop extension (3ba06284d2, Xiao Zeng)
  • RISC-V: PR32036, Support Zcmp cm.mva01s and cm.mvsa01 instructions. (ca2590d780, Jiawei)
  • RISC-V: map zext.h to pack/packw if Zbkb is enabled (87e720ad35, Hau Hsu)
  • RISC-V: PR32014, .option directives shuoldn't affect elf attribute. (04c9cf0a8c, Nelson Chu)
  • RISC-V: process rs_align_code also when relaxing (b994624fa5, Jan Beulich)

Top Contributors

AuthorCommits
Xiao Zeng2
Jiawei1
Jan Beulich1
Nelson Chu1
Hau Hsu1
Mary Bennett1

GDB (RISC-V)

1
Commits
1
Contributors
1
Lines Added
1
Lines Removed

Just a single commit landed in GDB (RISC-V) this month.

Notable Changes

  • gdb: remove uses of VLA (d724d71ad2, Simon Marchi)

Top Contributors

AuthorCommits
Simon Marchi1

Rust (RISC-V)

3
Commits
2
Contributors
50
Lines Added
2
Lines Removed

Rust (RISC-V) was quiet this month with 3 commits from 2 contributors. Most of the work came from Amanieu d'Antras (2 of 3 commits, 66%).

1 New features & support

Notable Changes

  • Add platform support document for riscv64gc-unknown-linux-musl (9963a6c400, Amanieu d'Antras)
  • Make riscv64gc-unknown-linux-musl dynamically linked by default (a937a3b5a1, Amanieu d'Antras)
  • riscv64imac: allow shadow call stack sanitizer (9c29b33c7e, Ding Xiang Fei)

Top Contributors

AuthorCommits
Amanieu d'Antras2
Ding Xiang Fei1

OpenOCD (RISC-V)

7
Commits
4
Contributors
35
Lines Added
17
Lines Removed

Not the busiest month for OpenOCD (RISC-V): 7 commits from 4 contributors. Top contributor: Marc Schink with 4 commits.

1 New features & support

Notable Changes

  • doc: Add 'jlink targetpower' command (5b3d503e2e, Marc Schink)
  • doc: document that breakpoints are disabled on step/resume (ff22f78d46, Parshintsev Anatoly)
  • jtag: Use 'unsigned int' for 'scan_field.num_bits' (7d56407ba7, Marc Schink)
  • jtag: Use 'unsigned int' for 'abs_chain_position' (4fac13827f, Marc Schink)
  • transport: Remove echo in transport selection (b9224c0c0f, Marc Schink)
  • rtt: default the ID to "SEGGER RTT" (e7a060090e, Karl Palsson)
  • doc: document command 'ms' (a414ffaf65, Antonio Borneo)

Top Contributors

AuthorCommits
Marc Schink4
Karl Palsson1
Parshintsev Anatoly1
Antonio Borneo1