uzbek-plus/b10/b10a/b10a-probe.sh
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

22 lines
1.6 KiB
Bash

#!/bin/sh
# B10A read-only probe: power_supply/extcon/regulator state + PM8916 charger/BMS/VADC/PON register dump.
# Only reads (regmap debugfs positioned reads, sysfs/proc reads). No writes to any device register.
grep -q " /sys/kernel/debug " /proc/mounts || mount -t debugfs debugfs /sys/kernel/debug
R=/sys/kernel/debug/regmap/0-00/registers
echo "== B10A-PROBE-START $(date -u +%s) up $(cut -d' ' -f1 /proc/uptime)"
uname -a
echo "== power_supply"; ls -la /sys/class/power_supply/ 2>&1
for d in /sys/class/power_supply/*; do [ -e "$d/uevent" ] && { echo "-- $d"; cat "$d/uevent"; }; done
echo "== extcon"; for e in /sys/class/extcon/*; do echo "-- $e $(cat $e/name 2>/dev/null)"; cat $e/state 2>/dev/null; done
echo "== thermal"; for t in /sys/class/thermal/thermal_zone*; do echo "$t $(cat $t/type) $(cat $t/temp 2>/dev/null)"; done
echo "== hwmon"; for h in /sys/class/hwmon/*; do echo "$h $(cat $h/name)"; done
echo "== iio"; ls /sys/bus/iio/devices 2>&1
echo "== regmaps"; ls /sys/kernel/debug/regmap/
echo "== regulator_summary"; cat /sys/kernel/debug/regulator/regulator_summary 2>&1 | head -60
echo "== udc"; for u in /sys/class/udc/*; do echo "$u state=$(cat $u/state 2>/dev/null) speed=$(cat $u/current_speed 2>/dev/null)"; done
echo "== dmesg-power"; dmesg | grep -i -E "charg|batt|bms|vbus|usb_vbus|extcon|power_supply|ci_hdrc|pm8916|pon|uvlo|thermal|tsens|spmi" | head -80
echo "== interrupts"; grep -i -E "pm8916|spmi|pon|usb|chg|bat" /proc/interrupts
for blk in 0100 0800 0900 1000 1200 1300 1600 2400 2800 3100 3400 4000 a300; do
echo "== REG $blk"; dd if=$R bs=9 skip=$((0x$blk)) count=256 2>/dev/null
done
echo "== B10A-PROBE-END"