From f6b14216c173a3f65a8deefa4e387524ece8ef0e Mon Sep 17 00:00:00 2001 From: vhaudiquet Date: Sun, 30 Aug 2026 20:07:48 +0200 Subject: [PATCH] Round 35: keyboard VERIFIED; console rotated to landscape (rot=1); payload 4fcd863d --- RESEARCH.md | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/RESEARCH.md b/RESEARCH.md index 3e9602a..486f612 100644 --- a/RESEARCH.md +++ b/RESEARCH.md @@ -1341,3 +1341,46 @@ Flashed `9c55f520…`, cmp OK, vbutil body verification succeeded. | `No USB controllers found` again | binding still failing — next step: krane_fb_log in lists_bind_fdt path | Awaiting user reboot report. + +## Round 35 — Round 34 VERIFIED (keyboard works); console rotated to landscape + +User confirmed: USB scans properly and the pogo keyboard works at the +prompt — Milestone 4 step 1 done (payload `9c55f520…` verified live). +Milestone 3+4a: banner + prompt + keyboard input on the panel. + +### Rotation request: portrait console → landscape + +Panel is the BOE TV101WUM-NL6, natively 1200×1920 portrait. Upstream +DT marks the panel node `rotation = <270>` (mounted rotated in the +chassis); pmOS/ChromeOS force landscape with the keyboard attached. + +Mainline already supports this without touching the scanout path: +`CONFIG_CONSOLE_ROTATION` builds the rotated text drivers +vidconsole1/2/3 (drivers/video/console_rotate.c); when the video +driver sets `priv->rot`, video-uclass binds `vidconsole` and the +rotated console swaps geometry itself (console_core.c: rot%2 ⇒ +cols = ysize/8 = 240, rows = xsize/16 = 75). The first vidconsole's +stdio name is still "vidconsole", so krane.env needs no change. + +### Change (u-boot `69787732`, payload `4fcd863d…`) + +- mt8183_scanout probe: `uc_priv->rot = 1` (90° clockwise) with a + comment explaining the 270° panel mount. Guess between rot=1 and + rot=3 (both landscape-upright; they differ by which side the + keyboard hinge ends up on): first try rot=1, flip to 3 if the user + reports upside-down text. +- defconfig: CONFIG_CONSOLE_ROTATION=y (CONSOLE_NORMAL stays; the + uclass picks the driver from rot). +- fb geometry, LBIO parse, revive path untouched. Build OK, `_start` + still 0x4C001000. Flashed `4fcd863d…`, cmp OK, vbutil body + verification succeeded. + +### Decision tree for the reboot + +| observation | meaning | +|---|---| +| banner + prompt readable in landscape with keyboard; keys work | DONE | +| landscape but text upside down | switch rot=1 → rot=3 in mt8183_scanout.c | +| still portrait | vidconsole1 not bound — check CONSOLE_ROTATION made it into the build | + +Awaiting user reboot report.