# B10B1-RESULT — upstream PM8916 VM-BMS + simple-battery, RAM only Date: 2026-10-03. **Verdict: PASS.** aboot/cache untouched, eMMC writes = 0, no manual PMIC writes, pm8916_lbc not built, pm8916_usbin unchanged. Boot class A (RTC 6 s) via RESET-held lk1st fastboot. ## Image - kernel `7.2.7-aurora-b10b1` = b10b0 + `CONFIG_BATTERY_PM8916_BMS_VM` (fragment `linux/aurora-b10b1.config`; .config diff = 1 option + LOCALVERSION). - DTB `linux/dts/msm8916-jz08-aurora-b10b1.dts` = B10B-0 + `battery: simple-battery` + `&pm8916_bms { status okay; monitored-battery }` (no `power-supplies`: there is no charger supply in this step). - simple-battery (temporary B10 values): charge-full-design 3000 mAh, voltage-min-design 3.40 V, **voltage-max-design 4.20 V = deliberate B10 safe cap — the cell's datasheet allows 4.35 V**. Nominal 3.8 V **cannot be expressed**: the battery.yaml binding has no nominal-voltage property (not added). - image `b10/b10b1/out/aurora-b10b1.img` 1029647d (`build-b10b1.sh`), driver `b10b1-boot.sh K`, series `b10b1-cal.sh N P`. out/ contains the B8F initramfs (PSK) → never publish. ## Before boot (baseline = running B10B-0 RAM boot, same lk1st fastboot path, `baseline-b10b0.txt`) BMS 0x4040=0a 0x4046=80 0x4047=55 0x4055=0a 0x4056=07. Charger: 0x1009=05 0x1040/41=08 0x1044=00 0x1045=0a 0x1047=04 0x1049=90 0x105b=09 0x1060/61=80/1d 0x10ee=00 0x1308/09=02/90, BOOT_DONE 0x1642=80 (lk1st fastboot). ## After probe 1. `/sys/class/power_supply/pm8916-bms-vm` (type Battery), no dmesg errors. 2. Properties: status **Discharging** (no supplier → `power_supply_am_i_supplied` = -ENODEV), health Good, voltage_now, voltage_ocv, voltage_max_design 4200000, voltage_min_design 3400000, charge_full_design 3000000. **No capacity, no current_now, no charge_now/energy** — the upstream driver does not implement SOC or current (VM-BMS has no current sense); nothing was derived from voltage. 3. voltage_ocv = 3876600 (OCV reg ×300 µV, read once at probe); after 180 s it returns `-ENODATA` ("No data available") as coded. voltage_now updates on the `fifo` IRQ (pm8916_vm_bms, ~1 per minute: 3 → 7 during the series), value = FIFO[1] ×300 µV. 4–6. 12 samples × 20 s (`ram1/cal.txt`, `ram1/analysis.txt`), board charging (CHG_STATUS 05) the whole time: | | mean | σ | |---|---|---| | VADC VBAT (driver refs, ×3) | 3.7436 V | 4.5 mV | | BMS-VM voltage_now | 3.9484 V | 1.3 mV | | **BMS-VM − VADC** | **+204.8 mV (+5.47 %)** | | | FIFO coefficient (VADC / FIFO[1]) | **284.4 µV/LSB** (B10B-0: 284.3) | | | upstream ×300 error | **+5.47 %** | | | BMS-VM rescaled ×284.4/300 | 3.7436 V → 0.0 mV vs VADC | | | OCV reg 12922 | ×300 = 3.877 V (reported), ×284.4 = 3.675 V | | → The upstream BMS-VM reports VBAT ≈ 5.5 % (~200 mV at 3.75 V) too high on this board; with the calibrated coefficient it matches VADC. VADC itself was checked against the DMM in B10B-0 (+32 mV, DMM-limited). 7. PMIC diff vs baseline (`ram1/post-probe.txt`): - **BMS writes (expected from the driver source):** 0x4047 FIFO_LENGTH 55→22 (5/5 → 2/2), 0x4056 S2 interval 07→0a; 0x4055 S1 interval (0a) and 0x4046 EN_CTL (80) written with their existing values; 0x4040 MODE unchanged (no suspend → no force-S3). IRQ config 0x4011/15/16 00→10 (fifo IRQ, bit4, from request_irq). - dynamic only: 0x4009 state, 0x4060–66 / 0x406a / 0x40c0–c9 BMS data, 0x3160/3260/3360 ADC data, 0x6048/49 RTC. - **charger unchanged:** CHG_CTRL 90, VDD_MAX 08, VDD_SAFE 08, IBAT_MAX 00, IBAT_SAFE 0a, VIN_MIN 04, IBATTERM (termination) 09, TCHG 80/1d, COMP_OVR1 00, USB path 0x1308/09 02/90, BOOT_DONE 80 — no change. ## Other subsystems LTE START OK 62.9 s, ping via wwan0 OK; Wi-Fi AP aurora-b8f 67.0 s, Pronto running; NCM/telnet OK; display showed the SAMPLE n/12 screens; PMIC temp 33.6–34.4 °C (`in_temp8_input`, pm8916-thermal); eMMC writes = 0 (all dumps/snapshot). ## Notes for later steps - Upstream BMS-VM is a raw voltmeter: no SOC, no current, OCV only for 180 s, 5.5 % scale error. Any SOC/recharge logic (B10B-3) should use VADC VBAT (or a corrected BMS value), not BMS-VM voltage_now as-is. - `power-supplies` on the BMS node will be needed once the LBC is present (status Charging/Discharging). ## USB meter (operator) ≈0.08 A the whole time (same as B10B-0 ram2), while CHG_STATUS = 05 / FAST_CHG_ON. Second confirmation that in RAM boots via lk1st fastboot (BOOT_DONE = 1, IBAT_MAX field = 0 → 90 mA) the USB input is capped near 90 mA; the board load (~0.15–0.2 A seen in cache boots) is then partly taken from the battery. To be resolved in B10B-2 (LBC programs IBAT_MAX).