Commit graph

12 commits

Author SHA1 Message Date
vxtls
2f7951a352 fix(manifest): move payload-import after gcc and convert to pass1.sh 2026-03-22 13:09:38 -04:00
vxtls
c742563d3b fix(payload): switch raw payload metadata fields from u32 to u64 2026-03-15 13:31:19 -04:00
vxtls
f2a151e96b fix(payload-import): ASM only enable for i386 fiwix/linux, undefined for other arch 2026-03-02 13:23:36 -05:00
vxtls
e821482aaf fix(payload-import): add precise read/write/truncation diagnostics and clean partial outputs on copy failure 2026-03-02 11:45:39 -05:00
vxtls
38f8769fce fix(payload-import): mount proc via syscall in payload-import and enumerate payload candidates strictly from /proc/partitions major/minor 2026-03-02 10:42:58 -05:00
vxtls
25f8311767 fix(payload-import): align with pre-util-linux toolchain by removing mount/S_ISBLK dependencies and probing only existing block nodes 2026-03-02 09:01:30 -05:00
vxtls
6b37393704 fix(payload-import): remove mount(8) dependency and import by kernel-enumerated block devices via /proc/partitions 2026-03-02 07:53:37 -05:00
vxtls
45ba6a367d fix(gawk): add typed read_func prototype patch and validate with dry-run AND
fix(import-payload): switch to procfs /proc/partitions major/minor enumeration with magic-verified payload import
2026-03-01 23:04:16 -05:00
vxtls
500bce68eb fix(payload-import): build static binary to remove /mes/loader runtime dependency in fiwix stage 2026-03-01 19:00:22 -05:00
vxtls
9fc53eb1cd fix(payload-import): remove early-stage test/elif usage and use kaem-safe device setup 2026-03-01 15:11:07 -05:00
vxtls
e08abd6777 fix(payload-import): replace unsupported kaem elif with nested if for checksum branch 2026-03-01 14:24:18 -05:00
vxtls
f30c20b7be fix(kernel-bootstrap): restore kexec-fiwix baseline and move post-fiwix distfiles into raw payload import path
The instability was not caused by kexec-fiwix logic itself but by oversized early-stage payload pressure in kernel-bootstrap mode.
When too many distfiles are injected before the Fiwix handoff, the early memory/file-table assumptions become fragile and KVM can fail during transition.
This change restores kexec-fiwix.c to the known baseline (matching commit 984b8322...) and fixes the actual failure mode by moving non-early distfiles out of the initial image.

What changed:
- Keep only bootstrap-required distfiles in early init image.
- Generate a separate raw payload image (LBPAYLD1 format) for the remaining distfiles.
- Attach payload image as an extra disk in QEMU/bare-metal kernel-bootstrap flow.
- Add a dedicated C89/tcc-compatible importer (payload-import) that scans payload disks and copies files into /external/distfiles after jump: fiwix.
- Insert improve: import_payload immediately after jump: fiwix so the full distfile set is restored before heavy build steps continue.
- Add PAYLOAD_REQUIRED config gating so this behavior is active only in kernel-bootstrap paths that need it.

Why this design:
- Preserves minimal early environment assumptions (no dependency on full shell utilities for the copy operation itself).
- Avoids adding filesystem-construction toolchain dependencies for the payload container by using a simple length-prefixed raw format.
- Keeps bare-metal and QEMU behavior aligned: both can carry full build artifacts without overloading the early handoff stage.
- Leaves kexec-fiwix behavior deterministic and auditable by reverting to a known-good baseline implementation.
2026-03-01 13:45:16 -05:00