Round 32: MILESTONE 3 - banner + prompt live on krane panel

This commit is contained in:
vhaudiquet
2026-08-30 18:36:30 +02:00
parent ba0fce4223
commit 84cf0a1a47
+36
View File
@@ -1189,3 +1189,39 @@ override is the intended extension mechanism and is upstreamable.
PROBE REVIVE MAPTBL LBIO FMT GEO → screen clears → banner (white on PROBE REVIVE MAPTBL LBIO FMT GEO → screen clears → banner (white on
black) + U-Boot prompt. If anything still fails, the ABORT!/panic black) + U-Boot prompt. If anything still fails, the ABORT!/panic
text now lands on the panel. text now lands on the panel.
## Round 32 — MILESTONE 3 ACHIEVED: banner + prompt live on the panel
Round 31 (`34b9660f…`) works: the user reports the U-Boot banner and
the prompt rendered white-on-black on the krane panel, via the
standard video uclass + vidconsole on the depthcharge scanout. The
full boot chain to a working framebuffer console is:
depthcharge → payload (arm64 Image header + wrapper v3 @0x40 +
U-Boot @0x1000, runtime _start 0x40001000) → wrapper (revive display,
3 blinks, 5 s hold) → U-Boot start.S (4K check ✓, PIE fixup, delta
-0xC000000) → board_init_f → relocation → board_r → console_init_r →
krane.env stdout=serial,vidconsole → iomux → stdio_probe_device →
mt8183_scanout probe (revive OVL + backlight, LBIO parse, fallback
OVL_L0_ADDR=0xFD536000) → video_clear → vidconsole0 → banner.
Key fixes that made it work (final state):
1. TEXT_BASE=0x4C001000 (8-aligned ⇒ no linker fill ⇒ _start ==
__image_copy_start == _TEXT_BASE; PIE delta 4K-aligned).
2. Payload layout: U-Boot file at image offset 0x1000 ⇒ runtime
_start 0x40001000 (both 4K constraints).
3. ENV_IS_NOWHERE + krane.env: stdout=serial,vidconsole (the video
device only probes via the iomux lazy path).
4. get_page_table_size() board override (0x40000) — dynamic
mmu_map_region calls (fb + coreboot table) exhausted the default
budget ⇒ panic (reset without PANIC_HANG, hang with it).
Still WIP/temporary in the u-boot tree (to revert before upstreaming):
- all diag band/text instrumentation (mt8183_scanout.c krane_*,
video-uclass.c, board_f.c, main.c, interrupts_64.c hook),
- CONFIG_PANIC_HANG=y, CONFIG_BOARD_LATE_INIT=y,
- CONFIG_WATCHDOG_AUTOSTART=n (decide: re-enable for production).
Next: milestone 4 — distro_bootcmd booting pmOS from USB (sda), then
cleanup/upstreaming pass (single-purpose commits, MAINTAINERS,
checkpatch, revert diagnostics).