# 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.