Skip to content

feat(boom): add Linux profiles and SPEC2006 configuration - #83

Merged
klin02 merged 2 commits into
mainfrom
draft/boom-linux-profiles-20261027
Oct 29, 2026
Merged

klin02 merged 2 commits into
mainfrom
draft/boom-linux-profiles-20261027

Conversation

@good-circle

Copy link
Copy Markdown
Contributor

BOOM currently inherits the XiangShan Linux and SPEC2006 defaults, which can
enable ISA features the core does not implement. Select a dedicated BOOM
Buildroot configuration with RV64GC/LP64D userspace and a fragment of the shared
Linux configuration that disables V and KVM.

Add single-hart, 2 GiB boom-mem2g and boom-fpga-mem2g device-tree profiles.
They share the machine settings and select either the emulation UART at
0x10000000 or the FPGA UART16550 at 0x310b0000. The FPGA UART uses
reg-shift=2, 32-bit accesses and mmio32 earlycon. Select the BOOM Buildroot
configuration for DEFAULT_DTB=boom and boom-*.

Default BOOM SPEC2006 builds to a GCC 16 RV64GC/Zba/Zbb/Zbs configuration so
the compiler does not emit unsupported instructions. Document
SPEC2006_PROFILING=0 for FPGA builds to omit startup profiling markers while
retaining the final exit-status trap.

Validation:

  • Rebuilt Linux hello and SPEC2006 mcf ref images. FPGA DiffTest reached GOOD
    TRAP for hello; with NEMU CONFIG_GUIDED_EXEC=y, mcf entered userspace and
    ran for 600 seconds without mismatch. This was a bounded run; SPEC did not
    finish. The retained DTS/kernel/hello/SPEC sources match those builds, but
    complete images were not rebuilt for the final commit tree.
  • Checked the generated profiling=0 SPEC runtime: it invokes /spec/run.sh
    directly, omits the 256/257 startup markers and retains the final status trap.
  • git diff --check passed.

Select boom_defconfig for boom and boom-* device trees, following the
XiangShan/NutShell split. Use RV64GC/LP64D userspace and disable V and
KVM through a fragment of the shared Linux configuration.

Add boom-mem2g for SimAXIUart at 0x10000000 and boom-fpga-mem2g for
the board UART16550 at 0x310b0000. Share the single-hart, 2 GiB DTS
setup; the FPGA UART uses reg-shift=2 and mmio32 earlycon accesses.

Co-authored-by: klin02 <youkunlin20@mails.ucas.ac.cn>
@good-circle
good-circle force-pushed the draft/boom-linux-profiles-20261027 branch from 2cbd57c to a746bbe Compare October 27, 2026 02:42
Add a GCC 16 configuration using -march=rv64gc_zba_zbb_zbs for base
and peak builds. The default RVA23 config can emit Zbc instructions
that BOOM does not implement.

Select this cfg for DEFAULT_DTB=boom or boom-* while preserving
SPEC2006_CFG overrides and the existing XiangShan/NutShell defaults.
Document FPGA builds with SPEC2006_PROFILING=0, the workload-specific
form of PROFILING=0, to omit startup markers and retain the final trap.

Co-authored-by: klin02 <youkunlin20@mails.ucas.ac.cn>
@good-circle
good-circle marked this pull request as ready for review October 27, 2026 02:48
@good-circle
good-circle requested review from klin02 and rezado October 27, 2026 02:48
@klin02
klin02 merged commit 64f7db3 into main Oct 29, 2026
2 checks passed
@klin02
klin02 deleted the draft/boom-linux-profiles-20261027 branch October 29, 2026 03:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants