← Back to Blog
RISC-V Development

Linux RISC-V Patch v8 Adds Zic64b and an RVA23U64 hwprobe Base Behaviour for K1, K3 and SG2044

RISC-V Linux kernel hwprobe Zic64b RVA23 RVA23U64 SpacemiT K1 SpacemiT K3 Sophgo SG2044 device tree cpufeature

Published: 2026-09-21 · Category: RISC-V Development · Reading time: ~5 min · Status: DRAFT

What landed on the list

On 20 September 2026, Guodong Xu posted [PATCH v8 00/11] riscv: hwprobe: Expose RVA23U64 base behavior to LKML. The cover letter heads an eleven-patch series — the eighth revision, which tells you this has been through real review rather than being a first post.

The series does three separable things: it teaches the kernel about a new ISA extension (Zic64b), it builds the machinery to describe which ISA "base" a machine implements, and it hangs a single rva23u64 answer off the hwprobe syscall. All three matter if you ship software to heterogeneous RISC-V hardware and currently parse /proc/cpuinfo to decide what you can run.

The eleven patches, as posted

#SubjectLayer
01riscv: Add B to hwcap and hwprobeFeature reporting
02dt-bindings: riscv: Require block-size for ZicbomDT contract
03dt-bindings: riscv: Add Zic64b extension descriptionDT contract
04riscv: Add Zic64b to cpufeature and hwprobeKernel + ABI
05riscv: dts: spacemit: k3: Add Zic64b ISA extensionSpacemiT K3
06riscv: dts: spacemit: k1: Add Zic64b ISA extensionSpacemiT K1
07riscv: dts: sophgo: sg2044: Add Zic64b ISA extensionSophgo SG2044
08riscv: Add a getter for user PMLEN supportPointer masking
09riscv: cpufeature: Introduce ISA bases bitmapKernel
10riscv: cpu: Output isa bases lines in cpuinfoObservability
11riscv: hwprobe: Introduce rva23u64 base behaviorUserspace ABI

Why the device-tree half is the load-bearing part

Patches 02 and 03 are easy to skim past and are arguably the most consequential. Patch 02 requires a block size to be declared for Zicbom, and patch 03 adds the Zic64b binding. Cache-block management operations (Zicbom zero/management/prefetch family) are useless to software unless something authoritative states the block size — a driver that guesses wrong invalidates the wrong range.

Patch 04 then surfaces Zic64b through cpufeature (kernel-internal) and hwprobe (userspace-visible). The three DTS patches add the property to SpacemiT K1, SpacemiT K3 and Sophgo SG2044.

One honesty note: the extension name Zic64b denotes a 64-byte cache-block declaration, and that reading is consistent with patch 02 pairing it with a mandatory Zicbom block size. That semantic gloss is our inference from the patch structure, not a sentence quoted from the cover letter. Verify against the ISA specification before you design around it.

The real prize: one syscall answer for "is this RVA23?"

Patches 09, 10 and 11 are the part that changes how portable software is written.

hwprobe is the syscall RISC-V added so userspace can ask the kernel about the machine instead of parsing text. Today, a runtime that wants to know whether it may use RVA23 baseline features has to enumerate individual extension bits and reconstruct the profile itself — which is exactly the kind of logic that rots. A single base-behaviour key collapses that to one query.

Patch 01 (add "B", the bit-manipulation extension, to hwcap and hwprobe) is the same story at single-extension granularity. Patch 08 (a getter for user PMLEN support) does it for pointer masking, which is relevant to tagged-pointer runtimes and hardware-assisted sanitizers.

What this means if you target K1, K3 or SG2044

Three of these parts are already shipping in volume — the K1 is in SBCs and the CM4-adjacent modules, the K3 is the RVA23 follow-on, and the SG2044 is a many-core server part. Getting their cache-block and ISA-base descriptions into the upstream device trees is what makes a single distro image viable across all three rather than three images with three kernels.

For a build or deploy pipeline, the practical sequence is:

  1. Stop parsing /proc/cpuinfo extension strings in application code. Once patch 11 lands, hwprobe is the contract.
  2. If you ship a BSP with a downstream K1/K3 device tree, watch patches 05–07 — an upstream DTS that adds Zic64b will need to be reconciled with yours.
  3. Pin your expectation to the merge, not the posting. v8 is under review, not merged.

Not disclosed / not established

Sources

Verification notes