uzbek-plus/logs/b10/b10b3/B10B5-RESULT.md
q 4983fe2f76 B10: finalize persistent PM8916 charging
- final persistent validation (cold2): autonomous class-A boot from cache c3732515, live cache hash re-read,
  CHARGING/FAST, USB remove/insert recovery, LTE/Wi-Fi/NCM/display PASS, 15-min stability PASS -> B10 CLOSED
- README: B7/B8/B9/B10 CLOSED, production profile (4.20 V / 450 mA / HOLD 4.05 V / full-min 4.15 V / CV 60 min /
  timer 512 min / FAULT safe clamp 4.00 V) and the four production limitations; NOTES session 38
- current tree cleaned of raw B10 run logs (monitor/dmesg/snapshot/UART excerpt/action logs/register dumps/emulator
  outputs); history (58dcb3d) not rewritten
- publication rules: tools/publish-sanitize.py and .gitignore keep B10+ logs to reports (*.md) and *-diff.txt tables
2026-10-04 19:48:10 +03:00

6.7 KiB
Raw Blame History

B10B5-RESULT — FAULT safe clamp to 4.00 V: v4 driver, RAM regression PASS, production cache candidate built (NOT written)

Date: 2026-10-04. B10B-4 closed. RAM only; no cache/eMMC write.

