uzbek-plus/logs/b10/b10b1/B10B1-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

62 lines
4.6 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.

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