Round 32: MILESTONE 3 - banner + prompt live on krane panel
This commit is contained in:
+36
@@ -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).
|
||||||
|
|||||||
Reference in New Issue
Block a user