v4 change (production) — b10/b10b3/lbc-v3-to-v4-fault-clamp.diff (source b10/b10b3/pm8916_lbc-v4.c)

  • New lbc_fault_clamp(): regmap_read VDD_MAX → regmap_write VDD_MAX = 0x00 → regmap_read readback → dev_crit "FAULT safe clamp to 4.00 V: cause <why>, vbat <uV>, VDD_MAX old 0x.. -> readback 0x.. (ret n)". New lbc_enter_fault() (reason + clamp + FAULT log) used by both existing FAULT entries in lbc_check_fault() (CHG_FAILED, VBAT > 4.25 V). No other charger write on FAULT entry or in FAULT.
  • FAULT semantics unchanged: latched; left only by USB removal (→ NO_USB; next insert → CHARGING with VDD_MAX = charge level + restart edge) or reboot.
  • Comments/log wording: "FAULT safe clamp to 4.00 V"; documented that it is not a guaranteed charge disconnect — with VBAT < 4.00 V the charger may still charge up to 4.00 V. The old "NO software stop available" text removed. (Cosmetic: the probe banner still says "supervisor v3".)
  • Object: regmap_read 10 → 12, regmap_write 12 → 13 call sites (the clamp's read/write/readback).

RAM regression (test kernel 7.2.7-aurora-b10b5-test = v4 + lbc-v4-to-v4test-fault-inject.diff, Kconfig CHARGER_PM8916_LBC_B10B5_TEST)

Test hook: write-only debugfs pm8916_lbc/b10b5_fault (0200); "ovp" arms a one-shot OVP condition consumed by lbc_check_fault() → the production lbc_enter_fault() path. Negative inputs (OVP, ovp x, foo) rejected, nothing armed. Image out-b5t/aurora-b10b5t.img ea37a67c (production DTB values, model "B10B-5 FAULT clamp TEST"). Run 1 aborted (battery fell out during the planned USB replug — unplanned power loss, board restarted from B9C; nothing written); run 2 (b5r2/, b5r2-actions.txt, fast log b5r2/board/b5-f1.log, UART on 480s).

step result
before FAST (RT 21, path 02), CHG_STATUS 05/03, VDD_MAX 08, IBAT_MAX 04, CHG_CTRL a0, CHG_FAILED 00, USB_SUSP 00; USB 0.25 A; LTE/Wi-Fi/NCM/display OK
trigger dmesg: OVP FAULT injection armed → FAULT safe clamp to 4.00 V: cause TEST-injected OVP (B10B-5), vbat 4177341 uV, VDD_MAX old 0x08 -> readback 0x00 (ret 0) → CHARGING -> FAULT … FAULT safe clamp to 4.00 V (≈ 15 ms)
only actuator write VDD_MAX 08 → 00 (readback 00); IBAT_MAX 04, CHG_CTRL a0, USB_SUSP 00 unchanged; CHG_FAILED 00
USB input meter 0.25 → 0.010 A (+5 s) → 0.000 A (+60 s); USBIN 4.92 → 5.017 V (no sag)
VBAT step 4.184 → 4.140 V, then falls slowly (≈ 4.132 V after 2 min); PMIC 41.5 → 35 °C
supervisor stays FAULT over all polls (≈ 4 min, until USB removal); no restart, no further writes; ALERT-VDDMAX only (expected)
exit USB off ≥ 10 s: FAULT -> NO_USB (usb removed) 875.0 s; insert: NO_USB -> CHARGING (usb inserted) 921.7 s → VDD_MAX 08, IBAT_MAX 04, CHG_CTRL a0, FAST (RT 21, path 02), USB 0.36 A
system LTE ping OK, MSS/WCNSS running, backlight on, NCM OK, eMMC writes 0, no reset
Verdict: PASS.

Production v4 (test trigger removed)

Kernel 7.2.7-aurora-b10b5 = src-b10b5 with pm8916_lbc.c == v4 (no test code), Kconfig == upstream; .config = b10b3 + LOCALVERSION only (incremental build 41 s, rc 0). Image.gz 96b71ec3 (Image 8c8bfccb, 24754184 B); 0 "B10B-5 TEST"/"B10B-4 TEST" strings; build script refuses test symbols/strings.

  • RAM image b10/b10b3/out-v4/aurora-b10b5.img 386502d3… (kernel v4 + production DTB e47762d1 + B9C initramfs ac518e27 + cmdline 0fef41b2).
  • Cache candidate b10/b10b3/cache-v4/cache-extlinux-b10b5.img c37325156a6f4c013982cf01bcb5b2ddb026b0298e9c3ec0be87f57d693464b8 (mkfs-cache-b10b5.sh 7e800639, exact B9C/B10B-3 recipe; rebuild bit-identical; e2fsck clean; label/fs label aurora-b10b5). Diff vs the v3 candidate 86869061 (cache-contents-v3-vs-v4.txt): only /Image.gz-dtb 5e69f843 → b0ea0466 and the extlinux label b10b3 → b10b5; DTB e47762d1, initramfs ac518e27 and append identical.
  • lk2nd emulator: S8 B9C regression == S7; S10 candidate boots 'b10b5', kernel 8c8bfccb, DTB e47762d1, ramdisk ac518e27, no overlap; F1/F3/F10 → android fallback.
  • Not done: a RAM boot of the exact production v4 image 386502d3 (the regression used v4 + trigger); recommended before any persistent GO. Previous artifacts unchanged: v3 candidate 86869061 (4/4), out/ (7/7). Cache not written. Persistent deployment only with a separate GO.

Production v4 RAM smoke test (2026-10-04, run b5p1; b5p1/, b5p1-actions.txt) — PASS

Image b10/b10b3/out-v4/aurora-b10b5.img 386502d3 (pre-checks: no test Kconfig symbols in config-b10b5, 0 test strings in the kernel, production DTB e47762d1 inside). RESET-held boot (stage-3, RTC 6 s — harness only).

  • Kernel 7.2.7-aurora-b10b5, model "JZ08AU Aurora (RAM boot B10B-3)" (production DTB); safety timer 512 min (TCHG_MAX 0x7f), enabled; supervisor banner charge 4200000 / hold 4050000 / full-min 4150000 / cv 60 min / IBAT code 4; INIT -> CHARGING (probe, usb present) at 4.097 V.
  • Registers: VDD_MAX 08, IBAT_MAX 04, CHG_CTRL a0, TCHG 80/7f, BOOT_DONE 80, CHG_FAILED 00; 0 FAULT / clamp messages; 0 B10B-4/B10B-5 messages; debugfs pm8916_lbc/ contains only state.
  • USB off ≥ 10 s / on: CHARGING -> NO_USB 199.6 s, NO_USB -> CHARGING 212.8 s → FAST (RT 21, path 02), CV at ≈ 4.18 V; USB 0.23 A; 0 monitor ALERTs.
  • VADC VBAT 4.186 V, VPH 4.186 V, USBIN 4.936 V, PMIC 41–42 °C; LTE START OK 72.9 s, ping 4/4; Wi-Fi AP enabled 77.5 s, MSS + WCNSS running; DISPLAY READY 7.9 s, 0 display errors; NCM OK; eMMC writes 0.
  • Cache candidate cache-v4/cache-extlinux-b10b5.img re-verified after the test on both hosts: c37325156a6f4c013982cf01bcb5b2ddb026b0298e9c3ec0be87f57d693464b8 (unchanged). Board left CHARGING (FAST) on the production v4 RAM image. Nothing written.

Verdict: READY FOR PERSISTENT GO

Candidate b10/b10b3/cache-v4/cache-extlinux-b10b5.img c3732515 (B9C + kernel 7.2.7-aurora-b10b5 v4 + production DTB e47762d1). Known limits carried into production (documented): FAULT safe clamp to 4.00 V is not a charge disconnect below 4.00 V; safety timer is not a charge stop; no thermal derating; flaky battery contact on this board. A write needs its own GO with the B9C-style write/rollback scripts (rollback target = current live cache B9C b9ce13c9).

Persistent install and final validation (2026-10-04)

Cache written via HW EDL (b10/b10b5/B10-write.sh, B10_CACHE_WRITE_VERIFIED, readback c3732515, all other partitions unchanged); class-A validations cold1 and cold2 PASS (live cache hash re-read from Linux = c3732515). Details and final verdict: logs/b10/b10b5/B10-RESULT.md. B10 battery / charger / power management — CLOSED.