uzbek-plus/logs/b9/b9c/B9C-RESULT.md
q 4a7224c41f B9: built-in display (ST7735S SPI) in Linux and persistent B9C cache
- B9A: read-only audit of stock LK/DT: the panel is an ST7735S 128x128 on SPI (BLSP1 QUP4,
  16 MHz, mode 3, D/C GPIO116, RESET GPIO118), backlight = PM8916 MPP4 current sink 40 mA.
- B9B: upstream panel-mipi-dbi with the stock init sequence as firmware; MPP4 sink via pinctrl
  + gpio-backlight; first light with correct colours/orientation/offsets.
- B9C: fbcon (6x8, 21x16) on tty1 + getty, UART console kept, aurora-display service;
  cache B9C b9ce13c9 written and verified, cold boots with LTE + Wi-Fi + display.
- B9L (RAM only): lk2nd second stage with an msm8916 SPI panel port shows a picture before Linux.
- Sanitizer: whitelist for b8/ and b9/.
2026-10-03 01:45:02 +03:00

49 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# B9C-RESULT — persistent display stack (ST7735S, fbcon tty1, MPP4 backlight) — PASS (2026-10-03)
**The eMMC cache is now B9C `b9ce13c9`** (B9C_WRITE_VERIFIED). It replaces B8F `857c9c30`; the B8F image is kept as backup/rollback.
## What B9C adds on top of B8F
| part | change |
|---|---|
| kernel | b9c 3afc6c77 = b8d + DRM + DRM_PANEL_MIPI_DBI + DRM_FBDEV_EMULATION + FRAMEBUFFER_CONSOLE + FONTS with FONT_6x8 only (`linux/aurora-b9b.config`, `linux/aurora-b9c.config`) |
| DTB | B9B 7ca9cc79: spi@78b8000 (native CS0, stock pinctrl), panel `jz08au,aurora-st7735s` + `panel-mipi-dbi-spi` (16 MHz, mode 3, write-only, D/C 116, RESET 118, power L17 2.85 V, io L6 1.8 V, r5g6b5, 128x128, back porches 2/3), L17 constraints, MPP4 sink (drive-strength 7) + gpio-backlight |
| firmware | `/lib/firmware/jz08au,aurora-st7735s.bin` 58697d4d = the stock LK/dtb_01 init sequence (18 commands + the 120 ms SLPOUT delay; RAMWR left to the driver) |
| initramfs | B8F abb3bd67 + overlay: /init (+5 lines: `hostname aurora`, `/etc/init.d/aurora-display start`, getty loop on tty1), `/usr/sbin/aurora-display`, `/etc/init.d/aurora-display` |
| cmdline | `earlycon console=tty0 console=ttyMSM0,115200n8 ignore_loglevel loglevel=8 rdinit=/init fbcon=font:6x8 consoleblank=0`. `console=tty0` is placed before the UART console so that `/dev/console` (and the cttyhack UART shell) stays on ttyMSM0. |
aurora-display: waits for fb0 → if fbcon's takeover already enabled the pipe (connector enabled/On + L17 used) it does **no** unblank (no double init);
otherwise it does one fbdev unblank → backlight on through the gpio-backlight sysfs (never raw PMIC writes) → `=== DISPLAY READY`.
In every run the fbcon takeover enabled the pipe by itself.
## Path
- B9B (RAM): first light via panel-mipi-dbi, colours/orientation/offsets confirmed (logs/b9/b9b).
- B9C RAM pretest `aurora-b9c.img` fa855e1c (ram1, class A): fbcon 21x16, DISPLAY READY 8.0 s, getty tty1, UART shell, LTE/Wi-Fi OK; operator: text readable,
orientation right, nothing clipped, backlight OFF→ON. The login prompt scrolls away under the later kernel messages (ignore_loglevel) — accepted (option A).
- Cache candidate `b9/b9c/cache/cache-extlinux-b9c.img` b9ce13c9 (B8F mkfs recipe, bit-identical rebuild, e2fsck clean).
lk2nd emulator: S6 regression == B8F; S7 "Trying to boot 'b9c'", kernel end DDR+0x1820000 < tags +0x20a9000 < ramdisk +0x22a9000; F1/F3/F10 → emmc1 fallback.
- Write (HW EDL, `B9C-write.sh`): live cache == B8F 857c9c30 (pre-cache.bin = backup) → write → CACHE_MATCH → all other partitions == A3/A4pre → **B9C_WRITE_VERIFIED** (logs/b9/b9c/W).
## Cold boots (normal power-on, no RESET, no fastboot, no UART input, no manual commands)
| run | class | display | console/getty | LTE / Wi-Fi | time | other |
|---|---|---|---|---|---|---|
| cold1 | **A** (RTC 3 s) | fbcon 21x16 1.77 s, DISPLAY READY 7.8 s, no unblank, errors 0 | console tty0+ttyMSM0, getty tty1, hostname aurora, UART shell on ttyMSM0 | START OK 76.4 s, AP ENABLED 80.6 s, ping 4/4 | DMS/NITZ VALID, SNTP +0.55 s | MPSS+WCNSS running, crash 0, eMMC w=0; **backlight ON→OFF→ON confirmed visually** (sysfs) |
| cold2-classB | **B** (RTC 585 s, ~12 s off) | same, DISPLAY READY 7.8 s, errors 0 | same | START OK 73.8 s, AP ENABLED 78.6 s, ping 4/4 | VALID, SNTP +0.46 s | crash 0, w=0 — **counted by operator decision (relaxed criterion)** |
| cold3 | **A** (RTC 3 s) | fbcon 1.78 s, DISPLAY READY 7.35 s, errors 0 | same | START OK 76.3 s, AP ENABLED 80.2 s, ping 4/4 | VALID, SNTP +0.09 s | crash 0, w=0 |
Not counted:
- `cold1-invalid`: the battery dropped out at ~27 s; the second start was class B and the modem controller rolled back because the USB host was not reachable;
the display part was OK.
- `cold1-aborted`: the driver was stopped before power-on, while B9L was run in between.
**Deviation:** the B9C criterion was "3/3 class A"; the result is 2× class A + 1× class B, accepted explicitly by the operator.
## Rollback
`b9/b9c/cache/B9C-rollback.sh` (HW EDL) → B8F 857c9c30. Deeper: B8F-rollback.sh → B7C 14fe453a.
## Not in scope / open
- Screen content is a live kernel console. A real UI comes in a later stage.
- No backlight dimming (MPP4 sink is on/off at 40 mA).
- About 1 s of dark screen between the bootloader and Linux. The display before Linux needs the B9L lk2nd port; B9L-RAM PASS (logs/b9/lk, logs/b9/b9l); flashing lk1st needs a separate GO.
- The device-tree model string still says "RAM boot B9B" (cosmetic, inherited from the B9B DTS).
**B9 CLOSED.**