Decode · RISC-V
rv64imafdcbx: decoding the OpenSBI ISA string
Boot HART Base ISA : rv64imafdcbxThe OpenSBI Boot HART report on a StarFive VisionFive V2 prints Boot HART Base ISA: rv64imafdcbx. Character-by-character decoding:
- rv64: 64-bit base integer ISA (RV64I is the baseline).
- i: the integer register extension (implicit in RV64I, printed again for compatibility).
- m: integer multiply / divide.
- a: atomic memory operations (LR/SC, AMO*).
- f: single-precision floating-point.
- d: double-precision floating-point.
- c: compressed 16-bit instructions (a large fraction of RV64 code is emitted as compressed for size).
- b: bit-manipulation extension (Zba/Zbb/Zbs/Zbc were ratified in 2021 as part of the "B" umbrella).
- x: vendor extensions bit. On the JH7110 U74 core this is set even though the specific vendor extension isn't enumerated.
The trailing b and x are the interesting parts. SiFive documents the U74 core in the JH7110 as RV64GC (equivalent to rv64imafdc). The extra b and x in the OpenSBI string are a display artifact: a slightly permissive base-ISA string emitter, not an assertion that the silicon implements those extensions. Confirming this: the same log a few lines later prints Boot HART ISA Extensions : none, meaning no beyond-baseline extensions are actually enumerated.
Practical consequence: later in the same boot log, U-Boot proper reports the CPU as rv64imacu: a narrower feature set. That's the ISA U-Boot itself was compiled against, and it's a better ground-truth for "what does the running software actually use" than the OpenSBI display string.
Debugging tip: if you're targeting a specific extension and want to know whether the hardware implements it, don't rely on the OpenSBI base-ISA string: check the ISA-extensions line beneath it, or grep the kernel dmesg for CPU features: on ARM-family terminology.
References
Full walkthrough: /blog/riscv-boot-lifecycle
Source log: /samples/bootintel-6.txt
Have a boot log with something you can't decode? Paste it into the free fingerprinter. It identifies bootloader / kernel / SoC / autoboot exposure client-side, nothing uploaded.