uzbek-plus/logs/b10/b10b3/B10B3-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

63 lines
6.1 KiB
Markdown
Raw 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.

# 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_USB` t 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,
lk1st `USE_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_s` keeps counting in HOLD; monitor `load=` field broken.
- Persistent (cache) integration: separate GO.