qemu-stick boots the amd64 stick image (build/boards/pc/lithos-pc.img, copied per run) as a USB drive on q35, exactly as hardware would. DATASTICK=1 adds the data stick to any qemu run as a second USB drive. qemu_session.py gains --target and the stick_boot and datastick modes. Checks: stick_boot (the stick's own identity partition attaches, headless on a blank identity); datastick on amd64/aarch64/riscv64 (both drives found, the data stick's 500 MiB identity attaches); the seven GPT modes, the identity-gate and increment 1 sessions, emergency; the suite; three acceptance boots to [zuse@Hera] ok> with POST 538/538 and dict_hash=0xfec8c47cfc6f437f; test-32 0 failures. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
boards/
One directory per physical target. make boot_image TARGET=<NAME> (repo root) maps the
name to a directory here, reads its board.mk, and builds the single file that goes on
that board's boot medium into build/boards/<board>/.
| TARGET | Directory | ISA | Boot path | Image |
|---|---|---|---|---|
PC |
pc/ |
amd64 | UEFI firmware, removable-media path -- any x86-64 PC | GPT + FAT32 ESP: EFI/BOOT/BOOTX64.EFI |
RASPI |
raspi/ |
aarch64 | Pi 5 EEPROM firmware, native | MBR + FAT32: config.txt, kernel_2712.img, bcm2712-rpi-5-b.dtb |
MILKV |
milkv/ |
riscv64 | SPI-flash U-Boot + OpenSBI, bootefi |
GPT + FAT32 ESP: EFI/BOOT/BOOTRISCV64.EFI |
ZYNQ7020 |
zynq7020/ |
armv7 | BootROM, BOOT.BIN, U-Boot |
not yet: needs kernel/src/arch/armv7 |
board.mk sets:
BOARD_DESC: one-line description (make boards)BOARD_ARCH: kernel ISA (kernel/src/arch/<arch>)BOARD_BOOT: image recipe inkernel/Makefile(uefi-esp,rpi-native, ...)BOARD_IMAGE: output file name
Disk images are assembled by scripts/mkdiskimage.sh, which needs no root access and no loop
devices. KERNEL_ARGS="..." is written as starforth.cfg (UEFI boards) or cmdline.txt
(Pi 5, where the firmware copies it into /chosen/bootargs). BOOT_IMAGE_SIZE_MIB sets the
image size; the default is 128.
Hardware status: none of these images has been booted on real silicon from this build. The
PC image has been booted in QEMU (q35 + OVMF, from its own disk) through POST. (PC was named
SER5 until 2026-10-14, after the first PC on the bench; the image was never specific to it.) The Pi 5
native path (raspi/README.md) and the JH7110 peripherals have still only been checked by
compiling.