diff --git a/RESEARCH.md b/RESEARCH.md index 4e456a9..806fe23 100644 --- a/RESEARCH.md +++ b/RESEARCH.md @@ -960,3 +960,45 @@ New checkpoints (mt8183_scanout.c + video-uclass.c video_post_bind): | 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 | + +## Round 25 — [REVERSED] not a probe failure: the video device was never probed (console env wiring) + +Round 24 (`03fc7b4d…`): **purple, no magenta, no red error bands** — +the driver matched the DT node and bound, but device_probe was never +called, and none of the probe's error paths ran. Root cause is in +common code, not the driver: + +- stdio_add_devices()'s probe-all loop over UCLASS_VIDEO is compiled + OUT when CONFIG_SYS_CONSOLE_IS_IN_ENV=y — and that defaults to y via + CONSOLE_MUX (inherited from the pumpkin defconfig fork). +- With SYS_CONSOLE_IS_IN_ENV, console_init_r() reads env stdout/stderr + and muxes via iomux_doenv(). There was NO environment (and the env + backend was MMC — inherited, wrong for a depthcharge payload), so + the names were NULL, console_search_dev() never saw the string + "vidconsole", the lazy stdio_probe_device(name, UCLASS_VIDEO) never + fired, and the console fell back to serial only. The video device + was never probed → no clear, no cyan/white, no banner. Screen keeps + the init bands. + +### Fix (payload `e4bdd875…`, flashed, cmp+vbutil OK) + +- CONFIG_ENV_IS_NOWHERE=y (drops the MMC env dependency inherited + from pumpkin — correct for a payload stage, deterministic default + env); +- new CONFIG_ENV_SOURCE_FILE="krane" + + board/mediatek/mt8183/krane.env: + stdin=serial + stdout=serial,vidconsole + stderr=serial,vidconsole + so console_init_r() → iomux_doenv() → console_search_dev + ("vidconsole") → stdio_probe_device → probes the video device + (driver probe → clear → vidconsole registered) → banner muxed to + serial + screen. +- R24 instrumentation kept for this round. + +### Expected + +blue → blinks → hold → green/orange/blue/red/yellow bands → magenta +(probe entered) → screen CLEARS black → gray (geometry) → cyan/white +(video clear/probe) → **white-on-black banner** (or a red failure +band: y=800 lbio, y=820 fmt, y=840 scanout). diff --git a/krane-uboot-payload.bin b/krane-uboot-payload.bin index e3805e9..f49d4fa 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 01eb3a5..e78c61c 100644 Binary files a/krane-uboot.bin and b/krane-uboot.bin differ