- 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
6.1 KiB
6.1 KiB
B10B3-RESULT — production-profile final RAM run (DESIGN 8.7) and B10B-3 criteria
Date: 2026-10-04 (UTC 01:28 – 11:46). Status: B10 charging logic: RAM VALIDATED (criterion 7 with a scope limitation, see below).
Image b10/b10b3/out-p/aurora-b10b3p.img 8bcd613e = v3 kernel 1164b1c7 (same as Test C/B/D, no D3 change) + B9C initramfs/cmdline +
DTB linux/dts/msm8916-jz08-aurora-b10b3p.dts (= production msm8916-jz08-aurora-b10b3.dts, only the model string differs; decoded:
charge 4200000 → VDD_MAX 08, HOLD 4050000 → 02, full-min 4150000, CV 60 min, timer 512 min → TCHG 80/7f, fast-charge-safe-current 500000 → IBAT_MAX 04).
RAM boot only; aboot/cache/eMMC untouched; COMP_OVR not touched; no manual charger-register writes.
Run p1 (t from probe 0.927 s; monitor 30 s, 1159 samples; logs p1/, p1-*.txt, p1-mon-board-final.txt, UART logs/uart/b10b3p-ram1-20261004-042944.log on 480s)
- Class A before (RTC 3 s;
pre-prod-classA-check.txt,pre-prod-classA-dump.txt,pre-prod-vs-preD3-diff.txt: ADC/BMS/RTC only). B9C DMM 4.074 V, USB 0.41 A. RESET-held reboot → fastboot → boot (stage-3 again, RTC 5 s; driver programs everything at probe). Note: the first monitor starter misfired on one lost ping (pushed the monitor to B9C, stopped;p1-actions-misfire.txt); starter now waits for fastboot. - t 0:
INIT -> CHARGING (probe, usb present), VBAT 4.011 V: VDD_MAX 08, IBAT_MAX 04, CHG_CTRL a0, TCHG 80/7f, BOOT_DONE 80, path 01 (non-fast entry, as expected for a probe after SBL above ≈ 3.93 V), USB 0.41 A. - CC → CV at 4.20 V (first CV sample t ≈ 3208 s, VBAT ≈ 4.18 V under charge) → CHARGING → HOLD at t = 6666.5 s after 60 min CV (vbat 4.183 V), only VDD_MAX 08 → 02.
- HOLD phase 1: 4.18 → 4.05 V (≈ 1.4 mV/min, USBIN 5.017 V = board on battery). Shelf from t ≈ 12100 s: VADC 4.033–4.056 V over 743 samples (≈ 6.3 h), never rising; USBIN 4.95–5.00 V (USB carries the board). Operator on the shelf: USB 0.1 A, DMM 4.035 V.
- usbpull3 (heartbeat on UART): DMM 4.035 → 4.009 V at the pull → 4.007 V; 44 beats, max gap 5.02 s, no SBL/boot; display and Wi-Fi kept working
(operator).
HOLD -> NO_USBt 34512 s (no writes). Re-insert after ≈ 105 s:NO_USB -> CHARGING (usb inserted)t 34618 s → VDD_MAX 08, IBAT 04, CHG_CTRL a0, CHG_FAILED 00, FAST + path 02; DMM 4.003 → 4.10 V, USB 0.4 A. - Whole run: 0 ALERT, CHG_FAILED 00 in all samples, no FAULT, n_latch 0, PMIC max 45.7 °C (CC), 33–43.6 °C on the shelf. eMMC writes 0. LTE START OK 73.6 s, ping 4/4 (boot) and 4/4 (t ≈ 34400 s); Wi-Fi AP enabled 77.1 s; MSS + WCNSS running; DRM SPI panel enabled, backlight on; NCM throughout.
- The run was ended at t ≈ 34935 s (CHARGING after the re-insert) by the warm-reboot feasibility test (B10B3-RBL1-RESULT.md).
Criterion 7 — warm reboot: PASS with scope limitation (operator decision, variant B)
Confirmed (B10B3-RBL1-RESULT.md):
reboot(RESTART2, "bootloader")(b10/b10b3/rbl/reboot-bootloader) puts lk1st into fastboot without a physical RESET (PON 0x88F[7:2] = 2, lk1stUSE_PON_REBOOT_REG); lk1st fastboot data transfer needs one USB replug after a Linux reboot (lk1st quirk).- No stage-3 PMIC reset (POFF_REASON2 0x80D 00); RTC continuous (34940 → 36836 s); PON_REASON1 0x808 = 11 (hard reset via PS_HOLD, POFF_REASON1 02).
- After the warm reboot part of the charger configuration is re-initialised to the SBL values: IBAT_MAX 00, IBAT_SAFE 0a, CHG_CTRL 90, TCHG_MAX 1d (BOOT_DONE 80, VDD_SAFE 08, 0x105B 09, 0x10EE 00 unchanged; VDD_MAX was 08 before and after).
- The production driver at probe programs the required CHARGING state from exactly this SBL-default state — VDD_MAX 4.20 V (08), IBAT_MAX 450 mA (04), CHG_CTRL 0xA0, safety timer 512 min (80/7f), BOOT_DONE 1 — and charging/USB path come up normally (every probe of this run series started from SBL-default charger registers; p1 probe above). Scope limitation (recorded, not hidden):
- Preservation of VDD_MAX = 4.05 V from HOLD through a warm reboot was not tested (no 2-h HOLD re-run, variant A not done).
- This is not a production requirement: after any reboot the design deliberately starts a new charge cycle and programs VDD_MAX = 4.20 V anyway.
- The earlier statement "charger settings survive class-B/warm reboots" is withdrawn as wrong. Correct model:
warm reboot → SBL partially re-initialises the charger → the driver always re-programs the production configuration.
B10B-3 criteria (final RAM run)
| # | criterion | result |
|---|---|---|
| 1 | CHARGING → CV → HOLD automatically | PASS (HOLD at t 6666.5 s after 60 min CV) |
| 2 | HOLD: VDD_MAX → 4.05 V, VBAT does not rise | PASS (VDD_MAX 02; shelf 4.033–4.056 V for ≈ 6.3 h) |
| 3 | no 00+01 latch, CHG_FAILED, FAULT/ALERT | PASS (n_latch 0, CHG_FAILED 00, 0 ALERT, no FAULT) |
| 4 | USB carries the system in HOLD | PASS (USB 0.1 A on the shelf, USBIN sag, VBAT flat) |
| 5 | HOLD → USB unplug → battery without reset | PASS (usbpull3; also usbpull2 in Test D4) |
| 6 | USB insert → correct recovery | PASS (NO_USB → CHARGING, production registers, FAST + path 02) |
| 7 | warm reboot → driver restores the production state | PASS with scope limitation (see above) |
| 8 | LTE / Wi-Fi / NCM / display alive | PASS |
| 9 | eMMC writes = 0 | PASS |
| 10 | PMIC temperature safe | PASS (max 45.7 °C) |
Open items (not blockers for the RAM validation)
- No verified software emergency stop (CHG_EN = 0 does not stop the LBC; DESIGN 8.4/1) — FAULT remains logical only.
- Safety timer is not a charge-stop protection (Test D4); charging is bounded by VDD_MAX regulation + HOLD logic.
- FAST vs non-fast entry condition at probe (≈ 3.90–3.93 V threshold after SBL; FAST at 4.02 V after a USB insert) not fully explained.
- Thermal margin with extra CPU load (Test C: 57.9 °C) — derating not implemented (out of scope now).
- lk1st fastboot needs a USB replug after a software reboot (test-harness only).
- Cosmetic: debugfs
cv_skeeps counting in HOLD; monitorload=field broken. - Persistent (cache) integration: separate GO.