# boards/ One directory per physical target. `make boot_image TARGET=` (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//`. | TARGET | Directory | ISA | Boot path | Image | |---|---|---|---|---| | `SER5` | `ser5/` | amd64 | UEFI firmware, removable-media path | 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/`) - `BOARD_BOOT`: image recipe in `kernel/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 SER5 image has been booted in QEMU (q35 + OVMF, from its own disk) through POST. The Pi 5 native path (`raspi/README.md`) and the JH7110 peripherals have still only been checked by compiling.