diff --git a/RESEARCH.md b/RESEARCH.md index 682c12e..6577369 100644 --- a/RESEARCH.md +++ b/RESEARCH.md @@ -1189,3 +1189,39 @@ override is the intended extension mechanism and is upstreamable. PROBE REVIVE MAPTBL LBIO FMT GEO → screen clears → banner (white on black) + U-Boot prompt. If anything still fails, the ABORT!/panic 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).