Round 25: video never probed — console env wiring; ENV_IS_NOWHERE + krane.env stdout mux
This commit is contained in:
+42
@@ -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.
Binary file not shown.
Reference in New Issue
Block a user