uzbek-plus/b10/b10b5/B10-PREFLIGHT.md
q 58dcb3d121 B10: battery charging — PM8916 LBC supervisor v4 (CHARGE/HOLD, FAULT safe clamp to 4.00 V) and persistent B10B-5 cache
- LBC supervisor v1..v4 (linux/patches/b10b3-lbc-supervisor-v3.patch + b10/b10b3/lbc-v3-to-v4-fault-clamp.diff):
  CHARGING 4.20 V/450 mA -> HOLD 4.05 V after 60 min CV -> battery -> new cycle on USB insert; FAULT = VDD_MAX 4.00 V clamp
- RAM tests C/B/D/D2/D3/D4 (safety timer only ends fast charge), B10B-4 actuator audit (VDD_MAX works, USB_SUSP does not),
  B10B-5 FAULT clamp regression, production run, warm reboot via PON reboot reason
- cache = B10B-5 c3732515 (HW EDL write, readback + full partition verify), class-A persistent validation
- test-only hooks/images are not part of the production kernel; images with the AP PSK are not published
2026-10-04 19:00:27 +03:00

39 lines
3.7 KiB
Markdown
Raw Permalink 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.

# B10 cache write — preflight (2026-10-04) — reviewed, NOT executed
## Candidate / rollback
- Candidate `b10/b10b3/cache-v4/cache-extlinux-b10b5.img` **c37325156a6f4c013982cf01bcb5b2ddb026b0298e9c3ec0be87f57d693464b8** (134217728 B) =
B9C + kernel 7.2.7-aurora-b10b5 (v4, FAULT safe clamp) + production DTB e47762d1; no test hooks (B10B5-RESULT.md, production RAM smoke PASS).
- Live cache today: B9C **b9ce13c9** — rollback image `b9/b9c/cache/cache-extlinux-b9c.img` and the B9C write readback `logs/b9/b9c/W/11-cache-readback.bin`
(both b9ce13c9, checked). The script also saves the live cache read right before the write as `logs/b10/b10b5/W/pre-cache.bin`.
## Scripts (on 480s; b10/b10b5/)
- `B10-write.sh` 295ed53b — 1:1 from `b9/b9c/cache/B9C-write.sh`; changed only: image + NEW_SHA, OLD_SHA = B9C b9ce13c9, rollback/backup paths (B9C),
**ABOOT_SHA = 15208dbb (lk1st-b9l since B9L-PERSIST; B9C used 3b8cd266)**, log dir `logs/b10/b10b5/W`, rollback hint, final marker.
Gates (stop at first failure): G0 loader 53f19350 / candidate sha+size / rollback image / B9C readback backup / 9008 present;
G1 printgpt, serial 0x<SAHARA_SERIAL> or firehose, cache geometry 0x4118c000+0x8000000, GPT primary == A3, boot == e9579f33 (emmc1), aboot == 15208dbb,
**live cache == b9ce13c9** (= backup); W: `edl w cache` only → readback → cmp == candidate (CACHE_MATCH) else STOP "do NOT reboot; run rollback";
V: GPT primary/backup, tzbak, boot, aboot, sbl1 rpm tz hyp recovery modemst1 modemst2 fsg fsc persist == A3, modem system userdata == A4pre;
SHA256SUMS → `B10_CACHE_WRITE_VERIFIED`. Offline G0 check done: loader, candidate, rollback image, backup and all A3/A4pre references OK.
- `B10-rollback.sh` 37e0e165 — 1:1 from B9C-rollback.sh: rollback image hash gate → 9008 gate → `edl w cache` B9C → readback cmp → `CACHE_RESTORED_B9C`.
- `b10-cold-boot.sh K` — observation of the normal power-on (MODE=cold: aborts if fastboot appears = RESET held); RTC class, LTE/Wi-Fi/display/charger snapshot.
Never `edl reset`; never `dd` from Linux.
## Physical sequence — install (verified B9C HW EDL workflow)
Battery is required during EDL (the board does not start from USB alone, NOTES.md:483). Minimum battery handling inside the verified procedure: 2× out/in.
1. Board running; operator: USB OFF (unplug the board's USB cable).
2. Battery OUT (board off), then battery IN — board stays off (no USB). Check the contact sits firmly.
3. Hold D+ to GND, plug USB, release D+ → host shows 05c6:9008. Claude runs `b10/b10b5/B10-write.sh` (≈ 10–15 min incl. verify reads).
4. Only after `B10_CACHE_WRITE_VERIFIED`: USB OFF → battery OUT → wait ≥ 90 s (this is also the class-A condition).
5. Claude starts `b10-cold-boot.sh 1`; operator: battery IN → USB ON, **no RESET, no D+**. Normal power-on → lk1st → lk2nd extlinux → b10b5 from cache.
If step 3 prints a STOP before W: nothing was written → USB OFF, battery out/in, USB ON → B9C boots as before.
If CACHE READBACK MISMATCH: do NOT power off; keep 9008 and run the rollback below immediately.
## Physical sequence — rollback to B9C b9ce13c9 (if needed)
1. Board running (or off): USB OFF → battery OUT → battery IN (board off).
2. D+ to GND, plug USB, release → 9008. Claude runs `b10/b10b5/B10-rollback.sh` → `CACHE_RESTORED_B9C`.
3. USB OFF → battery OUT ≥ 90 s → battery IN → USB ON (no RESET) → B9C boots.
## Not used (recorded only)
- Battery out for the whole EDL → flash → power-off span: impossible (EDL needs the battery).
- `fastboot oem reboot-edl` from lk1st (verified for EDL entry and reads in A3 / S1 / S3 sessions, NOTES.md:530/569/866) would avoid steps 1–2,
but no cache write was ever done through it → not used.