Round 25: video never probed — console env wiring; ENV_IS_NOWHERE + krane.env stdout mux

This commit is contained in:
vhaudiquet
2026-08-30 16:28:28 +02:00
parent b741a59dc9
commit 153626884c
3 changed files with 42 additions and 0 deletions
+42
View File
@@ -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).
Binary file not shown.
BIN
View File
Binary file not shown.