boot2

Playing with the boostrap
git clone https://git.ryansepassi.com/git/boot2.git
Log | Files | Refs | README

vendor/seed

Bootstrap seeds and stage0-posix sources, vendored from live-bootstrap (seed/stage0-posix/).

Per arch (aarch64, amd64, riscv64, riscv32):

file upstream path
hex0-seed bootstrap-seeds/POSIX/<A>/hex0-seed
hex0.hex0 <A>/hex0_<A>.hex0
hex1.hex0 <A>/hex1_<A>.hex0
hex2.hex1 <A>/hex2_<A>.hex1
catm.hex2 <A>/catm_<A>.hex2 (locally produced for aarch64, see note)
M0.hex2 <A>/M0_<A>.hex2
ELF.hex2 <A>/ELF-<arch>.hex2

<A> is the upstream directory: AArch64, AMD64, riscv64, or riscv32.

aarch64/catm.hex2 is locally produced — upstream ships AArch64's catm only as .hex1, not .hex2, so the chain in scripts/bootstrap.sh (which feeds catm.hex2 into hex2-0) needs the .hex2 form. The other three arches use the upstream .hex2 directly.

The RV32 files were copied from live-bootstrap commit 9a268c4c39cae952b268bc86da342be2175f03d4 under seed/stage0-posix/{bootstrap-seeds/POSIX/riscv32,riscv32}. The six seed and assembler files are byte-identical to that tree. riscv32/ELF.hex2 has one local, auditable change: its ELF32 PT_LOAD.p_memsz is fixed at 512 MiB instead of equalling p_filesz, because boot2 programs place large static BSS arenas after ELF_end. The load base and file bytes are unchanged.

License: GPL-3.0-or-later, see LICENSE.