- 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/.
2.4 KiB
B9C cache write — preflight (2026-10-03)
Candidate
cache-extlinux-b9c.img b9ce13c9… (134217728 B, ext2, label aurora-b9c). Built on 480s by mkfs-cache-b9c.sh = exact B8F recipe;
only the kernel/fdt/initrd files, the append line, label and UUIDs differ. The rebuild is bit-identical and e2fsck -fn is clean.
Contains the AP PSK (B8F initramfs) — never publish. Component diff: cache-diff-b8f-vs-b9c.txt.
Evidence before the write
- RAM pretest
aurora-b9c.imgfa855e1c uses the same kernel/DTB/initramfs/cmdline as the candidate. Run: fastboot, ram1, class A (RTC 6 s).- fbcon
21x16(6x8) took over and the panel pipe came up by itself;aurora-displaydid no unblank, backlight on → DISPLAY READY at 8.0 s. - getty on tty1 (pid 624); hostname aurora;
/dev/console= ttyMSM0 (console activetty0 ttyMSM0); UART shell on ttyMSM0. - START OK 69.2 s, AP ENABLED 73.5 s, MPSS/WCNSS running, display errors 0, eMMC w=0.
- Operator: text visible and readable, orientation correct, no clipping; backlight OFF→ON via sysfs confirmed.
- The login prompt scrolls away under later kernel messages (ignore_loglevel) — accepted (option A).
- fbcon
- lk2nd emulator (
emu/):- S6 regression on the live B8F cache == the B8F emu run.
- S7 candidate: "Trying to boot 'b9c'", kernel 3afc6c77 (24686600 B, image_size 0x1820000, ends at DDR+0x1820000), DTB 7ca9cc79 @DDR+0x20A9000, ramdisk ac518e27 @DDR+0x22A9000 — no overlap.
- Fault variants F1/F3/F10 → android boot (emmc1 fallback).
Write / rollback
B9C-write.sh = B8F-write.sh with only the image, expected hashes, rollback references and log dir changed.
Gates, in order:
- loader;
- candidate sha + size;
- rollback image B8F 857c9c30 and the B8F readback backup;
- 9008 present; identity/geometry;
- GPT == A3; boot == emmc1; aboot == lk1st-autoboot;
- live cache == B8F 857c9c30 — the pre-write readback is saved as
logs/b9/b9c/W/pre-cache.bin(backup).
Then: write cache only → readback cmp → verify every other partition → B9C_WRITE_VERIFIED.
Rollback: B9C-rollback.sh → B8F cache (via HW EDL). Entry: HW EDL (battery on, D+→GND, plug USB, release).
After the write
3 normal class-A cold boots (no RESET, no fastboot, no UART input): power off ≥ 90 s → normal power-on → b9c-boot.sh K cold.
In one of them, check backlight ON → OFF → ON visually via aurora-display bl (sysfs).