- 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
62 lines
4.6 KiB
Markdown
62 lines
4.6 KiB
Markdown
# 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).
|