FABRIC-3.md: amd64 bare-metal-boot planning decided + punch list
Decisions from conversation: observation is HDMI (interactive) + serial via the Raspberry Pi's own GPIO UART as the bridge, if the SER5 exposes a UART header (not yet confirmed); genericity is verified by a code audit against real UEFI/ACPI standards rather than a second physical machine (none available); Secure Boot is already disabled on this SER5, so no signed-loader work is needed for this pass. 9-item punch list follows: build+flash the thumbdrive image, physically inspect for a UART header, connect HDMI, boot, a code-audit pass for SER5-specific assumptions (the actual genericity bar), capture the boot (POST/ok>/rdrand backend/serial transcript), mint+re-attach Zuse on real hardware, then update this section with results before moving to aarch64. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019YcT3H2PQeyujrzjqS3Var
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
7f9a4d4d4a
commit
e5e28d5198
+39
-9
@@ -162,15 +162,45 @@ what's still genuinely unknown, not assumed.
|
|||||||
`ok>`, document) is the closest thing to an existing plan — but it predates the genericity
|
`ok>`, document) is the closest thing to an existing plan — but it predates the genericity
|
||||||
requirement and was written with no hardware in hand yet.
|
requirement and was written with no hardware in hand yet.
|
||||||
|
|
||||||
**Genuinely open, not yet decided:**
|
**Decided in conversation, 2026-09-04:**
|
||||||
- What "generic enough" actually needs to be verified against, beyond the SER5 — is there a
|
- **Observation: HDMI (interactive) + serial (logged transcript), both.** The kernel's own
|
||||||
second, different machine available to cross-check against, or does genericity get argued
|
VT100 framebuffer console (`console.c`/`vt100.c`/`framebuffer.c`) already gives a real
|
||||||
from firmware-standards-compliance (real UEFI, no vendor-specific assumptions in the boot
|
interactive display over HDMI — no new code needed there. Serial capture, if the SER5
|
||||||
code) rather than a second physical test right away?
|
exposes a UART header, uses the Raspberry Pi's own GPIO UART as the USB-serial bridge
|
||||||
- Observation method for a headless/serial-less real machine (no QMP/serial socket the way
|
(already available hardware, not a purchase blocker) — this needs the SER5's own UART pins
|
||||||
QEMU gives us) — HDMI + keyboard? A serial console cable if the board exposes UART pins?
|
physically identified first (not yet confirmed it has an accessible header at all).
|
||||||
- Whether Secure Boot needs handling, and how, on real UEFI firmware (QEMU/OVMF's own Secure
|
- **Genericity is verified by standards-compliance, not a second machine** — no second x86_64
|
||||||
Boot behavior may not match every real vendor's).
|
box is available right now. The bar is: nothing in the boot path may depend on an
|
||||||
|
SER5-specific assumption (a particular ACPI table shape, a specific UEFI implementation's
|
||||||
|
quirk) — argued by code audit against real UEFI/ACPI standards, not by testing on a second
|
||||||
|
board, until one becomes available. This is a real constraint on the punch list below (item
|
||||||
|
6), not a deferred nice-to-have.
|
||||||
|
- **Secure Boot: already disabled on this SER5.** No signed-loader work needed for this pass —
|
||||||
|
"Secure Boot disabled in firmware setup" is the supported path, documented as such rather
|
||||||
|
than built around.
|
||||||
|
|
||||||
|
**Punch list, this cadence's actual next steps:**
|
||||||
|
1. Build the generic thumbdrive image: `make -f Makefile.starkernel ARCH=amd64 thumbdrive`.
|
||||||
|
2. Flash it to a USB stick (`dd`, per the target's own existing usage message).
|
||||||
|
3. Physically inspect the SER5 for an exposed UART header/pins; if present, wire the
|
||||||
|
Raspberry Pi's GPIO UART to it as the serial bridge. If absent, HDMI-only for this pass —
|
||||||
|
not a blocker, just a scope note for step 7's log.
|
||||||
|
4. Connect HDMI + keyboard to the SER5.
|
||||||
|
5. Boot the SER5 from the flashed stick (firmware boot-order menu as needed — Secure Boot
|
||||||
|
already disabled, confirmed above, so no signing prompt expected).
|
||||||
|
6. **Code audit pass** (can happen before or in parallel with 1–5, doesn't need the hardware
|
||||||
|
in hand): review the amd64 boot path (`src/starkernel/boot/uefi_loader.c`,
|
||||||
|
`arch/amd64/*.c`) for anything that assumes SER5-specific hardware rather than standard
|
||||||
|
UEFI/ACPI — this is what "genericity" actually rests on per the decision above, not the
|
||||||
|
SER5 boot succeeding alone.
|
||||||
|
7. Capture the boot: confirm POST reaches the same `1012/0/0` result QEMU shows, confirm
|
||||||
|
`ok>`/`zuse)ok>`, confirm `rng: backend = rdrand` (live entropy, not the QEMU-only
|
||||||
|
`virtio-rng` path), save the serial transcript (if wired) the same way `logs/` already
|
||||||
|
keeps QEMU's.
|
||||||
|
8. Mint a Zuse identity on a second thumbdrive on the real SER5, confirm it re-attaches —
|
||||||
|
the same real-hardware round-trip `ROADMAP.md`'s `v2.2.0` gate already names.
|
||||||
|
9. Update this section with results — pass/fail per step, any SER5-specific or genuinely
|
||||||
|
generic-UEFI finding either way, before moving to aarch64.
|
||||||
|
|
||||||
## IV. aarch64 — Raspberry Pi 5
|
## IV. aarch64 — Raspberry Pi 5
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user