packages/chip/docs/project/linux-launch-blockers-2026-05-17.md
Date: 2026-05-17
Scope: current repository state for launching Linux on the selected Eliza CPU/AP path.
The repo can execute bounded firmware smoke paths, but it cannot boot Linux yet.
python3 scripts/run_mvp_simulator.py now runs the full simulator MVP ladder:
local RTL, generated AP manifest gate, QEMU firmware smoke, Renode firmware
smoke, QEMU OS boot, CPU/AP Linux evidence, Android simulator capture, and
Android simulator report validation.scripts/run_qemu.sh --check passes the qemu-virt firmware banner smoke.REQUIRE_RENODE=1 scripts/run_renode.sh --check passes a bounded Renode
firmware banner smoke with Renode 1.16.1.scripts/run_qemu.sh --check-os blocks before launch because no Linux kernel
Image or initrd/rootfs image is available locally.python3 scripts/locate_chipyard_linux_payload.py --require is the payload
locator for the generated AP run-binary path. It must find a RISC-V ELF
payload with an OpenSBI marker before make chipyard-generated-ap-boot can
attempt the generated AP simulator.make chipyard-generated-ap-boot is the only repo-local wrapper that may
produce build/chipyard/eliza_rocket/verilator-linux-smoke.log for a
generated ElizaRocketConfig Linux smoke. The log is still only proof after
scripts/check_chipyard_verilator_linux_smoke.py finds real OpenSBI and Linux
markers in that generated-AP transcript.The Renode and QEMU passes are useful simulator plumbing evidence. QEMU virt
is a software-reference boot path, and the current Renode smoke is a Renode
reference-model path; neither closes AP Linux boot, OpenSBI handoff, Android
boot, FPGA, board, or silicon evidence. The MVP simulator report now keeps
reference evidence in best_reference_evidence; best_executable_evidence
cannot name QEMU, Renode, or Android reference-only results. The report remains
blocked until the generated AP path and real boot payload/evidence paths pass.
external/chipyard is present and the import preflight passes with the current
skip-remote path:
python3 scripts/check_chipyard_import_preflight.py --require-checkout --skip-remote
The Verilator build path still cannot start because the generated Chipyard environment has not been produced:
common.mk:5: *** RISCV is unset. Did you source the Chipyard auto-generated env file
Required fix:
external/chipyard/env.sh
and a valid RISC-V toolchain environment.external/chipyard/generators/chipyard/src/main/scala/eliza/ElizaRocketConfig.scala.The selected AP path now has generated source artifacts, including:
build/chipyard/eliza_rocket/generated-src/chipyard.harness.TestHarness.ElizaRocketConfig.memmap.jsonbuild/chipyard/eliza_rocket/generated-src/chipyard.harness.TestHarness.ElizaRocketConfig.dtsbuild/chipyard/eliza_rocket/eliza_rocket_ap.vThe generated memmap/DTS expose memory@80000000 at 0x80000000, size
0x10000000 / 256 MiB, as the enabled RAM window for OpenSBI/Linux payloads.
The generated DTS also contains memory@8000000 at 0x08000000, size
0x10000 / 64 KiB, but that node is disabled and must not be used for payload
placement. The generated Verilog/FIRRTL includes a SimDRAM configured for
0x80000000/256 MiB, which is source-level simulator memory evidence only.
The launch blocker remains: no generated Verilator simulator executable or boot transcript exists for this AP path.
Required fix:
ElizaRocketConfig Verilator simulator.python3 scripts/locate_chipyard_linux_payload.py --require
cd external/chipyard/software/firemarshal && ./marshal -v -d build example-workloads/linux-poweroff.json
export CHIPYARD_LINUX_BINARY=/abs/path/to/linux-poweroff-bin-nodisk
make chipyard-generated-ap-boot
python3 scripts/check_chipyard_verilator_linux_smoke.py
0x80000000
payload memory window and keep all payloads inside the 256 MiB generated RAM
range unless the AP configuration changes.The OS launch preflight blocks on missing payloads:
ImageRequired fix:
The checked-in scaffold compiles with dtc, but it is not a standalone AP boot
device tree:
python3 scripts/capture_cpu_ap_evidence.py dts-audit --run-dtc --path sw/linux/dts/eliza-e1.dts
Current blockers:
Required fix:
sw/linux/dts/eliza-e1.dts as a peripheral scaffold only unless it
is expanded into a complete boot DTB.The evidence gate must remain blocked until these real transcripts exist:
build/evidence/cpu_ap/eliza_e1_opensbi_boot.logbuild/evidence/cpu_ap/eliza_e1_linux_boot.logbuild/evidence/cpu_ap/eliza_e1_trap_timer_irq.logbuild/evidence/cpu_ap/eliza_e1_isa_cache_mmu.logbuild/evidence/cpu_ap/eliza_e1_ap_benchmarks.logRequired fix:
The software BSP evidence gate correctly blocks without external logs for:
Required fix:
python3 scripts/check_chipyard_import_preflight.py --require-checkout --skip-remote
cd external/chipyard && ./build-setup.sh --help
cd external/chipyard/sims/verilator && make CONFIG=ElizaRocketConfig -n
scripts/run_qemu.sh --check
scripts/run_qemu.sh --check-os
REQUIRE_RENODE=1 scripts/run_renode.sh --check
python3 scripts/capture_cpu_ap_evidence.py dts-audit --run-dtc --path sw/linux/dts/eliza-e1.dts
make chipyard-generated-check cpu-ap-evidence-check software-bsp-evidence-check