uzbek-plus/logs/b10/b10b5/B10-RESULT.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

4.5 KiB
Raw Blame History

B10-RESULT — battery charging: PERSISTENT, validated. B10 CLOSED.

Date: 2026-10-04. The eMMC cache is now B10B-5 c37325156a6f4c013982cf01bcb5b2ddb026b0298e9c3ec0be87f57d693464b8 (B10_CACHE_WRITE_VERIFIED). It replaces B9C b9ce13c9; the B9C image is kept as rollback (b10/b10b5/B10-rollback.sh, HW EDL).

What is in it

B9C userspace/init/display/network (initramfs ac518e27, cmdline unchanged) + kernel 7.2.7-aurora-b10b5 (charger supervisor v4 = v3 CHARGE → HOLD → battery → CHARGE + FAULT safe clamp to 4.00 V) + production DTB e47762d1 (charge 4.20 V, HOLD 4.05 V, full-min 4.15 V, CV 60 min, IBAT_MAX 450 mA, safety timer 512 min). No test/debug hooks. Design: logs/b10/b10b3/B10B3-DESIGN.md §8 (8.14–8.17); evidence: B10B3-RESULT.md (state machine), B10B3-TESTD4-RESULT.md (timer), B10B4-RESULT.md (actuators), B10B5-RESULT.md (clamp + production RAM smoke), b10/b10b3/cache-v4 (candidate).

Write (HW EDL, b10/b10b5/B10-write.sh 295ed53b = B9C-write.sh with only image/hashes/aboot 15208dbb/paths changed)

Operator: USB off → battery out/in → D+ → GND, USB, release → 9008. Gates: loader, candidate, rollback image + B9C readback backup, 9008, identity, cache geometry 0x4118c000+0x8000000, GPT == A3, boot e9579f33, aboot 15208dbb, live cache == B9C b9ce13c9 (saved as W/pre-cache.bin). Write cache only → readback c3732515 == candidate (CACHE_MATCH) → GPT p/b, tzbak, boot, aboot, sbl1 rpm tz hyp recovery modemst1 modemst2 fsg fsc persist == A3, modem system userdata == A4pre → B10_CACHE_WRITE_VERIFIED (W-console.txt, W-SHA256SUMS, 480s logs/b10/b10b5/W/).

Persistent validation (cold1: USB off, battery out ≥ 90 s, battery in, USB on — no RESET, no fastboot; cold1/, cold1-*)

  • class A (RTC 3 s); autonomous lk1st → lk2nd extlinux → 7.2.7-aurora-b10b5, production DTB (model "JZ08AU Aurora (RAM boot B10B-3)"), B9C cmdline.
  • safety timer 512 min (TCHG_MAX 0x7f), enabled; supervisor 4.20/4.05/4.15 V, CV 60 min, IBAT code 4; INIT -> CHARGING (probe, usb present).
  • VDD_MAX 08, IBAT_MAX 04, CHG_CTRL a0, TCHG 80/7f, BOOT_DONE 80, CHG_FAILED 00; debugfs only state; 0 B10B-4/B10B-5 strings; 0 FAULT.
  • VADC VBAT 4.189 V, VPH 4.188 V, USBIN 4.952 V, PMIC 39.4 °C.
  • LTE START OK 75.0 s, ping 4/4; Wi-Fi AP enabled 79.2 s, MSS + WCNSS running; DISPLAY READY 7.4 s, 0 errors; NCM OK; eMMC writes 0.
  • USB off ≥ 10 s / on: CHARGING -> NO_USB 201.1 s → NO_USB -> CHARGING 232.8 s → FAST (RT 21, path 02), production registers, USB 0.27 A.
  • 15-min regression window (30 s monitor, 32 samples): 0 ALERT, 0 FAULT, 0 latch, CHG_FAILED 00, PMIC max 39.7 °C, no reset, LTE/Wi-Fi/display OK at the end. (The single dmesg match for "BUG:" is printk: debug: ignoring loglevel setting. — present in every boot, not an error.) Board left running on the persistent cache, CHARGING (FAST).

Final hashes

item sha256
live cache (readback) c37325156a6f4c013982cf01bcb5b2ddb026b0298e9c3ec0be87f57d693464b8
/Image.gz-dtb in cache b0ea04666c4ab979067fe9c0015bda0e9c8ac742678321e57b18e841c9c69f95 (Image.gz 96b71ec3, Image 8c8bfccb)
DTB e47762d1dcd0af6e2acb711fa47ecc13769cd6bcb81259ce50635e8b18b6514a
initramfs ac518e27e2957ad5e4515969b9a3808024e11ef8d1a79433a899a67dbc644558
boot (emmc1) / aboot (lk1st-b9l) e9579f33… / 15208dbb… (unchanged)
rollback cache B9C b9ce13c9f48e36a5054c0ae3c39dc3f184b1fc2eea1d57d4b8bd8e9ae800a37b
driver source b10/b10b3/pm8916_lbc-v4.c (= upstream + linux/patches/b10b3-lbc-supervisor-v3.patch + b10/b10b3/lbc-v3-to-v4-fault-clamp.diff)

Known production limitations (accepted, documented)

  1. FAULT safe clamp to 4.00 V is not a charge disconnect: with VBAT < 4.00 V the charger may still charge up to 4.00 V; no hard stop at any VBAT was found (USB_SUSP does not cut the input; VDD_MAX + IBAT_MAX minimum combination untested).
  2. Safety timer is not a charge stop: it only ends the fast-charge state (path 02 → 01), current continues, CHG_FAILED is not set (Test D4).
  3. No thermal derating (PMIC reached 57.9 °C with charging + 4×CPU in Test C); IBAT_MAX is the identified derating lever, not implemented.
  4. FAST vs non-fast entry condition at probe not fully explained (≈ 3.90–3.93 V after SBL; FAST after a fresh USB insert).
  5. Unreliable battery contact on this board (battery fell out once on 2026-10-04).
  6. Cosmetic: probe banner says "supervisor v3"; DTB model string "RAM boot B10B-3"; debugfs cv_s keeps counting in HOLD.
  7. The 60-min CV hold time is a first value, not tuned.