diff --git a/RESEARCH.md b/RESEARCH.md index 3eb8abe..4e456a9 100644 --- a/RESEARCH.md +++ b/RESEARCH.md @@ -922,3 +922,41 @@ painted. Root cause found in the disassembly, not guessed: blue → 3 blinks → 5 s hold → green band (board_init_f) → orange/blue/ red bands → cyan/white (video probe) → banner. + +## Round 24 — C environment alive; video probe is the failing stage + +Round 23 (`18cf3e93…`): blue → blinks → hold → bands. The user +reported (top to bottom): two red-ish stripes, yellow, green — i.e. +board_init_f (green), board_early_init_f (orange, reads red-ish), +board_early_init_r (red), misc_init_r (yellow) ALL ran; dram_init +blue is at the very bottom (y=1820, easy to miss). CRITICAL: the +screen was NOT cleared and no cyan/white band appeared → the video +uclass post_probe (whose FIRST action after colour setup is +video_clear) never ran → the video driver's probe FAILED or the +device never bound. Everything else (banner needs the vidconsole) +follows from that. Note: the "yellow" seen may be either misc_init_r +(y=300) or the post-clear cyan band (0x00ffff00 = yellow in xRGB, +y=260) — irrelevant since no clear happened. + +### Round 24 payload (`03fc7b4d…`, flashed, cmp+vbutil OK) + +New checkpoints (mt8183_scanout.c + video-uclass.c video_post_bind): +- **purple** (y=470): a video device got BOUND (driver matched DT) +- **magenta** (y=500): driver probe entered +- **gray** (y=620): geometry resolved (coreboot LBIO parsed + scanout + addr valid) +- **red bands** at failure exits: y=780 (ovl reg read failed), y=800 + (coreboot LBIO not found), y=820 (pixel format mismatch), y=840 (no + plausible scanout address) + +### Decision tree + +| observation | meaning | +|---|---| +| no purple | video driver never bound (DT compatible / DM scan issue) | +| purple, no magenta | bound but probe not called (uclass sequencing) | +| magenta + red@800 | coreboot table/LBIO not found (map/parse) | +| magenta + red@820 | LBIO found but format mismatch | +| magenta + red@840 | no plausible scanout address | +| magenta + gray | geometry OK; failure later (clear/probe tail) | +| cyan/white appear | video_clear + post_probe reached — back on the R19/20 tree | diff --git a/krane-uboot-payload.bin b/krane-uboot-payload.bin index ca59cac..e3805e9 100644 Binary files a/krane-uboot-payload.bin and b/krane-uboot-payload.bin differ diff --git a/krane-uboot.bin b/krane-uboot.bin index fc2c2da..01eb3a5 100644 Binary files a/krane-uboot.bin and b/krane-uboot.bin differ