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
This commit is contained in:
parent
41d7850b12
commit
58dcb3d121
399 changed files with 1683906 additions and 6 deletions
27
README.md
27
README.md
|
|
@ -9,7 +9,7 @@
|
|||
> (см. [docs/QUICKSTART.md](docs/QUICKSTART.md)). Никогда не прошивайте NV/EFS-разделы (`modemst1`, `modemst2`, `fsg`, `fsc`, `persist`)
|
||||
> с другого устройства — там калибровки RF и идентификаторы конкретного модема.
|
||||
|
||||
## Статус (2026-10-03)
|
||||
## Статус (2026-10-04)
|
||||
|
||||
| Подсистема | Статус |
|
||||
|---|---|
|
||||
|
|
@ -28,13 +28,13 @@
|
|||
| Wi-Fi (WCNSS/Pronto + wcn36xx, тестовая AP WPA2, автозапуск из flash) — B8 | **PASS / CLOSED** (см. ниже) |
|
||||
| Router stack (NAT/firewall/VPN) | TODO |
|
||||
| Дисплей ST7735S 128×128 (SPI): DRM/fbcon tty1, подсветка, автозапуск из flash — B9 | **PASS / CLOSED** (см. ниже) |
|
||||
| Батарея / зарядка | TODO |
|
||||
| Батарея / зарядка: супервизор CHARGE → HOLD → батарея, FAULT safe clamp, автозапуск из flash — B10 | **PASS / CLOSED** (см. ниже) |
|
||||
|
||||
## Рабочая цепочка загрузки (baseline B5)
|
||||
|
||||
```
|
||||
Power → stock SBL1 → DB410c TZ (TZ.BF.3.0) → qhypstub → lk1st (aboot, autoboot, splash на ST7735S через ~0.4 с)
|
||||
→ cache: ext2 + extlinux/extlinux.conf → B9C (ядро b9c + DTB b9b + initramfs: модем, время, Wi-Fi, дисплей) → ARM64 Linux → LTE + Wi-Fi AP + консоль на экране
|
||||
→ cache: ext2 + extlinux/extlinux.conf → B10B-5 (ядро b10b5 + DTB b10b3 + initramfs B9C: модем, время, Wi-Fi, дисплей) → ARM64 Linux → LTE + Wi-Fi AP + консоль на экране + зарядка
|
||||
Fallback: extlinux не найден / не парсится / не грузится → Android boot image из раздела boot (emmc1 rescue)
|
||||
```
|
||||
|
||||
|
|
@ -48,13 +48,29 @@ Fallback: extlinux не найден / не парсится / не грузит
|
|||
| hyp | qhypstub, до 512 KiB | `1a963047` |
|
||||
| aboot | lk1st (lk2nd 23.1 + патч B9L: SPI-панель ST7735S + splash) autoboot, подписан qtestsign, до 1 MiB | `15208dbb` (откат: B5a lk1st `3b8cd266`) |
|
||||
| boot | emmc1 rescue image (+ нули до 16 MiB) | `e9579f33` |
|
||||
| cache | ext2 + extlinux + B9C (ядро 7.2.7-aurora-b9c, DTB b9b, initramfs B8F + дисплей) | `b9ce13c9` (откат: B8F `857c9c30` → B7C `14fe453a` → T4 `9d3bc890` → B6P `9fea693a`) |
|
||||
| cache | ext2 + extlinux + B10B-5 (ядро 7.2.7-aurora-b10b5 = B9C + зарядник, DTB b10b3, initramfs B9C) | `c3732515` (откат: B9C `b9ce13c9` → B8F `857c9c30` → B7C `14fe453a` → T4 `9d3bc890` → B6P `9fea693a`) |
|
||||
| recovery | lk2nd 23.1 (fastboot) | `0dfa60a0` |
|
||||
| modem, NV/EFS, persist, system, userdata | не менялись (Linux монтирует modem FAT только RO) | — |
|
||||
|
||||
Golden mm1 (Android boot image, для `fastboot boot`): `aurora-mm1.img` sha256 `38c960ef…`, ядро `7.2.7-aurora-bam1 #5`.
|
||||
Все хэши целиком: `b5a/SHA256SUMS`, `b5b/SHA256SUMS`, `bootchain-migration/SHA256SUMS`, `linux/*/SHA256SUMS`, [docs/BLOBS.md](docs/BLOBS.md).
|
||||
|
||||
## B10 status — батарея и зарядка PASS (2026-10-04)
|
||||
|
||||
- Зарядник PM8916 **LBC** (линейный) + VADC VBAT + BMS-VM: свой супервизор поверх upstream `pm8916_lbc` (`linux/patches/b10b3-lbc-supervisor-v3.patch`
|
||||
+ `b10/b10b3/lbc-v3-to-v4-fault-clamp.diff` = **v4**). Состояния NO_USB → CHARGING (4.20 V / 450 mA, safety timer 512 min) → **HOLD**
|
||||
(после 60 min CV при VBAT ≥ 4.15 V VDD_MAX опускается до 4.05 V: батарея стекает до полки, дальше плату питает USB) → USB вынут → батарея → USB → новый цикл.
|
||||
**FAULT** (VBAT > 4.25 V или CHG_FAILED): единственная запись — **FAULT safe clamp to 4.00 V** (VDD_MAX = 0x00), защёлка до извлечения USB/перезагрузки.
|
||||
- Проверено в RAM: CC/CV → HOLD, полка 4.03–4.06 V ~6 ч, USB 0.1 A на полке, HOLD → USB off → батарея без сброса, USB insert → новый цикл,
|
||||
warm reboot (программный вход в lk1st fastboot через PON reboot reason), FAULT-инъекция (тестовое ядро) → USB 0.000 A; затем production smoke.
|
||||
- Записано в cache (`b10/b10b5/B10-write.sh`, HW EDL, readback + сверка всех разделов) и проверено class-A загрузкой с eMMC без ввода.
|
||||
- Факты о железе (подробно в `logs/b10/b10b3/B10B3-DESIGN.md`, отчётах `B10B3-*`/`B10B4-*`/`B10B5-*`, `logs/b10/b10b5/B10-RESULT.md`):
|
||||
CHG_STATUS `00` + USB path `01` — защёлка, а не «заряжено»; CHG_EN = 0 заряд **не** останавливает; safety timer (TCHG = min/4 − 1) работает только
|
||||
в fast-charge (FAST_CHG_ON, path `02`) и по истечении лишь выводит из него — ток идёт, CHG_FAILED не ставится; USB_SUSP (`0x1347` bit0) вход не отключает;
|
||||
рабочий рычаг — VDD_MAX = 4.00 V (при VBAT > 4.00 V ток со входа → 0); после warm reboot SBL частично переинициализирует зарядник.
|
||||
- Ограничения: clamp при VBAT < 4.00 V не отключает заряд (жёсткой остановки нет); safety timer не является защитой; нет снижения тока по температуре
|
||||
(PMIC до 58 °C при заряде + нагрузке CPU); время CV 60 min не подбиралось.
|
||||
|
||||
## B9 status — дисплей PASS (2026-10-03)
|
||||
|
||||
- Встроенный экран — **не DSI**: 1.44" **ST7735S 128×128 на SPI** (MIPI-DBI type C), BLSP1 QUP4 `spi@78b8000`, 16 MHz, mode 3, CS0,
|
||||
|
|
@ -132,6 +148,7 @@ Safety:
|
|||
| `b7/` | B7: время от сети (DMS/NITZ), проверка по NTP, cache B7C |
|
||||
| `b8/` | B8: Wi-Fi — аудит, WCNSS/NV, wcn36xx, hostapd, сервис aurora-wifi, cache B8F (запись/откат/эмулятор) |
|
||||
| `b9/` | B9: дисплей — аудит stock LK/DT, panel-mipi-dbi firmware, fbcon/сервис aurora-display, cache B9C, патч lk2nd (SPI-панель в LK) |
|
||||
| `b10/` | B10: батарея/зарядка — аудит, супервизор v1–v4 (патчи/diff), тестовые DTB/сборки/скрипты, хуки B10B-4/5 (только тест), cache B10B-5 (запись/откат/эмулятор) |
|
||||
| `tools/` | утилиты: UART-логгер, Sahara probe, распаковка boot.img, sanitizer публикации |
|
||||
| `logs/` | sanitized логи: UART, QMI, ModemManager, EDL, результаты тестов |
|
||||
| `android/` | снимок стокового Android (getprop, gpio, input, leds, …), sanitized |
|
||||
|
|
@ -140,6 +157,6 @@ Safety:
|
|||
|
||||
Полные дампы eMMC и разделов, NV/EFS (`modemst1/2`, `fsg`, `fsc`), `persist`, `userdata`, файлы прошивки модема,
|
||||
стоковые SBL1/RPM/TZ/aboot/boot/recovery/system, Firehose-программер, DB410c TZ, собранные бинарники,
|
||||
Wi-Fi NV (`WCNSS_qcom_wlan_nv.bin`), PSK тестовой AP и образы с ним (B8F/B9C initramfs/cache), логотип из stock LK.
|
||||
Wi-Fi NV (`WCNSS_qcom_wlan_nv.bin`), PSK тестовой AP и образы с ним (B8F/B9C/B10 initramfs/cache/RAM-образы), логотип из stock LK.
|
||||
Идентификаторы (IMEI, IMSI, ICCID, eMMC CID/serial, Sahara serial, MAC, номера сот, cookies) заменены на `<PLACEHOLDER>`.
|
||||
Как это сделано — `tools/publish-sanitize.py`; значения идентификаторов в репозиторий не попадают.
|
||||
|
|
|
|||
1
b10/b10a/b10a-classA1.txt
Normal file
1
b10/b10a/b10a-classA1.txt
Normal file
|
|
@ -0,0 +1 @@
|
|||
M 0 up=45.52 st1009=05 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=94 38 ff ff ff ff ff ff ff ff ocv=0a 37 bms4008=80 01 tcpu=44000
|
||||
110
b10/b10a/b10a-death-uart-tail.txt
Normal file
110
b10/b10a/b10a-death-uart-tail.txt
Normal file
|
|
@ -0,0 +1,110 @@
|
|||
]: <dbg> [1790984252.769311] [modem0] RSSI: -73 dBm --> 65%
|
||||
[1902]: <dbg> [1790984252.770059] [modem0] signal quality updated (65)
|
||||
[1902]: <dbg> [1790984252.770580] [modem0] skipping extended signal information update...
|
||||
[1902]: <dbg> [1790984264.324814] [/dev/wwan0qmi0] sent message...
|
||||
<<<<<< RAW:
|
||||
<<<<<< length = 20
|
||||
<<<<<< data = <qmi-hex-redacted>
|
||||
|
||||
[1902]: <dbg> [1790984264.325828] [/dev/wwan0qmi0] sent generic request (translated)...
|
||||
<<<<<< QMUX:
|
||||
<<<<<< length = 19
|
||||
<<<<<< flags = 0x00
|
||||
<<<<<< service = "wds"
|
||||
<<<<<< client = 2
|
||||
<<<<<< QMI:
|
||||
<<<<<< flags = "none"
|
||||
<<<<<< transaction = 76
|
||||
<<<<<< tlv_length = 7
|
||||
<<<<<< message = "Get Packet Statistics" (0x0024)
|
||||
<<<<<< TLV:
|
||||
<<<<<< type = "Mask" (0x01)
|
||||
<<<<<< length = 4
|
||||
<<<<<< value = C0:00:00:00
|
||||
<<<<<< translated = tx-bytes-ok, rx-bytes-ok
|
||||
|
||||
[1902]: <dbg> [1790984264.331320] [/dev/wwan0qmi0] received message...
|
||||
<<<<<< RAW:
|
||||
<<<<<< length = 42
|
||||
<<<<<< data = <qmi-hex-redacted>
|
||||
|
||||
[1902]: <dbg> [1790984264.332555] [/dev/wwan0qmi0] received generic response (translated)...
|
||||
<<<<<< QMUX:
|
||||
<<<<<< length = 41
|
||||
<<<<<< flags = 0x80
|
||||
<<<<<< service = "wds"
|
||||
<<<<<< client = 2
|
||||
<<<<<< QMI:
|
||||
<<<<<< flags = "response"
|
||||
<<<<<< transaction = 76
|
||||
<<<<<< tlv_length = 29
|
||||
<<<<<< message = "Get Packet Statistics" (0x0024)
|
||||
<<<<<< TLV:
|
||||
<<<<<< type = "Result" (0x02)
|
||||
<<<<<< length = 4
|
||||
<<<<<< value = 00:00:00:00
|
||||
<<<<<< translated = SUCCESS
|
||||
<<<<<< TLV:
|
||||
<<<<<< type = "Rx Bytes Ok" (0x1a)
|
||||
<<<<<< length = 8
|
||||
<<<<<< value = <qmi-hex-redacted>
|
||||
<<<<<< translated = 2062
|
||||
<<<<<< TLV:
|
||||
<<<<<< type = "Tx Bytes Ok" (0x19)
|
||||
<<<<<< length = 8
|
||||
<<<<<< value = <qmi-hex-redacted>
|
||||
<<<<<< translated = 1772
|
||||
|
||||
[1902]: <dbg> [1790984268.123143] [/dev/wwan0qmi0] received message...
|
||||
<<<<<< RAW:
|
||||
<<<<<< length = 22
|
||||
<<<<<< data = <qmi-hex-redacted>
|
||||
|
||||
[1902]: <dbg> [1790984268.124163] [/dev/wwan0qmi0] received generic indication (translated)...
|
||||
<<<<<< QMUX:
|
||||
<<<<<< length = 21
|
||||
<<<<<< flags = 0x80
|
||||
<<<<<< service = "nas"
|
||||
<<<<<< client = 1
|
||||
<<<<<< QMI:
|
||||
<<<<<< flags = "indication"
|
||||
<<<<<< transaction = 107
|
||||
<<<<<< tlv_length = 9
|
||||
<<<<<< message = "Signal Info" (0x0051)
|
||||
<<<<<< TLV:
|
||||
<<<<<< type = "LTE Signal Strength" (0x14)
|
||||
<<<<<< length = 6
|
||||
<<<<<< value = <qmi-hex-redacted>
|
||||
<<<<<< translated = [ rssi = '-68' rsrq = '-12' rsrp = '-96' snr = '18' ]
|
||||
|
||||
[1902]: <dbg> [1790984268.128639] [modem0] RSSI (LTE): -68 dBm
|
||||
[1902]: <dbg> [1790984268.129088] [modem0] RSSI: -68 dBm --> 73%
|
||||
[1902]: <dbg> [1790984268.129841] [modem0] signal quality updated (73)
|
||||
[1902]: <dbg> [1790984268.130362] [modem0] skipping extended signal information update...
|
||||
[1902]: <dbg> [1790984270.682898] [/dev/wwan0qmi0] received message...
|
||||
<<<<<< RAW:
|
||||
<<<<<< length = 22
|
||||
<<<<<< data = <qmi-hex-redacted>
|
||||
|
||||
[1902]: <dbg> [1790984270.683916] [/dev/wwan0qmi0] received generic indication (translated)...
|
||||
<<<<<< QMUX:
|
||||
<<<<<< length = 21
|
||||
<<<<<< flags = 0x80
|
||||
<<<<<< service = "nas"
|
||||
<<<<<< client = 1
|
||||
<<<<<< QMI:
|
||||
<<<<<< flags = "indication"
|
||||
<<<<<< transaction = 108
|
||||
<<<<<< tlv_length = 9
|
||||
<<<<<< message = "Signal Info" (0x0051)
|
||||
<<<<<< TLV:
|
||||
<<<<<< type = "LTE Signal Strength" (0x14)
|
||||
<<<<<< length = 6
|
||||
<<<<<< value = <qmi-hex-redacted>
|
||||
<<<<<< translated = [ rssi = '-72' rsrq = '-9' rsrp = '-97' snr = '84' ]
|
||||
|
||||
[1902]: <dbg> [1790984270.688601] [modem0] RSSI (LTE): -72 dBm
|
||||
[1902]: <dbg> [1790984270.689055] [modem0] RSSI: -72 dBm --> 67%
|
||||
[1902]: <dbg> [1790984270.689800] [modem0] signal quality updated (67)
|
||||
[1902]: <dbg> [1790984270.690326] [modem0] skipping extended signal information update...
|
||||
[1902]: <dbg> [1790984291.163062] [/dev/wwan0qmi0] receiv
|
||||
3427
b10/b10a/b10a-live1.txt
Normal file
3427
b10/b10a/b10a-live1.txt
Normal file
File diff suppressed because it is too large
Load diff
3427
b10/b10a/b10a-live2.txt
Normal file
3427
b10/b10a/b10a-live2.txt
Normal file
File diff suppressed because it is too large
Load diff
12
b10/b10a/b10a-load.sh
Normal file
12
b10/b10a/b10a-load.sh
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
#!/bin/sh
|
||||
# B10A load probe: idle 20 s, 4x `yes` for 60 s, idle 30 s; sample BMS FIFO + CHGR/USB RT every 5 s. Reads only.
|
||||
grep -q " /sys/kernel/debug " /proc/mounts || mount -t debugfs debugfs /sys/kernel/debug
|
||||
R=/sys/kernel/debug/regmap/0-00/registers
|
||||
rd() { dd if=$R bs=9 skip=$(($1)) count=$2 2>/dev/null | cut -d' ' -f2 | tr '\n' ' '; }
|
||||
s() { echo "$1 $(date +%T) up=$(cut -d' ' -f1 /proc/uptime) fifo=$(rd 0x40c0 10) chgrt=$(rd 0x1010 1) usbrt=$(rd 0x1310 1) t=$(cat /sys/class/thermal/thermal_zone4/temp) f=$(cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq)"; }
|
||||
for i in 1 2 3 4; do s IDLE0; sleep 5; done
|
||||
echo "LOAD-ON $(date +%T)"; for c in 1 2 3 4; do yes > /dev/null & done
|
||||
for i in 1 2 3 4 5 6 7 8 9 10 11 12; do s LOAD; sleep 5; done
|
||||
killall yes; echo "LOAD-OFF $(date +%T)"
|
||||
for i in 1 2 3 4 5 6; do s IDLE1; sleep 5; done
|
||||
echo B10A-LOAD-END
|
||||
25
b10/b10a/b10a-load2.txt
Normal file
25
b10/b10a/b10a-load2.txt
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
IDLE0 23:55:03 up=100.91 fifo= chgrt= usbrt= t=45000 f=800000
|
||||
IDLE0 23:55:08 up=105.94 fifo= chgrt= usbrt= t=44000 f=800000
|
||||
IDLE0 23:55:13 up=110.96 fifo= chgrt= usbrt= t=44000 f=800000
|
||||
IDLE0 23:55:18 up=115.99 fifo= chgrt= usbrt= t=44000 f=800000
|
||||
LOAD-ON 23:55:23
|
||||
LOAD 23:55:23 up=121.03 fifo= chgrt= usbrt= t=44000 f=998400
|
||||
LOAD 23:55:28 up=126.09 fifo= chgrt= usbrt= t=59000 f=998400
|
||||
LOAD 23:55:33 up=131.14 fifo= chgrt= usbrt= t=62000 f=998400
|
||||
LOAD 23:55:38 up=136.20 fifo= chgrt= usbrt= t=64000 f=998400
|
||||
LOAD 23:55:43 up=141.25 fifo= chgrt= usbrt= t=65000 f=998400
|
||||
LOAD 23:55:48 up=146.30 fifo= chgrt= usbrt= t=66000 f=998400
|
||||
LOAD 23:55:53 up=151.35 fifo= chgrt= usbrt= t=67000 f=998400
|
||||
LOAD 23:55:58 up=156.41 fifo= chgrt= usbrt= t=68000 f=998400
|
||||
LOAD 23:56:03 up=161.46 fifo= chgrt= usbrt= t=69000 f=998400
|
||||
LOAD 23:56:08 up=166.51 fifo= chgrt= usbrt= t=69000 f=998400
|
||||
LOAD 23:56:13 up=171.56 fifo= chgrt= usbrt= t=70000 f=998400
|
||||
LOAD 23:56:18 up=176.62 fifo= chgrt= usbrt= t=71000 f=998400
|
||||
LOAD-OFF 23:56:23
|
||||
IDLE1 23:56:23 up=181.68 fifo= chgrt= usbrt= t=71000 f=800000
|
||||
IDLE1 23:56:28 up=186.71 fifo= chgrt= usbrt= t=55000 f=800000
|
||||
IDLE1 23:56:33 up=191.74 fifo= chgrt= usbrt= t=52000 f=800000
|
||||
IDLE1 23:56:38 up=196.77 fifo= chgrt= usbrt= t=50000 f=800000
|
||||
IDLE1 23:56:43 up=201.81 fifo= chgrt= usbrt= t=49000 f=800000
|
||||
IDLE1 23:56:48 up=206.84 fifo= chgrt= usbrt= t=48000 f=800000
|
||||
B10A-LOAD-END
|
||||
25
b10/b10a/b10a-load3.txt
Normal file
25
b10/b10a/b10a-load3.txt
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
IDLE0 23:58:35 up=313.28 fifo=da 38 ae 38 dc 38 db 38 d9 38 chgrt=01 usbrt=03 t=45000 f=800000
|
||||
IDLE0 23:58:40 up=318.31 fifo=da 38 ae 38 dc 38 db 38 d9 38 chgrt=01 usbrt=03 t=45000 f=800000
|
||||
IDLE0 23:58:45 up=323.34 fifo=da 38 ae 38 dc 38 db 38 d9 38 chgrt=01 usbrt=03 t=44000 f=800000
|
||||
IDLE0 23:58:50 up=328.37 fifo=da 38 ae 38 dc 38 db 38 d9 38 chgrt=01 usbrt=03 t=44000 f=800000
|
||||
LOAD-ON 23:58:55
|
||||
LOAD 23:58:55 up=333.41 fifo=da 38 ae 38 dc 38 db 38 d9 38 chgrt=01 usbrt=03 t=44000 f=998400
|
||||
LOAD 23:59:00 up=338.46 fifo=da 38 bb 38 dc 38 db 38 d9 38 chgrt=01 usbrt=03 t=60000 f=998400
|
||||
LOAD 23:59:05 up=343.50 fifo=da 38 bb 38 dc 38 db 38 d9 38 chgrt=01 usbrt=03 t=62000 f=998400
|
||||
LOAD 23:59:10 up=348.56 fifo=da 38 bb 38 dc 38 db 38 d9 38 chgrt=01 usbrt=03 t=64000 f=998400
|
||||
LOAD 23:59:15 up=353.61 fifo=da 38 bb 38 dc 38 db 38 d9 38 chgrt=01 usbrt=03 t=66000 f=998400
|
||||
LOAD 23:59:20 up=358.66 fifo=da 38 bb 38 dc 38 db 38 d9 38 chgrt=01 usbrt=03 t=66000 f=998400
|
||||
LOAD 23:59:25 up=363.71 fifo=da 38 bb 38 dc 38 db 38 d9 38 chgrt=01 usbrt=03 t=68000 f=998400
|
||||
LOAD 23:59:30 up=368.76 fifo=da 38 bb 38 f4 37 db 38 d9 38 chgrt=01 usbrt=03 t=68000 f=998400
|
||||
LOAD 23:59:35 up=373.81 fifo=da 38 bb 38 f4 37 db 38 d9 38 chgrt=01 usbrt=03 t=69000 f=998400
|
||||
LOAD 23:59:40 up=378.86 fifo=da 38 bb 38 f4 37 db 38 d9 38 chgrt=01 usbrt=03 t=70000 f=998400
|
||||
LOAD 23:59:46 up=383.92 fifo=da 38 bb 38 f4 37 db 38 d9 38 chgrt=01 usbrt=03 t=71000 f=998400
|
||||
LOAD 23:59:51 up=388.98 fifo=da 38 bb 38 f4 37 db 38 d9 38 chgrt=01 usbrt=03 t=71000 f=998400
|
||||
LOAD-OFF 23:59:56
|
||||
IDLE1 23:59:56 up=394.04 fifo=da 38 bb 38 f4 37 e4 37 d9 38 chgrt=01 usbrt=03 t=71000 f=800000
|
||||
IDLE1 00:00:01 up=399.07 fifo=da 38 bb 38 f4 37 e4 37 d9 38 chgrt=01 usbrt=03 t=55000 f=800000
|
||||
IDLE1 00:00:06 up=404.09 fifo=da 38 bb 38 f4 37 e4 37 d9 38 chgrt=01 usbrt=03 t=52000 f=800000
|
||||
IDLE1 00:00:11 up=409.13 fifo=da 38 bb 38 f4 37 e4 37 d9 38 chgrt=01 usbrt=03 t=51000 f=800000
|
||||
IDLE1 00:00:16 up=414.16 fifo=da 38 bb 38 f4 37 e4 37 d9 38 chgrt=01 usbrt=03 t=50000 f=800000
|
||||
IDLE1 00:00:21 up=419.18 fifo=da 38 bb 38 f4 37 e4 37 a2 38 chgrt=01 usbrt=03 t=49000 f=800000
|
||||
B10A-LOAD-END
|
||||
11
b10/b10a/b10a-mon.sh
Normal file
11
b10/b10a/b10a-mon.sh
Normal file
|
|
@ -0,0 +1,11 @@
|
|||
#!/bin/sh
|
||||
# B10A 30-min read-only monitor: every 60 s read LBC/USB/BMS registers. Reads only (regmap debugfs), no writes.
|
||||
grep -q " /sys/kernel/debug " /proc/mounts || mount -t debugfs debugfs /sys/kernel/debug
|
||||
R=/sys/kernel/debug/regmap/0-00/registers
|
||||
rd() { dd if=$R bs=9 skip=$(($1)) count=$2 2>/dev/null | cut -d' ' -f2 | tr '\n' ' '; }
|
||||
i=0
|
||||
while [ $i -lt ${1:-31} ]; do
|
||||
echo "M $i up=$(cut -d' ' -f1 /proc/uptime) st1009=$(rd 0x1009 3) rt1010=$(rd 0x1010 1) vdd1040=$(rd 0x1040 1) ibat1044=$(rd 0x1044 1) ctrl1049=$(rd 0x1049 1) usb1308=$(rd 0x1308 2) usbrt1310=$(rd 0x1310 1) batrt1210=$(rd 0x1210 1) fifo=$(rd 0x40c0 10) ocv=$(rd 0x406a 2) bms4008=$(rd 0x4008 2) tcpu=$(cat /sys/class/thermal/thermal_zone4/temp)"
|
||||
i=$((i+1)); [ $i -lt ${1:-31} ] && sleep 60
|
||||
done
|
||||
echo B10A-MON-END
|
||||
32
b10/b10a/b10a-mon1.txt
Normal file
32
b10/b10a/b10a-mon1.txt
Normal file
|
|
@ -0,0 +1,32 @@
|
|||
M 0 up=630.26 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=bf 38 bf 38 c4 38 c1 38 c2 38 ocv=28 38 bms4008=80 52 tcpu=44000
|
||||
M 1 up=690.31 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=bf 38 bf 38 bc 38 ba 38 b8 38 ocv=28 38 bms4008=80 55 tcpu=44000
|
||||
M 2 up=750.37 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=b6 38 b5 38 bc 38 ba 38 b8 38 ocv=28 38 bms4008=80 52 tcpu=43000
|
||||
M 3 up=810.42 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=b6 38 b5 38 b3 38 b2 38 b8 38 ocv=28 38 bms4008=80 54 tcpu=43000
|
||||
M 4 up=870.48 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=b0 38 b5 38 b3 38 b2 38 b1 38 ocv=28 38 bms4008=80 51 tcpu=43000
|
||||
M 5 up=930.54 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=b0 38 ac 38 ab 38 a9 38 b1 38 ocv=28 38 bms4008=80 54 tcpu=43000
|
||||
M 6 up=990.60 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=a5 38 ac 38 ab 38 a9 38 a7 38 ocv=28 38 bms4008=80 51 tcpu=43000
|
||||
M 7 up=1050.65 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=a5 38 a4 38 a2 38 a9 38 a7 38 ocv=28 38 bms4008=80 53 tcpu=43000
|
||||
M 8 up=1110.71 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=a5 38 a4 38 a2 38 a0 38 9f 38 ocv=28 38 bms4008=80 55 tcpu=44000
|
||||
M 9 up=1170.77 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=9d 38 9b 38 98 38 a0 38 9f 38 ocv=28 38 bms4008=80 53 tcpu=43000
|
||||
M 10 up=1230.83 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=9d 38 9b 38 98 38 98 38 96 38 ocv=28 38 bms4008=80 55 tcpu=43000
|
||||
M 11 up=1290.89 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=95 38 92 38 98 38 98 38 96 38 ocv=28 38 bms4008=80 52 tcpu=43000
|
||||
M 12 up=1350.95 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=95 38 92 38 90 38 90 38 96 38 ocv=28 38 bms4008=80 54 tcpu=43000
|
||||
M 13 up=1411.01 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=8d 38 8b 38 90 38 90 38 8e 38 ocv=28 38 bms4008=80 52 tcpu=43000
|
||||
M 14 up=1471.06 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=8d 38 8b 38 89 38 86 38 8e 38 ocv=28 38 bms4008=80 54 tcpu=43000
|
||||
M 15 up=1531.12 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=83 38 8b 38 89 38 86 38 85 38 ocv=28 38 bms4008=80 51 tcpu=43000
|
||||
M 16 up=1591.18 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=83 38 81 38 81 38 86 38 85 38 ocv=28 38 bms4008=80 53 tcpu=43000
|
||||
M 17 up=1651.24 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=7b 38 81 38 81 38 7d 38 7e 38 ocv=28 38 bms4008=80 51 tcpu=43000
|
||||
M 18 up=1711.30 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=7b 38 79 38 79 38 7d 38 7e 38 ocv=28 38 bms4008=80 53 tcpu=44000
|
||||
M 19 up=1771.35 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=7b 38 79 38 79 38 76 38 74 38 ocv=28 38 bms4008=80 55 tcpu=43000
|
||||
M 20 up=1831.41 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=72 38 73 38 79 38 76 38 74 38 ocv=28 38 bms4008=80 52 tcpu=43000
|
||||
M 21 up=1891.47 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=72 38 73 38 6f 38 6c 38 6c 38 ocv=28 38 bms4008=80 55 tcpu=43000
|
||||
M 22 up=1951.52 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=69 38 69 38 6f 38 6c 38 6c 38 ocv=28 38 bms4008=80 52 tcpu=43000
|
||||
M 23 up=2011.58 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=69 38 69 38 66 38 66 38 6c 38 ocv=28 38 bms4008=80 54 tcpu=43000
|
||||
M 24 up=2071.64 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=62 38 69 38 66 38 66 38 63 38 ocv=28 38 bms4008=80 51 tcpu=43000
|
||||
M 25 up=2131.69 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=62 38 60 38 5f 38 5f 38 63 38 ocv=28 38 bms4008=80 54 tcpu=43000
|
||||
M 26 up=2191.75 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=5b 38 60 38 5f 38 5f 38 5c 38 ocv=28 38 bms4008=80 51 tcpu=43000
|
||||
M 27 up=2251.81 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=5b 38 5a 38 57 38 5f 38 5c 38 ocv=28 38 bms4008=80 53 tcpu=43000
|
||||
M 28 up=2311.87 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=5b 38 5a 38 57 38 54 38 54 38 ocv=28 38 bms4008=80 55 tcpu=43000
|
||||
M 29 up=2371.93 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=52 38 51 38 4f 38 54 38 54 38 ocv=28 38 bms4008=80 53 tcpu=43000
|
||||
M 30 up=2431.98 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=52 38 51 38 4f 38 4c 38 4a 38 ocv=28 38 bms4008=80 55 tcpu=43000
|
||||
B10A-MON-END
|
||||
62
b10/b10a/b10a-mon2.txt
Normal file
62
b10/b10a/b10a-mon2.txt
Normal file
|
|
@ -0,0 +1,62 @@
|
|||
M 0 up=99.65 st1009=05 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=94 38 00 39 1e 39 ff ff ff ff ocv=0a 37 bms4008=80 03 tcpu=45000
|
||||
M 1 up=159.70 st1009=05 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=24 39 00 39 1e 39 f8 38 1e 39 ocv=0a 37 bms4008=80 51 tcpu=44000
|
||||
M 2 up=219.76 st1009=05 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=24 39 26 39 2c 39 f8 38 1e 39 ocv=0a 37 bms4008=80 53 tcpu=44000
|
||||
M 3 up=279.82 st1009=05 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=24 39 26 39 2c 39 2e 39 31 39 ocv=0a 37 bms4008=80 55 tcpu=45000
|
||||
M 4 up=339.88 st1009=05 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=35 39 38 39 2c 39 2e 39 31 39 ocv=0a 37 bms4008=80 52 tcpu=45000
|
||||
M 5 up=399.94 st1009=05 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=35 39 38 39 3b 39 3f 39 43 39 ocv=0a 37 bms4008=80 55 tcpu=45000
|
||||
M 6 up=460.00 st1009=05 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=47 39 4b 39 3b 39 3f 39 43 39 ocv=0a 37 bms4008=80 52 tcpu=45000
|
||||
M 7 up=520.06 st1009=05 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=47 39 4b 39 4d 39 50 39 43 39 ocv=0a 37 bms4008=80 54 tcpu=45000
|
||||
M 8 up=580.12 st1009=05 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=56 39 4b 39 4d 39 50 39 53 39 ocv=0a 37 bms4008=80 51 tcpu=45000
|
||||
M 9 up=640.17 st1009=05 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=56 39 5b 39 4c 39 5d 39 53 39 ocv=0a 37 bms4008=80 54 tcpu=45000
|
||||
M 10 up=700.23 st1009=05 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=65 39 5b 39 4c 39 5d 39 5e 39 ocv=0a 37 bms4008=80 51 tcpu=45000
|
||||
M 11 up=760.29 st1009=05 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=65 39 68 39 6b 39 5d 39 5e 39 ocv=0a 37 bms4008=80 53 tcpu=45000
|
||||
M 12 up=820.34 st1009=05 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=65 39 68 39 6b 39 5d 39 5e 39 ocv=0a 37 bms4008=80 00 tcpu=46000
|
||||
M 13 up=880.40 st1009=05 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=65 39 68 39 6b 39 5d 39 5e 39 ocv=0a 37 bms4008=80 00 tcpu=46000
|
||||
M 14 up=940.46 st1009=05 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=65 39 68 39 6b 39 5d 39 5e 39 ocv=0a 37 bms4008=80 00 tcpu=46000
|
||||
M 15 up=1000.52 st1009=05 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=65 39 68 39 6b 39 5d 39 5e 39 ocv=0a 37 bms4008=80 00 tcpu=46000
|
||||
M 16 up=1060.57 st1009=05 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=65 39 68 39 6b 39 5d 39 5e 39 ocv=0a 37 bms4008=80 00 tcpu=46000
|
||||
M 17 up=1120.63 st1009=05 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=65 39 68 39 6b 39 5d 39 5e 39 ocv=0a 37 bms4008=80 00 tcpu=46000
|
||||
M 18 up=1180.69 st1009=05 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=65 39 68 39 6b 39 5d 39 5e 39 ocv=0a 37 bms4008=80 00 tcpu=46000
|
||||
M 19 up=1240.75 st1009=05 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=65 39 68 39 6b 39 5d 39 5e 39 ocv=0a 37 bms4008=80 00 tcpu=46000
|
||||
M 20 up=1300.80 st1009=05 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=65 39 68 39 6b 39 5d 39 5e 39 ocv=0a 37 bms4008=80 00 tcpu=46000
|
||||
M 21 up=1360.86 st1009=03 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=65 39 68 39 6b 39 5d 39 5e 39 ocv=0a 37 bms4008=80 00 tcpu=46000
|
||||
M 22 up=1420.92 st1009=03 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=4c 39 4c 39 4d 39 4c 39 4b 39 ocv=0a 37 bms4008=80 00 tcpu=45000
|
||||
M 23 up=1480.98 st1009=03 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=4d 39 4c 39 4b 39 4c 39 4b 39 ocv=0a 37 bms4008=80 02 tcpu=45000
|
||||
M 24 up=1541.04 st1009=03 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=4d 39 4d 39 4b 39 4d 39 4c 39 ocv=0a 37 bms4008=80 00 tcpu=45000
|
||||
M 25 up=1601.09 st1009=03 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=4e 39 4e 39 4e 39 4d 39 4c 39 ocv=0a 37 bms4008=80 01 tcpu=45000
|
||||
M 26 up=1661.15 st1009=03 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=4e 39 4f 39 4e 39 4f 39 4f 39 ocv=0a 37 bms4008=80 00 tcpu=46000
|
||||
M 27 up=1721.21 st1009=07 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=50 39 50 39 50 39 50 39 50 39 ocv=0a 37 bms4008=80 00 tcpu=45000
|
||||
M 28 up=1781.27 st1009=03 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=50 39 50 39 50 39 50 39 50 39 ocv=0a 37 bms4008=80 00 tcpu=45000
|
||||
M 29 up=1841.33 st1009=03 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=51 39 51 39 51 39 51 39 51 39 ocv=0a 37 bms4008=80 00 tcpu=45000
|
||||
M 30 up=1901.38 st1009=05 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=52 39 52 39 52 39 52 39 52 39 ocv=0a 37 bms4008=80 00 tcpu=45000
|
||||
M 31 up=1961.44 st1009=03 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=52 39 53 39 53 39 53 39 52 39 ocv=0a 37 bms4008=80 00 tcpu=45000
|
||||
M 32 up=2021.50 st1009=03 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=54 39 54 39 54 39 54 39 53 39 ocv=0a 37 bms4008=80 00 tcpu=45000
|
||||
M 33 up=2081.56 st1009=07 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=54 39 54 39 53 39 54 39 54 39 ocv=0a 37 bms4008=80 00 tcpu=45000
|
||||
M 34 up=2141.62 st1009=03 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=55 39 55 39 56 39 55 39 55 39 ocv=0a 37 bms4008=80 51 tcpu=45000
|
||||
M 35 up=2201.68 st1009=03 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=55 39 56 39 56 39 56 39 56 39 ocv=0a 37 bms4008=80 52 tcpu=45000
|
||||
M 36 up=2261.73 st1009=03 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=57 39 57 39 56 39 56 39 56 39 ocv=0a 37 bms4008=80 01 tcpu=46000
|
||||
M 37 up=2321.79 st1009=03 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=57 39 56 39 57 39 57 39 56 39 ocv=0a 37 bms4008=80 52 tcpu=45000
|
||||
M 38 up=2381.85 st1009=03 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=58 39 58 39 57 39 57 39 58 39 ocv=0a 37 bms4008=80 53 tcpu=45000
|
||||
M 39 up=2441.91 st1009=03 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=58 39 58 39 58 39 59 39 58 39 ocv=0a 37 bms4008=80 55 tcpu=45000
|
||||
M 40 up=2501.97 st1009=03 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=59 39 58 39 59 39 59 39 59 39 ocv=0a 37 bms4008=80 00 tcpu=45000
|
||||
M 41 up=2562.03 st1009=03 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=5a 39 5a 39 5a 39 5a 39 5a 39 ocv=0a 37 bms4008=80 51 tcpu=45000
|
||||
M 42 up=2622.09 st1009=03 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=02 90 usbrt1310=03 batrt1210=03 fifo=5a 39 5a 39 5a 39 5a 39 5b 39 ocv=0a 37 bms4008=80 00 tcpu=45000
|
||||
M 43 up=2682.14 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=ca 38 5a 39 5a 39 5a 39 5b 39 ocv=0a 37 bms4008=80 11 tcpu=45000
|
||||
M 44 up=2742.20 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=ca 38 c1 38 be 38 5a 39 5b 39 ocv=0a 37 bms4008=80 13 tcpu=44000
|
||||
M 45 up=2802.26 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=b5 38 c1 38 be 38 ba 38 b7 38 ocv=0a 37 bms4008=80 51 tcpu=44000
|
||||
M 46 up=2862.32 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=b5 38 b2 38 b0 38 ba 38 b7 38 ocv=0a 37 bms4008=80 53 tcpu=45000
|
||||
M 47 up=2922.38 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=b5 38 b2 38 b0 38 ab 38 a9 38 ocv=0a 37 bms4008=80 55 tcpu=44000
|
||||
M 48 up=2982.44 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=a8 38 a5 38 b0 38 ab 38 a9 38 ocv=0a 37 bms4008=80 52 tcpu=43000
|
||||
M 49 up=3042.50 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=a8 38 a5 38 a4 38 a3 38 a1 38 ocv=0a 37 bms4008=80 55 tcpu=44000
|
||||
M 50 up=3102.56 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=9e 38 9b 38 a4 38 a3 38 a1 38 ocv=0a 37 bms4008=80 52 tcpu=43000
|
||||
M 51 up=3162.62 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=9e 38 9b 38 9b 38 98 38 a1 38 ocv=0a 37 bms4008=80 54 tcpu=43000
|
||||
M 52 up=3222.68 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=93 38 9b 38 9b 38 98 38 95 38 ocv=0a 37 bms4008=80 51 tcpu=43000
|
||||
M 53 up=3282.73 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=93 38 91 38 8e 38 8e 38 95 38 ocv=0a 37 bms4008=80 54 tcpu=43000
|
||||
M 54 up=3342.80 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=89 38 91 38 8e 38 8e 38 8c 38 ocv=0a 37 bms4008=80 51 tcpu=43000
|
||||
M 55 up=3402.86 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=89 38 89 38 86 38 8e 38 8c 38 ocv=0a 37 bms4008=80 53 tcpu=43000
|
||||
M 56 up=3462.91 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=89 38 89 38 86 38 84 38 82 38 ocv=0a 37 bms4008=80 55 tcpu=45000
|
||||
M 57 up=3522.98 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=7e 38 7a 38 79 38 84 38 82 38 ocv=0a 37 bms4008=80 53 tcpu=43000
|
||||
M 58 up=3583.04 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=7e 38 7a 38 79 38 74 38 73 38 ocv=0a 37 bms4008=80 55 tcpu=43000
|
||||
M 59 up=3643.10 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=77 38 76 38 79 38 74 38 73 38 ocv=0a 37 bms4008=80 52 tcpu=43000
|
||||
M 60 up=3703.15 st1009=00 00 43 rt1010=01 vdd1040=08 ibat1044=00 ctrl1049=90 usb1308=01 90 usbrt1310=03 batrt1210=03 fifo=77 38 76 38 73 38 71 38 73 38 ocv=0a 37 bms4008=80 54 tcpu=43000
|
||||
B10A-MON-END
|
||||
10
b10/b10a/b10a-pm.sh
Normal file
10
b10/b10a/b10a-pm.sh
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
#!/bin/sh
|
||||
# B10A read-only: USB gadget power descriptor, cpuidle/cpufreq/suspend state.
|
||||
for f in /sys/kernel/config/usb_gadget/*/configs/*/MaxPower /sys/kernel/config/usb_gadget/*/configs/*/bmAttributes; do echo "$f $(cat $f)"; done
|
||||
echo "cpuidle driver: $(cat /sys/devices/system/cpu/cpuidle/current_driver 2>&1) gov: $(cat /sys/devices/system/cpu/cpuidle/current_governor 2>&1)"
|
||||
for s in /sys/devices/system/cpu/cpu0/cpuidle/state*; do echo "$s $(cat $s/name) usage=$(cat $s/usage) time=$(cat $s/time)"; done
|
||||
ls /sys/devices/system/cpu/cpu0/cpufreq 2>&1 | head -3
|
||||
echo "online: $(cat /sys/devices/system/cpu/online) power/state: $(cat /sys/power/state) mem_sleep: $(cat /sys/power/mem_sleep 2>&1)"
|
||||
cat /proc/loadavg
|
||||
grep -i -E "cpuidle|psci|cpufreq|suspend" /proc/config.gz 2>/dev/null | head -1
|
||||
dmesg | grep -i -E "psci|cpuidle|cpufreq|idle" | head -10
|
||||
22
b10/b10a/b10a-probe.sh
Normal file
22
b10/b10a/b10a-probe.sh
Normal file
|
|
@ -0,0 +1,22 @@
|
|||
#!/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"
|
||||
10
b10/b10a/b10a-trend.sh
Normal file
10
b10/b10a/b10a-trend.sh
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
#!/bin/sh
|
||||
# B10A read-only trend: every 30 s read BMS FIFO/status, CHGR/BAT_IF/USB RT_STS, VADC last data. Reads only.
|
||||
R=/sys/kernel/debug/regmap/0-00/registers
|
||||
rd() { dd if=$R bs=9 skip=$(($1)) count=$2 2>/dev/null | cut -d' ' -f2 | tr '\n' ' '; }
|
||||
i=0
|
||||
while [ $i -lt ${1:-10} ]; do
|
||||
echo "T $(cut -d' ' -f1 /proc/uptime) bms08=$(rd 0x4008 2) fifo=$(rd 0x40c0 10) ocv=$(rd 0x406a 2) chg09=$(rd 0x1009 1) chgrt=$(rd 0x1010 1) batrt=$(rd 0x1210 1) usbrt=$(rd 0x1310 1) vadc=$(rd 0x3160 2) ch=$(rd 0x3148 1) temps=$(cat /sys/class/thermal/thermal_zone*/temp | tr '\n' ' ')"
|
||||
i=$((i+1)); sleep 30
|
||||
done
|
||||
echo B10A-TREND-END
|
||||
4
b10/b10a/b10a-trend1.txt
Normal file
4
b10/b10a/b10a-trend1.txt
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
T 1828.98 bms08=80 51 fifo=6e 39 6e 39 6e 39 6e 39 6e 39 ocv=ff 37 chg09=03 chgrt=01 batrt=03 usbrt=03 vadc=26 98 ch=06 temps=45000 43000 44000 43000 45000
|
||||
T 1859.02 bms08=80 54 fifo=6e 39 6e 39 6e 39 6f 39 6e 39 ocv=ff 37 chg09=03 chgrt=01 batrt=03 usbrt=03 vadc=26 98 ch=06 temps=45000 43000 44000 43000 44000
|
||||
T 1889.07 bms08=80 52 fifo=6f 39 6f 39 6e 39 6f 39 6e 39 ocv=ff 37 chg09=03 chgrt=01 batrt=03 usbrt=03 vadc=26 98 ch=06 temps=45000 43000 44000 43000 45000
|
||||
# samples 4..12 lost: board died at uptime ~2148.7 s (see B10A-RESULT "Incident"); /tmp/b10t.out was in RAM.
|
||||
2706
b10/b10a/lbc-7f1748.c
Normal file
2706
b10/b10a/lbc-7f1748.c
Normal file
File diff suppressed because it is too large
Load diff
3743
b10/b10a/vmbms-7f1748.c
Normal file
3743
b10/b10a/vmbms-7f1748.c
Normal file
File diff suppressed because it is too large
Load diff
57
b10/b10b0/b10b0-boot.sh
Normal file
57
b10/b10b0/b10b0-boot.sh
Normal file
|
|
@ -0,0 +1,57 @@
|
|||
#!/bin/sh
|
||||
# 480s side, B10B-0 boot K (RAM only). RESET-held power-on -> lk1st fastboot -> `fastboot boot` B10B-0 RAM image. Reads only over telnet.
|
||||
# MODE=cold: normal power-on (no RESET, no fastboot) -> lk2nd extlinux from eMMC cache. Script only observes + reads over telnet;
|
||||
# nothing is written to eMMC. Visual display checks need the operator. Adds display/fbcon/getty/console checks to the B8F snapshot.
|
||||
K=$1; MODE=ram; [ -n "$K" ] || { echo "usage: $0 K"; exit 2; }
|
||||
cd ~/doc/modem/jz08-aurora; O=logs/b10/b10b0/$MODE$K; mkdir -p $O; IMG=b10/b10b0/out/aurora-b10b0.img
|
||||
A=$O/host-actions.txt; act() { echo "$(date -u +%H:%M:%S.%3N) $*" | tee -a $A; }
|
||||
tn() { { sleep 1; sed "s/\$/\r/" "$1"; sleep $2; } | ncat 172.16.42.1 23 | tr -d "\000\r"; }
|
||||
OLD=$(ps -eo pid,cmd | grep "[u]artlog.py /dev/ttyUSB0" | awk '{print $1}'); [ -n "$OLD" ] && kill $OLD; sleep 1
|
||||
U=logs/uart/b10b0-$MODE$K-$(date +%Y%m%d-%H%M%S); setsid nohup python3 tools/uartlog.py /dev/ttyUSB0 $U > $U.stderr 2>&1 < /dev/null &
|
||||
if [ $MODE = ram ]; then
|
||||
echo "a360aee2cb822d737c7409deb71b39951e02c436f5252e88d96c0583cb81e2bb $IMG" | sha256sum -c || exit 1
|
||||
act "B10B0 $MODE$K: waiting for fastboot <EMMC_SERIAL> (power off >= 90 s, then RESET held + battery -> USB)"
|
||||
if fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; then act "already in fastboot - wait for power-off"; until ! fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; do sleep 1; done; fi
|
||||
i=0; until fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; do i=$((i+1)); [ $i -ge 600 ] && { act "ABORT: no fastboot"; exit 1; }; sleep 2; done
|
||||
act "fastboot present"; { fastboot boot $IMG 2>&1; echo "rc=$?"; } | tee -a $A
|
||||
else
|
||||
act "B10B0 $MODE$K: waiting for the board to go away (power off >= 90 s), then normal power-on WITHOUT RESET"
|
||||
until ! ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do sleep 1; done; act "board unreachable (powered off)"
|
||||
until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL> && { act "ABORT: board is in fastboot - RESET was held?"; exit 1; }; sleep 1; done
|
||||
fi
|
||||
i=0; until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do i=$((i+1)); [ $i -ge 180 ] && { act "ABORT: NCM not up"; cp $U.log $O/uart.log; exit 1; }; sleep 1; done; act "NCM ping ok"
|
||||
R=$(grep -a "rtc-pm8xxx.*setting system clock" $U.log | tail -1 | sed -n 's/.*(\([0-9]*\)).*/\1/p'); C=B; [ -n "$R" ] && [ "$R" -lt 40 ] && C=A; act "RTC at boot ${R:-?} s -> class $C"
|
||||
printf 'cat /proc/device-tree/model; echo; uname -r; grep -E "START OK|FAIL in|rollback" /run/aurora-modem/lifecycle.log | tail -1\n' > $O/.w
|
||||
i=0; until tn $O/.w 3 | grep -qE "^\[[0-9.]+\] .*(=== START OK|FAIL in|rollback)"; do i=$((i+1)); [ $i -ge 80 ] && { act "no START OK/FAIL after ~12 min"; break; }; sleep 6; done
|
||||
tn $O/.w 3 | grep -aE "Aurora|aurora-b8|START OK|FAIL" | tee -a $A
|
||||
printf 'grep -E "AP ENABLED|FAIL" /run/aurora-wifi/wifi.log | tail -1\n' > $O/.a
|
||||
i=0; until tn $O/.a 3 | grep -qE "^\[[0-9.]+\] (=== AP ENABLED|FAIL)"; do i=$((i+1)); [ $i -ge 20 ] && { act "no AP ENABLED/FAIL after ~3 min"; break; }; sleep 6; done
|
||||
act "wifi: $(tn $O/.a 3 | grep -E '^\[[0-9.]+\] (=== AP ENABLED|FAIL)' | tail -1)"
|
||||
printf 'grep -E "SNTP (check|STEP|: )" /run/aurora-modem/lifecycle.log | tail -2\n' > $O/.s
|
||||
i=0; until tn $O/.s 3 | grep -qE "^\[[0-9.]+\] SNTP"; do i=$((i+1)); [ $i -ge 15 ] && break; sleep 4; done; act "sntp: $(tn $O/.s 3 | grep -E '^\[[0-9.]+\] SNTP' | tail -2 | tr '\n' ' ')"
|
||||
cat > $O/.c <<'C'
|
||||
echo SNAP-BEGIN; cat /proc/uptime; date -u; cat /proc/device-tree/model; echo; uname -a; cat /proc/cmdline
|
||||
echo ---time; cat /run/aurora-modem/time-set; grep -E "TIME|SNTP" /run/aurora-modem/lifecycle.log | tail -4
|
||||
echo ---modem; /etc/init.d/aurora-modem status
|
||||
echo ---wifi; /etc/init.d/aurora-wifi status; echo ---wifilog; cat /run/aurora-wifi/wifi.log; cat /run/aurora-wifi/service.log; echo ---hostapdlog; cat /run/aurora-wifi/hostapd.log
|
||||
for r in /sys/class/remoteproc/*; do echo "RP $(cat $r/name)=$(cat $r/state)"; done; iw dev
|
||||
echo ---dmesg-wifi; dmesg | grep -iE "wcn36xx|wcnss|a204000|cfg80211|aurora-wifi|crash|watchdog"
|
||||
echo ---ping; ping -c4 -W3 -I wwan0 77.88.8.8 | tail -2
|
||||
echo ---display; /etc/init.d/aurora-display status; cat /run/aurora-display/display.log; cat /run/aurora-display/service.log
|
||||
echo ---consoles; cat /sys/class/tty/console/active; for v in /sys/class/vtconsole/vtcon*; do echo "$v $(cat $v/bind) $(cat $v/name)"; done; ls -l /proc/[0-9]*/fd/0 2>/dev/null | grep -E "ttyMSM0|tty1|console" | sed "s/.* \/proc/\/proc/"
|
||||
echo ---getty; hostname; ps | grep -E "[g]etty|[c]ttyhack| sh$"
|
||||
echo ---fb; ls -l /dev/dri/card0 /dev/fb0; for f in name bits_per_pixel virtual_size stride; do echo "fb0 $f=$(cat /sys/class/graphics/fb0/$f)"; done; cat /sys/class/drm/card0-SPI-1/enabled /sys/class/drm/card0-SPI-1/dpms
|
||||
echo ---regs; for r in /sys/class/regulator/regulator.*; do n=$(cat $r/name); case $n in l6|l17) echo "$n $(cat $r/state) $(cat $r/microvolts) users=$(cat $r/num_users)";; esac; done
|
||||
echo ---bl; for f in bl_power brightness actual_brightness; do echo "bl $f=$(cat /sys/class/backlight/backlight/$f)"; done
|
||||
echo ---dmesg-display; dmesg | grep -iE "drm|panel|mipi|spi_qup|78b8000|fbcon|Console: |frame buffer|backlight|aurora-display|l17"
|
||||
echo ---display-errors; dmesg | grep -iE "drm|panel|mipi|spi0|fbcon|backlight|aurora-display" | grep -ciE "err|fail|timeout|warn"
|
||||
echo ---iio; for d in /sys/bus/iio/devices/iio:device*; do echo "$d name=$(cat $d/name)"; ls $d | tr '\n' ' '; echo; done
|
||||
for f in /sys/bus/iio/devices/iio:device*/in_*; do case $f in *_raw|*_input|*_scale|*_offset) echo "$f=$(cat $f 2>&1)";; esac; done
|
||||
echo ---thermal; for t in /sys/class/thermal/thermal_zone*; do echo "$t $(cat $t/type) $(cat $t/temp)"; done
|
||||
echo ---dmesg-adc; dmesg | grep -iE "vadc|iio|temp-alarm|qpnp|spmi-temp|pm8916-thermal|thermal"
|
||||
echo ---emmc; awk "{print \"w=\"\$5\" s=\"\$7}" /sys/block/mmcblk0/stat
|
||||
echo SNAP-END
|
||||
C
|
||||
tn $O/.c 25 > $O/snapshot.txt; act "snapshot: $(grep -c SNAP-END $O/snapshot.txt) end markers; $(grep -E '^RP a204' $O/snapshot.txt)"
|
||||
printf 'dmesg > /tmp/dm.txt; nc -l -p 9881 < /tmp/dm.txt &\n' > $O/.d; tn $O/.d 3 >/dev/null; sleep 1; ncat --recv-only 172.16.42.1 9881 > $O/dmesg.full
|
||||
cp $U.log $O/uart.log; act "B10B0 $MODE$K END - operator visual check next"
|
||||
19
b10/b10b0/b10b0-cal.sh
Normal file
19
b10/b10b0/b10b0-cal.sh
Normal file
|
|
@ -0,0 +1,19 @@
|
|||
#!/bin/sh
|
||||
# B10B-0 VBAT calibration series: N samples, P s apart. Reads IIO (VADC) + BMS FIFO/charger status via regmap debugfs (reads only).
|
||||
# Shows the sample number on the display (tty1) so the operator can note the DMM value (BAT+ - BAT-) for each sample.
|
||||
N=${1:-12}; P=${2:-20}
|
||||
grep -q " /sys/kernel/debug " /proc/mounts || mount -t debugfs debugfs /sys/kernel/debug
|
||||
R=/sys/kernel/debug/regmap/0-00/registers
|
||||
rd() { dd if=$R bs=9 skip=$(($1)) count=$2 2>/dev/null | cut -d' ' -f2 | tr '\n' ' '; }
|
||||
D=$(for d in /sys/bus/iio/devices/iio:device*; do [ "$(cat $d/name 2>/dev/null)" = "adc@3100" ] && echo $d; done | head -1)
|
||||
[ -z "$D" ] && D=$(ls -d /sys/bus/iio/devices/iio:device* | head -1)
|
||||
echo "CAL-START dev=$D name=$(cat $D/name) files: $(cd $D && ls | grep -E '^in_' | tr '\n' ' ')"
|
||||
i=1
|
||||
while [ $i -le $N ]; do
|
||||
printf '\033[2J\033[H\n\n B10B-0 CAL\n\n SAMPLE %d / %d\n\n read DMM now\n' $i $N > /dev/tty1
|
||||
v=""; for f in $D/in_voltage6_*raw $D/in_voltage6_*input $D/in_voltage7_*raw $D/in_voltage7_*input; do [ -e "$f" ] && v="$v ${f##*/}=$(cat $f)"; done
|
||||
echo "S $i $(date -u +%T) up=$(cut -d' ' -f1 /proc/uptime)$v fifo=$(rd 0x40c0 10) st1009=$(rd 0x1009 1) usb1308=$(rd 0x1308 1) rt1010=$(rd 0x1010 1) tz=$(for t in /sys/class/thermal/thermal_zone*; do printf "%s:%s," $(cat $t/type) $(cat $t/temp); done)"
|
||||
i=$((i + 1)); [ $i -le $N ] && sleep $P
|
||||
done
|
||||
printf '\033[2J\033[H\n\n B10B-0 CAL\n\n DONE\n' > /dev/tty1
|
||||
echo CAL-END
|
||||
13
b10/b10b0/b10b0-dump.sh
Normal file
13
b10/b10b0/b10b0-dump.sh
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
#!/bin/sh
|
||||
# B10B-0 read-only full dump of PM8916 SID0: every 0x100 peripheral block whose TYPE (offset 0x04) is non-zero. Reads only.
|
||||
grep -q " /sys/kernel/debug " /proc/mounts || mount -t debugfs debugfs /sys/kernel/debug
|
||||
R=/sys/kernel/debug/regmap/0-00/registers
|
||||
echo "== DUMP-START up=$(cut -d' ' -f1 /proc/uptime) $(uname -r) emmc=$(awk '{print "w="$5}' /sys/block/mmcblk0/stat)"
|
||||
b=1
|
||||
while [ $b -lt 256 ]; do
|
||||
a=$((b * 256))
|
||||
t=$(dd if=$R bs=9 skip=$((a + 4)) count=1 2>/dev/null | cut -d' ' -f2)
|
||||
if [ -n "$t" ] && [ "$t" != "00" ]; then dd if=$R bs=9 skip=$a count=256 2>/dev/null; fi
|
||||
b=$((b + 1))
|
||||
done
|
||||
echo "== DUMP-END up=$(cut -d' ' -f1 /proc/uptime)"
|
||||
19
b10/b10b0/build-b10b0.sh
Executable file
19
b10/b10b0/build-b10b0.sh
Executable file
|
|
@ -0,0 +1,19 @@
|
|||
#!/bin/sh
|
||||
# B10B-0 RAM test image (fastboot boot only - never flash; cache B9C / aboot untouched):
|
||||
# kernel = out-b10b0 (b9c + IIO + QCOM_SPMI_VADC + QCOM_SPMI_TEMP_ALARM; linux/aurora-b10b0.config). No BMS, no LBC.
|
||||
# DTB = linux/dts/msm8916-jz08-aurora-b10b0.dtb (B9B DTB 7ca9cc79 + VADC channel@6 VBAT_SNS 1/3 + model string)
|
||||
# initramfs + cmdline = exact B9C (b9/b9c/out). out/ contains the B8F initramfs (Wi-Fi PSK): never publish.
|
||||
set -e; cd "$(dirname "$0")"; O=out; KB=/home/q/aurora-kbuild/out-b10b0; L=../../linux; B9C=../../b9/b9c/out
|
||||
mkdir -p $O
|
||||
echo "7ca9cc794a3b85d3b7240f6311ad03bee9e1a4a59aae2ed9438318e853f7c3dc $L/dts/msm8916-jz08-aurora-b9b.dtb" | sha256sum -c
|
||||
grep " initramfs-b9c.cpio.gz\$" $B9C/SHA256SUMS | sed "s| | $B9C/|" | sha256sum -c
|
||||
grep " cmdline.txt\$" $B9C/SHA256SUMS | sed "s| | $B9C/|" | sha256sum -c
|
||||
for s in IIO=y QCOM_SPMI_VADC=y QCOM_SPMI_TEMP_ALARM=y 'LOCALVERSION="-aurora-b10b0"'; do grep -q "^CONFIG_$s\$" $KB/.config || { echo "STOP: CONFIG_$s"; exit 1; }; done
|
||||
for s in CHARGER_PM8916_LBC BATTERY_PM8916_BMS_VM; do grep -q "^CONFIG_$s=y" $KB/.config && { echo "STOP: $s enabled"; exit 1; }; done
|
||||
cp $KB/arch/arm64/boot/Image.gz $O/Image.gz; cp $KB/.config $O/config-b10b0; cp $L/dts/msm8916-jz08-aurora-b10b0.dtb $O/aurora-b10b0.dtb
|
||||
cp $B9C/initramfs-b9c.cpio.gz $O/initramfs.cpio.gz; cp $B9C/cmdline.txt $O/cmdline.txt
|
||||
cat $O/Image.gz $O/aurora-b10b0.dtb > $O/Image.gz-dtb
|
||||
python3 ../../b6p/mkbootimg.py $O/Image.gz-dtb $O/initramfs.cpio.gz $O/cmdline.txt $O/aurora-b10b0.img
|
||||
SZ=$(python3 -c "import struct;print(struct.unpack_from('<Q',open('$KB/arch/arm64/boot/Image','rb').read(24),16)[0])")
|
||||
printf 'kernel image_size 0x%x, RAM-boot end 0x%x (< 0x81e00000 DTB)\n' $SZ $((0x80000000 + SZ)); [ $((0x80000000 + SZ)) -lt $((0x81e00000)) ]
|
||||
(cd $O && sha256sum Image.gz aurora-b10b0.dtb Image.gz-dtb config-b10b0 cmdline.txt initramfs.cpio.gz aurora-b10b0.img > SHA256SUMS; cat SHA256SUMS); ls -l $O/aurora-b10b0.img
|
||||
7
b10/b10b0/out/SHA256SUMS
Normal file
7
b10/b10b0/out/SHA256SUMS
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
ca099bf36ab03a2ad3a984b1920723f1e619d4f69b1c8d5742b59fda55acad71 Image.gz
|
||||
7837c5047ecfd6ce44ba6c3045904a68a3656ced835b7d35469f00d1fb1a88a7 aurora-b10b0.dtb
|
||||
8f244e82cc425a8522515e535cca27908757b0fe26e877ddde5a6680a94710f5 Image.gz-dtb
|
||||
27eab277cd2b6e74389ed9801d025d9f53046e9b2e6dac091b0a5e753e86017a config-b10b0
|
||||
0fef41b262917c8ae308fa222da0017e2b3cb3ec5da1ca8ba18d0318476761a3 cmdline.txt
|
||||
ac518e27e2957ad5e4515969b9a3808024e11ef8d1a79433a899a67dbc644558 initramfs.cpio.gz
|
||||
a360aee2cb822d737c7409deb71b39951e02c436f5252e88d96c0583cb81e2bb aurora-b10b0.img
|
||||
1
b10/b10b0/out/cmdline.txt
Normal file
1
b10/b10b0/out/cmdline.txt
Normal file
|
|
@ -0,0 +1 @@
|
|||
earlycon console=tty0 console=ttyMSM0,115200n8 ignore_loglevel loglevel=8 rdinit=/init fbcon=font:6x8 consoleblank=0
|
||||
59
b10/b10b1/b10b1-boot.sh
Normal file
59
b10/b10b1/b10b1-boot.sh
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
#!/bin/sh
|
||||
# 480s side, B10B-1 boot K (RAM only). RESET-held power-on -> lk1st fastboot -> `fastboot boot` B10B-1 RAM image. Reads only over telnet.
|
||||
# MODE=cold: normal power-on (no RESET, no fastboot) -> lk2nd extlinux from eMMC cache. Script only observes + reads over telnet;
|
||||
# nothing is written to eMMC. Visual display checks need the operator. Adds display/fbcon/getty/console checks to the B8F snapshot.
|
||||
K=$1; MODE=ram; [ -n "$K" ] || { echo "usage: $0 K"; exit 2; }
|
||||
cd ~/doc/modem/jz08-aurora; O=logs/b10/b10b1/$MODE$K; mkdir -p $O; IMG=b10/b10b1/out/aurora-b10b1.img
|
||||
A=$O/host-actions.txt; act() { echo "$(date -u +%H:%M:%S.%3N) $*" | tee -a $A; }
|
||||
tn() { { sleep 1; sed "s/\$/\r/" "$1"; sleep $2; } | ncat 172.16.42.1 23 | tr -d "\000\r"; }
|
||||
OLD=$(ps -eo pid,cmd | grep "[u]artlog.py /dev/ttyUSB0" | awk '{print $1}'); [ -n "$OLD" ] && kill $OLD; sleep 1
|
||||
U=logs/uart/b10b1-$MODE$K-$(date +%Y%m%d-%H%M%S); setsid nohup python3 tools/uartlog.py /dev/ttyUSB0 $U > $U.stderr 2>&1 < /dev/null &
|
||||
if [ $MODE = ram ]; then
|
||||
echo "1029647d6a245481ff8488dabea2ab53cb15f800f5ddbb07a2737b83ae06d4ac $IMG" | sha256sum -c || exit 1
|
||||
act "B10B1 $MODE$K: waiting for fastboot <EMMC_SERIAL> (power off >= 90 s, then RESET held + battery -> USB)"
|
||||
if fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; then act "already in fastboot - wait for power-off"; until ! fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; do sleep 1; done; fi
|
||||
i=0; until fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; do i=$((i+1)); [ $i -ge 1800 ] && { act "ABORT: no fastboot"; exit 1; }; sleep 2; done
|
||||
act "fastboot present"; { fastboot boot $IMG 2>&1; echo "rc=$?"; } | tee -a $A
|
||||
else
|
||||
act "B10B1 $MODE$K: waiting for the board to go away (power off >= 90 s), then normal power-on WITHOUT RESET"
|
||||
until ! ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do sleep 1; done; act "board unreachable (powered off)"
|
||||
until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL> && { act "ABORT: board is in fastboot - RESET was held?"; exit 1; }; sleep 1; done
|
||||
fi
|
||||
i=0; until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do i=$((i+1)); [ $i -ge 180 ] && { act "ABORT: NCM not up"; cp $U.log $O/uart.log; exit 1; }; sleep 1; done; act "NCM ping ok"
|
||||
R=$(grep -a "rtc-pm8xxx.*setting system clock" $U.log | tail -1 | sed -n 's/.*(\([0-9]*\)).*/\1/p'); C=B; [ -n "$R" ] && [ "$R" -lt 40 ] && C=A; act "RTC at boot ${R:-?} s -> class $C"
|
||||
printf 'cat /proc/device-tree/model; echo; uname -r; grep -E "START OK|FAIL in|rollback" /run/aurora-modem/lifecycle.log | tail -1\n' > $O/.w
|
||||
i=0; until tn $O/.w 3 | grep -qE "^\[[0-9.]+\] .*(=== START OK|FAIL in|rollback)"; do i=$((i+1)); [ $i -ge 80 ] && { act "no START OK/FAIL after ~12 min"; break; }; sleep 6; done
|
||||
tn $O/.w 3 | grep -aE "Aurora|aurora-b8|START OK|FAIL" | tee -a $A
|
||||
printf 'grep -E "AP ENABLED|FAIL" /run/aurora-wifi/wifi.log | tail -1\n' > $O/.a
|
||||
i=0; until tn $O/.a 3 | grep -qE "^\[[0-9.]+\] (=== AP ENABLED|FAIL)"; do i=$((i+1)); [ $i -ge 20 ] && { act "no AP ENABLED/FAIL after ~3 min"; break; }; sleep 6; done
|
||||
act "wifi: $(tn $O/.a 3 | grep -E '^\[[0-9.]+\] (=== AP ENABLED|FAIL)' | tail -1)"
|
||||
printf 'grep -E "SNTP (check|STEP|: )" /run/aurora-modem/lifecycle.log | tail -2\n' > $O/.s
|
||||
i=0; until tn $O/.s 3 | grep -qE "^\[[0-9.]+\] SNTP"; do i=$((i+1)); [ $i -ge 15 ] && break; sleep 4; done; act "sntp: $(tn $O/.s 3 | grep -E '^\[[0-9.]+\] SNTP' | tail -2 | tr '\n' ' ')"
|
||||
cat > $O/.c <<'C'
|
||||
echo SNAP-BEGIN; cat /proc/uptime; date -u; cat /proc/device-tree/model; echo; uname -a; cat /proc/cmdline
|
||||
echo ---time; cat /run/aurora-modem/time-set; grep -E "TIME|SNTP" /run/aurora-modem/lifecycle.log | tail -4
|
||||
echo ---modem; /etc/init.d/aurora-modem status
|
||||
echo ---wifi; /etc/init.d/aurora-wifi status; echo ---wifilog; cat /run/aurora-wifi/wifi.log; cat /run/aurora-wifi/service.log; echo ---hostapdlog; cat /run/aurora-wifi/hostapd.log
|
||||
for r in /sys/class/remoteproc/*; do echo "RP $(cat $r/name)=$(cat $r/state)"; done; iw dev
|
||||
echo ---dmesg-wifi; dmesg | grep -iE "wcn36xx|wcnss|a204000|cfg80211|aurora-wifi|crash|watchdog"
|
||||
echo ---ping; ping -c4 -W3 -I wwan0 77.88.8.8 | tail -2
|
||||
echo ---display; /etc/init.d/aurora-display status; cat /run/aurora-display/display.log; cat /run/aurora-display/service.log
|
||||
echo ---consoles; cat /sys/class/tty/console/active; for v in /sys/class/vtconsole/vtcon*; do echo "$v $(cat $v/bind) $(cat $v/name)"; done; ls -l /proc/[0-9]*/fd/0 2>/dev/null | grep -E "ttyMSM0|tty1|console" | sed "s/.* \/proc/\/proc/"
|
||||
echo ---getty; hostname; ps | grep -E "[g]etty|[c]ttyhack| sh$"
|
||||
echo ---fb; ls -l /dev/dri/card0 /dev/fb0; for f in name bits_per_pixel virtual_size stride; do echo "fb0 $f=$(cat /sys/class/graphics/fb0/$f)"; done; cat /sys/class/drm/card0-SPI-1/enabled /sys/class/drm/card0-SPI-1/dpms
|
||||
echo ---regs; for r in /sys/class/regulator/regulator.*; do n=$(cat $r/name); case $n in l6|l17) echo "$n $(cat $r/state) $(cat $r/microvolts) users=$(cat $r/num_users)";; esac; done
|
||||
echo ---bl; for f in bl_power brightness actual_brightness; do echo "bl $f=$(cat /sys/class/backlight/backlight/$f)"; done
|
||||
echo ---dmesg-display; dmesg | grep -iE "drm|panel|mipi|spi_qup|78b8000|fbcon|Console: |frame buffer|backlight|aurora-display|l17"
|
||||
echo ---display-errors; dmesg | grep -iE "drm|panel|mipi|spi0|fbcon|backlight|aurora-display" | grep -ciE "err|fail|timeout|warn"
|
||||
echo ---iio; for d in /sys/bus/iio/devices/iio:device*; do echo "$d name=$(cat $d/name)"; ls $d | tr '\n' ' '; echo; done
|
||||
for f in /sys/bus/iio/devices/iio:device*/in_*; do case $f in *_raw|*_input|*_scale|*_offset) echo "$f=$(cat $f 2>&1)";; esac; done
|
||||
echo ---psy; ls -l /sys/class/power_supply/; for p in /sys/class/power_supply/*; do echo "-- $p"; cat $p/uevent; ls $p; done
|
||||
echo ---dmesg-bms; dmesg | grep -iE "bms|battery|power_supply|4000"
|
||||
echo ---thermal; for t in /sys/class/thermal/thermal_zone*; do echo "$t $(cat $t/type) $(cat $t/temp)"; done
|
||||
echo ---dmesg-adc; dmesg | grep -iE "vadc|iio|temp-alarm|qpnp|spmi-temp|pm8916-thermal|thermal"
|
||||
echo ---emmc; awk "{print \"w=\"\$5\" s=\"\$7}" /sys/block/mmcblk0/stat
|
||||
echo SNAP-END
|
||||
C
|
||||
tn $O/.c 25 > $O/snapshot.txt; act "snapshot: $(grep -c SNAP-END $O/snapshot.txt) end markers; $(grep -E '^RP a204' $O/snapshot.txt)"
|
||||
printf 'dmesg > /tmp/dm.txt; nc -l -p 9881 < /tmp/dm.txt &\n' > $O/.d; tn $O/.d 3 >/dev/null; sleep 1; ncat --recv-only 172.16.42.1 9881 > $O/dmesg.full
|
||||
cp $U.log $O/uart.log; act "B10B1 $MODE$K END - operator visual check next"
|
||||
16
b10/b10b1/b10b1-cal.sh
Normal file
16
b10/b10b1/b10b1-cal.sh
Normal file
|
|
@ -0,0 +1,16 @@
|
|||
#!/bin/sh
|
||||
# B10B-1 series: N samples, P s apart. Reads VADC (IIO), BMS-VM power_supply properties, BMS FIFO/OCV raw and charger status (reads only).
|
||||
N=${1:-12}; P=${2:-20}
|
||||
grep -q " /sys/kernel/debug " /proc/mounts || mount -t debugfs debugfs /sys/kernel/debug
|
||||
R=/sys/kernel/debug/regmap/0-00/registers
|
||||
rd() { dd if=$R bs=9 skip=$(($1)) count=$2 2>/dev/null | cut -d' ' -f2 | tr '\n' ' '; }
|
||||
D=/sys/bus/iio/devices/iio:device0; B=$(ls -d /sys/class/power_supply/*bms* 2>/dev/null | head -1)
|
||||
echo "CAL-START iio=$(cat $D/name) bms=$B props: $(ls $B | tr '\n' ' ')"
|
||||
i=1
|
||||
while [ $i -le $N ]; do
|
||||
printf '\033[2J\033[H\n\n B10B-1\n\n SAMPLE %d / %d\n' $i $N > /dev/tty1
|
||||
echo "S $i $(date -u +%T) up=$(cut -d' ' -f1 /proc/uptime) r6=$(cat $D/in_voltage6_raw) r9=$(cat $D/in_voltage9_raw) r10=$(cat $D/in_voltage10_raw) vph=$(cat $D/in_voltage7_input) bms_v=$(cat $B/voltage_now 2>&1) bms_ocv=$(cat $B/voltage_ocv 2>&1) bms_st=$(cat $B/status 2>&1) bms_h=$(cat $B/health 2>&1) fifo=$(rd 0x40c0 4) ocv=$(rd 0x406a 2) st1009=$(rd 0x1009 1) usb1308=$(rd 0x1308 1) irq=$(grep -i vm_bms /proc/interrupts | awk '{print $2+$3+$4+$5}') pmt=$(cat $D/in_temp8_input)"
|
||||
i=$((i + 1)); [ $i -le $N ] && sleep $P
|
||||
done
|
||||
printf '\033[2J\033[H\n\n B10B-1\n\n DONE\n' > /dev/tty1
|
||||
echo CAL-END
|
||||
19
b10/b10b1/build-b10b1.sh
Executable file
19
b10/b10b1/build-b10b1.sh
Executable file
|
|
@ -0,0 +1,19 @@
|
|||
#!/bin/sh
|
||||
# B10B-1 RAM test image (fastboot boot only - never flash; cache B9C / aboot untouched):
|
||||
# kernel = out-b10b1 (b10b0 + BATTERY_PM8916_BMS_VM; linux/aurora-b10b1.config). No LBC.
|
||||
# DTB = linux/dts/msm8916-jz08-aurora-b10b1.dtb (B10B-0 DTB + simple-battery 3000 mAh/3.4-4.2 V + pm8916_bms okay)
|
||||
# initramfs + cmdline = exact B9C (b9/b9c/out). out/ contains the B8F initramfs (Wi-Fi PSK): never publish.
|
||||
set -e; cd "$(dirname "$0")"; O=out; KB=/home/q/aurora-kbuild/out-b10b1; L=../../linux; B9C=../../b9/b9c/out
|
||||
mkdir -p $O
|
||||
echo "7ca9cc794a3b85d3b7240f6311ad03bee9e1a4a59aae2ed9438318e853f7c3dc $L/dts/msm8916-jz08-aurora-b9b.dtb" | sha256sum -c
|
||||
grep " initramfs-b9c.cpio.gz\$" $B9C/SHA256SUMS | sed "s| | $B9C/|" | sha256sum -c
|
||||
grep " cmdline.txt\$" $B9C/SHA256SUMS | sed "s| | $B9C/|" | sha256sum -c
|
||||
for s in IIO=y QCOM_SPMI_VADC=y BATTERY_PM8916_BMS_VM=y QCOM_SPMI_TEMP_ALARM=y 'LOCALVERSION="-aurora-b10b1"'; do grep -q "^CONFIG_$s\$" $KB/.config || { echo "STOP: CONFIG_$s"; exit 1; }; done
|
||||
for s in CHARGER_PM8916_LBC; do grep -q "^CONFIG_$s=y" $KB/.config && { echo "STOP: $s enabled"; exit 1; }; done
|
||||
cp $KB/arch/arm64/boot/Image.gz $O/Image.gz; cp $KB/.config $O/config-b10b1; cp $L/dts/msm8916-jz08-aurora-b10b1.dtb $O/aurora-b10b1.dtb
|
||||
cp $B9C/initramfs-b9c.cpio.gz $O/initramfs.cpio.gz; cp $B9C/cmdline.txt $O/cmdline.txt
|
||||
cat $O/Image.gz $O/aurora-b10b1.dtb > $O/Image.gz-dtb
|
||||
python3 ../../b6p/mkbootimg.py $O/Image.gz-dtb $O/initramfs.cpio.gz $O/cmdline.txt $O/aurora-b10b1.img
|
||||
SZ=$(python3 -c "import struct;print(struct.unpack_from('<Q',open('$KB/arch/arm64/boot/Image','rb').read(24),16)[0])")
|
||||
printf 'kernel image_size 0x%x, RAM-boot end 0x%x (< 0x81e00000 DTB)\n' $SZ $((0x80000000 + SZ)); [ $((0x80000000 + SZ)) -lt $((0x81e00000)) ]
|
||||
(cd $O && sha256sum Image.gz aurora-b10b1.dtb Image.gz-dtb config-b10b1 cmdline.txt initramfs.cpio.gz aurora-b10b1.img > SHA256SUMS; cat SHA256SUMS); ls -l $O/aurora-b10b1.img
|
||||
7
b10/b10b1/out/SHA256SUMS
Normal file
7
b10/b10b1/out/SHA256SUMS
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
fa573b4b4e1249efc9ee7db3067020086152aabfe84540c65c98242dd8077cd9 Image.gz
|
||||
1400f98f8ec90ffc7c6efe04e83541d0a7b6a4e6895932e55267642c44c0d1ef aurora-b10b1.dtb
|
||||
c932cdcd594034066ed286d64a065642f3e664da81ef0314f60f7afffc261832 Image.gz-dtb
|
||||
5241bb0cef473c60c0ca56e10e07d2561e38c054b5e488660665a4d42f013b2a config-b10b1
|
||||
0fef41b262917c8ae308fa222da0017e2b3cb3ec5da1ca8ba18d0318476761a3 cmdline.txt
|
||||
ac518e27e2957ad5e4515969b9a3808024e11ef8d1a79433a899a67dbc644558 initramfs.cpio.gz
|
||||
1029647d6a245481ff8488dabea2ab53cb15f800f5ddbb07a2737b83ae06d4ac aurora-b10b1.img
|
||||
1
b10/b10b1/out/cmdline.txt
Normal file
1
b10/b10b1/out/cmdline.txt
Normal file
|
|
@ -0,0 +1 @@
|
|||
earlycon console=tty0 console=ttyMSM0,115200n8 ignore_loglevel loglevel=8 rdinit=/init fbcon=font:6x8 consoleblank=0
|
||||
59
b10/b10b2/b10b2-boot.sh
Normal file
59
b10/b10b2/b10b2-boot.sh
Normal file
|
|
@ -0,0 +1,59 @@
|
|||
#!/bin/sh
|
||||
# 480s side, B10B-2 boot K (RAM only). RESET-held power-on -> lk1st fastboot -> `fastboot boot` B10B-2 RAM image. Reads only over telnet.
|
||||
# MODE=cold: normal power-on (no RESET, no fastboot) -> lk2nd extlinux from eMMC cache. Script only observes + reads over telnet;
|
||||
# nothing is written to eMMC. Visual display checks need the operator. Adds display/fbcon/getty/console checks to the B8F snapshot.
|
||||
K=$1; MODE=ram; [ -n "$K" ] || { echo "usage: $0 K"; exit 2; }
|
||||
cd ~/doc/modem/jz08-aurora; O=logs/b10/b10b2/$MODE$K; mkdir -p $O; IMG=b10/b10b2/out/aurora-b10b2.img
|
||||
A=$O/host-actions.txt; act() { echo "$(date -u +%H:%M:%S.%3N) $*" | tee -a $A; }
|
||||
tn() { { sleep 1; sed "s/\$/\r/" "$1"; sleep $2; } | ncat 172.16.42.1 23 | tr -d "\000\r"; }
|
||||
OLD=$(ps -eo pid,cmd | grep "[u]artlog.py /dev/ttyUSB0" | awk '{print $1}'); [ -n "$OLD" ] && kill $OLD; sleep 1
|
||||
U=logs/uart/b10b2-$MODE$K-$(date +%Y%m%d-%H%M%S); setsid nohup python3 tools/uartlog.py /dev/ttyUSB0 $U > $U.stderr 2>&1 < /dev/null &
|
||||
if [ $MODE = ram ]; then
|
||||
echo "9f8a909604cca92b79a0678873dbd721e5266b6e7053af8e61cefc7ca684e2cc $IMG" | sha256sum -c || exit 1
|
||||
act "B10B2 $MODE$K: waiting for fastboot <EMMC_SERIAL> (power off >= 90 s, then RESET held + battery -> USB)"
|
||||
if fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; then act "already in fastboot - wait for power-off"; until ! fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; do sleep 1; done; fi
|
||||
i=0; until fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; do i=$((i+1)); [ $i -ge 1800 ] && { act "ABORT: no fastboot"; exit 1; }; sleep 2; done
|
||||
act "fastboot present"; { fastboot boot $IMG 2>&1; echo "rc=$?"; } | tee -a $A
|
||||
else
|
||||
act "B10B2 $MODE$K: waiting for the board to go away (power off >= 90 s), then normal power-on WITHOUT RESET"
|
||||
until ! ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do sleep 1; done; act "board unreachable (powered off)"
|
||||
until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL> && { act "ABORT: board is in fastboot - RESET was held?"; exit 1; }; sleep 1; done
|
||||
fi
|
||||
i=0; until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do i=$((i+1)); [ $i -ge 180 ] && { act "ABORT: NCM not up"; cp $U.log $O/uart.log; exit 1; }; sleep 1; done; act "NCM ping ok"
|
||||
R=$(grep -a "rtc-pm8xxx.*setting system clock" $U.log | tail -1 | sed -n 's/.*(\([0-9]*\)).*/\1/p'); C=B; [ -n "$R" ] && [ "$R" -lt 40 ] && C=A; act "RTC at boot ${R:-?} s -> class $C"
|
||||
printf 'cat /proc/device-tree/model; echo; uname -r; grep -E "START OK|FAIL in|rollback" /run/aurora-modem/lifecycle.log | tail -1\n' > $O/.w
|
||||
i=0; until tn $O/.w 3 | grep -qE "^\[[0-9.]+\] .*(=== START OK|FAIL in|rollback)"; do i=$((i+1)); [ $i -ge 80 ] && { act "no START OK/FAIL after ~12 min"; break; }; sleep 6; done
|
||||
tn $O/.w 3 | grep -aE "Aurora|aurora-b8|START OK|FAIL" | tee -a $A
|
||||
printf 'grep -E "AP ENABLED|FAIL" /run/aurora-wifi/wifi.log | tail -1\n' > $O/.a
|
||||
i=0; until tn $O/.a 3 | grep -qE "^\[[0-9.]+\] (=== AP ENABLED|FAIL)"; do i=$((i+1)); [ $i -ge 20 ] && { act "no AP ENABLED/FAIL after ~3 min"; break; }; sleep 6; done
|
||||
act "wifi: $(tn $O/.a 3 | grep -E '^\[[0-9.]+\] (=== AP ENABLED|FAIL)' | tail -1)"
|
||||
printf 'grep -E "SNTP (check|STEP|: )" /run/aurora-modem/lifecycle.log | tail -2\n' > $O/.s
|
||||
i=0; until tn $O/.s 3 | grep -qE "^\[[0-9.]+\] SNTP"; do i=$((i+1)); [ $i -ge 15 ] && break; sleep 4; done; act "sntp: $(tn $O/.s 3 | grep -E '^\[[0-9.]+\] SNTP' | tail -2 | tr '\n' ' ')"
|
||||
cat > $O/.c <<'C'
|
||||
echo SNAP-BEGIN; cat /proc/uptime; date -u; cat /proc/device-tree/model; echo; uname -a; cat /proc/cmdline
|
||||
echo ---time; cat /run/aurora-modem/time-set; grep -E "TIME|SNTP" /run/aurora-modem/lifecycle.log | tail -4
|
||||
echo ---modem; /etc/init.d/aurora-modem status
|
||||
echo ---wifi; /etc/init.d/aurora-wifi status; echo ---wifilog; cat /run/aurora-wifi/wifi.log; cat /run/aurora-wifi/service.log; echo ---hostapdlog; cat /run/aurora-wifi/hostapd.log
|
||||
for r in /sys/class/remoteproc/*; do echo "RP $(cat $r/name)=$(cat $r/state)"; done; iw dev
|
||||
echo ---dmesg-wifi; dmesg | grep -iE "wcn36xx|wcnss|a204000|cfg80211|aurora-wifi|crash|watchdog"
|
||||
echo ---ping; ping -c4 -W3 -I wwan0 77.88.8.8 | tail -2
|
||||
echo ---display; /etc/init.d/aurora-display status; cat /run/aurora-display/display.log; cat /run/aurora-display/service.log
|
||||
echo ---consoles; cat /sys/class/tty/console/active; for v in /sys/class/vtconsole/vtcon*; do echo "$v $(cat $v/bind) $(cat $v/name)"; done; ls -l /proc/[0-9]*/fd/0 2>/dev/null | grep -E "ttyMSM0|tty1|console" | sed "s/.* \/proc/\/proc/"
|
||||
echo ---getty; hostname; ps | grep -E "[g]etty|[c]ttyhack| sh$"
|
||||
echo ---fb; ls -l /dev/dri/card0 /dev/fb0; for f in name bits_per_pixel virtual_size stride; do echo "fb0 $f=$(cat /sys/class/graphics/fb0/$f)"; done; cat /sys/class/drm/card0-SPI-1/enabled /sys/class/drm/card0-SPI-1/dpms
|
||||
echo ---regs; for r in /sys/class/regulator/regulator.*; do n=$(cat $r/name); case $n in l6|l17) echo "$n $(cat $r/state) $(cat $r/microvolts) users=$(cat $r/num_users)";; esac; done
|
||||
echo ---bl; for f in bl_power brightness actual_brightness; do echo "bl $f=$(cat /sys/class/backlight/backlight/$f)"; done
|
||||
echo ---dmesg-display; dmesg | grep -iE "drm|panel|mipi|spi_qup|78b8000|fbcon|Console: |frame buffer|backlight|aurora-display|l17"
|
||||
echo ---display-errors; dmesg | grep -iE "drm|panel|mipi|spi0|fbcon|backlight|aurora-display" | grep -ciE "err|fail|timeout|warn"
|
||||
echo ---iio; for d in /sys/bus/iio/devices/iio:device*; do echo "$d name=$(cat $d/name)"; ls $d | tr '\n' ' '; echo; done
|
||||
for f in /sys/bus/iio/devices/iio:device*/in_*; do case $f in *_raw|*_input|*_scale|*_offset) echo "$f=$(cat $f 2>&1)";; esac; done
|
||||
echo ---psy; ls -l /sys/class/power_supply/; for p in /sys/class/power_supply/*; do echo "-- $p"; cat $p/uevent; ls $p; done
|
||||
echo ---dmesg-bms; dmesg | grep -iE "bms|battery|power_supply|lbc|charger|extcon|ci_hdrc|4000|1000"
|
||||
echo ---thermal; for t in /sys/class/thermal/thermal_zone*; do echo "$t $(cat $t/type) $(cat $t/temp)"; done
|
||||
echo ---dmesg-adc; dmesg | grep -iE "vadc|iio|temp-alarm|qpnp|spmi-temp|pm8916-thermal|thermal"
|
||||
echo ---emmc; awk "{print \"w=\"\$5\" s=\"\$7}" /sys/block/mmcblk0/stat
|
||||
echo SNAP-END
|
||||
C
|
||||
tn $O/.c 25 > $O/snapshot.txt; act "snapshot: $(grep -c SNAP-END $O/snapshot.txt) end markers; $(grep -E '^RP a204' $O/snapshot.txt)"
|
||||
printf 'dmesg > /tmp/dm.txt; nc -l -p 9881 < /tmp/dm.txt &\n' > $O/.d; tn $O/.d 3 >/dev/null; sleep 1; ncat --recv-only 172.16.42.1 9881 > $O/dmesg.full
|
||||
cp $U.log $O/uart.log; act "B10B2 $MODE$K END - operator visual check next"
|
||||
18
b10/b10b2/b10b2-mon.sh
Normal file
18
b10/b10b2/b10b2-mon.sh
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
#!/bin/sh
|
||||
# B10B-2 charger observation: N samples, P s apart. Reads only (IIO, power_supply sysfs, regmap debugfs, thermal).
|
||||
# Prints ALERT if VADC VBAT > 4.22 V or PMIC die temp > 60 C (operator then removes USB; the script never writes).
|
||||
N=${1:-120}; P=${2:-30}
|
||||
grep -q " /sys/kernel/debug " /proc/mounts || mount -t debugfs debugfs /sys/kernel/debug
|
||||
R=/sys/kernel/debug/regmap/0-00/registers
|
||||
rd() { dd if=$R bs=9 skip=$(($1)) count=$2 2>/dev/null | cut -d' ' -f2 | tr '\n' ' '; }
|
||||
D=/sys/bus/iio/devices/iio:device0; B=/sys/class/power_supply/pm8916-bms-vm; C=$(ls -d /sys/class/power_supply/*lbc* 2>/dev/null | head -1)
|
||||
echo "MON-START charger=$C props: $(ls $C 2>/dev/null | tr '\n' ' ')"
|
||||
i=1
|
||||
while [ $i -le $N ]; do
|
||||
r6=$(cat $D/in_voltage6_raw); r9=$(cat $D/in_voltage9_raw); r10=$(cat $D/in_voltage10_raw); pt=$(cat $D/in_temp8_input)
|
||||
vb=$(( (625000 + (r6 - r9) * 625000 / (r10 - r9)) * 3 ))
|
||||
a=""; [ $vb -gt 4220000 ] && a="$a ALERT-VBAT"; [ $pt -gt 60000 ] && a="$a ALERT-TEMP"
|
||||
echo "M $i $(date -u +%T) up=$(cut -d' ' -f1 /proc/uptime) vbat=$vb r6=$r6 r9=$r9 r10=$r10 vph=$(cat $D/in_voltage7_input) usbin=$(cat $D/in_voltage0_input) bms_v=$(cat $B/voltage_now) bms_st=$(cat $B/status) fifo=$(rd 0x40c0 4) st=$(rd 0x1009 3) crt=$(rd 0x1010 1) brt=$(rd 0x1210 1) urt=$(rd 0x1310 1) usb=$(rd 0x1308 2) vdd=$(rd 0x1040 2) ibat=$(rd 0x1044 2) ctrl=$(rd 0x1049 1) tchg=$(rd 0x1060 2) bd=$(rd 0x1642 1) online=$(cat $C/online 2>&1) ccc=$(cat $C/constant_charge_current 2>&1) ccv=$(cat $C/constant_charge_voltage_max 2>&1) pmt=$pt cpu=$(cat /sys/class/thermal/thermal_zone4/temp)$a"
|
||||
i=$((i + 1)); [ $i -le $N ] && sleep $P
|
||||
done
|
||||
echo MON-END
|
||||
19
b10/b10b2/build-b10b2.sh
Executable file
19
b10/b10b2/build-b10b2.sh
Executable file
|
|
@ -0,0 +1,19 @@
|
|||
#!/bin/sh
|
||||
# B10B-2 RAM test image (fastboot boot only - never flash; cache B9C / aboot untouched):
|
||||
# kernel = out-b10b2 (b10b2 + CHARGER_PM8916_LBC; linux/aurora-b10b2.config).
|
||||
# DTB = linux/dts/msm8916-jz08-aurora-b10b2.dtb (B10B-1 DTB + pm8916_charger okay 4.2 V/500 mA, usbin off, usb extcon -> charger)
|
||||
# initramfs + cmdline = exact B9C (b9/b9c/out). out/ contains the B8F initramfs (Wi-Fi PSK): never publish.
|
||||
set -e; cd "$(dirname "$0")"; O=out; KB=/home/q/aurora-kbuild/out-b10b2; L=../../linux; B9C=../../b9/b9c/out
|
||||
mkdir -p $O
|
||||
echo "7ca9cc794a3b85d3b7240f6311ad03bee9e1a4a59aae2ed9438318e853f7c3dc $L/dts/msm8916-jz08-aurora-b9b.dtb" | sha256sum -c
|
||||
grep " initramfs-b9c.cpio.gz\$" $B9C/SHA256SUMS | sed "s| | $B9C/|" | sha256sum -c
|
||||
grep " cmdline.txt\$" $B9C/SHA256SUMS | sed "s| | $B9C/|" | sha256sum -c
|
||||
for s in IIO=y QCOM_SPMI_VADC=y BATTERY_PM8916_BMS_VM=y CHARGER_PM8916_LBC=y QCOM_SPMI_TEMP_ALARM=y 'LOCALVERSION="-aurora-b10b2"'; do grep -q "^CONFIG_$s\$" $KB/.config || { echo "STOP: CONFIG_$s"; exit 1; }; done
|
||||
|
||||
cp $KB/arch/arm64/boot/Image.gz $O/Image.gz; cp $KB/.config $O/config-b10b2; cp $L/dts/msm8916-jz08-aurora-b10b2.dtb $O/aurora-b10b2.dtb
|
||||
cp $B9C/initramfs-b9c.cpio.gz $O/initramfs.cpio.gz; cp $B9C/cmdline.txt $O/cmdline.txt
|
||||
cat $O/Image.gz $O/aurora-b10b2.dtb > $O/Image.gz-dtb
|
||||
python3 ../../b6p/mkbootimg.py $O/Image.gz-dtb $O/initramfs.cpio.gz $O/cmdline.txt $O/aurora-b10b2.img
|
||||
SZ=$(python3 -c "import struct;print(struct.unpack_from('<Q',open('$KB/arch/arm64/boot/Image','rb').read(24),16)[0])")
|
||||
printf 'kernel image_size 0x%x, RAM-boot end 0x%x (< 0x81e00000 DTB)\n' $SZ $((0x80000000 + SZ)); [ $((0x80000000 + SZ)) -lt $((0x81e00000)) ]
|
||||
(cd $O && sha256sum Image.gz aurora-b10b2.dtb Image.gz-dtb config-b10b2 cmdline.txt initramfs.cpio.gz aurora-b10b2.img > SHA256SUMS; cat SHA256SUMS); ls -l $O/aurora-b10b2.img
|
||||
7
b10/b10b2/out/SHA256SUMS
Normal file
7
b10/b10b2/out/SHA256SUMS
Normal file
|
|
@ -0,0 +1,7 @@
|
|||
1b5ac87fd4490650a8510c94de7b882da90d3080a0dbcacb070888a12da433bc Image.gz
|
||||
e7e3fe3e9dae0572a1e3fee709e19e3c6fd36c187a09055f77f438a95ac4b1a5 aurora-b10b2.dtb
|
||||
ed290a259e576ce6e35387cb60cee248ac317dc7b84269ce4f8f6cda37d7a363 Image.gz-dtb
|
||||
08358882f778741cd949f57049c019d2df0917f368fac3f3f1da3300407f54ba config-b10b2
|
||||
0fef41b262917c8ae308fa222da0017e2b3cb3ec5da1ca8ba18d0318476761a3 cmdline.txt
|
||||
ac518e27e2957ad5e4515969b9a3808024e11ef8d1a79433a899a67dbc644558 initramfs.cpio.gz
|
||||
9f8a909604cca92b79a0678873dbd721e5266b6e7053af8e61cefc7ca684e2cc aurora-b10b2.img
|
||||
1
b10/b10b2/out/cmdline.txt
Normal file
1
b10/b10b2/out/cmdline.txt
Normal file
|
|
@ -0,0 +1 @@
|
|||
earlycon console=tty0 console=ttyMSM0,115200n8 ignore_loglevel loglevel=8 rdinit=/init fbcon=font:6x8 consoleblank=0
|
||||
60
b10/b10b3/b10b3-boot.sh
Normal file
60
b10/b10b3/b10b3-boot.sh
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
#!/bin/sh
|
||||
# 480s side, B10B-3 boot K (RAM only). RESET-held power-on -> lk1st fastboot -> `fastboot boot` B10B-3 RAM image. Reads only over telnet.
|
||||
# MODE=cold: normal power-on (no RESET, no fastboot) -> lk2nd extlinux from eMMC cache. Script only observes + reads over telnet;
|
||||
# nothing is written to eMMC. Visual display checks need the operator. Adds display/fbcon/getty/console checks to the B8F snapshot.
|
||||
K=$1; MODE=ram; [ -n "$K" ] || { echo "usage: $0 K"; exit 2; }
|
||||
cd ~/doc/modem/jz08-aurora; O=logs/b10/b10b3/$MODE$K; mkdir -p $O; IMG=b10/b10b3/out/aurora-b10b3.img
|
||||
A=$O/host-actions.txt; act() { echo "$(date -u +%H:%M:%S.%3N) $*" | tee -a $A; }
|
||||
tn() { { sleep 1; sed "s/\$/\r/" "$1"; sleep $2; } | ncat 172.16.42.1 23 | tr -d "\000\r"; }
|
||||
OLD=$(ps -eo pid,cmd | grep "[u]artlog.py /dev/ttyUSB0" | awk '{print $1}'); [ -n "$OLD" ] && kill $OLD; sleep 1
|
||||
U=logs/uart/b10b3-$MODE$K-$(date +%Y%m%d-%H%M%S); setsid nohup python3 tools/uartlog.py /dev/ttyUSB0 $U > $U.stderr 2>&1 < /dev/null &
|
||||
if [ $MODE = ram ]; then
|
||||
echo "c3c885d5204ad5287ad474cc99068ca6995dc97281f2a014f383c20235bc827c $IMG" | sha256sum -c || exit 1
|
||||
act "B10B3 $MODE$K: waiting for fastboot <EMMC_SERIAL> (power off >= 90 s, then RESET held + battery -> USB)"
|
||||
if fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; then act "already in fastboot - wait for power-off"; until ! fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; do sleep 1; done; fi
|
||||
i=0; until fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; do i=$((i+1)); [ $i -ge 1800 ] && { act "ABORT: no fastboot"; exit 1; }; sleep 2; done
|
||||
act "fastboot present"; { fastboot boot $IMG 2>&1; echo "rc=$?"; } | tee -a $A
|
||||
else
|
||||
act "B10B3 $MODE$K: waiting for the board to go away (power off >= 90 s), then normal power-on WITHOUT RESET"
|
||||
until ! ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do sleep 1; done; act "board unreachable (powered off)"
|
||||
until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL> && { act "ABORT: board is in fastboot - RESET was held?"; exit 1; }; sleep 1; done
|
||||
fi
|
||||
i=0; until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do i=$((i+1)); [ $i -ge 180 ] && { act "ABORT: NCM not up"; cp $U.log $O/uart.log; exit 1; }; sleep 1; done; act "NCM ping ok"
|
||||
R=$(grep -a "rtc-pm8xxx.*setting system clock" $U.log | tail -1 | sed -n 's/.*(\([0-9]*\)).*/\1/p'); C=B; [ -n "$R" ] && [ "$R" -lt 40 ] && C=A; act "RTC at boot ${R:-?} s -> class $C"
|
||||
printf 'cat /proc/device-tree/model; echo; uname -r; grep -E "START OK|FAIL in|rollback" /run/aurora-modem/lifecycle.log | tail -1\n' > $O/.w
|
||||
i=0; until tn $O/.w 3 | grep -qE "^\[[0-9.]+\] .*(=== START OK|FAIL in|rollback)"; do i=$((i+1)); [ $i -ge 80 ] && { act "no START OK/FAIL after ~12 min"; break; }; sleep 6; done
|
||||
tn $O/.w 3 | grep -aE "Aurora|aurora-b8|START OK|FAIL" | tee -a $A
|
||||
printf 'grep -E "AP ENABLED|FAIL" /run/aurora-wifi/wifi.log | tail -1\n' > $O/.a
|
||||
i=0; until tn $O/.a 3 | grep -qE "^\[[0-9.]+\] (=== AP ENABLED|FAIL)"; do i=$((i+1)); [ $i -ge 20 ] && { act "no AP ENABLED/FAIL after ~3 min"; break; }; sleep 6; done
|
||||
act "wifi: $(tn $O/.a 3 | grep -E '^\[[0-9.]+\] (=== AP ENABLED|FAIL)' | tail -1)"
|
||||
printf 'grep -E "SNTP (check|STEP|: )" /run/aurora-modem/lifecycle.log | tail -2\n' > $O/.s
|
||||
i=0; until tn $O/.s 3 | grep -qE "^\[[0-9.]+\] SNTP"; do i=$((i+1)); [ $i -ge 15 ] && break; sleep 4; done; act "sntp: $(tn $O/.s 3 | grep -E '^\[[0-9.]+\] SNTP' | tail -2 | tr '\n' ' ')"
|
||||
cat > $O/.c <<'C'
|
||||
echo SNAP-BEGIN; cat /proc/uptime; date -u; cat /proc/device-tree/model; echo; uname -a; cat /proc/cmdline
|
||||
echo ---time; cat /run/aurora-modem/time-set; grep -E "TIME|SNTP" /run/aurora-modem/lifecycle.log | tail -4
|
||||
echo ---modem; /etc/init.d/aurora-modem status
|
||||
echo ---wifi; /etc/init.d/aurora-wifi status; echo ---wifilog; cat /run/aurora-wifi/wifi.log; cat /run/aurora-wifi/service.log; echo ---hostapdlog; cat /run/aurora-wifi/hostapd.log
|
||||
for r in /sys/class/remoteproc/*; do echo "RP $(cat $r/name)=$(cat $r/state)"; done; iw dev
|
||||
echo ---dmesg-wifi; dmesg | grep -iE "wcn36xx|wcnss|a204000|cfg80211|aurora-wifi|crash|watchdog"
|
||||
echo ---ping; ping -c4 -W3 -I wwan0 77.88.8.8 | tail -2
|
||||
echo ---display; /etc/init.d/aurora-display status; cat /run/aurora-display/display.log; cat /run/aurora-display/service.log
|
||||
echo ---consoles; cat /sys/class/tty/console/active; for v in /sys/class/vtconsole/vtcon*; do echo "$v $(cat $v/bind) $(cat $v/name)"; done; ls -l /proc/[0-9]*/fd/0 2>/dev/null | grep -E "ttyMSM0|tty1|console" | sed "s/.* \/proc/\/proc/"
|
||||
echo ---getty; hostname; ps | grep -E "[g]etty|[c]ttyhack| sh$"
|
||||
echo ---fb; ls -l /dev/dri/card0 /dev/fb0; for f in name bits_per_pixel virtual_size stride; do echo "fb0 $f=$(cat /sys/class/graphics/fb0/$f)"; done; cat /sys/class/drm/card0-SPI-1/enabled /sys/class/drm/card0-SPI-1/dpms
|
||||
echo ---regs; for r in /sys/class/regulator/regulator.*; do n=$(cat $r/name); case $n in l6|l17) echo "$n $(cat $r/state) $(cat $r/microvolts) users=$(cat $r/num_users)";; esac; done
|
||||
echo ---bl; for f in bl_power brightness actual_brightness; do echo "bl $f=$(cat /sys/class/backlight/backlight/$f)"; done
|
||||
echo ---dmesg-display; dmesg | grep -iE "drm|panel|mipi|spi_qup|78b8000|fbcon|Console: |frame buffer|backlight|aurora-display|l17"
|
||||
echo ---display-errors; dmesg | grep -iE "drm|panel|mipi|spi0|fbcon|backlight|aurora-display" | grep -ciE "err|fail|timeout|warn"
|
||||
echo ---iio; for d in /sys/bus/iio/devices/iio:device*; do echo "$d name=$(cat $d/name)"; ls $d | tr '\n' ' '; echo; done
|
||||
for f in /sys/bus/iio/devices/iio:device*/in_*; do case $f in *_raw|*_input|*_scale|*_offset) echo "$f=$(cat $f 2>&1)";; esac; done
|
||||
echo ---psy; ls -l /sys/class/power_supply/; for p in /sys/class/power_supply/*; do echo "-- $p"; cat $p/uevent; ls $p; done
|
||||
echo ---dmesg-bms; dmesg | grep -iE "bms|battery|power_supply|lbc|charger|extcon|ci_hdrc|4000|1000"
|
||||
echo ---lbc-state; grep -q " /sys/kernel/debug " /proc/mounts || mount -t debugfs debugfs /sys/kernel/debug; cat /sys/kernel/debug/pm8916_lbc/state; dmesg | grep -E "safety timer|supervisor|pm8916-lbc|lbc"
|
||||
echo ---thermal; for t in /sys/class/thermal/thermal_zone*; do echo "$t $(cat $t/type) $(cat $t/temp)"; done
|
||||
echo ---dmesg-adc; dmesg | grep -iE "vadc|iio|temp-alarm|qpnp|spmi-temp|pm8916-thermal|thermal"
|
||||
echo ---emmc; awk "{print \"w=\"\$5\" s=\"\$7}" /sys/block/mmcblk0/stat
|
||||
echo SNAP-END
|
||||
C
|
||||
tn $O/.c 25 > $O/snapshot.txt; act "snapshot: $(grep -c SNAP-END $O/snapshot.txt) end markers; $(grep -E '^RP a204' $O/snapshot.txt)"
|
||||
printf 'dmesg > /tmp/dm.txt; nc -l -p 9881 < /tmp/dm.txt &\n' > $O/.d; tn $O/.d 3 >/dev/null; sleep 1; ncat --recv-only 172.16.42.1 9881 > $O/dmesg.full
|
||||
cp $U.log $O/uart.log; act "B10B3 $MODE$K END - operator visual check next"
|
||||
3
b10/b10b3/b10b3-cmd.sh
Normal file
3
b10/b10b3/b10b3-cmd.sh
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
#!/bin/sh
|
||||
# 480s side: run one shell command line on the board over telnet, print output. usage: b10b3-cmd.sh WAIT 'cmd'
|
||||
W=$1; shift; { sleep 1; printf '%s\r\n' "$*"; sleep $W; } | ncat -w $((W + 6)) 172.16.42.1 23 | tr -d '\000\r' | grep -vE '^(~ #|BusyBox|Enter .help)' | sed 1d
|
||||
483
b10/b10b3/b10b3-lbc-recharge-supervisor.patch
Normal file
483
b10/b10b3/b10b3-lbc-recharge-supervisor.patch
Normal file
|
|
@ -0,0 +1,483 @@
|
|||
--- a/drivers/iio/adc/qcom-spmi-vadc.c
|
||||
+++ b/drivers/iio/adc/qcom-spmi-vadc.c
|
||||
@@ -563,7 +563,7 @@
|
||||
VADC_CHAN_NO_SCALE(SPARE1_03, 1)
|
||||
VADC_CHAN_NO_SCALE(USB_ID_MV, 1)
|
||||
VADC_CHAN_VOLT(VCOIN, 1, SCALE_DEFAULT)
|
||||
- VADC_CHAN_NO_SCALE(VBAT_SNS, 1)
|
||||
+ VADC_CHAN_VOLT(VBAT_SNS, 1, SCALE_DEFAULT)
|
||||
VADC_CHAN_VOLT(VSYS, 1, SCALE_DEFAULT)
|
||||
VADC_CHAN_TEMP(DIE_TEMP, 0, SCALE_PMIC_THERM)
|
||||
VADC_CHAN_VOLT(REF_625MV, 0, SCALE_DEFAULT)
|
||||
--- a/drivers/power/supply/pm8916_lbc.c
|
||||
+++ b/drivers/power/supply/pm8916_lbc.c
|
||||
@@ -13,6 +13,13 @@
|
||||
#include <linux/delay.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/extcon-provider.h>
|
||||
+#include <linux/debugfs.h>
|
||||
+#include <linux/devm-helpers.h>
|
||||
+#include <linux/iio/consumer.h>
|
||||
+#include <linux/mutex.h>
|
||||
+#include <linux/of.h>
|
||||
+#include <linux/seq_file.h>
|
||||
+#include <linux/workqueue.h>
|
||||
|
||||
/* Two bytes: type + subtype */
|
||||
#define PM8916_PERPH_TYPE 0x04
|
||||
@@ -42,6 +49,25 @@
|
||||
#define PM8916_LBC_CHGR_CHG_CTRL 0x49
|
||||
#define PM8916_LBC_CHGR_CHG_EN BIT(7)
|
||||
#define PM8916_LBC_CHGR_PSTG_EN BIT(5)
|
||||
+#define PM8916_LBC_CHGR_FORCE_BATT_ON BIT(0)
|
||||
+#define PM8916_LBC_CHGR_EN_MASK (PM8916_LBC_CHGR_CHG_EN | PM8916_LBC_CHGR_FORCE_BATT_ON)
|
||||
+
|
||||
+#define PM8916_LBC_CHGR_CHG_FAILED 0x4a
|
||||
+#define PM8916_LBC_CHGR_CHG_FAILED_BIT BIT(7)
|
||||
+
|
||||
+/* USB_CHGPTH 0x08: 0x02 while the charge path is on, 0x01 after end of charge (observed, not documented) */
|
||||
+#define PM8916_LBC_USB_PATH_STS 0x08
|
||||
+#define PM8916_LBC_USB_PATH_ON BIT(1)
|
||||
+
|
||||
+/* Aurora B10B-3 recharge supervisor */
|
||||
+#define PM8916_LBC_SUPV_PERIOD_MS 30000
|
||||
+#define PM8916_LBC_SUPV_DONE_POLLS 2
|
||||
+#define PM8916_LBC_SUPV_LOW_POLLS 3
|
||||
+#define PM8916_LBC_SUPV_OVP_UV 4250000
|
||||
+#define PM8916_LBC_TIMEOUT_DEFAULT_MIN 512
|
||||
+#define PM8916_LBC_TIMEOUT_STEP_MIN 4
|
||||
+#define PM8916_LBC_TIMEOUT_MAX_MIN 512
|
||||
+#define PM8916_LBC_SUPV_LOG 16
|
||||
|
||||
#define PM8916_LBC_CHGR_MIN_CURRENT 90000
|
||||
#define PM8916_LBC_CHGR_MAX_CURRENT 1440000
|
||||
@@ -65,6 +91,55 @@
|
||||
unsigned int charge_voltage_safe;
|
||||
unsigned int charge_current_max;
|
||||
unsigned int charge_current_safe;
|
||||
+
|
||||
+ /* recharge supervisor */
|
||||
+ struct iio_channel *vbat_chan;
|
||||
+ struct delayed_work supv_work;
|
||||
+ struct mutex supv_lock;
|
||||
+ int state;
|
||||
+ int fault_reason;
|
||||
+ unsigned int recharge_uv; /* production threshold from monitored-battery */
|
||||
+ unsigned int timeout_min;
|
||||
+ int vbat_uv;
|
||||
+ int done_polls;
|
||||
+ int low_polls;
|
||||
+ unsigned int n_terminated;
|
||||
+ unsigned int n_recharge;
|
||||
+ struct {
|
||||
+ time64_t t;
|
||||
+ int from, to, vbat;
|
||||
+ const char *why;
|
||||
+ } log[PM8916_LBC_SUPV_LOG];
|
||||
+ unsigned int log_n;
|
||||
+ struct dentry *debugfs;
|
||||
+};
|
||||
+
|
||||
+enum {
|
||||
+ LBC_ST_INIT = 0,
|
||||
+ LBC_ST_NO_USB,
|
||||
+ LBC_ST_CHARGING,
|
||||
+ LBC_ST_TERMINATED,
|
||||
+ LBC_ST_FAULT,
|
||||
+};
|
||||
+
|
||||
+static const char * const lbc_state_name[] = {
|
||||
+ [LBC_ST_INIT] = "INIT",
|
||||
+ [LBC_ST_NO_USB] = "NO_USB",
|
||||
+ [LBC_ST_CHARGING] = "CHARGING",
|
||||
+ [LBC_ST_TERMINATED] = "TERMINATED",
|
||||
+ [LBC_ST_FAULT] = "FAULT",
|
||||
+};
|
||||
+
|
||||
+enum {
|
||||
+ LBC_FAULT_NONE = 0,
|
||||
+ LBC_FAULT_TIMER,
|
||||
+ LBC_FAULT_OVP,
|
||||
+};
|
||||
+
|
||||
+static const char * const lbc_fault_name[] = {
|
||||
+ [LBC_FAULT_NONE] = "none",
|
||||
+ [LBC_FAULT_TIMER] = "safety-timer (CHG_FAILED)",
|
||||
+ [LBC_FAULT_OVP] = "vbat-overvoltage",
|
||||
};
|
||||
|
||||
static const unsigned int pm8916_lbc_charger_cable[] = {
|
||||
@@ -79,7 +154,7 @@
|
||||
LBC_MISC,
|
||||
};
|
||||
|
||||
-static int pm8916_lbc_charger_configure(struct pm8916_lbc_charger *chg)
|
||||
+static int pm8916_lbc_charger_configure(struct pm8916_lbc_charger *chg, bool set_ctrl)
|
||||
{
|
||||
int ret = 0;
|
||||
unsigned int tmp;
|
||||
@@ -107,10 +182,16 @@
|
||||
if (ret)
|
||||
goto error;
|
||||
|
||||
- ret = regmap_write(chg->regmap, chg->reg[LBC_CHGR] + PM8916_LBC_CHGR_CHG_CTRL,
|
||||
- PM8916_LBC_CHGR_CHG_EN | PM8916_LBC_CHGR_PSTG_EN);
|
||||
- if (ret)
|
||||
- goto error;
|
||||
+ /*
|
||||
+ * CHG_CTRL is written only at probe. Afterwards the recharge supervisor owns CHG_EN, so a
|
||||
+ * constant_charge_current update must not re-enable charging in TERMINATED/FAULT.
|
||||
+ */
|
||||
+ if (set_ctrl) {
|
||||
+ ret = regmap_write(chg->regmap, chg->reg[LBC_CHGR] + PM8916_LBC_CHGR_CHG_CTRL,
|
||||
+ PM8916_LBC_CHGR_CHG_EN | PM8916_LBC_CHGR_PSTG_EN);
|
||||
+ if (ret)
|
||||
+ goto error;
|
||||
+ }
|
||||
|
||||
return ret;
|
||||
|
||||
@@ -126,6 +207,23 @@
|
||||
struct pm8916_lbc_charger *chg = power_supply_get_drvdata(psy);
|
||||
|
||||
switch (psp) {
|
||||
+ case POWER_SUPPLY_PROP_STATUS:
|
||||
+ switch (chg->state) {
|
||||
+ case LBC_ST_CHARGING:
|
||||
+ val->intval = POWER_SUPPLY_STATUS_CHARGING;
|
||||
+ break;
|
||||
+ case LBC_ST_TERMINATED:
|
||||
+ val->intval = POWER_SUPPLY_STATUS_FULL;
|
||||
+ break;
|
||||
+ case LBC_ST_NO_USB:
|
||||
+ val->intval = POWER_SUPPLY_STATUS_DISCHARGING;
|
||||
+ break;
|
||||
+ default:
|
||||
+ val->intval = POWER_SUPPLY_STATUS_NOT_CHARGING;
|
||||
+ break;
|
||||
+ }
|
||||
+ return 0;
|
||||
+
|
||||
case POWER_SUPPLY_PROP_ONLINE:
|
||||
val->intval = chg->online;
|
||||
return 0;
|
||||
@@ -152,7 +250,7 @@
|
||||
switch (prop) {
|
||||
case POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT:
|
||||
chg->charge_current_max = val->intval;
|
||||
- return pm8916_lbc_charger_configure(chg);
|
||||
+ return pm8916_lbc_charger_configure(chg, false);
|
||||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
@@ -170,11 +268,208 @@
|
||||
}
|
||||
|
||||
static enum power_supply_property pm8916_lbc_charger_properties[] = {
|
||||
+ POWER_SUPPLY_PROP_STATUS,
|
||||
POWER_SUPPLY_PROP_ONLINE,
|
||||
POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE_MAX,
|
||||
POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT,
|
||||
};
|
||||
|
||||
+
|
||||
+/*
|
||||
+ * Aurora B10B-3 recharge supervisor.
|
||||
+ * The LBC ends a charge cycle in hardware (end-of-charge latch: CHG_STATUS 00, USB path 01, USB input ~0) and then
|
||||
+ * stays off until software gives CHG_EN a 0 -> 1 edge (downstream qpnp-linear-charger did this from BMS SOC /
|
||||
+ * VBAT_DET IRQ). Verified on Aurora (B10B-3 ram1): CHG_CTRL 0x21 -> 0xa0 releases the latch.
|
||||
+ * Also verified: writing CHG_EN = 0 does NOT stop the charger (USB input stays ~0.36 A), so the supervisor never
|
||||
+ * uses CHG_CTRL to "turn charging off"; TERMINATED is only the hardware latch, observed after CHARGING.
|
||||
+ * The supervisor polls the VADC VBAT every 30 s and restarts charging when VBAT stays below the monitored-battery
|
||||
+ * re-charge-voltage-microvolt for 3 consecutive polls.
|
||||
+ */
|
||||
+static void lbc_supv_log(struct pm8916_lbc_charger *chg, int to, const char *why)
|
||||
+{
|
||||
+ unsigned int i = chg->log_n++ % PM8916_LBC_SUPV_LOG;
|
||||
+
|
||||
+ chg->log[i].t = ktime_get_seconds();
|
||||
+ chg->log[i].from = chg->state;
|
||||
+ chg->log[i].to = to;
|
||||
+ chg->log[i].vbat = chg->vbat_uv;
|
||||
+ chg->log[i].why = why;
|
||||
+ dev_info(chg->dev, "supervisor %s -> %s (%s), vbat %d uV\n", lbc_state_name[chg->state],
|
||||
+ lbc_state_name[to], why, chg->vbat_uv);
|
||||
+ chg->state = to;
|
||||
+}
|
||||
+
|
||||
+static int lbc_charge_enable(struct pm8916_lbc_charger *chg, bool en)
|
||||
+{
|
||||
+ /* stock-style: enabled = CHG_EN, disabled = FORCE_BATT_ON */
|
||||
+ return regmap_update_bits(chg->regmap, chg->reg[LBC_CHGR] + PM8916_LBC_CHGR_CHG_CTRL,
|
||||
+ PM8916_LBC_CHGR_EN_MASK,
|
||||
+ en ? PM8916_LBC_CHGR_CHG_EN : PM8916_LBC_CHGR_FORCE_BATT_ON);
|
||||
+}
|
||||
+
|
||||
+/* the verified restart: CHG_CTRL 0x21 (CHG_EN 0) -> 20 ms -> 0xa0 (CHG_EN 1); on (re)insert also clear CHG_FAILED */
|
||||
+static int lbc_charge_restart(struct pm8916_lbc_charger *chg, bool clear_failed)
|
||||
+{
|
||||
+ int ret;
|
||||
+
|
||||
+ if (clear_failed) {
|
||||
+ ret = regmap_write(chg->regmap, chg->reg[LBC_CHGR] + PM8916_LBC_CHGR_CHG_FAILED,
|
||||
+ PM8916_LBC_CHGR_CHG_FAILED_BIT);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+ }
|
||||
+ ret = lbc_charge_enable(chg, false);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+ msleep(20);
|
||||
+ return lbc_charge_enable(chg, true);
|
||||
+}
|
||||
+
|
||||
+static void lbc_supv_work(struct work_struct *work)
|
||||
+{
|
||||
+ struct pm8916_lbc_charger *chg = container_of(work, struct pm8916_lbc_charger, supv_work.work);
|
||||
+ unsigned int usb_rt, sts, path, failed;
|
||||
+ int ret, uv;
|
||||
+
|
||||
+ mutex_lock(&chg->supv_lock);
|
||||
+
|
||||
+ ret = regmap_read(chg->regmap, chg->reg[LBC_USB] + PM8916_INT_RT_STS, &usb_rt);
|
||||
+ ret = ret ?: regmap_read(chg->regmap, chg->reg[LBC_CHGR] + PM8916_LBC_CHGR_CHG_STATUS, &sts);
|
||||
+ ret = ret ?: regmap_read(chg->regmap, chg->reg[LBC_USB] + PM8916_LBC_USB_PATH_STS, &path);
|
||||
+ ret = ret ?: regmap_read(chg->regmap, chg->reg[LBC_CHGR] + PM8916_LBC_CHGR_CHG_FAILED, &failed);
|
||||
+ if (ret) {
|
||||
+ dev_err(chg->dev, "supervisor: register read failed: %d\n", ret);
|
||||
+ goto out;
|
||||
+ }
|
||||
+ if (!iio_read_channel_processed(chg->vbat_chan, &uv))
|
||||
+ chg->vbat_uv = uv;
|
||||
+ else
|
||||
+ chg->vbat_uv = -1;
|
||||
+
|
||||
+ if (!(usb_rt & PM8916_LBC_USB_USBIN_VALID)) {
|
||||
+ /* CHG_CTRL untouched; the next insert restarts with the verified edge */
|
||||
+ if (chg->state != LBC_ST_NO_USB) {
|
||||
+ chg->fault_reason = LBC_FAULT_NONE;
|
||||
+ lbc_supv_log(chg, LBC_ST_NO_USB, "usb removed");
|
||||
+ }
|
||||
+ goto out;
|
||||
+ }
|
||||
+
|
||||
+ switch (chg->state) {
|
||||
+ case LBC_ST_INIT:
|
||||
+ case LBC_ST_NO_USB:
|
||||
+ /* probe or USB insert: always start a cycle, like stock's usbin path */
|
||||
+ chg->done_polls = 0;
|
||||
+ chg->low_polls = 0;
|
||||
+ chg->fault_reason = LBC_FAULT_NONE;
|
||||
+ if (!lbc_charge_restart(chg, true))
|
||||
+ lbc_supv_log(chg, LBC_ST_CHARGING,
|
||||
+ chg->state == LBC_ST_INIT ? "probe, usb present" : "usb inserted");
|
||||
+ break;
|
||||
+
|
||||
+ case LBC_ST_CHARGING:
|
||||
+ /*
|
||||
+ * Safety timer expiry: the hardware stops and sets CHG_FAILED. Latch FAULT so the supervisor never
|
||||
+ * restarts; no register write (CHG_EN = 0 is not a verified way to stop the charger).
|
||||
+ */
|
||||
+ if (failed & PM8916_LBC_CHGR_CHG_FAILED_BIT) {
|
||||
+ chg->fault_reason = LBC_FAULT_TIMER;
|
||||
+ lbc_supv_log(chg, LBC_ST_FAULT, "CHG_FAILED (safety timer)");
|
||||
+ break;
|
||||
+ }
|
||||
+ if (chg->vbat_uv > PM8916_LBC_SUPV_OVP_UV) {
|
||||
+ /* defence only: VDD_MAX regulates in hardware; latch FAULT = no further restarts */
|
||||
+ chg->fault_reason = LBC_FAULT_OVP;
|
||||
+ lbc_supv_log(chg, LBC_ST_FAULT, "vbat > 4.25 V");
|
||||
+ break;
|
||||
+ }
|
||||
+ /* TERMINATED = hardware end-of-charge latch only; CHG_CTRL is not changed */
|
||||
+ if (sts == 0 && !(path & PM8916_LBC_USB_PATH_ON))
|
||||
+ chg->done_polls++;
|
||||
+ else
|
||||
+ chg->done_polls = 0;
|
||||
+ if (chg->done_polls >= PM8916_LBC_SUPV_DONE_POLLS) {
|
||||
+ chg->n_terminated++;
|
||||
+ chg->low_polls = 0;
|
||||
+ lbc_supv_log(chg, LBC_ST_TERMINATED, "hardware end of charge");
|
||||
+ }
|
||||
+ break;
|
||||
+
|
||||
+ case LBC_ST_TERMINATED:
|
||||
+ if (!chg->recharge_uv || chg->vbat_uv < 0)
|
||||
+ break;
|
||||
+ if ((unsigned int)chg->vbat_uv < chg->recharge_uv)
|
||||
+ chg->low_polls++;
|
||||
+ else
|
||||
+ chg->low_polls = 0;
|
||||
+ if (chg->low_polls >= PM8916_LBC_SUPV_LOW_POLLS) {
|
||||
+ chg->done_polls = 0;
|
||||
+ chg->low_polls = 0;
|
||||
+ if (!lbc_charge_restart(chg, false)) {
|
||||
+ chg->n_recharge++;
|
||||
+ lbc_supv_log(chg, LBC_ST_CHARGING, "recharge");
|
||||
+ }
|
||||
+ }
|
||||
+ break;
|
||||
+
|
||||
+ case LBC_ST_FAULT:
|
||||
+ /* latched: left only by USB removal/insert or reboot */
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+out:
|
||||
+ mutex_unlock(&chg->supv_lock);
|
||||
+ power_supply_changed(chg->charger);
|
||||
+ queue_delayed_work(system_freezable_wq, &chg->supv_work,
|
||||
+ msecs_to_jiffies(PM8916_LBC_SUPV_PERIOD_MS));
|
||||
+}
|
||||
+
|
||||
+static int lbc_state_show(struct seq_file *s, void *unused)
|
||||
+{
|
||||
+ struct pm8916_lbc_charger *chg = s->private;
|
||||
+ static const struct { const char *n; int blk; unsigned int off; } regs[] = {
|
||||
+ { "CHG_STATUS", LBC_CHGR, PM8916_LBC_CHGR_CHG_STATUS },
|
||||
+ { "CHGR_RT", LBC_CHGR, PM8916_INT_RT_STS },
|
||||
+ { "CHG_CTRL", LBC_CHGR, PM8916_LBC_CHGR_CHG_CTRL },
|
||||
+ { "CHG_FAILED", LBC_CHGR, PM8916_LBC_CHGR_CHG_FAILED },
|
||||
+ { "VDD_MAX", LBC_CHGR, PM8916_LBC_CHGR_VDD_MAX },
|
||||
+ { "IBAT_MAX", LBC_CHGR, PM8916_LBC_CHGR_IBAT_MAX },
|
||||
+ { "TCHG_MAX_EN", LBC_CHGR, PM8916_LBC_CHGR_TCHG_MAX_EN },
|
||||
+ { "TCHG_MAX", LBC_CHGR, PM8916_LBC_CHGR_TCHG_MAX },
|
||||
+ { "USB_PATH", LBC_USB, PM8916_LBC_USB_PATH_STS },
|
||||
+ { "USB_RT", LBC_USB, PM8916_INT_RT_STS },
|
||||
+ { "BAT_RT", LBC_BAT_IF, PM8916_INT_RT_STS },
|
||||
+ };
|
||||
+ unsigned int i, v;
|
||||
+
|
||||
+ mutex_lock(&chg->supv_lock);
|
||||
+ seq_printf(s, "state %s fault %s vbat_uv %d\n", lbc_state_name[chg->state],
|
||||
+ lbc_fault_name[chg->fault_reason], chg->vbat_uv);
|
||||
+ seq_printf(s, "recharge_uv %u done_polls %d low_polls %d timeout_min %u\n",
|
||||
+ chg->recharge_uv, chg->done_polls, chg->low_polls, chg->timeout_min);
|
||||
+ seq_printf(s, "n_terminated %u n_recharge %u\n", chg->n_terminated, chg->n_recharge);
|
||||
+ for (i = 0; i < ARRAY_SIZE(regs); i++) {
|
||||
+ if (regmap_read(chg->regmap, chg->reg[regs[i].blk] + regs[i].off, &v))
|
||||
+ v = 0xffff;
|
||||
+ seq_printf(s, "%s %02x\n", regs[i].n, v);
|
||||
+ }
|
||||
+ for (i = chg->log_n > PM8916_LBC_SUPV_LOG ? chg->log_n - PM8916_LBC_SUPV_LOG : 0; i < chg->log_n; i++) {
|
||||
+ unsigned int j = i % PM8916_LBC_SUPV_LOG;
|
||||
+
|
||||
+ seq_printf(s, "log %u t=%lld %s->%s vbat=%d %s\n", i, chg->log[j].t,
|
||||
+ lbc_state_name[chg->log[j].from], lbc_state_name[chg->log[j].to],
|
||||
+ chg->log[j].vbat, chg->log[j].why);
|
||||
+ }
|
||||
+ mutex_unlock(&chg->supv_lock);
|
||||
+ return 0;
|
||||
+}
|
||||
+DEFINE_SHOW_ATTRIBUTE(lbc_state);
|
||||
+
|
||||
+static void lbc_debugfs_remove(void *data)
|
||||
+{
|
||||
+ debugfs_remove_recursive(data);
|
||||
+}
|
||||
+
|
||||
static irqreturn_t pm8916_lbc_charger_state_changed_irq(int irq, void *data)
|
||||
{
|
||||
struct pm8916_lbc_charger *chg = data;
|
||||
@@ -190,6 +485,9 @@
|
||||
|
||||
power_supply_changed(chg->charger);
|
||||
|
||||
+ if (chg->vbat_chan)
|
||||
+ mod_delayed_work(system_freezable_wq, &chg->supv_work, 0);
|
||||
+
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
@@ -230,10 +528,35 @@
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
- /* Disable charger timeout. */
|
||||
+ /*
|
||||
+ * Keep the charger safety timer running (upstream disabled it). Same sequence as the
|
||||
+ * downstream qpnp-linear-charger: timer off, TCHG_MAX = minutes / 4 - 1 (4..512 min), timer on.
|
||||
+ */
|
||||
+ chg->timeout_min = PM8916_LBC_TIMEOUT_DEFAULT_MIN;
|
||||
+ device_property_read_u32(dev, "qcom,charge-timeout-minutes", &chg->timeout_min);
|
||||
+ chg->timeout_min = clamp_t(u32, chg->timeout_min, PM8916_LBC_TIMEOUT_STEP_MIN,
|
||||
+ PM8916_LBC_TIMEOUT_MAX_MIN);
|
||||
+ chg->timeout_min -= chg->timeout_min % PM8916_LBC_TIMEOUT_STEP_MIN;
|
||||
+
|
||||
ret = regmap_write(chg->regmap, chg->reg[LBC_CHGR] + PM8916_LBC_CHGR_TCHG_MAX_EN, 0x00);
|
||||
if (ret)
|
||||
return ret;
|
||||
+ tmp = chg->timeout_min / PM8916_LBC_TIMEOUT_STEP_MIN - 1;
|
||||
+ ret = regmap_write(chg->regmap, chg->reg[LBC_CHGR] + PM8916_LBC_CHGR_TCHG_MAX, tmp);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+ ret = regmap_write(chg->regmap, chg->reg[LBC_CHGR] + PM8916_LBC_CHGR_TCHG_MAX_EN,
|
||||
+ PM8916_LBC_CHGR_TCHG_MAX_ENABLED);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+
|
||||
+ ret = regmap_read(chg->regmap, chg->reg[LBC_CHGR] + PM8916_LBC_CHGR_TCHG_MAX, &tmp);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+ if (tmp != chg->timeout_min / PM8916_LBC_TIMEOUT_STEP_MIN - 1)
|
||||
+ return dev_err_probe(dev, -EIO, "TCHG_MAX readback 0x%x != 0x%x\n", tmp,
|
||||
+ chg->timeout_min / PM8916_LBC_TIMEOUT_STEP_MIN - 1);
|
||||
+ dev_info(dev, "safety timer %u min (TCHG_MAX 0x%02x), enabled\n", chg->timeout_min, tmp);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@@ -309,7 +632,7 @@
|
||||
|
||||
ret = pm8916_lbc_charger_probe_dt(chg);
|
||||
if (ret)
|
||||
- dev_err_probe(dev, ret, "Error while parsing device tree\n");
|
||||
+ return dev_err_probe(dev, ret, "Error while parsing device tree\n");
|
||||
|
||||
psy_cfg.drv_data = chg;
|
||||
psy_cfg.fwnode = dev_fwnode(dev);
|
||||
@@ -322,6 +645,22 @@
|
||||
if (ret)
|
||||
return dev_err_probe(dev, ret, "Unable to get battery info\n");
|
||||
|
||||
+ chg->vbat_chan = devm_iio_channel_get(dev, "vbat");
|
||||
+ if (IS_ERR(chg->vbat_chan))
|
||||
+ return dev_err_probe(dev, PTR_ERR(chg->vbat_chan), "no VADC vbat channel\n");
|
||||
+
|
||||
+ {
|
||||
+ struct device_node *bat = of_parse_phandle(dev->of_node, "monitored-battery", 0);
|
||||
+
|
||||
+ if (!bat || of_property_read_u32(bat, "re-charge-voltage-microvolt", &chg->recharge_uv))
|
||||
+ dev_warn(dev, "no re-charge-voltage-microvolt: automatic recharge disabled\n");
|
||||
+ of_node_put(bat);
|
||||
+ }
|
||||
+ mutex_init(&chg->supv_lock);
|
||||
+ ret = devm_delayed_work_autocancel(dev, &chg->supv_work, lbc_supv_work);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+
|
||||
irq = platform_get_irq_byname(pdev, "usb_vbus");
|
||||
if (irq < 0)
|
||||
return irq;
|
||||
@@ -347,10 +686,21 @@
|
||||
extcon_set_state_sync(chg->edev, EXTCON_USB, chg->online);
|
||||
|
||||
chg->charge_voltage_max = chg->info->voltage_max_design_uv;
|
||||
- ret = pm8916_lbc_charger_configure(chg);
|
||||
+ ret = pm8916_lbc_charger_configure(chg, true);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
+ chg->debugfs = debugfs_create_dir("pm8916_lbc", NULL);
|
||||
+ debugfs_create_file("state", 0444, chg->debugfs, chg, &lbc_state_fops);
|
||||
+ ret = devm_add_action_or_reset(dev, lbc_debugfs_remove, chg->debugfs);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+
|
||||
+ dev_info(dev, "recharge supervisor: threshold %u uV, %d x %d ms below, ovp %d uV\n",
|
||||
+ chg->recharge_uv, PM8916_LBC_SUPV_LOW_POLLS, PM8916_LBC_SUPV_PERIOD_MS,
|
||||
+ PM8916_LBC_SUPV_OVP_UV);
|
||||
+ queue_delayed_work(system_freezable_wq, &chg->supv_work, 0);
|
||||
+
|
||||
return 0;
|
||||
|
||||
comm_error:
|
||||
596
b10/b10b3/b10b3-lbc-supervisor-v3.patch
Normal file
596
b10/b10b3/b10b3-lbc-supervisor-v3.patch
Normal file
|
|
@ -0,0 +1,596 @@
|
|||
--- a/drivers/iio/adc/qcom-spmi-vadc.c
|
||||
+++ b/drivers/iio/adc/qcom-spmi-vadc.c
|
||||
@@ -563,7 +563,7 @@
|
||||
VADC_CHAN_NO_SCALE(SPARE1_03, 1)
|
||||
VADC_CHAN_NO_SCALE(USB_ID_MV, 1)
|
||||
VADC_CHAN_VOLT(VCOIN, 1, SCALE_DEFAULT)
|
||||
- VADC_CHAN_NO_SCALE(VBAT_SNS, 1)
|
||||
+ VADC_CHAN_VOLT(VBAT_SNS, 1, SCALE_DEFAULT)
|
||||
VADC_CHAN_VOLT(VSYS, 1, SCALE_DEFAULT)
|
||||
VADC_CHAN_TEMP(DIE_TEMP, 0, SCALE_PMIC_THERM)
|
||||
VADC_CHAN_VOLT(REF_625MV, 0, SCALE_DEFAULT)
|
||||
--- a/drivers/power/supply/pm8916_lbc.c
|
||||
+++ b/drivers/power/supply/pm8916_lbc.c
|
||||
@@ -13,6 +13,13 @@
|
||||
#include <linux/delay.h>
|
||||
#include <linux/interrupt.h>
|
||||
#include <linux/extcon-provider.h>
|
||||
+#include <linux/debugfs.h>
|
||||
+#include <linux/devm-helpers.h>
|
||||
+#include <linux/iio/consumer.h>
|
||||
+#include <linux/mutex.h>
|
||||
+#include <linux/of.h>
|
||||
+#include <linux/seq_file.h>
|
||||
+#include <linux/workqueue.h>
|
||||
|
||||
/* Two bytes: type + subtype */
|
||||
#define PM8916_PERPH_TYPE 0x04
|
||||
@@ -42,6 +49,30 @@
|
||||
#define PM8916_LBC_CHGR_CHG_CTRL 0x49
|
||||
#define PM8916_LBC_CHGR_CHG_EN BIT(7)
|
||||
#define PM8916_LBC_CHGR_PSTG_EN BIT(5)
|
||||
+#define PM8916_LBC_CHGR_FORCE_BATT_ON BIT(0)
|
||||
+#define PM8916_LBC_CHGR_EN_MASK (PM8916_LBC_CHGR_CHG_EN | PM8916_LBC_CHGR_FORCE_BATT_ON)
|
||||
+
|
||||
+#define PM8916_LBC_CHGR_CHG_FAILED 0x4a
|
||||
+#define PM8916_LBC_CHGR_CHG_FAILED_BIT BIT(7)
|
||||
+
|
||||
+/* USB_CHGPTH 0x08: 0x02 while the charge path is on, 0x01 after end of charge (observed, not documented) */
|
||||
+#define PM8916_LBC_USB_PATH_STS 0x08
|
||||
+#define PM8916_LBC_USB_PATH_ON BIT(1)
|
||||
+
|
||||
+/* Aurora B10B-3 recharge supervisor */
|
||||
+#define PM8916_LBC_SUPV_PERIOD_MS 30000
|
||||
+#define PM8916_LBC_SUPV_LATCH_POLLS 2
|
||||
+#define PM8916_LBC_SUPV_NOCV_POLLS 2
|
||||
+#define PM8916_LBC_SUPV_OVP_UV 4250000
|
||||
+#define PM8916_LBC_CV_HOLD_DEFAULT_MIN 60
|
||||
+#define PM8916_LBC_CHGR_CV_LOOP BIT(1)
|
||||
+
|
||||
+#define PM8916_LBC_MISC_BOOT_DONE 0x42
|
||||
+#define PM8916_LBC_MISC_BOOT_DONE_BIT BIT(7)
|
||||
+#define PM8916_LBC_TIMEOUT_DEFAULT_MIN 512
|
||||
+#define PM8916_LBC_TIMEOUT_STEP_MIN 4
|
||||
+#define PM8916_LBC_TIMEOUT_MAX_MIN 512
|
||||
+#define PM8916_LBC_SUPV_LOG 16
|
||||
|
||||
#define PM8916_LBC_CHGR_MIN_CURRENT 90000
|
||||
#define PM8916_LBC_CHGR_MAX_CURRENT 1440000
|
||||
@@ -65,6 +96,61 @@
|
||||
unsigned int charge_voltage_safe;
|
||||
unsigned int charge_current_max;
|
||||
unsigned int charge_current_safe;
|
||||
+
|
||||
+ /* charger supervisor (Aurora B10B-3 v3) */
|
||||
+ struct iio_channel *vbat_chan;
|
||||
+ struct delayed_work supv_work;
|
||||
+ struct mutex supv_lock;
|
||||
+ int state;
|
||||
+ int fault_reason;
|
||||
+ unsigned int hold_uv; /* aurora,hold-voltage-microvolt, 0 = HOLD disabled */
|
||||
+ unsigned int full_min_uv; /* aurora,full-min-voltage-microvolt */
|
||||
+ unsigned int cv_hold_min; /* aurora,cv-hold-minutes */
|
||||
+ unsigned int ibat_code; /* IBAT_MAX code programmed at probe */
|
||||
+ unsigned int timeout_min;
|
||||
+ int vbat_uv;
|
||||
+ int latch_polls;
|
||||
+ int nocv_polls;
|
||||
+ time64_t cv_since; /* start of the current CV run, 0 = none */
|
||||
+ bool supv_ready; /* set at the end of probe; IRQ kicks only after that */
|
||||
+ unsigned int n_insert;
|
||||
+ unsigned int n_hold;
|
||||
+ unsigned int n_latch;
|
||||
+ struct {
|
||||
+ time64_t t;
|
||||
+ int from, to, vbat;
|
||||
+ const char *why;
|
||||
+ } log[PM8916_LBC_SUPV_LOG];
|
||||
+ unsigned int log_n;
|
||||
+ struct dentry *debugfs;
|
||||
+};
|
||||
+
|
||||
+enum {
|
||||
+ LBC_ST_INIT = 0,
|
||||
+ LBC_ST_NO_USB,
|
||||
+ LBC_ST_CHARGING,
|
||||
+ LBC_ST_HOLD,
|
||||
+ LBC_ST_FAULT,
|
||||
+};
|
||||
+
|
||||
+static const char * const lbc_state_name[] = {
|
||||
+ [LBC_ST_INIT] = "INIT",
|
||||
+ [LBC_ST_NO_USB] = "NO_USB",
|
||||
+ [LBC_ST_CHARGING] = "CHARGING",
|
||||
+ [LBC_ST_HOLD] = "HOLD",
|
||||
+ [LBC_ST_FAULT] = "FAULT",
|
||||
+};
|
||||
+
|
||||
+enum {
|
||||
+ LBC_FAULT_NONE = 0,
|
||||
+ LBC_FAULT_TIMER,
|
||||
+ LBC_FAULT_OVP,
|
||||
+};
|
||||
+
|
||||
+static const char * const lbc_fault_name[] = {
|
||||
+ [LBC_FAULT_NONE] = "none",
|
||||
+ [LBC_FAULT_TIMER] = "safety-timer (CHG_FAILED)",
|
||||
+ [LBC_FAULT_OVP] = "vbat-overvoltage",
|
||||
};
|
||||
|
||||
static const unsigned int pm8916_lbc_charger_cable[] = {
|
||||
@@ -79,7 +165,7 @@
|
||||
LBC_MISC,
|
||||
};
|
||||
|
||||
-static int pm8916_lbc_charger_configure(struct pm8916_lbc_charger *chg)
|
||||
+static int pm8916_lbc_charger_configure(struct pm8916_lbc_charger *chg, bool probe)
|
||||
{
|
||||
int ret = 0;
|
||||
unsigned int tmp;
|
||||
@@ -91,9 +177,12 @@
|
||||
tmp /= PM8916_LBC_CHGR_VOLTAGE_STEP;
|
||||
chg->charge_voltage_max = PM8916_LBC_CHGR_MIN_VOLTAGE + tmp * PM8916_LBC_CHGR_VOLTAGE_STEP;
|
||||
|
||||
- ret = regmap_write(chg->regmap, chg->reg[LBC_CHGR] + PM8916_LBC_CHGR_VDD_MAX, tmp);
|
||||
- if (ret)
|
||||
- goto error;
|
||||
+ /* after probe the supervisor owns VDD_MAX (charge level / hold level) */
|
||||
+ if (probe) {
|
||||
+ ret = regmap_write(chg->regmap, chg->reg[LBC_CHGR] + PM8916_LBC_CHGR_VDD_MAX, tmp);
|
||||
+ if (ret)
|
||||
+ goto error;
|
||||
+ }
|
||||
|
||||
chg->charge_current_max = min(chg->charge_current_max, chg->charge_current_safe);
|
||||
|
||||
@@ -102,15 +191,22 @@
|
||||
|
||||
tmp = chg->charge_current_max / PM8916_LBC_CHGR_MIN_CURRENT - 1;
|
||||
chg->charge_current_max = (tmp + 1) * PM8916_LBC_CHGR_MIN_CURRENT;
|
||||
+ chg->ibat_code = tmp;
|
||||
|
||||
ret = regmap_write(chg->regmap, chg->reg[LBC_CHGR] + PM8916_LBC_CHGR_IBAT_MAX, tmp);
|
||||
if (ret)
|
||||
goto error;
|
||||
|
||||
- ret = regmap_write(chg->regmap, chg->reg[LBC_CHGR] + PM8916_LBC_CHGR_CHG_CTRL,
|
||||
- PM8916_LBC_CHGR_CHG_EN | PM8916_LBC_CHGR_PSTG_EN);
|
||||
- if (ret)
|
||||
- goto error;
|
||||
+ /*
|
||||
+ * CHG_CTRL is written only at probe. Afterwards the supervisor owns CHG_EN, so a
|
||||
+ * constant_charge_current update must not restart charging in HOLD/FAULT.
|
||||
+ */
|
||||
+ if (probe) {
|
||||
+ ret = regmap_write(chg->regmap, chg->reg[LBC_CHGR] + PM8916_LBC_CHGR_CHG_CTRL,
|
||||
+ PM8916_LBC_CHGR_CHG_EN | PM8916_LBC_CHGR_PSTG_EN);
|
||||
+ if (ret)
|
||||
+ goto error;
|
||||
+ }
|
||||
|
||||
return ret;
|
||||
|
||||
@@ -126,6 +222,23 @@
|
||||
struct pm8916_lbc_charger *chg = power_supply_get_drvdata(psy);
|
||||
|
||||
switch (psp) {
|
||||
+ case POWER_SUPPLY_PROP_STATUS:
|
||||
+ switch (chg->state) {
|
||||
+ case LBC_ST_CHARGING:
|
||||
+ val->intval = POWER_SUPPLY_STATUS_CHARGING;
|
||||
+ break;
|
||||
+ case LBC_ST_HOLD:
|
||||
+ val->intval = POWER_SUPPLY_STATUS_FULL;
|
||||
+ break;
|
||||
+ case LBC_ST_NO_USB:
|
||||
+ val->intval = POWER_SUPPLY_STATUS_DISCHARGING;
|
||||
+ break;
|
||||
+ default:
|
||||
+ val->intval = POWER_SUPPLY_STATUS_NOT_CHARGING;
|
||||
+ break;
|
||||
+ }
|
||||
+ return 0;
|
||||
+
|
||||
case POWER_SUPPLY_PROP_ONLINE:
|
||||
val->intval = chg->online;
|
||||
return 0;
|
||||
@@ -151,8 +264,15 @@
|
||||
|
||||
switch (prop) {
|
||||
case POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT:
|
||||
+ {
|
||||
+ int ret;
|
||||
+
|
||||
+ mutex_lock(&chg->supv_lock);
|
||||
chg->charge_current_max = val->intval;
|
||||
- return pm8916_lbc_charger_configure(chg);
|
||||
+ ret = pm8916_lbc_charger_configure(chg, false);
|
||||
+ mutex_unlock(&chg->supv_lock);
|
||||
+ return ret;
|
||||
+ }
|
||||
default:
|
||||
return -EINVAL;
|
||||
}
|
||||
@@ -170,11 +290,265 @@
|
||||
}
|
||||
|
||||
static enum power_supply_property pm8916_lbc_charger_properties[] = {
|
||||
+ POWER_SUPPLY_PROP_STATUS,
|
||||
POWER_SUPPLY_PROP_ONLINE,
|
||||
POWER_SUPPLY_PROP_CONSTANT_CHARGE_VOLTAGE_MAX,
|
||||
POWER_SUPPLY_PROP_CONSTANT_CHARGE_CURRENT,
|
||||
};
|
||||
|
||||
+
|
||||
+/*
|
||||
+ * Aurora B10B-3 v3 charger supervisor: CHARGE -> HOLD -> (battery) -> CHARGE.
|
||||
+ * Facts it relies on (B10A/B10B-2/B10B-3 tests): CHG_STATUS 00 + USB path 01 is a latch, not an end-of-charge;
|
||||
+ * no hardware EOC was seen with BOOT_DONE set; CHG_EN = 0 does not stop the charger; verified levers are VDD_MAX,
|
||||
+ * IBAT_MAX and the CHG_CTRL 0x21 -> 0xa0 edge (releases the latch). All decisions use the calibrated VADC VBAT.
|
||||
+ * NO_USB: nothing is written.
|
||||
+ * CHARGING: entered on USB insert/probe: BOOT_DONE, VDD_MAX = charge level, IBAT_MAX, restart edge.
|
||||
+ * -> HOLD after the CV loop with VBAT >= full-min lasted cv-hold-minutes; 00/01 latch -> restart, stay.
|
||||
+ * HOLD: only VDD_MAX = hold level; 00/01 latch -> restart edge, VDD_MAX stays at the hold level.
|
||||
+ * FAULT: logical only (VBAT > 4.25 V or CHG_FAILED): no restarts. There is no verified software stop.
|
||||
+ */
|
||||
+static void lbc_supv_log(struct pm8916_lbc_charger *chg, int to, const char *why)
|
||||
+{
|
||||
+ unsigned int i = chg->log_n++ % PM8916_LBC_SUPV_LOG;
|
||||
+
|
||||
+ chg->log[i].t = ktime_get_seconds();
|
||||
+ chg->log[i].from = chg->state;
|
||||
+ chg->log[i].to = to;
|
||||
+ chg->log[i].vbat = chg->vbat_uv;
|
||||
+ chg->log[i].why = why;
|
||||
+ if (to == LBC_ST_FAULT)
|
||||
+ dev_crit(chg->dev, "supervisor %s -> FAULT (%s), vbat %d uV: restarts blocked, NO software stop available\n",
|
||||
+ lbc_state_name[chg->state], why, chg->vbat_uv);
|
||||
+ else
|
||||
+ dev_info(chg->dev, "supervisor %s -> %s (%s), vbat %d uV\n", lbc_state_name[chg->state],
|
||||
+ lbc_state_name[to], why, chg->vbat_uv);
|
||||
+ chg->state = to;
|
||||
+}
|
||||
+
|
||||
+static int lbc_charge_enable(struct pm8916_lbc_charger *chg, bool en)
|
||||
+{
|
||||
+ return regmap_update_bits(chg->regmap, chg->reg[LBC_CHGR] + PM8916_LBC_CHGR_CHG_CTRL,
|
||||
+ PM8916_LBC_CHGR_EN_MASK,
|
||||
+ en ? PM8916_LBC_CHGR_CHG_EN : PM8916_LBC_CHGR_FORCE_BATT_ON);
|
||||
+}
|
||||
+
|
||||
+/* the verified restart: CHG_CTRL 0x21 (CHG_EN 0) -> 20 ms -> 0xa0 (CHG_EN 1); on (re)insert also clear CHG_FAILED */
|
||||
+static int lbc_charge_restart(struct pm8916_lbc_charger *chg, bool clear_failed)
|
||||
+{
|
||||
+ int ret;
|
||||
+
|
||||
+ if (clear_failed) {
|
||||
+ ret = regmap_write(chg->regmap, chg->reg[LBC_CHGR] + PM8916_LBC_CHGR_CHG_FAILED,
|
||||
+ PM8916_LBC_CHGR_CHG_FAILED_BIT);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+ }
|
||||
+ ret = lbc_charge_enable(chg, false);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+ msleep(20);
|
||||
+ return lbc_charge_enable(chg, true);
|
||||
+}
|
||||
+
|
||||
+static int lbc_set_vdd_max(struct pm8916_lbc_charger *chg, unsigned int uv)
|
||||
+{
|
||||
+ uv = clamp_t(u32, uv, PM8916_LBC_CHGR_MIN_VOLTAGE, chg->charge_voltage_safe);
|
||||
+ return regmap_write(chg->regmap, chg->reg[LBC_CHGR] + PM8916_LBC_CHGR_VDD_MAX,
|
||||
+ (uv - PM8916_LBC_CHGR_MIN_VOLTAGE) / PM8916_LBC_CHGR_VOLTAGE_STEP);
|
||||
+}
|
||||
+
|
||||
+/* USB insert / probe with USB: start a full cycle at the charge level */
|
||||
+static int lbc_enter_charging(struct pm8916_lbc_charger *chg)
|
||||
+{
|
||||
+ unsigned int v;
|
||||
+ int ret;
|
||||
+
|
||||
+ ret = regmap_update_bits(chg->regmap, chg->reg[LBC_MISC] + PM8916_LBC_MISC_BOOT_DONE,
|
||||
+ PM8916_LBC_MISC_BOOT_DONE_BIT, PM8916_LBC_MISC_BOOT_DONE_BIT);
|
||||
+ ret = ret ?: lbc_set_vdd_max(chg, chg->charge_voltage_max);
|
||||
+ ret = ret ?: regmap_read(chg->regmap, chg->reg[LBC_CHGR] + PM8916_LBC_CHGR_IBAT_MAX, &v);
|
||||
+ if (!ret && v != chg->ibat_code)
|
||||
+ ret = regmap_write(chg->regmap, chg->reg[LBC_CHGR] + PM8916_LBC_CHGR_IBAT_MAX, chg->ibat_code);
|
||||
+ ret = ret ?: lbc_charge_restart(chg, true);
|
||||
+ chg->latch_polls = 0;
|
||||
+ chg->nocv_polls = 0;
|
||||
+ chg->cv_since = 0;
|
||||
+ return ret;
|
||||
+}
|
||||
+
|
||||
+/* 00/01 latch with USB valid: count polls; restart with the verified edge (VDD_MAX untouched) */
|
||||
+static bool lbc_handle_latch(struct pm8916_lbc_charger *chg, unsigned int sts, unsigned int path)
|
||||
+{
|
||||
+ if (sts == 0 && !(path & PM8916_LBC_USB_PATH_ON))
|
||||
+ chg->latch_polls++;
|
||||
+ else
|
||||
+ chg->latch_polls = 0;
|
||||
+ if (chg->latch_polls < PM8916_LBC_SUPV_LATCH_POLLS)
|
||||
+ return false;
|
||||
+ chg->latch_polls = 0;
|
||||
+ chg->n_latch++;
|
||||
+ if (!lbc_charge_restart(chg, false))
|
||||
+ dev_warn(chg->dev, "supervisor: 00/01 latch in %s (vbat %d uV) -> restart edge #%u\n",
|
||||
+ lbc_state_name[chg->state], chg->vbat_uv, chg->n_latch);
|
||||
+ return true;
|
||||
+}
|
||||
+
|
||||
+static bool lbc_check_fault(struct pm8916_lbc_charger *chg, unsigned int failed)
|
||||
+{
|
||||
+ if (failed & PM8916_LBC_CHGR_CHG_FAILED_BIT) {
|
||||
+ chg->fault_reason = LBC_FAULT_TIMER;
|
||||
+ lbc_supv_log(chg, LBC_ST_FAULT, "CHG_FAILED (safety timer)");
|
||||
+ return true;
|
||||
+ }
|
||||
+ if (chg->vbat_uv > PM8916_LBC_SUPV_OVP_UV) {
|
||||
+ chg->fault_reason = LBC_FAULT_OVP;
|
||||
+ lbc_supv_log(chg, LBC_ST_FAULT, "vbat > 4.25 V");
|
||||
+ return true;
|
||||
+ }
|
||||
+ return false;
|
||||
+}
|
||||
+
|
||||
+static void lbc_supv_work(struct work_struct *work)
|
||||
+{
|
||||
+ struct pm8916_lbc_charger *chg = container_of(work, struct pm8916_lbc_charger, supv_work.work);
|
||||
+ unsigned int usb_rt, sts, path, failed;
|
||||
+ time64_t now = ktime_get_seconds();
|
||||
+ int ret, uv;
|
||||
+
|
||||
+ mutex_lock(&chg->supv_lock);
|
||||
+
|
||||
+ ret = regmap_read(chg->regmap, chg->reg[LBC_USB] + PM8916_INT_RT_STS, &usb_rt);
|
||||
+ ret = ret ?: regmap_read(chg->regmap, chg->reg[LBC_CHGR] + PM8916_LBC_CHGR_CHG_STATUS, &sts);
|
||||
+ ret = ret ?: regmap_read(chg->regmap, chg->reg[LBC_USB] + PM8916_LBC_USB_PATH_STS, &path);
|
||||
+ ret = ret ?: regmap_read(chg->regmap, chg->reg[LBC_CHGR] + PM8916_LBC_CHGR_CHG_FAILED, &failed);
|
||||
+ if (ret) {
|
||||
+ dev_err(chg->dev, "supervisor: register read failed: %d\n", ret);
|
||||
+ goto out;
|
||||
+ }
|
||||
+ if (!iio_read_channel_processed(chg->vbat_chan, &uv))
|
||||
+ chg->vbat_uv = uv;
|
||||
+ else
|
||||
+ chg->vbat_uv = -1;
|
||||
+
|
||||
+ if (!(usb_rt & PM8916_LBC_USB_USBIN_VALID)) {
|
||||
+ if (chg->state != LBC_ST_NO_USB) {
|
||||
+ chg->fault_reason = LBC_FAULT_NONE;
|
||||
+ lbc_supv_log(chg, LBC_ST_NO_USB, "usb removed");
|
||||
+ }
|
||||
+ goto out;
|
||||
+ }
|
||||
+
|
||||
+ switch (chg->state) {
|
||||
+ case LBC_ST_INIT:
|
||||
+ case LBC_ST_NO_USB:
|
||||
+ chg->fault_reason = LBC_FAULT_NONE;
|
||||
+ chg->n_insert++;
|
||||
+ if (!lbc_enter_charging(chg))
|
||||
+ lbc_supv_log(chg, LBC_ST_CHARGING,
|
||||
+ chg->state == LBC_ST_INIT ? "probe, usb present" : "usb inserted");
|
||||
+ break;
|
||||
+
|
||||
+ case LBC_ST_CHARGING:
|
||||
+ if (lbc_check_fault(chg, failed))
|
||||
+ break;
|
||||
+ if (lbc_handle_latch(chg, sts, path)) {
|
||||
+ chg->cv_since = 0;
|
||||
+ chg->nocv_polls = 0;
|
||||
+ break;
|
||||
+ }
|
||||
+ if (!chg->hold_uv || chg->vbat_uv < 0)
|
||||
+ break;
|
||||
+ /* CV run: CV loop bit with VBAT >= full-min; tolerate one poll without the bit (05/07 interleave) */
|
||||
+ if ((unsigned int)chg->vbat_uv < chg->full_min_uv) {
|
||||
+ chg->cv_since = 0;
|
||||
+ chg->nocv_polls = 0;
|
||||
+ break;
|
||||
+ }
|
||||
+ if (sts & PM8916_LBC_CHGR_CV_LOOP) {
|
||||
+ chg->nocv_polls = 0;
|
||||
+ if (!chg->cv_since)
|
||||
+ chg->cv_since = now;
|
||||
+ } else if (++chg->nocv_polls >= PM8916_LBC_SUPV_NOCV_POLLS) {
|
||||
+ chg->cv_since = 0;
|
||||
+ }
|
||||
+ if (chg->cv_since && now - chg->cv_since >= (time64_t)chg->cv_hold_min * 60) {
|
||||
+ if (!lbc_set_vdd_max(chg, chg->hold_uv)) {
|
||||
+ chg->n_hold++;
|
||||
+ chg->latch_polls = 0;
|
||||
+ lbc_supv_log(chg, LBC_ST_HOLD, "CV time reached, VDD_MAX -> hold level");
|
||||
+ }
|
||||
+ }
|
||||
+ break;
|
||||
+
|
||||
+ case LBC_ST_HOLD:
|
||||
+ if (lbc_check_fault(chg, failed))
|
||||
+ break;
|
||||
+ /* keep the board on USB: a 00/01 latch gets the restart edge, VDD_MAX stays at the hold level */
|
||||
+ lbc_handle_latch(chg, sts, path);
|
||||
+ break;
|
||||
+
|
||||
+ case LBC_ST_FAULT:
|
||||
+ /* latched: left only by USB removal/insert or reboot */
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+out:
|
||||
+ mutex_unlock(&chg->supv_lock);
|
||||
+ power_supply_changed(chg->charger);
|
||||
+ queue_delayed_work(system_freezable_wq, &chg->supv_work,
|
||||
+ msecs_to_jiffies(PM8916_LBC_SUPV_PERIOD_MS));
|
||||
+}
|
||||
+
|
||||
+static int lbc_state_show(struct seq_file *s, void *unused)
|
||||
+{
|
||||
+ struct pm8916_lbc_charger *chg = s->private;
|
||||
+ static const struct { const char *n; int blk; unsigned int off; } regs[] = {
|
||||
+ { "CHG_STATUS", LBC_CHGR, PM8916_LBC_CHGR_CHG_STATUS },
|
||||
+ { "CHGR_RT", LBC_CHGR, PM8916_INT_RT_STS },
|
||||
+ { "CHG_CTRL", LBC_CHGR, PM8916_LBC_CHGR_CHG_CTRL },
|
||||
+ { "CHG_FAILED", LBC_CHGR, PM8916_LBC_CHGR_CHG_FAILED },
|
||||
+ { "VDD_MAX", LBC_CHGR, PM8916_LBC_CHGR_VDD_MAX },
|
||||
+ { "IBAT_MAX", LBC_CHGR, PM8916_LBC_CHGR_IBAT_MAX },
|
||||
+ { "TCHG_MAX_EN", LBC_CHGR, PM8916_LBC_CHGR_TCHG_MAX_EN },
|
||||
+ { "TCHG_MAX", LBC_CHGR, PM8916_LBC_CHGR_TCHG_MAX },
|
||||
+ { "USB_PATH", LBC_USB, PM8916_LBC_USB_PATH_STS },
|
||||
+ { "USB_RT", LBC_USB, PM8916_INT_RT_STS },
|
||||
+ { "BAT_RT", LBC_BAT_IF, PM8916_INT_RT_STS },
|
||||
+ { "BOOT_DONE", LBC_MISC, PM8916_LBC_MISC_BOOT_DONE },
|
||||
+ };
|
||||
+ time64_t now = ktime_get_seconds();
|
||||
+ unsigned int i, v;
|
||||
+
|
||||
+ mutex_lock(&chg->supv_lock);
|
||||
+ seq_printf(s, "state %s fault %s vbat_uv %d\n", lbc_state_name[chg->state],
|
||||
+ lbc_fault_name[chg->fault_reason], chg->vbat_uv);
|
||||
+ seq_printf(s, "charge_uv %u hold_uv %u full_min_uv %u cv_hold_min %u cv_s %lld nocv %d timeout_min %u\n",
|
||||
+ chg->charge_voltage_max, chg->hold_uv, chg->full_min_uv, chg->cv_hold_min,
|
||||
+ chg->cv_since ? now - chg->cv_since : -1LL, chg->nocv_polls, chg->timeout_min);
|
||||
+ seq_printf(s, "n_insert %u n_hold %u n_latch %u\n", chg->n_insert, chg->n_hold, chg->n_latch);
|
||||
+ for (i = 0; i < ARRAY_SIZE(regs); i++) {
|
||||
+ if (regmap_read(chg->regmap, chg->reg[regs[i].blk] + regs[i].off, &v))
|
||||
+ v = 0xffff;
|
||||
+ seq_printf(s, "%s %02x\n", regs[i].n, v);
|
||||
+ }
|
||||
+ for (i = chg->log_n > PM8916_LBC_SUPV_LOG ? chg->log_n - PM8916_LBC_SUPV_LOG : 0; i < chg->log_n; i++) {
|
||||
+ unsigned int j = i % PM8916_LBC_SUPV_LOG;
|
||||
+
|
||||
+ seq_printf(s, "log %u t=%lld %s->%s vbat=%d %s\n", i, chg->log[j].t,
|
||||
+ lbc_state_name[chg->log[j].from], lbc_state_name[chg->log[j].to],
|
||||
+ chg->log[j].vbat, chg->log[j].why);
|
||||
+ }
|
||||
+ mutex_unlock(&chg->supv_lock);
|
||||
+ return 0;
|
||||
+}
|
||||
+DEFINE_SHOW_ATTRIBUTE(lbc_state);
|
||||
+
|
||||
+static void lbc_debugfs_remove(void *data)
|
||||
+{
|
||||
+ debugfs_remove_recursive(data);
|
||||
+}
|
||||
+
|
||||
static irqreturn_t pm8916_lbc_charger_state_changed_irq(int irq, void *data)
|
||||
{
|
||||
struct pm8916_lbc_charger *chg = data;
|
||||
@@ -190,6 +564,9 @@
|
||||
|
||||
power_supply_changed(chg->charger);
|
||||
|
||||
+ if (READ_ONCE(chg->supv_ready))
|
||||
+ mod_delayed_work(system_freezable_wq, &chg->supv_work, 0);
|
||||
+
|
||||
return IRQ_HANDLED;
|
||||
}
|
||||
|
||||
@@ -230,10 +607,35 @@
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
- /* Disable charger timeout. */
|
||||
+ /*
|
||||
+ * Keep the charger safety timer running (upstream disabled it). Same sequence as the
|
||||
+ * downstream qpnp-linear-charger: timer off, TCHG_MAX = minutes / 4 - 1 (4..512 min), timer on.
|
||||
+ */
|
||||
+ chg->timeout_min = PM8916_LBC_TIMEOUT_DEFAULT_MIN;
|
||||
+ device_property_read_u32(dev, "qcom,charge-timeout-minutes", &chg->timeout_min);
|
||||
+ chg->timeout_min = clamp_t(u32, chg->timeout_min, PM8916_LBC_TIMEOUT_STEP_MIN,
|
||||
+ PM8916_LBC_TIMEOUT_MAX_MIN);
|
||||
+ chg->timeout_min -= chg->timeout_min % PM8916_LBC_TIMEOUT_STEP_MIN;
|
||||
+
|
||||
ret = regmap_write(chg->regmap, chg->reg[LBC_CHGR] + PM8916_LBC_CHGR_TCHG_MAX_EN, 0x00);
|
||||
if (ret)
|
||||
return ret;
|
||||
+ tmp = chg->timeout_min / PM8916_LBC_TIMEOUT_STEP_MIN - 1;
|
||||
+ ret = regmap_write(chg->regmap, chg->reg[LBC_CHGR] + PM8916_LBC_CHGR_TCHG_MAX, tmp);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+ ret = regmap_write(chg->regmap, chg->reg[LBC_CHGR] + PM8916_LBC_CHGR_TCHG_MAX_EN,
|
||||
+ PM8916_LBC_CHGR_TCHG_MAX_ENABLED);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+
|
||||
+ ret = regmap_read(chg->regmap, chg->reg[LBC_CHGR] + PM8916_LBC_CHGR_TCHG_MAX, &tmp);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+ if (tmp != chg->timeout_min / PM8916_LBC_TIMEOUT_STEP_MIN - 1)
|
||||
+ return dev_err_probe(dev, -EIO, "TCHG_MAX readback 0x%x != 0x%x\n", tmp,
|
||||
+ chg->timeout_min / PM8916_LBC_TIMEOUT_STEP_MIN - 1);
|
||||
+ dev_info(dev, "safety timer %u min (TCHG_MAX 0x%02x), enabled\n", chg->timeout_min, tmp);
|
||||
|
||||
return ret;
|
||||
}
|
||||
@@ -261,6 +663,7 @@
|
||||
return -ENOMEM;
|
||||
|
||||
chg->dev = dev;
|
||||
+ mutex_init(&chg->supv_lock);
|
||||
|
||||
chg->regmap = dev_get_regmap(pdev->dev.parent, NULL);
|
||||
if (!chg->regmap)
|
||||
@@ -309,7 +712,7 @@
|
||||
|
||||
ret = pm8916_lbc_charger_probe_dt(chg);
|
||||
if (ret)
|
||||
- dev_err_probe(dev, ret, "Error while parsing device tree\n");
|
||||
+ return dev_err_probe(dev, ret, "Error while parsing device tree\n");
|
||||
|
||||
psy_cfg.drv_data = chg;
|
||||
psy_cfg.fwnode = dev_fwnode(dev);
|
||||
@@ -322,6 +725,21 @@
|
||||
if (ret)
|
||||
return dev_err_probe(dev, ret, "Unable to get battery info\n");
|
||||
|
||||
+ chg->vbat_chan = devm_iio_channel_get(dev, "vbat");
|
||||
+ if (IS_ERR(chg->vbat_chan))
|
||||
+ return dev_err_probe(dev, PTR_ERR(chg->vbat_chan), "no VADC vbat channel\n");
|
||||
+
|
||||
+ chg->cv_hold_min = PM8916_LBC_CV_HOLD_DEFAULT_MIN;
|
||||
+ device_property_read_u32(dev, "aurora,cv-hold-minutes", &chg->cv_hold_min);
|
||||
+ if (device_property_read_u32(dev, "aurora,hold-voltage-microvolt", &chg->hold_uv) ||
|
||||
+ device_property_read_u32(dev, "aurora,full-min-voltage-microvolt", &chg->full_min_uv)) {
|
||||
+ chg->hold_uv = 0;
|
||||
+ dev_warn(dev, "no aurora,hold-voltage/full-min-voltage: HOLD disabled\n");
|
||||
+ }
|
||||
+ ret = devm_delayed_work_autocancel(dev, &chg->supv_work, lbc_supv_work);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+
|
||||
irq = platform_get_irq_byname(pdev, "usb_vbus");
|
||||
if (irq < 0)
|
||||
return irq;
|
||||
@@ -347,10 +765,29 @@
|
||||
extcon_set_state_sync(chg->edev, EXTCON_USB, chg->online);
|
||||
|
||||
chg->charge_voltage_max = chg->info->voltage_max_design_uv;
|
||||
- ret = pm8916_lbc_charger_configure(chg);
|
||||
+ ret = pm8916_lbc_charger_configure(chg, true);
|
||||
+ if (ret)
|
||||
+ return ret;
|
||||
+
|
||||
+ chg->debugfs = debugfs_create_dir("pm8916_lbc", NULL);
|
||||
+ debugfs_create_file("state", 0444, chg->debugfs, chg, &lbc_state_fops);
|
||||
+ ret = devm_add_action_or_reset(dev, lbc_debugfs_remove, chg->debugfs);
|
||||
if (ret)
|
||||
return ret;
|
||||
|
||||
+ if (chg->hold_uv && (chg->hold_uv < PM8916_LBC_CHGR_MIN_VOLTAGE ||
|
||||
+ chg->hold_uv >= chg->charge_voltage_max ||
|
||||
+ chg->full_min_uv > chg->charge_voltage_max)) {
|
||||
+ dev_warn(dev, "invalid hold %u / full-min %u for charge level %u: HOLD disabled\n",
|
||||
+ chg->hold_uv, chg->full_min_uv, chg->charge_voltage_max);
|
||||
+ chg->hold_uv = 0;
|
||||
+ }
|
||||
+ dev_info(dev, "supervisor v3: charge %u uV, hold %u uV, full-min %u uV, cv %u min, IBAT_MAX code %u, ovp %d uV\n",
|
||||
+ chg->charge_voltage_max, chg->hold_uv, chg->full_min_uv, chg->cv_hold_min,
|
||||
+ chg->ibat_code, PM8916_LBC_SUPV_OVP_UV);
|
||||
+ WRITE_ONCE(chg->supv_ready, true);
|
||||
+ queue_delayed_work(system_freezable_wq, &chg->supv_work, 0);
|
||||
+
|
||||
return 0;
|
||||
|
||||
comm_error:
|
||||
18
b10/b10b3/b10b3-mon.sh
Normal file
18
b10/b10b3/b10b3-mon.sh
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
#!/bin/sh
|
||||
# B10B-3 board-side observer (env VMAX = ALERT VBAT uV, EVDD = expected VDD_MAX hex): every P s append one line to /tmp/b10b3-mon.log (survives NCM/USB loss). Reads only.
|
||||
P=${1:-30}
|
||||
grep -q " /sys/kernel/debug " /proc/mounts || mount -t debugfs debugfs /sys/kernel/debug
|
||||
R=/sys/kernel/debug/regmap/0-00/registers; S=/sys/kernel/debug/pm8916_lbc/state
|
||||
rd() { dd if=$R bs=9 skip=$(($1)) count=$2 2>/dev/null | cut -d' ' -f2 | tr '\n' ' '; }
|
||||
D=/sys/bus/iio/devices/iio:device0; C=/sys/class/power_supply/pm8916-lbc-chgr
|
||||
trap '' HUP
|
||||
i=0
|
||||
while [ ! -e /tmp/b10b3-mon.stop ]; do
|
||||
i=$((i + 1)); vb=$(cat $D/in_voltage6_input); pt=$(cat $D/in_temp8_input)
|
||||
a=""; [ "$vb" -gt ${VMAX:-4220000} ] && a="$a ALERT-VBAT"; [ "$pt" -gt 60000 ] && a="$a ALERT-TEMP"; [ "$(rd 0x1060 1)" != "80 " ] && a="$a ALERT-TIMER"; case "$(rd 0x1040 1)" in ${EVDD:-08}" "|${EVDD2:-xx}" ") ;; *) a="$a ALERT-VDDMAX";; esac; [ "$(rd 0x1044 1)" != "04 " ] && a="$a ALERT-IBAT"
|
||||
st=$(head -1 $S | tr ' ' '='); cv=$(sed -n 2p $S | sed 's/.*cv_s \([-0-9]*\) nocv \([0-9]*\).*/cv_s=\1 nocv=\2/'); cnt=$(sed -n 3p $S | tr ' ' '='); vdd=$(rd 0x1040 1)
|
||||
ld=$(pgrep -c yes 2>/dev/null || ps | grep -c "[y]es$")
|
||||
echo "M $i $(date -u +%T) up=$(cut -d' ' -f1 /proc/uptime) $st $cv $cnt vbat6=$vb vph=$(cat $D/in_voltage7_input) usbin=$(cat $D/in_voltage0_input) fifo=$(rd 0x40c0 4) chgst=$(rd 0x1009 1) crt=$(rd 0x1010 1) brt=$(rd 0x1210 1) urt=$(rd 0x1310 1) usbp=$(rd 0x1308 2) ctrl=$(rd 0x1049 1) vdd=$vdd ibat=$(rd 0x1044 1) tchg=$(rd 0x1060 2) failed=$(rd 0x104a 1) bd=$(rd 0x1642 1) online=$(cat $C/online) psy=$(cat $C/status) pmt=$pt cpu=$(cat /sys/class/thermal/thermal_zone4/temp) load=$ld$a" >> /tmp/b10b3-mon.log
|
||||
sleep $P
|
||||
done
|
||||
echo "MON-END $(date -u +%T)" >> /tmp/b10b3-mon.log
|
||||
8
b10/b10b3/b10b3-pull.sh
Normal file
8
b10/b10b3/b10b3-pull.sh
Normal file
|
|
@ -0,0 +1,8 @@
|
|||
#!/bin/sh
|
||||
# 480s side: every 30 s copy the board's /tmp/b10b3-mon.log into logs/b10/b10b3/<K>-mon.txt (keeps the last good copy while NCM is down).
|
||||
K=$1; cd ~/doc/modem/jz08-aurora; O=logs/b10/b10b3/$K-mon.txt
|
||||
while [ ! -e logs/b10/b10b3/pull.stop ]; do
|
||||
{ sleep 1; printf 'cat /tmp/b10b3-mon.log\r\n'; sleep 4; } | ncat -w 8 172.16.42.1 23 2>/dev/null | tr -d '\000\r' | grep -E '^(M |MON-END)' > $O.tmp
|
||||
[ -s $O.tmp ] && [ $(wc -l < $O.tmp) -ge $(cat $O 2>/dev/null | wc -l) ] && mv $O.tmp $O
|
||||
sleep 30
|
||||
done
|
||||
60
b10/b10b3/b10b3b-boot.sh
Executable file
60
b10/b10b3/b10b3b-boot.sh
Executable file
|
|
@ -0,0 +1,60 @@
|
|||
#!/bin/sh
|
||||
# 480s side, B10B-3 Test B (TEST image) boot K (RAM only). RESET-held power-on -> lk1st fastboot -> `fastboot boot` B10B-3 RAM image. Reads only over telnet.
|
||||
# MODE=cold: normal power-on (no RESET, no fastboot) -> lk2nd extlinux from eMMC cache. Script only observes + reads over telnet;
|
||||
# nothing is written to eMMC. Visual display checks need the operator. Adds display/fbcon/getty/console checks to the B8F snapshot.
|
||||
K=$1; MODE=ram; [ -n "$K" ] || { echo "usage: $0 K"; exit 2; }
|
||||
cd ~/doc/modem/jz08-aurora; O=logs/b10/b10b3/b$K; mkdir -p $O; IMG=b10/b10b3/out-b/aurora-b10b3b.img
|
||||
A=$O/host-actions.txt; act() { echo "$(date -u +%H:%M:%S.%3N) $*" | tee -a $A; }
|
||||
tn() { { sleep 1; sed "s/\$/\r/" "$1"; sleep $2; } | ncat 172.16.42.1 23 | tr -d "\000\r"; }
|
||||
OLD=$(ps -eo pid,cmd | grep "[u]artlog.py /dev/ttyUSB0" | awk '{print $1}'); [ -n "$OLD" ] && kill $OLD; sleep 1
|
||||
U=logs/uart/b10b3b-$MODE$K-$(date +%Y%m%d-%H%M%S); setsid nohup python3 tools/uartlog.py /dev/ttyUSB0 $U > $U.stderr 2>&1 < /dev/null &
|
||||
if [ $MODE = ram ]; then
|
||||
echo "9e66466d64e6832865af145e365c3ee36619d3607fee3b7cd9609533d1102c06 $IMG" | sha256sum -c || exit 1
|
||||
act "B10B3B $MODE$K: waiting for fastboot <EMMC_SERIAL> (power off >= 90 s, then RESET held + battery -> USB)"
|
||||
if fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; then act "already in fastboot - wait for power-off"; until ! fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; do sleep 1; done; fi
|
||||
i=0; until fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; do i=$((i+1)); [ $i -ge 1800 ] && { act "ABORT: no fastboot"; exit 1; }; sleep 2; done
|
||||
act "fastboot present"; { fastboot boot $IMG 2>&1; echo "rc=$?"; } | tee -a $A
|
||||
else
|
||||
act "B10B3B $MODE$K: waiting for the board to go away (power off >= 90 s), then normal power-on WITHOUT RESET"
|
||||
until ! ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do sleep 1; done; act "board unreachable (powered off)"
|
||||
until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL> && { act "ABORT: board is in fastboot - RESET was held?"; exit 1; }; sleep 1; done
|
||||
fi
|
||||
i=0; until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do i=$((i+1)); [ $i -ge 180 ] && { act "ABORT: NCM not up"; cp $U.log $O/uart.log; exit 1; }; sleep 1; done; act "NCM ping ok"
|
||||
R=$(grep -a "rtc-pm8xxx.*setting system clock" $U.log | tail -1 | sed -n 's/.*(\([0-9]*\)).*/\1/p'); C=B; [ -n "$R" ] && [ "$R" -lt 40 ] && C=A; act "RTC at boot ${R:-?} s -> class $C"
|
||||
printf 'cat /proc/device-tree/model; echo; uname -r; grep -E "START OK|FAIL in|rollback" /run/aurora-modem/lifecycle.log | tail -1\n' > $O/.w
|
||||
i=0; until tn $O/.w 3 | grep -qE "^\[[0-9.]+\] .*(=== START OK|FAIL in|rollback)"; do i=$((i+1)); [ $i -ge 80 ] && { act "no START OK/FAIL after ~12 min"; break; }; sleep 6; done
|
||||
tn $O/.w 3 | grep -aE "Aurora|aurora-b8|START OK|FAIL" | tee -a $A
|
||||
printf 'grep -E "AP ENABLED|FAIL" /run/aurora-wifi/wifi.log | tail -1\n' > $O/.a
|
||||
i=0; until tn $O/.a 3 | grep -qE "^\[[0-9.]+\] (=== AP ENABLED|FAIL)"; do i=$((i+1)); [ $i -ge 20 ] && { act "no AP ENABLED/FAIL after ~3 min"; break; }; sleep 6; done
|
||||
act "wifi: $(tn $O/.a 3 | grep -E '^\[[0-9.]+\] (=== AP ENABLED|FAIL)' | tail -1)"
|
||||
printf 'grep -E "SNTP (check|STEP|: )" /run/aurora-modem/lifecycle.log | tail -2\n' > $O/.s
|
||||
i=0; until tn $O/.s 3 | grep -qE "^\[[0-9.]+\] SNTP"; do i=$((i+1)); [ $i -ge 15 ] && break; sleep 4; done; act "sntp: $(tn $O/.s 3 | grep -E '^\[[0-9.]+\] SNTP' | tail -2 | tr '\n' ' ')"
|
||||
cat > $O/.c <<'C'
|
||||
echo SNAP-BEGIN; cat /proc/uptime; date -u; cat /proc/device-tree/model; echo; uname -a; cat /proc/cmdline
|
||||
echo ---time; cat /run/aurora-modem/time-set; grep -E "TIME|SNTP" /run/aurora-modem/lifecycle.log | tail -4
|
||||
echo ---modem; /etc/init.d/aurora-modem status
|
||||
echo ---wifi; /etc/init.d/aurora-wifi status; echo ---wifilog; cat /run/aurora-wifi/wifi.log; cat /run/aurora-wifi/service.log; echo ---hostapdlog; cat /run/aurora-wifi/hostapd.log
|
||||
for r in /sys/class/remoteproc/*; do echo "RP $(cat $r/name)=$(cat $r/state)"; done; iw dev
|
||||
echo ---dmesg-wifi; dmesg | grep -iE "wcn36xx|wcnss|a204000|cfg80211|aurora-wifi|crash|watchdog"
|
||||
echo ---ping; ping -c4 -W3 -I wwan0 77.88.8.8 | tail -2
|
||||
echo ---display; /etc/init.d/aurora-display status; cat /run/aurora-display/display.log; cat /run/aurora-display/service.log
|
||||
echo ---consoles; cat /sys/class/tty/console/active; for v in /sys/class/vtconsole/vtcon*; do echo "$v $(cat $v/bind) $(cat $v/name)"; done; ls -l /proc/[0-9]*/fd/0 2>/dev/null | grep -E "ttyMSM0|tty1|console" | sed "s/.* \/proc/\/proc/"
|
||||
echo ---getty; hostname; ps | grep -E "[g]etty|[c]ttyhack| sh$"
|
||||
echo ---fb; ls -l /dev/dri/card0 /dev/fb0; for f in name bits_per_pixel virtual_size stride; do echo "fb0 $f=$(cat /sys/class/graphics/fb0/$f)"; done; cat /sys/class/drm/card0-SPI-1/enabled /sys/class/drm/card0-SPI-1/dpms
|
||||
echo ---regs; for r in /sys/class/regulator/regulator.*; do n=$(cat $r/name); case $n in l6|l17) echo "$n $(cat $r/state) $(cat $r/microvolts) users=$(cat $r/num_users)";; esac; done
|
||||
echo ---bl; for f in bl_power brightness actual_brightness; do echo "bl $f=$(cat /sys/class/backlight/backlight/$f)"; done
|
||||
echo ---dmesg-display; dmesg | grep -iE "drm|panel|mipi|spi_qup|78b8000|fbcon|Console: |frame buffer|backlight|aurora-display|l17"
|
||||
echo ---display-errors; dmesg | grep -iE "drm|panel|mipi|spi0|fbcon|backlight|aurora-display" | grep -ciE "err|fail|timeout|warn"
|
||||
echo ---iio; for d in /sys/bus/iio/devices/iio:device*; do echo "$d name=$(cat $d/name)"; ls $d | tr '\n' ' '; echo; done
|
||||
for f in /sys/bus/iio/devices/iio:device*/in_*; do case $f in *_raw|*_input|*_scale|*_offset) echo "$f=$(cat $f 2>&1)";; esac; done
|
||||
echo ---psy; ls -l /sys/class/power_supply/; for p in /sys/class/power_supply/*; do echo "-- $p"; cat $p/uevent; ls $p; done
|
||||
echo ---dmesg-bms; dmesg | grep -iE "bms|battery|power_supply|lbc|charger|extcon|ci_hdrc|4000|1000"
|
||||
echo ---lbc-state; grep -q " /sys/kernel/debug " /proc/mounts || mount -t debugfs debugfs /sys/kernel/debug; cat /sys/kernel/debug/pm8916_lbc/state; dmesg | grep -E "safety timer|supervisor|pm8916-lbc|lbc"
|
||||
echo ---thermal; for t in /sys/class/thermal/thermal_zone*; do echo "$t $(cat $t/type) $(cat $t/temp)"; done
|
||||
echo ---dmesg-adc; dmesg | grep -iE "vadc|iio|temp-alarm|qpnp|spmi-temp|pm8916-thermal|thermal"
|
||||
echo ---emmc; awk "{print \"w=\"\$5\" s=\"\$7}" /sys/block/mmcblk0/stat
|
||||
echo SNAP-END
|
||||
C
|
||||
tn $O/.c 25 > $O/snapshot.txt; act "snapshot: $(grep -c SNAP-END $O/snapshot.txt) end markers; $(grep -E '^RP a204' $O/snapshot.txt)"
|
||||
printf 'dmesg > /tmp/dm.txt; nc -l -p 9881 < /tmp/dm.txt &\n' > $O/.d; tn $O/.d 3 >/dev/null; sleep 1; ncat --recv-only 172.16.42.1 9881 > $O/dmesg.full
|
||||
cp $U.log $O/uart.log; act "B10B3B $MODE$K END - operator visual check next"
|
||||
17
b10/b10b3/b10b3b-load.sh
Normal file
17
b10/b10b3/b10b3b-load.sh
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
#!/bin/sh
|
||||
# Test B board-side CPU load with guard: N x `yes`, stop on PMIC > 52 C, VADC VBAT < 3.95 V, or after MAX s. Writes /tmp only.
|
||||
N=${1:-2}; MAX=${2:-300}; L=/tmp/b10b3b-load.log; D=/sys/bus/iio/devices/iio:device0
|
||||
trap '' HUP
|
||||
t0=$(cut -d. -f1 /proc/uptime); P=""
|
||||
for i in $(seq 1 $N); do yes > /dev/null & P="$P $!"; done
|
||||
echo "LOAD-START up=$t0 n=$N pids=$P" >> $L
|
||||
why=timeout
|
||||
while :; do
|
||||
t=$(cut -d. -f1 /proc/uptime); vb=$(cat $D/in_voltage6_input); pt=$(cat $D/in_temp8_input)
|
||||
echo "L up=$t vbat6=$vb pmt=$pt" >> $L
|
||||
[ "$pt" -gt 52000 ] && { why=pmic-52C; break; }
|
||||
[ "$vb" -lt 3950000 ] && { why=vbat-below-3.95V; break; }
|
||||
[ $((t - t0)) -ge $MAX ] && break
|
||||
sleep 5
|
||||
done
|
||||
kill $P; echo "LOAD-STOP up=$(cut -d' ' -f1 /proc/uptime) reason=$why" >> $L
|
||||
14
b10/b10b3/b10b3b-mon-start.sh
Executable file
14
b10/b10b3/b10b3b-mon-start.sh
Executable file
|
|
@ -0,0 +1,14 @@
|
|||
#!/bin/sh
|
||||
# 480s side, Test B: wait for the NEW boot's NCM, then at once push b10b3-mon.sh to the board and start it (10 s, EVDD=02/00, VMAX 4.15 V),
|
||||
# then start the 30-s pull into logs/b10/b10b3/<K>-mon.txt. Board side reads only (writes /tmp only). usage: b10b3b-mon-start.sh K
|
||||
K=$1; [ -n "$K" ] || { echo "usage: $0 K"; exit 2; }
|
||||
cd ~/doc/modem/jz08-aurora; A=logs/b10/b10b3/$K-actions.txt; act() { echo "$(date -u +%H:%M:%S.%3N) $*" | tee -a $A; }
|
||||
rm -f logs/b10/b10b3/pull.stop
|
||||
act "mon-start $K: waiting for the board to go away (warm reboot)"; until ! ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do sleep 0.5; done; act "board gone"
|
||||
until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do sleep 0.5; done; act "NCM up"
|
||||
i=0; until { sleep 1; printf 'nc -l -p 9933 > /tmp/b10b3-mon.sh &\r\n'; sleep 1; } | ncat -w 4 172.16.42.1 23 >/dev/null 2>&1; do i=$((i+1)); [ $i -ge 60 ] && { act "ABORT: no telnet"; exit 1; }; sleep 1; done
|
||||
sleep 1; ncat --send-only 172.16.42.1 9933 < b10/b10b3/b10b3-mon.sh; sleep 1
|
||||
sh b10/b10b3/b10b3-cmd.sh 3 'md5sum /tmp/b10b3-mon.sh; rm -f /tmp/b10b3-mon.stop; VMAX=4150000 EVDD=02 EVDD2=00 setsid sh /tmp/b10b3-mon.sh 10 > /dev/null 2>&1 < /dev/null & sleep 1; dmesg | grep -E "safety timer|supervisor"; cut -d" " -f1 /proc/uptime' | tee -a $A
|
||||
act "local md5 $(md5sum < b10/b10b3/b10b3-mon.sh)"
|
||||
setsid nohup sh b10/b10b3/b10b3-pull.sh $K > /dev/null 2>&1 < /dev/null &
|
||||
act "monitor started (10 s), pull started -> logs/b10/b10b3/$K-mon.txt"
|
||||
60
b10/b10b3/b10b3c-boot.sh
Normal file
60
b10/b10b3/b10b3c-boot.sh
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
#!/bin/sh
|
||||
# 480s side, B10B-3 Test C (TEST image) boot K (RAM only). RESET-held power-on -> lk1st fastboot -> `fastboot boot` B10B-3 RAM image. Reads only over telnet.
|
||||
# MODE=cold: normal power-on (no RESET, no fastboot) -> lk2nd extlinux from eMMC cache. Script only observes + reads over telnet;
|
||||
# nothing is written to eMMC. Visual display checks need the operator. Adds display/fbcon/getty/console checks to the B8F snapshot.
|
||||
K=$1; MODE=ram; [ -n "$K" ] || { echo "usage: $0 K"; exit 2; }
|
||||
cd ~/doc/modem/jz08-aurora; O=logs/b10/b10b3/c$K; mkdir -p $O; IMG=b10/b10b3/out-c/aurora-b10b3c.img
|
||||
A=$O/host-actions.txt; act() { echo "$(date -u +%H:%M:%S.%3N) $*" | tee -a $A; }
|
||||
tn() { { sleep 1; sed "s/\$/\r/" "$1"; sleep $2; } | ncat 172.16.42.1 23 | tr -d "\000\r"; }
|
||||
OLD=$(ps -eo pid,cmd | grep "[u]artlog.py /dev/ttyUSB0" | awk '{print $1}'); [ -n "$OLD" ] && kill $OLD; sleep 1
|
||||
U=logs/uart/b10b3c-$MODE$K-$(date +%Y%m%d-%H%M%S); setsid nohup python3 tools/uartlog.py /dev/ttyUSB0 $U > $U.stderr 2>&1 < /dev/null &
|
||||
if [ $MODE = ram ]; then
|
||||
echo "5ff9dec079a300511883d3d6a79c72539f43c980e921c34af7916e949ca1010d $IMG" | sha256sum -c || exit 1
|
||||
act "B10B3C $MODE$K: waiting for fastboot <EMMC_SERIAL> (power off >= 90 s, then RESET held + battery -> USB)"
|
||||
if fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; then act "already in fastboot - wait for power-off"; until ! fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; do sleep 1; done; fi
|
||||
i=0; until fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; do i=$((i+1)); [ $i -ge 1800 ] && { act "ABORT: no fastboot"; exit 1; }; sleep 2; done
|
||||
act "fastboot present"; { fastboot boot $IMG 2>&1; echo "rc=$?"; } | tee -a $A
|
||||
else
|
||||
act "B10B3C $MODE$K: waiting for the board to go away (power off >= 90 s), then normal power-on WITHOUT RESET"
|
||||
until ! ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do sleep 1; done; act "board unreachable (powered off)"
|
||||
until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL> && { act "ABORT: board is in fastboot - RESET was held?"; exit 1; }; sleep 1; done
|
||||
fi
|
||||
i=0; until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do i=$((i+1)); [ $i -ge 180 ] && { act "ABORT: NCM not up"; cp $U.log $O/uart.log; exit 1; }; sleep 1; done; act "NCM ping ok"
|
||||
R=$(grep -a "rtc-pm8xxx.*setting system clock" $U.log | tail -1 | sed -n 's/.*(\([0-9]*\)).*/\1/p'); C=B; [ -n "$R" ] && [ "$R" -lt 40 ] && C=A; act "RTC at boot ${R:-?} s -> class $C"
|
||||
printf 'cat /proc/device-tree/model; echo; uname -r; grep -E "START OK|FAIL in|rollback" /run/aurora-modem/lifecycle.log | tail -1\n' > $O/.w
|
||||
i=0; until tn $O/.w 3 | grep -qE "^\[[0-9.]+\] .*(=== START OK|FAIL in|rollback)"; do i=$((i+1)); [ $i -ge 80 ] && { act "no START OK/FAIL after ~12 min"; break; }; sleep 6; done
|
||||
tn $O/.w 3 | grep -aE "Aurora|aurora-b8|START OK|FAIL" | tee -a $A
|
||||
printf 'grep -E "AP ENABLED|FAIL" /run/aurora-wifi/wifi.log | tail -1\n' > $O/.a
|
||||
i=0; until tn $O/.a 3 | grep -qE "^\[[0-9.]+\] (=== AP ENABLED|FAIL)"; do i=$((i+1)); [ $i -ge 20 ] && { act "no AP ENABLED/FAIL after ~3 min"; break; }; sleep 6; done
|
||||
act "wifi: $(tn $O/.a 3 | grep -E '^\[[0-9.]+\] (=== AP ENABLED|FAIL)' | tail -1)"
|
||||
printf 'grep -E "SNTP (check|STEP|: )" /run/aurora-modem/lifecycle.log | tail -2\n' > $O/.s
|
||||
i=0; until tn $O/.s 3 | grep -qE "^\[[0-9.]+\] SNTP"; do i=$((i+1)); [ $i -ge 15 ] && break; sleep 4; done; act "sntp: $(tn $O/.s 3 | grep -E '^\[[0-9.]+\] SNTP' | tail -2 | tr '\n' ' ')"
|
||||
cat > $O/.c <<'C'
|
||||
echo SNAP-BEGIN; cat /proc/uptime; date -u; cat /proc/device-tree/model; echo; uname -a; cat /proc/cmdline
|
||||
echo ---time; cat /run/aurora-modem/time-set; grep -E "TIME|SNTP" /run/aurora-modem/lifecycle.log | tail -4
|
||||
echo ---modem; /etc/init.d/aurora-modem status
|
||||
echo ---wifi; /etc/init.d/aurora-wifi status; echo ---wifilog; cat /run/aurora-wifi/wifi.log; cat /run/aurora-wifi/service.log; echo ---hostapdlog; cat /run/aurora-wifi/hostapd.log
|
||||
for r in /sys/class/remoteproc/*; do echo "RP $(cat $r/name)=$(cat $r/state)"; done; iw dev
|
||||
echo ---dmesg-wifi; dmesg | grep -iE "wcn36xx|wcnss|a204000|cfg80211|aurora-wifi|crash|watchdog"
|
||||
echo ---ping; ping -c4 -W3 -I wwan0 77.88.8.8 | tail -2
|
||||
echo ---display; /etc/init.d/aurora-display status; cat /run/aurora-display/display.log; cat /run/aurora-display/service.log
|
||||
echo ---consoles; cat /sys/class/tty/console/active; for v in /sys/class/vtconsole/vtcon*; do echo "$v $(cat $v/bind) $(cat $v/name)"; done; ls -l /proc/[0-9]*/fd/0 2>/dev/null | grep -E "ttyMSM0|tty1|console" | sed "s/.* \/proc/\/proc/"
|
||||
echo ---getty; hostname; ps | grep -E "[g]etty|[c]ttyhack| sh$"
|
||||
echo ---fb; ls -l /dev/dri/card0 /dev/fb0; for f in name bits_per_pixel virtual_size stride; do echo "fb0 $f=$(cat /sys/class/graphics/fb0/$f)"; done; cat /sys/class/drm/card0-SPI-1/enabled /sys/class/drm/card0-SPI-1/dpms
|
||||
echo ---regs; for r in /sys/class/regulator/regulator.*; do n=$(cat $r/name); case $n in l6|l17) echo "$n $(cat $r/state) $(cat $r/microvolts) users=$(cat $r/num_users)";; esac; done
|
||||
echo ---bl; for f in bl_power brightness actual_brightness; do echo "bl $f=$(cat /sys/class/backlight/backlight/$f)"; done
|
||||
echo ---dmesg-display; dmesg | grep -iE "drm|panel|mipi|spi_qup|78b8000|fbcon|Console: |frame buffer|backlight|aurora-display|l17"
|
||||
echo ---display-errors; dmesg | grep -iE "drm|panel|mipi|spi0|fbcon|backlight|aurora-display" | grep -ciE "err|fail|timeout|warn"
|
||||
echo ---iio; for d in /sys/bus/iio/devices/iio:device*; do echo "$d name=$(cat $d/name)"; ls $d | tr '\n' ' '; echo; done
|
||||
for f in /sys/bus/iio/devices/iio:device*/in_*; do case $f in *_raw|*_input|*_scale|*_offset) echo "$f=$(cat $f 2>&1)";; esac; done
|
||||
echo ---psy; ls -l /sys/class/power_supply/; for p in /sys/class/power_supply/*; do echo "-- $p"; cat $p/uevent; ls $p; done
|
||||
echo ---dmesg-bms; dmesg | grep -iE "bms|battery|power_supply|lbc|charger|extcon|ci_hdrc|4000|1000"
|
||||
echo ---lbc-state; grep -q " /sys/kernel/debug " /proc/mounts || mount -t debugfs debugfs /sys/kernel/debug; cat /sys/kernel/debug/pm8916_lbc/state; dmesg | grep -E "safety timer|supervisor|pm8916-lbc|lbc"
|
||||
echo ---thermal; for t in /sys/class/thermal/thermal_zone*; do echo "$t $(cat $t/type) $(cat $t/temp)"; done
|
||||
echo ---dmesg-adc; dmesg | grep -iE "vadc|iio|temp-alarm|qpnp|spmi-temp|pm8916-thermal|thermal"
|
||||
echo ---emmc; awk "{print \"w=\"\$5\" s=\"\$7}" /sys/block/mmcblk0/stat
|
||||
echo SNAP-END
|
||||
C
|
||||
tn $O/.c 25 > $O/snapshot.txt; act "snapshot: $(grep -c SNAP-END $O/snapshot.txt) end markers; $(grep -E '^RP a204' $O/snapshot.txt)"
|
||||
printf 'dmesg > /tmp/dm.txt; nc -l -p 9881 < /tmp/dm.txt &\n' > $O/.d; tn $O/.d 3 >/dev/null; sleep 1; ncat --recv-only 172.16.42.1 9881 > $O/dmesg.full
|
||||
cp $U.log $O/uart.log; act "B10B3C $MODE$K END - operator visual check next"
|
||||
60
b10/b10b3/b10b3cand-boot.sh
Executable file
60
b10/b10b3/b10b3cand-boot.sh
Executable file
|
|
@ -0,0 +1,60 @@
|
|||
#!/bin/sh
|
||||
# 480s side, B10B-3 CACHE CANDIDATE RAM pretest (same kernel/DTB/initramfs/cmdline as cache-extlinux-b10b3.img) boot K (RAM only). RESET-held power-on -> lk1st fastboot -> `fastboot boot` B10B-3 RAM image. Reads only over telnet.
|
||||
# MODE=cold: normal power-on (no RESET, no fastboot) -> lk2nd extlinux from eMMC cache. Script only observes + reads over telnet;
|
||||
# nothing is written to eMMC. Visual display checks need the operator. Adds display/fbcon/getty/console checks to the B8F snapshot.
|
||||
K=$1; MODE=ram; [ -n "$K" ] || { echo "usage: $0 K"; exit 2; }
|
||||
cd ~/doc/modem/jz08-aurora; O=logs/b10/b10b3/cand$K; mkdir -p $O; IMG=b10/b10b3/out/aurora-b10b3.img
|
||||
A=$O/host-actions.txt; act() { echo "$(date -u +%H:%M:%S.%3N) $*" | tee -a $A; }
|
||||
tn() { { sleep 1; sed "s/\$/\r/" "$1"; sleep $2; } | ncat 172.16.42.1 23 | tr -d "\000\r"; }
|
||||
OLD=$(ps -eo pid,cmd | grep "[u]artlog.py /dev/ttyUSB0" | awk '{print $1}'); [ -n "$OLD" ] && kill $OLD; sleep 1
|
||||
U=logs/uart/b10b3cand-$MODE$K-$(date +%Y%m%d-%H%M%S); setsid nohup python3 tools/uartlog.py /dev/ttyUSB0 $U > $U.stderr 2>&1 < /dev/null &
|
||||
if [ $MODE = ram ]; then
|
||||
echo "b7dc34e92148613fd7292ec21209eb7ecd7a96b721b85ab42d374ce5f40d8f84 $IMG" | sha256sum -c || exit 1
|
||||
act "B10B3CAND $MODE$K: waiting for fastboot <EMMC_SERIAL> (power off >= 90 s, then RESET held + battery -> USB)"
|
||||
if fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; then act "already in fastboot - wait for power-off"; until ! fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; do sleep 1; done; fi
|
||||
i=0; until fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; do i=$((i+1)); [ $i -ge 1800 ] && { act "ABORT: no fastboot"; exit 1; }; sleep 2; done
|
||||
act "fastboot present"; { fastboot boot $IMG 2>&1; echo "rc=$?"; } | tee -a $A
|
||||
else
|
||||
act "B10B3CAND $MODE$K: waiting for the board to go away (power off >= 90 s), then normal power-on WITHOUT RESET"
|
||||
until ! ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do sleep 1; done; act "board unreachable (powered off)"
|
||||
until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL> && { act "ABORT: board is in fastboot - RESET was held?"; exit 1; }; sleep 1; done
|
||||
fi
|
||||
i=0; until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do i=$((i+1)); [ $i -ge 180 ] && { act "ABORT: NCM not up"; cp $U.log $O/uart.log; exit 1; }; sleep 1; done; act "NCM ping ok"
|
||||
R=$(grep -a "rtc-pm8xxx.*setting system clock" $U.log | tail -1 | sed -n 's/.*(\([0-9]*\)).*/\1/p'); C=B; [ -n "$R" ] && [ "$R" -lt 40 ] && C=A; act "RTC at boot ${R:-?} s -> class $C"
|
||||
printf 'cat /proc/device-tree/model; echo; uname -r; grep -E "START OK|FAIL in|rollback" /run/aurora-modem/lifecycle.log | tail -1\n' > $O/.w
|
||||
i=0; until tn $O/.w 3 | grep -qE "^\[[0-9.]+\] .*(=== START OK|FAIL in|rollback)"; do i=$((i+1)); [ $i -ge 80 ] && { act "no START OK/FAIL after ~12 min"; break; }; sleep 6; done
|
||||
tn $O/.w 3 | grep -aE "Aurora|aurora-b8|START OK|FAIL" | tee -a $A
|
||||
printf 'grep -E "AP ENABLED|FAIL" /run/aurora-wifi/wifi.log | tail -1\n' > $O/.a
|
||||
i=0; until tn $O/.a 3 | grep -qE "^\[[0-9.]+\] (=== AP ENABLED|FAIL)"; do i=$((i+1)); [ $i -ge 20 ] && { act "no AP ENABLED/FAIL after ~3 min"; break; }; sleep 6; done
|
||||
act "wifi: $(tn $O/.a 3 | grep -E '^\[[0-9.]+\] (=== AP ENABLED|FAIL)' | tail -1)"
|
||||
printf 'grep -E "SNTP (check|STEP|: )" /run/aurora-modem/lifecycle.log | tail -2\n' > $O/.s
|
||||
i=0; until tn $O/.s 3 | grep -qE "^\[[0-9.]+\] SNTP"; do i=$((i+1)); [ $i -ge 15 ] && break; sleep 4; done; act "sntp: $(tn $O/.s 3 | grep -E '^\[[0-9.]+\] SNTP' | tail -2 | tr '\n' ' ')"
|
||||
cat > $O/.c <<'C'
|
||||
echo SNAP-BEGIN; cat /proc/uptime; date -u; cat /proc/device-tree/model; echo; uname -a; cat /proc/cmdline
|
||||
echo ---time; cat /run/aurora-modem/time-set; grep -E "TIME|SNTP" /run/aurora-modem/lifecycle.log | tail -4
|
||||
echo ---modem; /etc/init.d/aurora-modem status
|
||||
echo ---wifi; /etc/init.d/aurora-wifi status; echo ---wifilog; cat /run/aurora-wifi/wifi.log; cat /run/aurora-wifi/service.log; echo ---hostapdlog; cat /run/aurora-wifi/hostapd.log
|
||||
for r in /sys/class/remoteproc/*; do echo "RP $(cat $r/name)=$(cat $r/state)"; done; iw dev
|
||||
echo ---dmesg-wifi; dmesg | grep -iE "wcn36xx|wcnss|a204000|cfg80211|aurora-wifi|crash|watchdog"
|
||||
echo ---ping; ping -c4 -W3 -I wwan0 77.88.8.8 | tail -2
|
||||
echo ---display; /etc/init.d/aurora-display status; cat /run/aurora-display/display.log; cat /run/aurora-display/service.log
|
||||
echo ---consoles; cat /sys/class/tty/console/active; for v in /sys/class/vtconsole/vtcon*; do echo "$v $(cat $v/bind) $(cat $v/name)"; done; ls -l /proc/[0-9]*/fd/0 2>/dev/null | grep -E "ttyMSM0|tty1|console" | sed "s/.* \/proc/\/proc/"
|
||||
echo ---getty; hostname; ps | grep -E "[g]etty|[c]ttyhack| sh$"
|
||||
echo ---fb; ls -l /dev/dri/card0 /dev/fb0; for f in name bits_per_pixel virtual_size stride; do echo "fb0 $f=$(cat /sys/class/graphics/fb0/$f)"; done; cat /sys/class/drm/card0-SPI-1/enabled /sys/class/drm/card0-SPI-1/dpms
|
||||
echo ---regs; for r in /sys/class/regulator/regulator.*; do n=$(cat $r/name); case $n in l6|l17) echo "$n $(cat $r/state) $(cat $r/microvolts) users=$(cat $r/num_users)";; esac; done
|
||||
echo ---bl; for f in bl_power brightness actual_brightness; do echo "bl $f=$(cat /sys/class/backlight/backlight/$f)"; done
|
||||
echo ---dmesg-display; dmesg | grep -iE "drm|panel|mipi|spi_qup|78b8000|fbcon|Console: |frame buffer|backlight|aurora-display|l17"
|
||||
echo ---display-errors; dmesg | grep -iE "drm|panel|mipi|spi0|fbcon|backlight|aurora-display" | grep -ciE "err|fail|timeout|warn"
|
||||
echo ---iio; for d in /sys/bus/iio/devices/iio:device*; do echo "$d name=$(cat $d/name)"; ls $d | tr '\n' ' '; echo; done
|
||||
for f in /sys/bus/iio/devices/iio:device*/in_*; do case $f in *_raw|*_input|*_scale|*_offset) echo "$f=$(cat $f 2>&1)";; esac; done
|
||||
echo ---psy; ls -l /sys/class/power_supply/; for p in /sys/class/power_supply/*; do echo "-- $p"; cat $p/uevent; ls $p; done
|
||||
echo ---dmesg-bms; dmesg | grep -iE "bms|battery|power_supply|lbc|charger|extcon|ci_hdrc|4000|1000"
|
||||
echo ---lbc-state; grep -q " /sys/kernel/debug " /proc/mounts || mount -t debugfs debugfs /sys/kernel/debug; cat /sys/kernel/debug/pm8916_lbc/state; dmesg | grep -E "safety timer|supervisor|pm8916-lbc|lbc"
|
||||
echo ---thermal; for t in /sys/class/thermal/thermal_zone*; do echo "$t $(cat $t/type) $(cat $t/temp)"; done
|
||||
echo ---dmesg-adc; dmesg | grep -iE "vadc|iio|temp-alarm|qpnp|spmi-temp|pm8916-thermal|thermal"
|
||||
echo ---emmc; awk "{print \"w=\"\$5\" s=\"\$7}" /sys/block/mmcblk0/stat
|
||||
echo SNAP-END
|
||||
C
|
||||
tn $O/.c 25 > $O/snapshot.txt; act "snapshot: $(grep -c SNAP-END $O/snapshot.txt) end markers; $(grep -E '^RP a204' $O/snapshot.txt)"
|
||||
printf 'dmesg > /tmp/dm.txt; nc -l -p 9881 < /tmp/dm.txt &\n' > $O/.d; tn $O/.d 3 >/dev/null; sleep 1; ncat --recv-only 172.16.42.1 9881 > $O/dmesg.full
|
||||
cp $U.log $O/uart.log; act "B10B3CAND $MODE$K END - operator visual check next"
|
||||
60
b10/b10b3/b10b3d-boot.sh
Executable file
60
b10/b10b3/b10b3d-boot.sh
Executable file
|
|
@ -0,0 +1,60 @@
|
|||
#!/bin/sh
|
||||
# 480s side, B10B-3 Test D (TEST image) boot K (RAM only). RESET-held power-on -> lk1st fastboot -> `fastboot boot` B10B-3 RAM image. Reads only over telnet.
|
||||
# MODE=cold: normal power-on (no RESET, no fastboot) -> lk2nd extlinux from eMMC cache. Script only observes + reads over telnet;
|
||||
# nothing is written to eMMC. Visual display checks need the operator. Adds display/fbcon/getty/console checks to the B8F snapshot.
|
||||
K=$1; MODE=ram; [ -n "$K" ] || { echo "usage: $0 K"; exit 2; }
|
||||
cd ~/doc/modem/jz08-aurora; O=logs/b10/b10b3/d$K; mkdir -p $O; IMG=b10/b10b3/out-d/aurora-b10b3d.img
|
||||
A=$O/host-actions.txt; act() { echo "$(date -u +%H:%M:%S.%3N) $*" | tee -a $A; }
|
||||
tn() { { sleep 1; sed "s/\$/\r/" "$1"; sleep $2; } | ncat 172.16.42.1 23 | tr -d "\000\r"; }
|
||||
OLD=$(ps -eo pid,cmd | grep "[u]artlog.py /dev/ttyUSB0" | awk '{print $1}'); [ -n "$OLD" ] && kill $OLD; sleep 1
|
||||
U=logs/uart/b10b3d-$MODE$K-$(date +%Y%m%d-%H%M%S); setsid nohup python3 tools/uartlog.py /dev/ttyUSB0 $U > $U.stderr 2>&1 < /dev/null &
|
||||
if [ $MODE = ram ]; then
|
||||
echo "43739e5565e7d2dc14d6249b098130dd3094c2748dd07a4a2373394c0241b897 $IMG" | sha256sum -c || exit 1
|
||||
act "B10B3D $MODE$K: waiting for fastboot <EMMC_SERIAL> (power off >= 90 s, then RESET held + battery -> USB)"
|
||||
if fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; then act "already in fastboot - wait for power-off"; until ! fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; do sleep 1; done; fi
|
||||
i=0; until fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; do i=$((i+1)); [ $i -ge 1800 ] && { act "ABORT: no fastboot"; exit 1; }; sleep 2; done
|
||||
act "fastboot present"; { fastboot boot $IMG 2>&1; echo "rc=$?"; } | tee -a $A
|
||||
else
|
||||
act "B10B3D $MODE$K: waiting for the board to go away (power off >= 90 s), then normal power-on WITHOUT RESET"
|
||||
until ! ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do sleep 1; done; act "board unreachable (powered off)"
|
||||
until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL> && { act "ABORT: board is in fastboot - RESET was held?"; exit 1; }; sleep 1; done
|
||||
fi
|
||||
i=0; until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do i=$((i+1)); [ $i -ge 180 ] && { act "ABORT: NCM not up"; cp $U.log $O/uart.log; exit 1; }; sleep 1; done; act "NCM ping ok"
|
||||
R=$(grep -a "rtc-pm8xxx.*setting system clock" $U.log | tail -1 | sed -n 's/.*(\([0-9]*\)).*/\1/p'); C=B; [ -n "$R" ] && [ "$R" -lt 40 ] && C=A; act "RTC at boot ${R:-?} s -> class $C"
|
||||
printf 'cat /proc/device-tree/model; echo; uname -r; grep -E "START OK|FAIL in|rollback" /run/aurora-modem/lifecycle.log | tail -1\n' > $O/.w
|
||||
i=0; until tn $O/.w 3 | grep -qE "^\[[0-9.]+\] .*(=== START OK|FAIL in|rollback)"; do i=$((i+1)); [ $i -ge 80 ] && { act "no START OK/FAIL after ~12 min"; break; }; sleep 6; done
|
||||
tn $O/.w 3 | grep -aE "Aurora|aurora-b8|START OK|FAIL" | tee -a $A
|
||||
printf 'grep -E "AP ENABLED|FAIL" /run/aurora-wifi/wifi.log | tail -1\n' > $O/.a
|
||||
i=0; until tn $O/.a 3 | grep -qE "^\[[0-9.]+\] (=== AP ENABLED|FAIL)"; do i=$((i+1)); [ $i -ge 20 ] && { act "no AP ENABLED/FAIL after ~3 min"; break; }; sleep 6; done
|
||||
act "wifi: $(tn $O/.a 3 | grep -E '^\[[0-9.]+\] (=== AP ENABLED|FAIL)' | tail -1)"
|
||||
printf 'grep -E "SNTP (check|STEP|: )" /run/aurora-modem/lifecycle.log | tail -2\n' > $O/.s
|
||||
i=0; until tn $O/.s 3 | grep -qE "^\[[0-9.]+\] SNTP"; do i=$((i+1)); [ $i -ge 15 ] && break; sleep 4; done; act "sntp: $(tn $O/.s 3 | grep -E '^\[[0-9.]+\] SNTP' | tail -2 | tr '\n' ' ')"
|
||||
cat > $O/.c <<'C'
|
||||
echo SNAP-BEGIN; cat /proc/uptime; date -u; cat /proc/device-tree/model; echo; uname -a; cat /proc/cmdline
|
||||
echo ---time; cat /run/aurora-modem/time-set; grep -E "TIME|SNTP" /run/aurora-modem/lifecycle.log | tail -4
|
||||
echo ---modem; /etc/init.d/aurora-modem status
|
||||
echo ---wifi; /etc/init.d/aurora-wifi status; echo ---wifilog; cat /run/aurora-wifi/wifi.log; cat /run/aurora-wifi/service.log; echo ---hostapdlog; cat /run/aurora-wifi/hostapd.log
|
||||
for r in /sys/class/remoteproc/*; do echo "RP $(cat $r/name)=$(cat $r/state)"; done; iw dev
|
||||
echo ---dmesg-wifi; dmesg | grep -iE "wcn36xx|wcnss|a204000|cfg80211|aurora-wifi|crash|watchdog"
|
||||
echo ---ping; ping -c4 -W3 -I wwan0 77.88.8.8 | tail -2
|
||||
echo ---display; /etc/init.d/aurora-display status; cat /run/aurora-display/display.log; cat /run/aurora-display/service.log
|
||||
echo ---consoles; cat /sys/class/tty/console/active; for v in /sys/class/vtconsole/vtcon*; do echo "$v $(cat $v/bind) $(cat $v/name)"; done; ls -l /proc/[0-9]*/fd/0 2>/dev/null | grep -E "ttyMSM0|tty1|console" | sed "s/.* \/proc/\/proc/"
|
||||
echo ---getty; hostname; ps | grep -E "[g]etty|[c]ttyhack| sh$"
|
||||
echo ---fb; ls -l /dev/dri/card0 /dev/fb0; for f in name bits_per_pixel virtual_size stride; do echo "fb0 $f=$(cat /sys/class/graphics/fb0/$f)"; done; cat /sys/class/drm/card0-SPI-1/enabled /sys/class/drm/card0-SPI-1/dpms
|
||||
echo ---regs; for r in /sys/class/regulator/regulator.*; do n=$(cat $r/name); case $n in l6|l17) echo "$n $(cat $r/state) $(cat $r/microvolts) users=$(cat $r/num_users)";; esac; done
|
||||
echo ---bl; for f in bl_power brightness actual_brightness; do echo "bl $f=$(cat /sys/class/backlight/backlight/$f)"; done
|
||||
echo ---dmesg-display; dmesg | grep -iE "drm|panel|mipi|spi_qup|78b8000|fbcon|Console: |frame buffer|backlight|aurora-display|l17"
|
||||
echo ---display-errors; dmesg | grep -iE "drm|panel|mipi|spi0|fbcon|backlight|aurora-display" | grep -ciE "err|fail|timeout|warn"
|
||||
echo ---iio; for d in /sys/bus/iio/devices/iio:device*; do echo "$d name=$(cat $d/name)"; ls $d | tr '\n' ' '; echo; done
|
||||
for f in /sys/bus/iio/devices/iio:device*/in_*; do case $f in *_raw|*_input|*_scale|*_offset) echo "$f=$(cat $f 2>&1)";; esac; done
|
||||
echo ---psy; ls -l /sys/class/power_supply/; for p in /sys/class/power_supply/*; do echo "-- $p"; cat $p/uevent; ls $p; done
|
||||
echo ---dmesg-bms; dmesg | grep -iE "bms|battery|power_supply|lbc|charger|extcon|ci_hdrc|4000|1000"
|
||||
echo ---lbc-state; grep -q " /sys/kernel/debug " /proc/mounts || mount -t debugfs debugfs /sys/kernel/debug; cat /sys/kernel/debug/pm8916_lbc/state; dmesg | grep -E "safety timer|supervisor|pm8916-lbc|lbc"
|
||||
echo ---thermal; for t in /sys/class/thermal/thermal_zone*; do echo "$t $(cat $t/type) $(cat $t/temp)"; done
|
||||
echo ---dmesg-adc; dmesg | grep -iE "vadc|iio|temp-alarm|qpnp|spmi-temp|pm8916-thermal|thermal"
|
||||
echo ---emmc; awk "{print \"w=\"\$5\" s=\"\$7}" /sys/block/mmcblk0/stat
|
||||
echo SNAP-END
|
||||
C
|
||||
tn $O/.c 25 > $O/snapshot.txt; act "snapshot: $(grep -c SNAP-END $O/snapshot.txt) end markers; $(grep -E '^RP a204' $O/snapshot.txt)"
|
||||
printf 'dmesg > /tmp/dm.txt; nc -l -p 9881 < /tmp/dm.txt &\n' > $O/.d; tn $O/.d 3 >/dev/null; sleep 1; ncat --recv-only 172.16.42.1 9881 > $O/dmesg.full
|
||||
cp $U.log $O/uart.log; act "B10B3D $MODE$K END - operator visual check next"
|
||||
14
b10/b10b3/b10b3d-mon-start.sh
Executable file
14
b10/b10b3/b10b3d-mon-start.sh
Executable file
|
|
@ -0,0 +1,14 @@
|
|||
#!/bin/sh
|
||||
# 480s side, Test D: wait for the NEW boot's NCM, then at once push b10b3-mon.sh to the board and start it (5 s, EVDD=04/00, VMAX 4.15 V),
|
||||
# then start the 30-s pull into logs/b10/b10b3/<K>-mon.txt. Board side reads only (writes /tmp only). usage: b10b3b-mon-start.sh K
|
||||
K=$1; [ -n "$K" ] || { echo "usage: $0 K"; exit 2; }
|
||||
cd ~/doc/modem/jz08-aurora; A=logs/b10/b10b3/$K-actions.txt; act() { echo "$(date -u +%H:%M:%S.%3N) $*" | tee -a $A; }
|
||||
rm -f logs/b10/b10b3/pull.stop
|
||||
act "mon-start $K: waiting for the board to go away (warm reboot)"; until ! ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do sleep 0.5; done; act "board gone"
|
||||
until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do sleep 0.5; done; act "NCM up"
|
||||
i=0; until { sleep 1; printf 'nc -l -p 9943 > /tmp/b10b3-mon.sh &\r\n'; sleep 1; } | ncat -w 4 172.16.42.1 23 >/dev/null 2>&1; do i=$((i+1)); [ $i -ge 60 ] && { act "ABORT: no telnet"; exit 1; }; sleep 1; done
|
||||
sleep 1; ncat --send-only 172.16.42.1 9943 < b10/b10b3/b10b3-mon.sh; sleep 1
|
||||
sh b10/b10b3/b10b3-cmd.sh 3 'md5sum /tmp/b10b3-mon.sh; rm -f /tmp/b10b3-mon.stop; VMAX=4150000 EVDD=04 EVDD2=00 setsid sh /tmp/b10b3-mon.sh 5 > /dev/null 2>&1 < /dev/null & sleep 1; dmesg | grep -E "safety timer|supervisor"; cut -d" " -f1 /proc/uptime' | tee -a $A
|
||||
act "local md5 $(md5sum < b10/b10b3/b10b3-mon.sh)"
|
||||
setsid nohup sh b10/b10b3/b10b3-pull.sh $K > /dev/null 2>&1 < /dev/null &
|
||||
act "monitor started (5 s), pull started -> logs/b10/b10b3/$K-mon.txt"
|
||||
60
b10/b10b3/b10b3d3-boot.sh
Executable file
60
b10/b10b3/b10b3d3-boot.sh
Executable file
|
|
@ -0,0 +1,60 @@
|
|||
#!/bin/sh
|
||||
# 480s side, B10B-3 Test D3 (TEST image) boot K (RAM only). RESET-held power-on -> lk1st fastboot -> `fastboot boot` B10B-3 RAM image. Reads only over telnet.
|
||||
# MODE=cold: normal power-on (no RESET, no fastboot) -> lk2nd extlinux from eMMC cache. Script only observes + reads over telnet;
|
||||
# nothing is written to eMMC. Visual display checks need the operator. Adds display/fbcon/getty/console checks to the B8F snapshot.
|
||||
K=$1; MODE=ram; [ -n "$K" ] || { echo "usage: $0 K"; exit 2; }
|
||||
cd ~/doc/modem/jz08-aurora; O=logs/b10/b10b3/d3r$K; mkdir -p $O; IMG=b10/b10b3/out-d3/aurora-b10b3d3.img
|
||||
A=$O/host-actions.txt; act() { echo "$(date -u +%H:%M:%S.%3N) $*" | tee -a $A; }
|
||||
tn() { { sleep 1; sed "s/\$/\r/" "$1"; sleep $2; } | ncat 172.16.42.1 23 | tr -d "\000\r"; }
|
||||
OLD=$(ps -eo pid,cmd | grep "[u]artlog.py /dev/ttyUSB0" | awk '{print $1}'); [ -n "$OLD" ] && kill $OLD; sleep 1
|
||||
U=logs/uart/b10b3d3-$MODE$K-$(date +%Y%m%d-%H%M%S); setsid nohup python3 tools/uartlog.py /dev/ttyUSB0 $U > $U.stderr 2>&1 < /dev/null &
|
||||
if [ $MODE = ram ]; then
|
||||
echo "4645a7ec012e4c83af4f496ce03431024a758c64c679da45f7b6445edef777f9 $IMG" | sha256sum -c || exit 1
|
||||
act "B10B3D3 $MODE$K: waiting for fastboot <EMMC_SERIAL> (power off >= 90 s, then RESET held + battery -> USB)"
|
||||
if fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; then act "already in fastboot - wait for power-off"; until ! fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; do sleep 1; done; fi
|
||||
i=0; until fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; do i=$((i+1)); [ $i -ge 1800 ] && { act "ABORT: no fastboot"; exit 1; }; sleep 2; done
|
||||
act "fastboot present"; { fastboot boot $IMG 2>&1; echo "rc=$?"; } | tee -a $A
|
||||
else
|
||||
act "B10B3D3 $MODE$K: waiting for the board to go away (power off >= 90 s), then normal power-on WITHOUT RESET"
|
||||
until ! ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do sleep 1; done; act "board unreachable (powered off)"
|
||||
until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL> && { act "ABORT: board is in fastboot - RESET was held?"; exit 1; }; sleep 1; done
|
||||
fi
|
||||
i=0; until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do i=$((i+1)); [ $i -ge 180 ] && { act "ABORT: NCM not up"; cp $U.log $O/uart.log; exit 1; }; sleep 1; done; act "NCM ping ok"
|
||||
R=$(grep -a "rtc-pm8xxx.*setting system clock" $U.log | tail -1 | sed -n 's/.*(\([0-9]*\)).*/\1/p'); C=B; [ -n "$R" ] && [ "$R" -lt 40 ] && C=A; act "RTC at boot ${R:-?} s -> class $C"
|
||||
printf 'cat /proc/device-tree/model; echo; uname -r; grep -E "START OK|FAIL in|rollback" /run/aurora-modem/lifecycle.log | tail -1\n' > $O/.w
|
||||
i=0; until tn $O/.w 3 | grep -qE "^\[[0-9.]+\] .*(=== START OK|FAIL in|rollback)"; do i=$((i+1)); [ $i -ge 80 ] && { act "no START OK/FAIL after ~12 min"; break; }; sleep 6; done
|
||||
tn $O/.w 3 | grep -aE "Aurora|aurora-b8|START OK|FAIL" | tee -a $A
|
||||
printf 'grep -E "AP ENABLED|FAIL" /run/aurora-wifi/wifi.log | tail -1\n' > $O/.a
|
||||
i=0; until tn $O/.a 3 | grep -qE "^\[[0-9.]+\] (=== AP ENABLED|FAIL)"; do i=$((i+1)); [ $i -ge 20 ] && { act "no AP ENABLED/FAIL after ~3 min"; break; }; sleep 6; done
|
||||
act "wifi: $(tn $O/.a 3 | grep -E '^\[[0-9.]+\] (=== AP ENABLED|FAIL)' | tail -1)"
|
||||
printf 'grep -E "SNTP (check|STEP|: )" /run/aurora-modem/lifecycle.log | tail -2\n' > $O/.s
|
||||
i=0; until tn $O/.s 3 | grep -qE "^\[[0-9.]+\] SNTP"; do i=$((i+1)); [ $i -ge 15 ] && break; sleep 4; done; act "sntp: $(tn $O/.s 3 | grep -E '^\[[0-9.]+\] SNTP' | tail -2 | tr '\n' ' ')"
|
||||
cat > $O/.c <<'C'
|
||||
echo SNAP-BEGIN; cat /proc/uptime; date -u; cat /proc/device-tree/model; echo; uname -a; cat /proc/cmdline
|
||||
echo ---time; cat /run/aurora-modem/time-set; grep -E "TIME|SNTP" /run/aurora-modem/lifecycle.log | tail -4
|
||||
echo ---modem; /etc/init.d/aurora-modem status
|
||||
echo ---wifi; /etc/init.d/aurora-wifi status; echo ---wifilog; cat /run/aurora-wifi/wifi.log; cat /run/aurora-wifi/service.log; echo ---hostapdlog; cat /run/aurora-wifi/hostapd.log
|
||||
for r in /sys/class/remoteproc/*; do echo "RP $(cat $r/name)=$(cat $r/state)"; done; iw dev
|
||||
echo ---dmesg-wifi; dmesg | grep -iE "wcn36xx|wcnss|a204000|cfg80211|aurora-wifi|crash|watchdog"
|
||||
echo ---ping; ping -c4 -W3 -I wwan0 77.88.8.8 | tail -2
|
||||
echo ---display; /etc/init.d/aurora-display status; cat /run/aurora-display/display.log; cat /run/aurora-display/service.log
|
||||
echo ---consoles; cat /sys/class/tty/console/active; for v in /sys/class/vtconsole/vtcon*; do echo "$v $(cat $v/bind) $(cat $v/name)"; done; ls -l /proc/[0-9]*/fd/0 2>/dev/null | grep -E "ttyMSM0|tty1|console" | sed "s/.* \/proc/\/proc/"
|
||||
echo ---getty; hostname; ps | grep -E "[g]etty|[c]ttyhack| sh$"
|
||||
echo ---fb; ls -l /dev/dri/card0 /dev/fb0; for f in name bits_per_pixel virtual_size stride; do echo "fb0 $f=$(cat /sys/class/graphics/fb0/$f)"; done; cat /sys/class/drm/card0-SPI-1/enabled /sys/class/drm/card0-SPI-1/dpms
|
||||
echo ---regs; for r in /sys/class/regulator/regulator.*; do n=$(cat $r/name); case $n in l6|l17) echo "$n $(cat $r/state) $(cat $r/microvolts) users=$(cat $r/num_users)";; esac; done
|
||||
echo ---bl; for f in bl_power brightness actual_brightness; do echo "bl $f=$(cat /sys/class/backlight/backlight/$f)"; done
|
||||
echo ---dmesg-display; dmesg | grep -iE "drm|panel|mipi|spi_qup|78b8000|fbcon|Console: |frame buffer|backlight|aurora-display|l17"
|
||||
echo ---display-errors; dmesg | grep -iE "drm|panel|mipi|spi0|fbcon|backlight|aurora-display" | grep -ciE "err|fail|timeout|warn"
|
||||
echo ---iio; for d in /sys/bus/iio/devices/iio:device*; do echo "$d name=$(cat $d/name)"; ls $d | tr '\n' ' '; echo; done
|
||||
for f in /sys/bus/iio/devices/iio:device*/in_*; do case $f in *_raw|*_input|*_scale|*_offset) echo "$f=$(cat $f 2>&1)";; esac; done
|
||||
echo ---psy; ls -l /sys/class/power_supply/; for p in /sys/class/power_supply/*; do echo "-- $p"; cat $p/uevent; ls $p; done
|
||||
echo ---dmesg-bms; dmesg | grep -iE "bms|battery|power_supply|lbc|charger|extcon|ci_hdrc|4000|1000"
|
||||
echo ---lbc-state; grep -q " /sys/kernel/debug " /proc/mounts || mount -t debugfs debugfs /sys/kernel/debug; cat /sys/kernel/debug/pm8916_lbc/state; dmesg | grep -E "safety timer|supervisor|pm8916-lbc|lbc"
|
||||
echo ---thermal; for t in /sys/class/thermal/thermal_zone*; do echo "$t $(cat $t/type) $(cat $t/temp)"; done
|
||||
echo ---dmesg-adc; dmesg | grep -iE "vadc|iio|temp-alarm|qpnp|spmi-temp|pm8916-thermal|thermal"
|
||||
echo ---emmc; awk "{print \"w=\"\$5\" s=\"\$7}" /sys/block/mmcblk0/stat
|
||||
echo SNAP-END
|
||||
C
|
||||
tn $O/.c 25 > $O/snapshot.txt; act "snapshot: $(grep -c SNAP-END $O/snapshot.txt) end markers; $(grep -E '^RP a204' $O/snapshot.txt)"
|
||||
printf 'dmesg > /tmp/dm.txt; nc -l -p 9881 < /tmp/dm.txt &\n' > $O/.d; tn $O/.d 3 >/dev/null; sleep 1; ncat --recv-only 172.16.42.1 9881 > $O/dmesg.full
|
||||
cp $U.log $O/uart.log; act "B10B3D3 $MODE$K END - operator visual check next"
|
||||
60
b10/b10b3/b10b3p-boot.sh
Executable file
60
b10/b10b3/b10b3p-boot.sh
Executable file
|
|
@ -0,0 +1,60 @@
|
|||
#!/bin/sh
|
||||
# 480s side, B10B-3 production-profile (TEST image) boot K (RAM only). RESET-held power-on -> lk1st fastboot -> `fastboot boot` B10B-3 RAM image. Reads only over telnet.
|
||||
# MODE=cold: normal power-on (no RESET, no fastboot) -> lk2nd extlinux from eMMC cache. Script only observes + reads over telnet;
|
||||
# nothing is written to eMMC. Visual display checks need the operator. Adds display/fbcon/getty/console checks to the B8F snapshot.
|
||||
K=$1; MODE=ram; [ -n "$K" ] || { echo "usage: $0 K"; exit 2; }
|
||||
cd ~/doc/modem/jz08-aurora; O=logs/b10/b10b3/p$K; mkdir -p $O; IMG=b10/b10b3/out-p/aurora-b10b3p.img
|
||||
A=$O/host-actions.txt; act() { echo "$(date -u +%H:%M:%S.%3N) $*" | tee -a $A; }
|
||||
tn() { { sleep 1; sed "s/\$/\r/" "$1"; sleep $2; } | ncat 172.16.42.1 23 | tr -d "\000\r"; }
|
||||
OLD=$(ps -eo pid,cmd | grep "[u]artlog.py /dev/ttyUSB0" | awk '{print $1}'); [ -n "$OLD" ] && kill $OLD; sleep 1
|
||||
U=logs/uart/b10b3p-$MODE$K-$(date +%Y%m%d-%H%M%S); setsid nohup python3 tools/uartlog.py /dev/ttyUSB0 $U > $U.stderr 2>&1 < /dev/null &
|
||||
if [ $MODE = ram ]; then
|
||||
echo "8bcd613e029b9b72a2105e1aaf93572601345871c6917b178cd5fd462816e8aa $IMG" | sha256sum -c || exit 1
|
||||
act "B10B3P $MODE$K: waiting for fastboot <EMMC_SERIAL> (power off >= 90 s, then RESET held + battery -> USB)"
|
||||
if fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; then act "already in fastboot - wait for power-off"; until ! fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; do sleep 1; done; fi
|
||||
i=0; until fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; do i=$((i+1)); [ $i -ge 1800 ] && { act "ABORT: no fastboot"; exit 1; }; sleep 2; done
|
||||
act "fastboot present"; { fastboot boot $IMG 2>&1; echo "rc=$?"; } | tee -a $A
|
||||
else
|
||||
act "B10B3P $MODE$K: waiting for the board to go away (power off >= 90 s), then normal power-on WITHOUT RESET"
|
||||
until ! ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do sleep 1; done; act "board unreachable (powered off)"
|
||||
until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL> && { act "ABORT: board is in fastboot - RESET was held?"; exit 1; }; sleep 1; done
|
||||
fi
|
||||
i=0; until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do i=$((i+1)); [ $i -ge 180 ] && { act "ABORT: NCM not up"; cp $U.log $O/uart.log; exit 1; }; sleep 1; done; act "NCM ping ok"
|
||||
R=$(grep -a "rtc-pm8xxx.*setting system clock" $U.log | tail -1 | sed -n 's/.*(\([0-9]*\)).*/\1/p'); C=B; [ -n "$R" ] && [ "$R" -lt 40 ] && C=A; act "RTC at boot ${R:-?} s -> class $C"
|
||||
printf 'cat /proc/device-tree/model; echo; uname -r; grep -E "START OK|FAIL in|rollback" /run/aurora-modem/lifecycle.log | tail -1\n' > $O/.w
|
||||
i=0; until tn $O/.w 3 | grep -qE "^\[[0-9.]+\] .*(=== START OK|FAIL in|rollback)"; do i=$((i+1)); [ $i -ge 80 ] && { act "no START OK/FAIL after ~12 min"; break; }; sleep 6; done
|
||||
tn $O/.w 3 | grep -aE "Aurora|aurora-b8|START OK|FAIL" | tee -a $A
|
||||
printf 'grep -E "AP ENABLED|FAIL" /run/aurora-wifi/wifi.log | tail -1\n' > $O/.a
|
||||
i=0; until tn $O/.a 3 | grep -qE "^\[[0-9.]+\] (=== AP ENABLED|FAIL)"; do i=$((i+1)); [ $i -ge 20 ] && { act "no AP ENABLED/FAIL after ~3 min"; break; }; sleep 6; done
|
||||
act "wifi: $(tn $O/.a 3 | grep -E '^\[[0-9.]+\] (=== AP ENABLED|FAIL)' | tail -1)"
|
||||
printf 'grep -E "SNTP (check|STEP|: )" /run/aurora-modem/lifecycle.log | tail -2\n' > $O/.s
|
||||
i=0; until tn $O/.s 3 | grep -qE "^\[[0-9.]+\] SNTP"; do i=$((i+1)); [ $i -ge 15 ] && break; sleep 4; done; act "sntp: $(tn $O/.s 3 | grep -E '^\[[0-9.]+\] SNTP' | tail -2 | tr '\n' ' ')"
|
||||
cat > $O/.c <<'C'
|
||||
echo SNAP-BEGIN; cat /proc/uptime; date -u; cat /proc/device-tree/model; echo; uname -a; cat /proc/cmdline
|
||||
echo ---time; cat /run/aurora-modem/time-set; grep -E "TIME|SNTP" /run/aurora-modem/lifecycle.log | tail -4
|
||||
echo ---modem; /etc/init.d/aurora-modem status
|
||||
echo ---wifi; /etc/init.d/aurora-wifi status; echo ---wifilog; cat /run/aurora-wifi/wifi.log; cat /run/aurora-wifi/service.log; echo ---hostapdlog; cat /run/aurora-wifi/hostapd.log
|
||||
for r in /sys/class/remoteproc/*; do echo "RP $(cat $r/name)=$(cat $r/state)"; done; iw dev
|
||||
echo ---dmesg-wifi; dmesg | grep -iE "wcn36xx|wcnss|a204000|cfg80211|aurora-wifi|crash|watchdog"
|
||||
echo ---ping; ping -c4 -W3 -I wwan0 77.88.8.8 | tail -2
|
||||
echo ---display; /etc/init.d/aurora-display status; cat /run/aurora-display/display.log; cat /run/aurora-display/service.log
|
||||
echo ---consoles; cat /sys/class/tty/console/active; for v in /sys/class/vtconsole/vtcon*; do echo "$v $(cat $v/bind) $(cat $v/name)"; done; ls -l /proc/[0-9]*/fd/0 2>/dev/null | grep -E "ttyMSM0|tty1|console" | sed "s/.* \/proc/\/proc/"
|
||||
echo ---getty; hostname; ps | grep -E "[g]etty|[c]ttyhack| sh$"
|
||||
echo ---fb; ls -l /dev/dri/card0 /dev/fb0; for f in name bits_per_pixel virtual_size stride; do echo "fb0 $f=$(cat /sys/class/graphics/fb0/$f)"; done; cat /sys/class/drm/card0-SPI-1/enabled /sys/class/drm/card0-SPI-1/dpms
|
||||
echo ---regs; for r in /sys/class/regulator/regulator.*; do n=$(cat $r/name); case $n in l6|l17) echo "$n $(cat $r/state) $(cat $r/microvolts) users=$(cat $r/num_users)";; esac; done
|
||||
echo ---bl; for f in bl_power brightness actual_brightness; do echo "bl $f=$(cat /sys/class/backlight/backlight/$f)"; done
|
||||
echo ---dmesg-display; dmesg | grep -iE "drm|panel|mipi|spi_qup|78b8000|fbcon|Console: |frame buffer|backlight|aurora-display|l17"
|
||||
echo ---display-errors; dmesg | grep -iE "drm|panel|mipi|spi0|fbcon|backlight|aurora-display" | grep -ciE "err|fail|timeout|warn"
|
||||
echo ---iio; for d in /sys/bus/iio/devices/iio:device*; do echo "$d name=$(cat $d/name)"; ls $d | tr '\n' ' '; echo; done
|
||||
for f in /sys/bus/iio/devices/iio:device*/in_*; do case $f in *_raw|*_input|*_scale|*_offset) echo "$f=$(cat $f 2>&1)";; esac; done
|
||||
echo ---psy; ls -l /sys/class/power_supply/; for p in /sys/class/power_supply/*; do echo "-- $p"; cat $p/uevent; ls $p; done
|
||||
echo ---dmesg-bms; dmesg | grep -iE "bms|battery|power_supply|lbc|charger|extcon|ci_hdrc|4000|1000"
|
||||
echo ---lbc-state; grep -q " /sys/kernel/debug " /proc/mounts || mount -t debugfs debugfs /sys/kernel/debug; cat /sys/kernel/debug/pm8916_lbc/state; dmesg | grep -E "safety timer|supervisor|pm8916-lbc|lbc"
|
||||
echo ---thermal; for t in /sys/class/thermal/thermal_zone*; do echo "$t $(cat $t/type) $(cat $t/temp)"; done
|
||||
echo ---dmesg-adc; dmesg | grep -iE "vadc|iio|temp-alarm|qpnp|spmi-temp|pm8916-thermal|thermal"
|
||||
echo ---emmc; awk "{print \"w=\"\$5\" s=\"\$7}" /sys/block/mmcblk0/stat
|
||||
echo SNAP-END
|
||||
C
|
||||
tn $O/.c 25 > $O/snapshot.txt; act "snapshot: $(grep -c SNAP-END $O/snapshot.txt) end markers; $(grep -E '^RP a204' $O/snapshot.txt)"
|
||||
printf 'dmesg > /tmp/dm.txt; nc -l -p 9881 < /tmp/dm.txt &\n' > $O/.d; tn $O/.d 3 >/dev/null; sleep 1; ncat --recv-only 172.16.42.1 9881 > $O/dmesg.full
|
||||
cp $U.log $O/uart.log; act "B10B3P $MODE$K END - operator visual check next"
|
||||
14
b10/b10b3/b10b3p-mon-start.sh
Executable file
14
b10/b10b3/b10b3p-mon-start.sh
Executable file
|
|
@ -0,0 +1,14 @@
|
|||
#!/bin/sh
|
||||
# 480s side, production-profile run: wait for the NEW boot's NCM, then at once push b10b3-mon.sh to the board and start it (5 s, EVDD=08/02, VMAX 4.23 V),
|
||||
# then start the 30-s pull into logs/b10/b10b3/<K>-mon.txt. Board side reads only (writes /tmp only). usage: b10b3b-mon-start.sh K
|
||||
K=$1; [ -n "$K" ] || { echo "usage: $0 K"; exit 2; }
|
||||
cd ~/doc/modem/jz08-aurora; A=logs/b10/b10b3/$K-actions.txt; act() { echo "$(date -u +%H:%M:%S.%3N) $*" | tee -a $A; }
|
||||
rm -f logs/b10/b10b3/pull.stop
|
||||
act "mon-start $K: waiting for lk1st fastboot (RESET-held reboot), then for the new boot"; until fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; do sleep 1; done; act "fastboot seen"; until ! fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; do sleep 1; done; act "fastboot gone (booting)"
|
||||
until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do sleep 0.5; done; act "NCM up"
|
||||
i=0; until { sleep 1; printf 'nc -l -p 9981 > /tmp/b10b3-mon.sh &\r\n'; sleep 1; } | ncat -w 4 172.16.42.1 23 >/dev/null 2>&1; do i=$((i+1)); [ $i -ge 60 ] && { act "ABORT: no telnet"; exit 1; }; sleep 1; done
|
||||
sleep 1; ncat --send-only 172.16.42.1 9981 < b10/b10b3/b10b3-mon.sh; sleep 1
|
||||
sh b10/b10b3/b10b3-cmd.sh 3 'md5sum /tmp/b10b3-mon.sh; rm -f /tmp/b10b3-mon.stop; VMAX=4230000 EVDD=08 EVDD2=02 setsid sh /tmp/b10b3-mon.sh 30 > /dev/null 2>&1 < /dev/null & sleep 1; dmesg | grep -E "safety timer|supervisor"; cut -d" " -f1 /proc/uptime' | tee -a $A
|
||||
act "local md5 $(md5sum < b10/b10b3/b10b3-mon.sh)"
|
||||
setsid nohup sh b10/b10b3/b10b3-pull.sh $K > /dev/null 2>&1 < /dev/null &
|
||||
act "monitor started (30 s), pull started -> logs/b10/b10b3/$K-mon.txt"
|
||||
60
b10/b10b3/b10b3t-boot.sh
Normal file
60
b10/b10b3/b10b3t-boot.sh
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
#!/bin/sh
|
||||
# 480s side, B10B-3T (TEST image) boot K (RAM only). RESET-held power-on -> lk1st fastboot -> `fastboot boot` B10B-3 RAM image. Reads only over telnet.
|
||||
# MODE=cold: normal power-on (no RESET, no fastboot) -> lk2nd extlinux from eMMC cache. Script only observes + reads over telnet;
|
||||
# nothing is written to eMMC. Visual display checks need the operator. Adds display/fbcon/getty/console checks to the B8F snapshot.
|
||||
K=$1; MODE=ram; [ -n "$K" ] || { echo "usage: $0 K"; exit 2; }
|
||||
cd ~/doc/modem/jz08-aurora; O=logs/b10/b10b3/t$K; mkdir -p $O; IMG=b10/b10b3/out-t/aurora-b10b3t.img
|
||||
A=$O/host-actions.txt; act() { echo "$(date -u +%H:%M:%S.%3N) $*" | tee -a $A; }
|
||||
tn() { { sleep 1; sed "s/\$/\r/" "$1"; sleep $2; } | ncat 172.16.42.1 23 | tr -d "\000\r"; }
|
||||
OLD=$(ps -eo pid,cmd | grep "[u]artlog.py /dev/ttyUSB0" | awk '{print $1}'); [ -n "$OLD" ] && kill $OLD; sleep 1
|
||||
U=logs/uart/b10b3t-$MODE$K-$(date +%Y%m%d-%H%M%S); setsid nohup python3 tools/uartlog.py /dev/ttyUSB0 $U > $U.stderr 2>&1 < /dev/null &
|
||||
if [ $MODE = ram ]; then
|
||||
echo "dfe2fae69f0c64be85bc972e2e8502e9bef262fa5dbb5e77b3c76ed183a89f1f $IMG" | sha256sum -c || exit 1
|
||||
act "B10B3 $MODE$K: waiting for fastboot <EMMC_SERIAL> (power off >= 90 s, then RESET held + battery -> USB)"
|
||||
if fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; then act "already in fastboot - wait for power-off"; until ! fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; do sleep 1; done; fi
|
||||
i=0; until fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; do i=$((i+1)); [ $i -ge 1800 ] && { act "ABORT: no fastboot"; exit 1; }; sleep 2; done
|
||||
act "fastboot present"; { fastboot boot $IMG 2>&1; echo "rc=$?"; } | tee -a $A
|
||||
else
|
||||
act "B10B3 $MODE$K: waiting for the board to go away (power off >= 90 s), then normal power-on WITHOUT RESET"
|
||||
until ! ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do sleep 1; done; act "board unreachable (powered off)"
|
||||
until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL> && { act "ABORT: board is in fastboot - RESET was held?"; exit 1; }; sleep 1; done
|
||||
fi
|
||||
i=0; until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do i=$((i+1)); [ $i -ge 180 ] && { act "ABORT: NCM not up"; cp $U.log $O/uart.log; exit 1; }; sleep 1; done; act "NCM ping ok"
|
||||
R=$(grep -a "rtc-pm8xxx.*setting system clock" $U.log | tail -1 | sed -n 's/.*(\([0-9]*\)).*/\1/p'); C=B; [ -n "$R" ] && [ "$R" -lt 40 ] && C=A; act "RTC at boot ${R:-?} s -> class $C"
|
||||
printf 'cat /proc/device-tree/model; echo; uname -r; grep -E "START OK|FAIL in|rollback" /run/aurora-modem/lifecycle.log | tail -1\n' > $O/.w
|
||||
i=0; until tn $O/.w 3 | grep -qE "^\[[0-9.]+\] .*(=== START OK|FAIL in|rollback)"; do i=$((i+1)); [ $i -ge 80 ] && { act "no START OK/FAIL after ~12 min"; break; }; sleep 6; done
|
||||
tn $O/.w 3 | grep -aE "Aurora|aurora-b8|START OK|FAIL" | tee -a $A
|
||||
printf 'grep -E "AP ENABLED|FAIL" /run/aurora-wifi/wifi.log | tail -1\n' > $O/.a
|
||||
i=0; until tn $O/.a 3 | grep -qE "^\[[0-9.]+\] (=== AP ENABLED|FAIL)"; do i=$((i+1)); [ $i -ge 20 ] && { act "no AP ENABLED/FAIL after ~3 min"; break; }; sleep 6; done
|
||||
act "wifi: $(tn $O/.a 3 | grep -E '^\[[0-9.]+\] (=== AP ENABLED|FAIL)' | tail -1)"
|
||||
printf 'grep -E "SNTP (check|STEP|: )" /run/aurora-modem/lifecycle.log | tail -2\n' > $O/.s
|
||||
i=0; until tn $O/.s 3 | grep -qE "^\[[0-9.]+\] SNTP"; do i=$((i+1)); [ $i -ge 15 ] && break; sleep 4; done; act "sntp: $(tn $O/.s 3 | grep -E '^\[[0-9.]+\] SNTP' | tail -2 | tr '\n' ' ')"
|
||||
cat > $O/.c <<'C'
|
||||
echo SNAP-BEGIN; cat /proc/uptime; date -u; cat /proc/device-tree/model; echo; uname -a; cat /proc/cmdline
|
||||
echo ---time; cat /run/aurora-modem/time-set; grep -E "TIME|SNTP" /run/aurora-modem/lifecycle.log | tail -4
|
||||
echo ---modem; /etc/init.d/aurora-modem status
|
||||
echo ---wifi; /etc/init.d/aurora-wifi status; echo ---wifilog; cat /run/aurora-wifi/wifi.log; cat /run/aurora-wifi/service.log; echo ---hostapdlog; cat /run/aurora-wifi/hostapd.log
|
||||
for r in /sys/class/remoteproc/*; do echo "RP $(cat $r/name)=$(cat $r/state)"; done; iw dev
|
||||
echo ---dmesg-wifi; dmesg | grep -iE "wcn36xx|wcnss|a204000|cfg80211|aurora-wifi|crash|watchdog"
|
||||
echo ---ping; ping -c4 -W3 -I wwan0 77.88.8.8 | tail -2
|
||||
echo ---display; /etc/init.d/aurora-display status; cat /run/aurora-display/display.log; cat /run/aurora-display/service.log
|
||||
echo ---consoles; cat /sys/class/tty/console/active; for v in /sys/class/vtconsole/vtcon*; do echo "$v $(cat $v/bind) $(cat $v/name)"; done; ls -l /proc/[0-9]*/fd/0 2>/dev/null | grep -E "ttyMSM0|tty1|console" | sed "s/.* \/proc/\/proc/"
|
||||
echo ---getty; hostname; ps | grep -E "[g]etty|[c]ttyhack| sh$"
|
||||
echo ---fb; ls -l /dev/dri/card0 /dev/fb0; for f in name bits_per_pixel virtual_size stride; do echo "fb0 $f=$(cat /sys/class/graphics/fb0/$f)"; done; cat /sys/class/drm/card0-SPI-1/enabled /sys/class/drm/card0-SPI-1/dpms
|
||||
echo ---regs; for r in /sys/class/regulator/regulator.*; do n=$(cat $r/name); case $n in l6|l17) echo "$n $(cat $r/state) $(cat $r/microvolts) users=$(cat $r/num_users)";; esac; done
|
||||
echo ---bl; for f in bl_power brightness actual_brightness; do echo "bl $f=$(cat /sys/class/backlight/backlight/$f)"; done
|
||||
echo ---dmesg-display; dmesg | grep -iE "drm|panel|mipi|spi_qup|78b8000|fbcon|Console: |frame buffer|backlight|aurora-display|l17"
|
||||
echo ---display-errors; dmesg | grep -iE "drm|panel|mipi|spi0|fbcon|backlight|aurora-display" | grep -ciE "err|fail|timeout|warn"
|
||||
echo ---iio; for d in /sys/bus/iio/devices/iio:device*; do echo "$d name=$(cat $d/name)"; ls $d | tr '\n' ' '; echo; done
|
||||
for f in /sys/bus/iio/devices/iio:device*/in_*; do case $f in *_raw|*_input|*_scale|*_offset) echo "$f=$(cat $f 2>&1)";; esac; done
|
||||
echo ---psy; ls -l /sys/class/power_supply/; for p in /sys/class/power_supply/*; do echo "-- $p"; cat $p/uevent; ls $p; done
|
||||
echo ---dmesg-bms; dmesg | grep -iE "bms|battery|power_supply|lbc|charger|extcon|ci_hdrc|4000|1000"
|
||||
echo ---lbc-state; grep -q " /sys/kernel/debug " /proc/mounts || mount -t debugfs debugfs /sys/kernel/debug; cat /sys/kernel/debug/pm8916_lbc/state; dmesg | grep -E "safety timer|supervisor|pm8916-lbc|lbc"
|
||||
echo ---thermal; for t in /sys/class/thermal/thermal_zone*; do echo "$t $(cat $t/type) $(cat $t/temp)"; done
|
||||
echo ---dmesg-adc; dmesg | grep -iE "vadc|iio|temp-alarm|qpnp|spmi-temp|pm8916-thermal|thermal"
|
||||
echo ---emmc; awk "{print \"w=\"\$5\" s=\"\$7}" /sys/block/mmcblk0/stat
|
||||
echo SNAP-END
|
||||
C
|
||||
tn $O/.c 25 > $O/snapshot.txt; act "snapshot: $(grep -c SNAP-END $O/snapshot.txt) end markers; $(grep -E '^RP a204' $O/snapshot.txt)"
|
||||
printf 'dmesg > /tmp/dm.txt; nc -l -p 9881 < /tmp/dm.txt &\n' > $O/.d; tn $O/.d 3 >/dev/null; sleep 1; ncat --recv-only 172.16.42.1 9881 > $O/dmesg.full
|
||||
cp $U.log $O/uart.log; act "B10B3 $MODE$K END - operator visual check next"
|
||||
18
b10/b10b3/b10b3t-discharge.sh
Normal file
18
b10/b10b3/b10b3t-discharge.sh
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
#!/bin/sh
|
||||
# Pre-t1 discharge (board on battery): N x `yes`, stop when VADC VBAT <= VMIN uV (3 samples in a row), PMIC > 55 C, or after MAX s. Writes /tmp only.
|
||||
N=${1:-4}; MAX=${2:-5400}; VMIN=${3:-3880000}; L=/tmp/b10b3t-dis.log; low=0; D=/sys/bus/iio/devices/iio:device0
|
||||
trap '' HUP
|
||||
C=/sys/class/power_supply/pm8916-lbc-chgr/online; echo "WAIT-USB-OFF up=$(cut -d" " -f1 /proc/uptime)" >> $L; while [ "$(cat $C)" != 0 ]; do sleep 2; done; echo "USB-OFF up=$(cut -d" " -f1 /proc/uptime)" >> $L
|
||||
t0=$(cut -d. -f1 /proc/uptime); P=""
|
||||
for i in $(seq 1 $N); do yes > /dev/null & P="$P $!"; done
|
||||
echo "LOAD-START up=$t0 n=$N pids=$P" >> $L
|
||||
why=timeout
|
||||
while :; do
|
||||
t=$(cut -d. -f1 /proc/uptime); vb=$(cat $D/in_voltage6_input); pt=$(cat $D/in_temp8_input)
|
||||
echo "L up=$t vbat6=$vb pmt=$pt" >> $L
|
||||
[ "$pt" -gt 55000 ] && { why=pmic-55C; break; }
|
||||
if [ "$vb" -le $VMIN ]; then low=$((low + 1)); else low=0; fi; [ $low -ge 3 ] && { why=vbat-reached-VMIN; break; }
|
||||
[ $((t - t0)) -ge $MAX ] && break
|
||||
sleep 10
|
||||
done
|
||||
kill $P; echo "LOAD-STOP up=$(cut -d' ' -f1 /proc/uptime) reason=$why" >> $L
|
||||
14
b10/b10b3/b10b3t-mon-start.sh
Normal file
14
b10/b10b3/b10b3t-mon-start.sh
Normal file
|
|
@ -0,0 +1,14 @@
|
|||
#!/bin/sh
|
||||
# 480s side, t1 diagnostic (B10B-3T v2 image, FAST_CHG_ON check): wait for the NEW boot's NCM, then at once push b10b3-mon.sh to the board and start it (5 s, EVDD=00/00, VMAX 4.15 V),
|
||||
# then start the 30-s pull into logs/b10/b10b3/<K>-mon.txt. Board side reads only (writes /tmp only). usage: b10b3b-mon-start.sh K
|
||||
K=$1; [ -n "$K" ] || { echo "usage: $0 K"; exit 2; }
|
||||
cd ~/doc/modem/jz08-aurora; A=logs/b10/b10b3/$K-actions.txt; act() { echo "$(date -u +%H:%M:%S.%3N) $*" | tee -a $A; }
|
||||
rm -f logs/b10/b10b3/pull.stop
|
||||
act "mon-start $K: waiting for the board to go away (warm reboot)"; until ! ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do sleep 0.5; done; act "board gone"
|
||||
until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do sleep 0.5; done; act "NCM up"
|
||||
i=0; until { sleep 1; printf 'nc -l -p 9957 > /tmp/b10b3-mon.sh &\r\n'; sleep 1; } | ncat -w 4 172.16.42.1 23 >/dev/null 2>&1; do i=$((i+1)); [ $i -ge 60 ] && { act "ABORT: no telnet"; exit 1; }; sleep 1; done
|
||||
sleep 1; ncat --send-only 172.16.42.1 9957 < b10/b10b3/b10b3-mon.sh; sleep 1
|
||||
sh b10/b10b3/b10b3-cmd.sh 3 'md5sum /tmp/b10b3-mon.sh; rm -f /tmp/b10b3-mon.stop; VMAX=4150000 EVDD=00 EVDD2=00 setsid sh /tmp/b10b3-mon.sh 5 > /dev/null 2>&1 < /dev/null & sleep 1; dmesg | grep -E "safety timer|supervisor"; cut -d" " -f1 /proc/uptime' | tee -a $A
|
||||
act "local md5 $(md5sum < b10/b10b3/b10b3-mon.sh)"
|
||||
setsid nohup sh b10/b10b3/b10b3-pull.sh $K > /dev/null 2>&1 < /dev/null &
|
||||
act "monitor started (5 s), pull started -> logs/b10/b10b3/$K-mon.txt"
|
||||
14
b10/b10b3/b10b4-act.sh
Executable file
14
b10/b10b3/b10b4-act.sh
Executable file
|
|
@ -0,0 +1,14 @@
|
|||
#!/bin/sh
|
||||
# B10B-4 board side: apply ONE hook command (or "none") and log fast: 1 s x 12, then 5 s x 10 (≈ 62 s). Reads only, except the single hook write.
|
||||
# usage: b10b4-act.sh TAG "susp 1"|"vdd 0"|"ibat 0"|none -> /tmp/b4-TAG.log
|
||||
T=$1; CMD=$2; L=/tmp/b4-$T.log; R=/sys/kernel/debug/regmap/0-00/registers; D=/sys/bus/iio/devices/iio:device0; H=/sys/kernel/debug/pm8916_lbc/b10b4
|
||||
grep -q " /sys/kernel/debug " /proc/mounts || mount -t debugfs debugfs /sys/kernel/debug
|
||||
rd() { dd if=$R bs=9 skip=$(($1)) count=1 2>/dev/null | cut -d' ' -f2; }
|
||||
s() { echo "S $1 up=$(cut -d' ' -f1 /proc/uptime) vbat=$(cat $D/in_voltage6_input) vph=$(cat $D/in_voltage7_input) usbin=$(cat $D/in_voltage0_input) pmt=$(cat $D/in_temp8_input) chgst=$(rd 0x1009) crt=$(rd 0x1010) urt=$(rd 0x1310) path=$(rd 0x1308) susp=$(rd 0x1347) vdd=$(rd 0x1040) ibat=$(rd 0x1044) ctrl=$(rd 0x1049) failed=$(rd 0x104a) st=$(head -1 /sys/kernel/debug/pm8916_lbc/state | cut -d' ' -f2)" >> $L; }
|
||||
trap '' HUP
|
||||
echo "BEGIN $T cmd='$CMD' $(date -u +%T)" >> $L
|
||||
s pre; s pre
|
||||
if [ "$CMD" != none ]; then echo "$CMD" > $H; echo "WRITE rc=$? '$CMD' up=$(cut -d' ' -f1 /proc/uptime)" >> $L; dmesg | grep "B10B-4 TEST hook" | tail -1 >> $L; fi
|
||||
i=0; while [ $i -lt 12 ]; do s "+${i}s"; sleep 1; i=$((i+1)); done
|
||||
i=0; while [ $i -lt 10 ]; do sleep 5; s "+$((12+5*i+5))s"; i=$((i+1)); done
|
||||
echo "END $T $(date -u +%T)" >> $L
|
||||
60
b10/b10b3/b10b4-boot.sh
Executable file
60
b10/b10b3/b10b4-boot.sh
Executable file
|
|
@ -0,0 +1,60 @@
|
|||
#!/bin/sh
|
||||
# 480s side, B10B-4 actuator-audit TEST image (TEST-ONLY kernel, debugfs pm8916_lbc/b10b4) boot K (RAM only). RESET-held power-on -> lk1st fastboot -> `fastboot boot` B10B-3 RAM image. Reads only over telnet.
|
||||
# MODE=cold: normal power-on (no RESET, no fastboot) -> lk2nd extlinux from eMMC cache. Script only observes + reads over telnet;
|
||||
# nothing is written to eMMC. Visual display checks need the operator. Adds display/fbcon/getty/console checks to the B8F snapshot.
|
||||
K=$1; MODE=ram; [ -n "$K" ] || { echo "usage: $0 K"; exit 2; }
|
||||
cd ~/doc/modem/jz08-aurora; O=logs/b10/b10b3/b4r$K; mkdir -p $O; IMG=b10/b10b3/out-b4/aurora-b10b4.img
|
||||
A=$O/host-actions.txt; act() { echo "$(date -u +%H:%M:%S.%3N) $*" | tee -a $A; }
|
||||
tn() { { sleep 1; sed "s/\$/\r/" "$1"; sleep $2; } | ncat 172.16.42.1 23 | tr -d "\000\r"; }
|
||||
OLD=$(ps -eo pid,cmd | grep "[u]artlog.py /dev/ttyUSB0" | awk '{print $1}'); [ -n "$OLD" ] && kill $OLD; sleep 1
|
||||
U=logs/uart/b10b4-$MODE$K-$(date +%Y%m%d-%H%M%S); setsid nohup python3 tools/uartlog.py /dev/ttyUSB0 $U > $U.stderr 2>&1 < /dev/null &
|
||||
if [ $MODE = ram ]; then
|
||||
echo "eeff682053ac49abfa3952a2d3957dcbf5cd384280f35647ec40eb83835dc38b $IMG" | sha256sum -c || exit 1
|
||||
act "B10B4 $MODE$K: waiting for fastboot <EMMC_SERIAL> (power off >= 90 s, then RESET held + battery -> USB)"
|
||||
if fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; then act "already in fastboot - wait for power-off"; until ! fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; do sleep 1; done; fi
|
||||
i=0; until fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; do i=$((i+1)); [ $i -ge 1800 ] && { act "ABORT: no fastboot"; exit 1; }; sleep 2; done
|
||||
act "fastboot present"; { fastboot boot $IMG 2>&1; echo "rc=$?"; } | tee -a $A
|
||||
else
|
||||
act "B10B4 $MODE$K: waiting for the board to go away (power off >= 90 s), then normal power-on WITHOUT RESET"
|
||||
until ! ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do sleep 1; done; act "board unreachable (powered off)"
|
||||
until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL> && { act "ABORT: board is in fastboot - RESET was held?"; exit 1; }; sleep 1; done
|
||||
fi
|
||||
i=0; until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do i=$((i+1)); [ $i -ge 180 ] && { act "ABORT: NCM not up"; cp $U.log $O/uart.log; exit 1; }; sleep 1; done; act "NCM ping ok"
|
||||
R=$(grep -a "rtc-pm8xxx.*setting system clock" $U.log | tail -1 | sed -n 's/.*(\([0-9]*\)).*/\1/p'); C=B; [ -n "$R" ] && [ "$R" -lt 40 ] && C=A; act "RTC at boot ${R:-?} s -> class $C"
|
||||
printf 'cat /proc/device-tree/model; echo; uname -r; grep -E "START OK|FAIL in|rollback" /run/aurora-modem/lifecycle.log | tail -1\n' > $O/.w
|
||||
i=0; until tn $O/.w 3 | grep -qE "^\[[0-9.]+\] .*(=== START OK|FAIL in|rollback)"; do i=$((i+1)); [ $i -ge 80 ] && { act "no START OK/FAIL after ~12 min"; break; }; sleep 6; done
|
||||
tn $O/.w 3 | grep -aE "Aurora|aurora-b8|START OK|FAIL" | tee -a $A
|
||||
printf 'grep -E "AP ENABLED|FAIL" /run/aurora-wifi/wifi.log | tail -1\n' > $O/.a
|
||||
i=0; until tn $O/.a 3 | grep -qE "^\[[0-9.]+\] (=== AP ENABLED|FAIL)"; do i=$((i+1)); [ $i -ge 20 ] && { act "no AP ENABLED/FAIL after ~3 min"; break; }; sleep 6; done
|
||||
act "wifi: $(tn $O/.a 3 | grep -E '^\[[0-9.]+\] (=== AP ENABLED|FAIL)' | tail -1)"
|
||||
printf 'grep -E "SNTP (check|STEP|: )" /run/aurora-modem/lifecycle.log | tail -2\n' > $O/.s
|
||||
i=0; until tn $O/.s 3 | grep -qE "^\[[0-9.]+\] SNTP"; do i=$((i+1)); [ $i -ge 15 ] && break; sleep 4; done; act "sntp: $(tn $O/.s 3 | grep -E '^\[[0-9.]+\] SNTP' | tail -2 | tr '\n' ' ')"
|
||||
cat > $O/.c <<'C'
|
||||
echo SNAP-BEGIN; cat /proc/uptime; date -u; cat /proc/device-tree/model; echo; uname -a; cat /proc/cmdline
|
||||
echo ---time; cat /run/aurora-modem/time-set; grep -E "TIME|SNTP" /run/aurora-modem/lifecycle.log | tail -4
|
||||
echo ---modem; /etc/init.d/aurora-modem status
|
||||
echo ---wifi; /etc/init.d/aurora-wifi status; echo ---wifilog; cat /run/aurora-wifi/wifi.log; cat /run/aurora-wifi/service.log; echo ---hostapdlog; cat /run/aurora-wifi/hostapd.log
|
||||
for r in /sys/class/remoteproc/*; do echo "RP $(cat $r/name)=$(cat $r/state)"; done; iw dev
|
||||
echo ---dmesg-wifi; dmesg | grep -iE "wcn36xx|wcnss|a204000|cfg80211|aurora-wifi|crash|watchdog"
|
||||
echo ---ping; ping -c4 -W3 -I wwan0 77.88.8.8 | tail -2
|
||||
echo ---display; /etc/init.d/aurora-display status; cat /run/aurora-display/display.log; cat /run/aurora-display/service.log
|
||||
echo ---consoles; cat /sys/class/tty/console/active; for v in /sys/class/vtconsole/vtcon*; do echo "$v $(cat $v/bind) $(cat $v/name)"; done; ls -l /proc/[0-9]*/fd/0 2>/dev/null | grep -E "ttyMSM0|tty1|console" | sed "s/.* \/proc/\/proc/"
|
||||
echo ---getty; hostname; ps | grep -E "[g]etty|[c]ttyhack| sh$"
|
||||
echo ---fb; ls -l /dev/dri/card0 /dev/fb0; for f in name bits_per_pixel virtual_size stride; do echo "fb0 $f=$(cat /sys/class/graphics/fb0/$f)"; done; cat /sys/class/drm/card0-SPI-1/enabled /sys/class/drm/card0-SPI-1/dpms
|
||||
echo ---regs; for r in /sys/class/regulator/regulator.*; do n=$(cat $r/name); case $n in l6|l17) echo "$n $(cat $r/state) $(cat $r/microvolts) users=$(cat $r/num_users)";; esac; done
|
||||
echo ---bl; for f in bl_power brightness actual_brightness; do echo "bl $f=$(cat /sys/class/backlight/backlight/$f)"; done
|
||||
echo ---dmesg-display; dmesg | grep -iE "drm|panel|mipi|spi_qup|78b8000|fbcon|Console: |frame buffer|backlight|aurora-display|l17"
|
||||
echo ---display-errors; dmesg | grep -iE "drm|panel|mipi|spi0|fbcon|backlight|aurora-display" | grep -ciE "err|fail|timeout|warn"
|
||||
echo ---iio; for d in /sys/bus/iio/devices/iio:device*; do echo "$d name=$(cat $d/name)"; ls $d | tr '\n' ' '; echo; done
|
||||
for f in /sys/bus/iio/devices/iio:device*/in_*; do case $f in *_raw|*_input|*_scale|*_offset) echo "$f=$(cat $f 2>&1)";; esac; done
|
||||
echo ---psy; ls -l /sys/class/power_supply/; for p in /sys/class/power_supply/*; do echo "-- $p"; cat $p/uevent; ls $p; done
|
||||
echo ---dmesg-bms; dmesg | grep -iE "bms|battery|power_supply|lbc|charger|extcon|ci_hdrc|4000|1000"
|
||||
echo ---lbc-state; grep -q " /sys/kernel/debug " /proc/mounts || mount -t debugfs debugfs /sys/kernel/debug; cat /sys/kernel/debug/pm8916_lbc/state; dmesg | grep -E "safety timer|supervisor|pm8916-lbc|lbc"
|
||||
echo ---thermal; for t in /sys/class/thermal/thermal_zone*; do echo "$t $(cat $t/type) $(cat $t/temp)"; done
|
||||
echo ---dmesg-adc; dmesg | grep -iE "vadc|iio|temp-alarm|qpnp|spmi-temp|pm8916-thermal|thermal"
|
||||
echo ---emmc; awk "{print \"w=\"\$5\" s=\"\$7}" /sys/block/mmcblk0/stat
|
||||
echo SNAP-END
|
||||
C
|
||||
tn $O/.c 25 > $O/snapshot.txt; act "snapshot: $(grep -c SNAP-END $O/snapshot.txt) end markers; $(grep -E '^RP a204' $O/snapshot.txt)"
|
||||
printf 'dmesg > /tmp/dm.txt; nc -l -p 9881 < /tmp/dm.txt &\n' > $O/.d; tn $O/.d 3 >/dev/null; sleep 1; ncat --recv-only 172.16.42.1 9881 > $O/dmesg.full
|
||||
cp $U.log $O/uart.log; act "B10B4 $MODE$K END - operator visual check next"
|
||||
14
b10/b10b3/b10b4-mon-start.sh
Executable file
14
b10/b10b3/b10b4-mon-start.sh
Executable file
|
|
@ -0,0 +1,14 @@
|
|||
#!/bin/sh
|
||||
# 480s side, B10B-4 actuator audit: wait for the NEW boot's NCM, then at once push b10b3-mon.sh to the board and start it (5 s, EVDD=08/02, VMAX 4.23 V),
|
||||
# then start the 30-s pull into logs/b10/b10b3/<K>-mon.txt. Board side reads only (writes /tmp only). usage: b10b3b-mon-start.sh K
|
||||
K=$1; [ -n "$K" ] || { echo "usage: $0 K"; exit 2; }
|
||||
cd ~/doc/modem/jz08-aurora; A=logs/b10/b10b3/$K-actions.txt; act() { echo "$(date -u +%H:%M:%S.%3N) $*" | tee -a $A; }
|
||||
rm -f logs/b10/b10b3/pull.stop
|
||||
act "mon-start $K: waiting for lk1st fastboot (RESET-held reboot), then for the new boot"; until fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; do sleep 1; done; act "fastboot seen"; until ! fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; do sleep 1; done; act "fastboot gone (booting)"
|
||||
until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do sleep 0.5; done; act "NCM up"
|
||||
i=0; until { sleep 1; printf 'nc -l -p 9981 > /tmp/b10b3-mon.sh &\r\n'; sleep 1; } | ncat -w 4 172.16.42.1 23 >/dev/null 2>&1; do i=$((i+1)); [ $i -ge 60 ] && { act "ABORT: no telnet"; exit 1; }; sleep 1; done
|
||||
sleep 1; ncat --send-only 172.16.42.1 9981 < b10/b10b3/b10b3-mon.sh; sleep 1
|
||||
sh b10/b10b3/b10b3-cmd.sh 3 'md5sum /tmp/b10b3-mon.sh; rm -f /tmp/b10b3-mon.stop; VMAX=4230000 EVDD=08 EVDD2=02 setsid sh /tmp/b10b3-mon.sh 30 > /dev/null 2>&1 < /dev/null & sleep 1; dmesg | grep -E "safety timer|supervisor"; cut -d" " -f1 /proc/uptime' | tee -a $A
|
||||
act "local md5 $(md5sum < b10/b10b3/b10b3-mon.sh)"
|
||||
setsid nohup sh b10/b10b3/b10b3-pull.sh $K > /dev/null 2>&1 < /dev/null &
|
||||
act "monitor started (30 s), pull started -> logs/b10/b10b3/$K-mon.txt"
|
||||
14
b10/b10b3/b10b5-act.sh
Executable file
14
b10/b10b3/b10b5-act.sh
Executable file
|
|
@ -0,0 +1,14 @@
|
|||
#!/bin/sh
|
||||
# B10B-5 board side: arm ONE TEST OVP FAULT injection ("ovp") or "none" and log fast: 1 s x 12, then 5 s x 10 (≈ 62 s). Reads only, except the single hook write.
|
||||
# usage: b10b4-act.sh TAG "susp 1"|"vdd 0"|"ibat 0"|none -> /tmp/b4-TAG.log
|
||||
T=$1; CMD=$2; L=/tmp/b5-$T.log; R=/sys/kernel/debug/regmap/0-00/registers; D=/sys/bus/iio/devices/iio:device0; H=/sys/kernel/debug/pm8916_lbc/b10b5_fault
|
||||
grep -q " /sys/kernel/debug " /proc/mounts || mount -t debugfs debugfs /sys/kernel/debug
|
||||
rd() { dd if=$R bs=9 skip=$(($1)) count=1 2>/dev/null | cut -d' ' -f2; }
|
||||
s() { echo "S $1 up=$(cut -d' ' -f1 /proc/uptime) vbat=$(cat $D/in_voltage6_input) vph=$(cat $D/in_voltage7_input) usbin=$(cat $D/in_voltage0_input) pmt=$(cat $D/in_temp8_input) chgst=$(rd 0x1009) crt=$(rd 0x1010) urt=$(rd 0x1310) path=$(rd 0x1308) susp=$(rd 0x1347) vdd=$(rd 0x1040) ibat=$(rd 0x1044) ctrl=$(rd 0x1049) failed=$(rd 0x104a) st=$(head -1 /sys/kernel/debug/pm8916_lbc/state | cut -d' ' -f2)" >> $L; }
|
||||
trap '' HUP
|
||||
echo "BEGIN $T cmd='$CMD' $(date -u +%T)" >> $L
|
||||
s pre; s pre
|
||||
if [ "$CMD" != none ]; then echo "$CMD" > $H; echo "WRITE rc=$? '$CMD' up=$(cut -d' ' -f1 /proc/uptime)" >> $L; sleep 1; dmesg | grep -E "FAULT safe clamp|B10B-5 TEST|-> FAULT" | tail -3 >> $L; fi
|
||||
i=0; while [ $i -lt 12 ]; do s "+${i}s"; sleep 1; i=$((i+1)); done
|
||||
i=0; while [ $i -lt 22 ]; do sleep 5; s "+$((12+5*i+5))s"; i=$((i+1)); done
|
||||
echo "END $T $(date -u +%T)" >> $L
|
||||
60
b10/b10b3/b10b5p-boot.sh
Executable file
60
b10/b10b3/b10b5p-boot.sh
Executable file
|
|
@ -0,0 +1,60 @@
|
|||
#!/bin/sh
|
||||
# 480s side, B10B-5 PRODUCTION v4 RAM smoke test (no test hooks) boot K (RAM only). RESET-held power-on -> lk1st fastboot -> `fastboot boot` B10B-3 RAM image. Reads only over telnet.
|
||||
# MODE=cold: normal power-on (no RESET, no fastboot) -> lk2nd extlinux from eMMC cache. Script only observes + reads over telnet;
|
||||
# nothing is written to eMMC. Visual display checks need the operator. Adds display/fbcon/getty/console checks to the B8F snapshot.
|
||||
K=$1; MODE=ram; [ -n "$K" ] || { echo "usage: $0 K"; exit 2; }
|
||||
cd ~/doc/modem/jz08-aurora; O=logs/b10/b10b3/b5p$K; mkdir -p $O; IMG=b10/b10b3/out-v4/aurora-b10b5.img
|
||||
A=$O/host-actions.txt; act() { echo "$(date -u +%H:%M:%S.%3N) $*" | tee -a $A; }
|
||||
tn() { { sleep 1; sed "s/\$/\r/" "$1"; sleep $2; } | ncat 172.16.42.1 23 | tr -d "\000\r"; }
|
||||
OLD=$(ps -eo pid,cmd | grep "[u]artlog.py /dev/ttyUSB0" | awk '{print $1}'); [ -n "$OLD" ] && kill $OLD; sleep 1
|
||||
U=logs/uart/b10b5p-$MODE$K-$(date +%Y%m%d-%H%M%S); setsid nohup python3 tools/uartlog.py /dev/ttyUSB0 $U > $U.stderr 2>&1 < /dev/null &
|
||||
if [ $MODE = ram ]; then
|
||||
echo "386502d3ca68b1c4dfb4bbf354f3abc48cfab497143a39f6272b79a3899c1e9b $IMG" | sha256sum -c || exit 1
|
||||
act "B10B5P $MODE$K: waiting for fastboot <EMMC_SERIAL> (power off >= 90 s, then RESET held + battery -> USB)"
|
||||
if fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; then act "already in fastboot - wait for power-off"; until ! fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; do sleep 1; done; fi
|
||||
i=0; until fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; do i=$((i+1)); [ $i -ge 1800 ] && { act "ABORT: no fastboot"; exit 1; }; sleep 2; done
|
||||
act "fastboot present"; { fastboot boot $IMG 2>&1; echo "rc=$?"; } | tee -a $A
|
||||
else
|
||||
act "B10B5P $MODE$K: waiting for the board to go away (power off >= 90 s), then normal power-on WITHOUT RESET"
|
||||
until ! ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do sleep 1; done; act "board unreachable (powered off)"
|
||||
until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL> && { act "ABORT: board is in fastboot - RESET was held?"; exit 1; }; sleep 1; done
|
||||
fi
|
||||
i=0; until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do i=$((i+1)); [ $i -ge 180 ] && { act "ABORT: NCM not up"; cp $U.log $O/uart.log; exit 1; }; sleep 1; done; act "NCM ping ok"
|
||||
R=$(grep -a "rtc-pm8xxx.*setting system clock" $U.log | tail -1 | sed -n 's/.*(\([0-9]*\)).*/\1/p'); C=B; [ -n "$R" ] && [ "$R" -lt 40 ] && C=A; act "RTC at boot ${R:-?} s -> class $C"
|
||||
printf 'cat /proc/device-tree/model; echo; uname -r; grep -E "START OK|FAIL in|rollback" /run/aurora-modem/lifecycle.log | tail -1\n' > $O/.w
|
||||
i=0; until tn $O/.w 3 | grep -qE "^\[[0-9.]+\] .*(=== START OK|FAIL in|rollback)"; do i=$((i+1)); [ $i -ge 80 ] && { act "no START OK/FAIL after ~12 min"; break; }; sleep 6; done
|
||||
tn $O/.w 3 | grep -aE "Aurora|aurora-b8|START OK|FAIL" | tee -a $A
|
||||
printf 'grep -E "AP ENABLED|FAIL" /run/aurora-wifi/wifi.log | tail -1\n' > $O/.a
|
||||
i=0; until tn $O/.a 3 | grep -qE "^\[[0-9.]+\] (=== AP ENABLED|FAIL)"; do i=$((i+1)); [ $i -ge 20 ] && { act "no AP ENABLED/FAIL after ~3 min"; break; }; sleep 6; done
|
||||
act "wifi: $(tn $O/.a 3 | grep -E '^\[[0-9.]+\] (=== AP ENABLED|FAIL)' | tail -1)"
|
||||
printf 'grep -E "SNTP (check|STEP|: )" /run/aurora-modem/lifecycle.log | tail -2\n' > $O/.s
|
||||
i=0; until tn $O/.s 3 | grep -qE "^\[[0-9.]+\] SNTP"; do i=$((i+1)); [ $i -ge 15 ] && break; sleep 4; done; act "sntp: $(tn $O/.s 3 | grep -E '^\[[0-9.]+\] SNTP' | tail -2 | tr '\n' ' ')"
|
||||
cat > $O/.c <<'C'
|
||||
echo SNAP-BEGIN; cat /proc/uptime; date -u; cat /proc/device-tree/model; echo; uname -a; cat /proc/cmdline
|
||||
echo ---time; cat /run/aurora-modem/time-set; grep -E "TIME|SNTP" /run/aurora-modem/lifecycle.log | tail -4
|
||||
echo ---modem; /etc/init.d/aurora-modem status
|
||||
echo ---wifi; /etc/init.d/aurora-wifi status; echo ---wifilog; cat /run/aurora-wifi/wifi.log; cat /run/aurora-wifi/service.log; echo ---hostapdlog; cat /run/aurora-wifi/hostapd.log
|
||||
for r in /sys/class/remoteproc/*; do echo "RP $(cat $r/name)=$(cat $r/state)"; done; iw dev
|
||||
echo ---dmesg-wifi; dmesg | grep -iE "wcn36xx|wcnss|a204000|cfg80211|aurora-wifi|crash|watchdog"
|
||||
echo ---ping; ping -c4 -W3 -I wwan0 77.88.8.8 | tail -2
|
||||
echo ---display; /etc/init.d/aurora-display status; cat /run/aurora-display/display.log; cat /run/aurora-display/service.log
|
||||
echo ---consoles; cat /sys/class/tty/console/active; for v in /sys/class/vtconsole/vtcon*; do echo "$v $(cat $v/bind) $(cat $v/name)"; done; ls -l /proc/[0-9]*/fd/0 2>/dev/null | grep -E "ttyMSM0|tty1|console" | sed "s/.* \/proc/\/proc/"
|
||||
echo ---getty; hostname; ps | grep -E "[g]etty|[c]ttyhack| sh$"
|
||||
echo ---fb; ls -l /dev/dri/card0 /dev/fb0; for f in name bits_per_pixel virtual_size stride; do echo "fb0 $f=$(cat /sys/class/graphics/fb0/$f)"; done; cat /sys/class/drm/card0-SPI-1/enabled /sys/class/drm/card0-SPI-1/dpms
|
||||
echo ---regs; for r in /sys/class/regulator/regulator.*; do n=$(cat $r/name); case $n in l6|l17) echo "$n $(cat $r/state) $(cat $r/microvolts) users=$(cat $r/num_users)";; esac; done
|
||||
echo ---bl; for f in bl_power brightness actual_brightness; do echo "bl $f=$(cat /sys/class/backlight/backlight/$f)"; done
|
||||
echo ---dmesg-display; dmesg | grep -iE "drm|panel|mipi|spi_qup|78b8000|fbcon|Console: |frame buffer|backlight|aurora-display|l17"
|
||||
echo ---display-errors; dmesg | grep -iE "drm|panel|mipi|spi0|fbcon|backlight|aurora-display" | grep -ciE "err|fail|timeout|warn"
|
||||
echo ---iio; for d in /sys/bus/iio/devices/iio:device*; do echo "$d name=$(cat $d/name)"; ls $d | tr '\n' ' '; echo; done
|
||||
for f in /sys/bus/iio/devices/iio:device*/in_*; do case $f in *_raw|*_input|*_scale|*_offset) echo "$f=$(cat $f 2>&1)";; esac; done
|
||||
echo ---psy; ls -l /sys/class/power_supply/; for p in /sys/class/power_supply/*; do echo "-- $p"; cat $p/uevent; ls $p; done
|
||||
echo ---dmesg-bms; dmesg | grep -iE "bms|battery|power_supply|lbc|charger|extcon|ci_hdrc|4000|1000"
|
||||
echo ---lbc-state; grep -q " /sys/kernel/debug " /proc/mounts || mount -t debugfs debugfs /sys/kernel/debug; cat /sys/kernel/debug/pm8916_lbc/state; dmesg | grep -E "safety timer|supervisor|pm8916-lbc|lbc"
|
||||
echo ---thermal; for t in /sys/class/thermal/thermal_zone*; do echo "$t $(cat $t/type) $(cat $t/temp)"; done
|
||||
echo ---dmesg-adc; dmesg | grep -iE "vadc|iio|temp-alarm|qpnp|spmi-temp|pm8916-thermal|thermal"
|
||||
echo ---emmc; awk "{print \"w=\"\$5\" s=\"\$7}" /sys/block/mmcblk0/stat
|
||||
echo SNAP-END
|
||||
C
|
||||
tn $O/.c 25 > $O/snapshot.txt; act "snapshot: $(grep -c SNAP-END $O/snapshot.txt) end markers; $(grep -E '^RP a204' $O/snapshot.txt)"
|
||||
printf 'dmesg > /tmp/dm.txt; nc -l -p 9881 < /tmp/dm.txt &\n' > $O/.d; tn $O/.d 3 >/dev/null; sleep 1; ncat --recv-only 172.16.42.1 9881 > $O/dmesg.full
|
||||
cp $U.log $O/uart.log; act "B10B5P $MODE$K END - operator visual check next"
|
||||
60
b10/b10b3/b10b5t-boot.sh
Executable file
60
b10/b10b3/b10b5t-boot.sh
Executable file
|
|
@ -0,0 +1,60 @@
|
|||
#!/bin/sh
|
||||
# 480s side, B10B-5 FAULT-clamp regression TEST image (TEST-ONLY kernel v4 + FAULT injection) boot K (RAM only). RESET-held power-on -> lk1st fastboot -> `fastboot boot` B10B-3 RAM image. Reads only over telnet.
|
||||
# MODE=cold: normal power-on (no RESET, no fastboot) -> lk2nd extlinux from eMMC cache. Script only observes + reads over telnet;
|
||||
# nothing is written to eMMC. Visual display checks need the operator. Adds display/fbcon/getty/console checks to the B8F snapshot.
|
||||
K=$1; MODE=ram; [ -n "$K" ] || { echo "usage: $0 K"; exit 2; }
|
||||
cd ~/doc/modem/jz08-aurora; O=logs/b10/b10b3/b5r$K; mkdir -p $O; IMG=b10/b10b3/out-b5t/aurora-b10b5t.img
|
||||
A=$O/host-actions.txt; act() { echo "$(date -u +%H:%M:%S.%3N) $*" | tee -a $A; }
|
||||
tn() { { sleep 1; sed "s/\$/\r/" "$1"; sleep $2; } | ncat 172.16.42.1 23 | tr -d "\000\r"; }
|
||||
OLD=$(ps -eo pid,cmd | grep "[u]artlog.py /dev/ttyUSB0" | awk '{print $1}'); [ -n "$OLD" ] && kill $OLD; sleep 1
|
||||
U=logs/uart/b10b5t-$MODE$K-$(date +%Y%m%d-%H%M%S); setsid nohup python3 tools/uartlog.py /dev/ttyUSB0 $U > $U.stderr 2>&1 < /dev/null &
|
||||
if [ $MODE = ram ]; then
|
||||
echo "ea37a67cb488b627bd52603cf7c686e34d1c7e5232bfdb13b891b7f89f2e1cae $IMG" | sha256sum -c || exit 1
|
||||
act "B10B5T $MODE$K: waiting for fastboot <EMMC_SERIAL> (power off >= 90 s, then RESET held + battery -> USB)"
|
||||
if fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; then act "already in fastboot - wait for power-off"; until ! fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; do sleep 1; done; fi
|
||||
i=0; until fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL>; do i=$((i+1)); [ $i -ge 1800 ] && { act "ABORT: no fastboot"; exit 1; }; sleep 2; done
|
||||
act "fastboot present"; { fastboot boot $IMG 2>&1; echo "rc=$?"; } | tee -a $A
|
||||
else
|
||||
act "B10B5T $MODE$K: waiting for the board to go away (power off >= 90 s), then normal power-on WITHOUT RESET"
|
||||
until ! ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do sleep 1; done; act "board unreachable (powered off)"
|
||||
until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do fastboot devices 2>/dev/null | grep -q <EMMC_SERIAL> && { act "ABORT: board is in fastboot - RESET was held?"; exit 1; }; sleep 1; done
|
||||
fi
|
||||
i=0; until ping -c1 -W1 172.16.42.1 >/dev/null 2>&1; do i=$((i+1)); [ $i -ge 180 ] && { act "ABORT: NCM not up"; cp $U.log $O/uart.log; exit 1; }; sleep 1; done; act "NCM ping ok"
|
||||
R=$(grep -a "rtc-pm8xxx.*setting system clock" $U.log | tail -1 | sed -n 's/.*(\([0-9]*\)).*/\1/p'); C=B; [ -n "$R" ] && [ "$R" -lt 40 ] && C=A; act "RTC at boot ${R:-?} s -> class $C"
|
||||
printf 'cat /proc/device-tree/model; echo; uname -r; grep -E "START OK|FAIL in|rollback" /run/aurora-modem/lifecycle.log | tail -1\n' > $O/.w
|
||||
i=0; until tn $O/.w 3 | grep -qE "^\[[0-9.]+\] .*(=== START OK|FAIL in|rollback)"; do i=$((i+1)); [ $i -ge 80 ] && { act "no START OK/FAIL after ~12 min"; break; }; sleep 6; done
|
||||
tn $O/.w 3 | grep -aE "Aurora|aurora-b8|START OK|FAIL" | tee -a $A
|
||||
printf 'grep -E "AP ENABLED|FAIL" /run/aurora-wifi/wifi.log | tail -1\n' > $O/.a
|
||||
i=0; until tn $O/.a 3 | grep -qE "^\[[0-9.]+\] (=== AP ENABLED|FAIL)"; do i=$((i+1)); [ $i -ge 20 ] && { act "no AP ENABLED/FAIL after ~3 min"; break; }; sleep 6; done
|
||||
act "wifi: $(tn $O/.a 3 | grep -E '^\[[0-9.]+\] (=== AP ENABLED|FAIL)' | tail -1)"
|
||||
printf 'grep -E "SNTP (check|STEP|: )" /run/aurora-modem/lifecycle.log | tail -2\n' > $O/.s
|
||||
i=0; until tn $O/.s 3 | grep -qE "^\[[0-9.]+\] SNTP"; do i=$((i+1)); [ $i -ge 15 ] && break; sleep 4; done; act "sntp: $(tn $O/.s 3 | grep -E '^\[[0-9.]+\] SNTP' | tail -2 | tr '\n' ' ')"
|
||||
cat > $O/.c <<'C'
|
||||
echo SNAP-BEGIN; cat /proc/uptime; date -u; cat /proc/device-tree/model; echo; uname -a; cat /proc/cmdline
|
||||
echo ---time; cat /run/aurora-modem/time-set; grep -E "TIME|SNTP" /run/aurora-modem/lifecycle.log | tail -4
|
||||
echo ---modem; /etc/init.d/aurora-modem status
|
||||
echo ---wifi; /etc/init.d/aurora-wifi status; echo ---wifilog; cat /run/aurora-wifi/wifi.log; cat /run/aurora-wifi/service.log; echo ---hostapdlog; cat /run/aurora-wifi/hostapd.log
|
||||
for r in /sys/class/remoteproc/*; do echo "RP $(cat $r/name)=$(cat $r/state)"; done; iw dev
|
||||
echo ---dmesg-wifi; dmesg | grep -iE "wcn36xx|wcnss|a204000|cfg80211|aurora-wifi|crash|watchdog"
|
||||
echo ---ping; ping -c4 -W3 -I wwan0 77.88.8.8 | tail -2
|
||||
echo ---display; /etc/init.d/aurora-display status; cat /run/aurora-display/display.log; cat /run/aurora-display/service.log
|
||||
echo ---consoles; cat /sys/class/tty/console/active; for v in /sys/class/vtconsole/vtcon*; do echo "$v $(cat $v/bind) $(cat $v/name)"; done; ls -l /proc/[0-9]*/fd/0 2>/dev/null | grep -E "ttyMSM0|tty1|console" | sed "s/.* \/proc/\/proc/"
|
||||
echo ---getty; hostname; ps | grep -E "[g]etty|[c]ttyhack| sh$"
|
||||
echo ---fb; ls -l /dev/dri/card0 /dev/fb0; for f in name bits_per_pixel virtual_size stride; do echo "fb0 $f=$(cat /sys/class/graphics/fb0/$f)"; done; cat /sys/class/drm/card0-SPI-1/enabled /sys/class/drm/card0-SPI-1/dpms
|
||||
echo ---regs; for r in /sys/class/regulator/regulator.*; do n=$(cat $r/name); case $n in l6|l17) echo "$n $(cat $r/state) $(cat $r/microvolts) users=$(cat $r/num_users)";; esac; done
|
||||
echo ---bl; for f in bl_power brightness actual_brightness; do echo "bl $f=$(cat /sys/class/backlight/backlight/$f)"; done
|
||||
echo ---dmesg-display; dmesg | grep -iE "drm|panel|mipi|spi_qup|78b8000|fbcon|Console: |frame buffer|backlight|aurora-display|l17"
|
||||
echo ---display-errors; dmesg | grep -iE "drm|panel|mipi|spi0|fbcon|backlight|aurora-display" | grep -ciE "err|fail|timeout|warn"
|
||||
echo ---iio; for d in /sys/bus/iio/devices/iio:device*; do echo "$d name=$(cat $d/name)"; ls $d | tr '\n' ' '; echo; done
|
||||
for f in /sys/bus/iio/devices/iio:device*/in_*; do case $f in *_raw|*_input|*_scale|*_offset) echo "$f=$(cat $f 2>&1)";; esac; done
|
||||
echo ---psy; ls -l /sys/class/power_supply/; for p in /sys/class/power_supply/*; do echo "-- $p"; cat $p/uevent; ls $p; done
|
||||
echo ---dmesg-bms; dmesg | grep -iE "bms|battery|power_supply|lbc|charger|extcon|ci_hdrc|4000|1000"
|
||||
echo ---lbc-state; grep -q " /sys/kernel/debug " /proc/mounts || mount -t debugfs debugfs /sys/kernel/debug; cat /sys/kernel/debug/pm8916_lbc/state; dmesg | grep -E "safety timer|supervisor|pm8916-lbc|lbc"
|
||||
echo ---thermal; for t in /sys/class/thermal/thermal_zone*; do echo "$t $(cat $t/type) $(cat $t/temp)"; done
|
||||
echo ---dmesg-adc; dmesg | grep -iE "vadc|iio|temp-alarm|qpnp|spmi-temp|pm8916-thermal|thermal"
|
||||
echo ---emmc; awk "{print \"w=\"\$5\" s=\"\$7}" /sys/block/mmcblk0/stat
|
||||
echo SNAP-END
|
||||
C
|
||||
tn $O/.c 25 > $O/snapshot.txt; act "snapshot: $(grep -c SNAP-END $O/snapshot.txt) end markers; $(grep -E '^RP a204' $O/snapshot.txt)"
|
||||
printf 'dmesg > /tmp/dm.txt; nc -l -p 9881 < /tmp/dm.txt &\n' > $O/.d; tn $O/.d 3 >/dev/null; sleep 1; ncat --recv-only 172.16.42.1 9881 > $O/dmesg.full
|
||||
cp $U.log $O/uart.log; act "B10B5T $MODE$K END - operator visual check next"
|
||||
17
b10/b10b3/b9c-discharge.sh
Normal file
17
b10/b10b3/b9c-discharge.sh
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
#!/bin/sh
|
||||
# Pre-t1 discharge on B9C (no VADC; VBAT read by the operator's DMM): N x `yes`, stop on /tmp/b9c-dis.stop, CPU > 80 C, or after MAX s. Writes /tmp only.
|
||||
N=${1:-4}; MAX=${2:-3600}; L=/tmp/b9c-dis.log
|
||||
trap '' HUP
|
||||
t0=$(cut -d. -f1 /proc/uptime); P=""
|
||||
for i in $(seq 1 $N); do yes > /dev/null & P="$P $!"; done
|
||||
echo "LOAD-START up=$t0 n=$N pids=$P" >> $L
|
||||
why=timeout
|
||||
while :; do
|
||||
t=$(cut -d. -f1 /proc/uptime); ct=$(cat /sys/class/thermal/thermal_zone*/temp | sort -n | tail -1)
|
||||
echo "L up=$t cpumax=$ct" >> $L
|
||||
[ -e /tmp/b9c-dis.stop ] && { why=operator; break; }
|
||||
[ "$ct" -gt 80000 ] && { why=cpu-80C; break; }
|
||||
[ $((t - t0)) -ge $MAX ] && break
|
||||
sleep 10
|
||||
done
|
||||
kill $P; echo "LOAD-STOP up=$(cut -d' ' -f1 /proc/uptime) reason=$why" >> $L
|
||||
19
b10/b10b3/build-b10b3.sh
Executable file
19
b10/b10b3/build-b10b3.sh
Executable file
|
|
@ -0,0 +1,19 @@
|
|||
#!/bin/sh
|
||||
# B10B-3 RAM test image (fastboot boot only - never flash; cache B9C / aboot untouched):
|
||||
# kernel = out-b10b3 (b10b2 options; built from /home/q/aurora-kbuild/src-b10b3 = src + linux/patches/b10b3-lbc-supervisor-v3.patch).
|
||||
# DTB = linux/dts/msm8916-jz08-aurora-b10b3.dtb (production v3 values: 4.20 V / HOLD 4.05 V / full-min 4.15 V / CV 60 min / 450 mA / 512 min)
|
||||
# initramfs + cmdline = exact B9C (b9/b9c/out). out/ contains the B8F initramfs (Wi-Fi PSK): never publish.
|
||||
set -e; cd "$(dirname "$0")"; O=out; KB=/home/q/aurora-kbuild/out-b10b3; L=../../linux; B9C=../../b9/b9c/out
|
||||
mkdir -p $O
|
||||
echo "7ca9cc794a3b85d3b7240f6311ad03bee9e1a4a59aae2ed9438318e853f7c3dc $L/dts/msm8916-jz08-aurora-b9b.dtb" | sha256sum -c
|
||||
grep " initramfs-b9c.cpio.gz\$" $B9C/SHA256SUMS | sed "s| | $B9C/|" | sha256sum -c
|
||||
grep " cmdline.txt\$" $B9C/SHA256SUMS | sed "s| | $B9C/|" | sha256sum -c
|
||||
for s in IIO=y QCOM_SPMI_VADC=y BATTERY_PM8916_BMS_VM=y CHARGER_PM8916_LBC=y QCOM_SPMI_TEMP_ALARM=y 'LOCALVERSION="-aurora-b10b3"'; do grep -q "^CONFIG_$s\$" $KB/.config || { echo "STOP: CONFIG_$s"; exit 1; }; done
|
||||
|
||||
cp $KB/arch/arm64/boot/Image.gz $O/Image.gz; cp $KB/.config $O/config-b10b3; cp $L/dts/msm8916-jz08-aurora-b10b3.dtb $O/aurora-b10b3.dtb
|
||||
cp $B9C/initramfs-b9c.cpio.gz $O/initramfs.cpio.gz; cp $B9C/cmdline.txt $O/cmdline.txt
|
||||
cat $O/Image.gz $O/aurora-b10b3.dtb > $O/Image.gz-dtb
|
||||
python3 ../../b6p/mkbootimg.py $O/Image.gz-dtb $O/initramfs.cpio.gz $O/cmdline.txt $O/aurora-b10b3.img
|
||||
SZ=$(python3 -c "import struct;print(struct.unpack_from('<Q',open('$KB/arch/arm64/boot/Image','rb').read(24),16)[0])")
|
||||
printf 'kernel image_size 0x%x, RAM-boot end 0x%x (< 0x81e00000 DTB)\n' $SZ $((0x80000000 + SZ)); [ $((0x80000000 + SZ)) -lt $((0x81e00000)) ]
|
||||
(cd $O && sha256sum Image.gz aurora-b10b3.dtb Image.gz-dtb config-b10b3 cmdline.txt initramfs.cpio.gz aurora-b10b3.img > SHA256SUMS; cat SHA256SUMS); ls -l $O/aurora-b10b3.img
|
||||
19
b10/b10b3/build-b10b3b.sh
Executable file
19
b10/b10b3/build-b10b3b.sh
Executable file
|
|
@ -0,0 +1,19 @@
|
|||
#!/bin/sh
|
||||
# B10B-3 Test B TEST-ONLY RAM image (safety timer in HOLD; never for persistent use) (fastboot boot only - never flash; cache B9C / aboot untouched):
|
||||
# kernel = out-b10b3 (b10b2 options; built from /home/q/aurora-kbuild/src-b10b3 = src + linux/patches/b10b3-lbc-supervisor-v3.patch).
|
||||
# DTB = linux/dts/msm8916-jz08-aurora-b10b3b.dtb (TEST B: production v3 DTB with charge 4.05 V, hold 4.00 V, full-min 4.03 V, cv 2 min, timer 8 min)
|
||||
# initramfs + cmdline = exact B9C (b9/b9c/out). out/ contains the B8F initramfs (Wi-Fi PSK): never publish.
|
||||
set -e; cd "$(dirname "$0")"; O=out-b; KB=/home/q/aurora-kbuild/out-b10b3; L=../../linux; B9C=../../b9/b9c/out
|
||||
mkdir -p $O
|
||||
echo "7ca9cc794a3b85d3b7240f6311ad03bee9e1a4a59aae2ed9438318e853f7c3dc $L/dts/msm8916-jz08-aurora-b9b.dtb" | sha256sum -c
|
||||
grep " initramfs-b9c.cpio.gz\$" $B9C/SHA256SUMS | sed "s| | $B9C/|" | sha256sum -c
|
||||
grep " cmdline.txt\$" $B9C/SHA256SUMS | sed "s| | $B9C/|" | sha256sum -c
|
||||
for s in IIO=y QCOM_SPMI_VADC=y BATTERY_PM8916_BMS_VM=y CHARGER_PM8916_LBC=y QCOM_SPMI_TEMP_ALARM=y 'LOCALVERSION="-aurora-b10b3"'; do grep -q "^CONFIG_$s\$" $KB/.config || { echo "STOP: CONFIG_$s"; exit 1; }; done
|
||||
|
||||
cp $KB/arch/arm64/boot/Image.gz $O/Image.gz; cp $KB/.config $O/config-b10b3; cp $L/dts/msm8916-jz08-aurora-b10b3b.dtb $O/aurora-b10b3b.dtb
|
||||
cp $B9C/initramfs-b9c.cpio.gz $O/initramfs.cpio.gz; cp $B9C/cmdline.txt $O/cmdline.txt
|
||||
cat $O/Image.gz $O/aurora-b10b3b.dtb > $O/Image.gz-dtb
|
||||
python3 ../../b6p/mkbootimg.py $O/Image.gz-dtb $O/initramfs.cpio.gz $O/cmdline.txt $O/aurora-b10b3b.img
|
||||
SZ=$(python3 -c "import struct;print(struct.unpack_from('<Q',open('$KB/arch/arm64/boot/Image','rb').read(24),16)[0])")
|
||||
printf 'kernel image_size 0x%x, RAM-boot end 0x%x (< 0x81e00000 DTB)\n' $SZ $((0x80000000 + SZ)); [ $((0x80000000 + SZ)) -lt $((0x81e00000)) ]
|
||||
(cd $O && sha256sum Image.gz aurora-b10b3b.dtb Image.gz-dtb config-b10b3 cmdline.txt initramfs.cpio.gz aurora-b10b3b.img > SHA256SUMS; cat SHA256SUMS); ls -l $O/aurora-b10b3b.img
|
||||
19
b10/b10b3/build-b10b3c.sh
Executable file
19
b10/b10b3/build-b10b3c.sh
Executable file
|
|
@ -0,0 +1,19 @@
|
|||
#!/bin/sh
|
||||
# B10B-3 Test C TEST-ONLY RAM image (HOLD mechanism; never for persistent use) (fastboot boot only - never flash; cache B9C / aboot untouched):
|
||||
# kernel = out-b10b3 (b10b2 options; built from /home/q/aurora-kbuild/src-b10b3 = src + linux/patches/b10b3-lbc-supervisor-v3.patch).
|
||||
# DTB = linux/dts/msm8916-jz08-aurora-b10b3c.dtb (TEST C: production v3 DTB with charge 4.10 V, hold 4.00 V, full-min 4.05 V, cv 5 min)
|
||||
# initramfs + cmdline = exact B9C (b9/b9c/out). out/ contains the B8F initramfs (Wi-Fi PSK): never publish.
|
||||
set -e; cd "$(dirname "$0")"; O=out-c; KB=/home/q/aurora-kbuild/out-b10b3; L=../../linux; B9C=../../b9/b9c/out
|
||||
mkdir -p $O
|
||||
echo "7ca9cc794a3b85d3b7240f6311ad03bee9e1a4a59aae2ed9438318e853f7c3dc $L/dts/msm8916-jz08-aurora-b9b.dtb" | sha256sum -c
|
||||
grep " initramfs-b9c.cpio.gz\$" $B9C/SHA256SUMS | sed "s| | $B9C/|" | sha256sum -c
|
||||
grep " cmdline.txt\$" $B9C/SHA256SUMS | sed "s| | $B9C/|" | sha256sum -c
|
||||
for s in IIO=y QCOM_SPMI_VADC=y BATTERY_PM8916_BMS_VM=y CHARGER_PM8916_LBC=y QCOM_SPMI_TEMP_ALARM=y 'LOCALVERSION="-aurora-b10b3"'; do grep -q "^CONFIG_$s\$" $KB/.config || { echo "STOP: CONFIG_$s"; exit 1; }; done
|
||||
|
||||
cp $KB/arch/arm64/boot/Image.gz $O/Image.gz; cp $KB/.config $O/config-b10b3; cp $L/dts/msm8916-jz08-aurora-b10b3c.dtb $O/aurora-b10b3c.dtb
|
||||
cp $B9C/initramfs-b9c.cpio.gz $O/initramfs.cpio.gz; cp $B9C/cmdline.txt $O/cmdline.txt
|
||||
cat $O/Image.gz $O/aurora-b10b3c.dtb > $O/Image.gz-dtb
|
||||
python3 ../../b6p/mkbootimg.py $O/Image.gz-dtb $O/initramfs.cpio.gz $O/cmdline.txt $O/aurora-b10b3c.img
|
||||
SZ=$(python3 -c "import struct;print(struct.unpack_from('<Q',open('$KB/arch/arm64/boot/Image','rb').read(24),16)[0])")
|
||||
printf 'kernel image_size 0x%x, RAM-boot end 0x%x (< 0x81e00000 DTB)\n' $SZ $((0x80000000 + SZ)); [ $((0x80000000 + SZ)) -lt $((0x81e00000)) ]
|
||||
(cd $O && sha256sum Image.gz aurora-b10b3c.dtb Image.gz-dtb config-b10b3 cmdline.txt initramfs.cpio.gz aurora-b10b3c.img > SHA256SUMS; cat SHA256SUMS); ls -l $O/aurora-b10b3c.img
|
||||
19
b10/b10b3/build-b10b3d.sh
Executable file
19
b10/b10b3/build-b10b3d.sh
Executable file
|
|
@ -0,0 +1,19 @@
|
|||
#!/bin/sh
|
||||
# B10B-3 Test D TEST-ONLY RAM image (safety timer expiry in CHARGING; never for persistent use) (fastboot boot only - never flash; cache B9C / aboot untouched):
|
||||
# kernel = out-b10b3 (b10b2 options; built from /home/q/aurora-kbuild/src-b10b3 = src + linux/patches/b10b3-lbc-supervisor-v3.patch).
|
||||
# DTB = linux/dts/msm8916-jz08-aurora-b10b3d.dtb (TEST D: production v3 DTB with charge 4.10 V, hold 4.00 V, full-min 4.05 V, cv 5 min, timer 8 min)
|
||||
# initramfs + cmdline = exact B9C (b9/b9c/out). out/ contains the B8F initramfs (Wi-Fi PSK): never publish.
|
||||
set -e; cd "$(dirname "$0")"; O=out-d; KB=/home/q/aurora-kbuild/out-b10b3; L=../../linux; B9C=../../b9/b9c/out
|
||||
mkdir -p $O
|
||||
echo "7ca9cc794a3b85d3b7240f6311ad03bee9e1a4a59aae2ed9438318e853f7c3dc $L/dts/msm8916-jz08-aurora-b9b.dtb" | sha256sum -c
|
||||
grep " initramfs-b9c.cpio.gz\$" $B9C/SHA256SUMS | sed "s| | $B9C/|" | sha256sum -c
|
||||
grep " cmdline.txt\$" $B9C/SHA256SUMS | sed "s| | $B9C/|" | sha256sum -c
|
||||
for s in IIO=y QCOM_SPMI_VADC=y BATTERY_PM8916_BMS_VM=y CHARGER_PM8916_LBC=y QCOM_SPMI_TEMP_ALARM=y 'LOCALVERSION="-aurora-b10b3"'; do grep -q "^CONFIG_$s\$" $KB/.config || { echo "STOP: CONFIG_$s"; exit 1; }; done
|
||||
|
||||
cp $KB/arch/arm64/boot/Image.gz $O/Image.gz; cp $KB/.config $O/config-b10b3; cp $L/dts/msm8916-jz08-aurora-b10b3d.dtb $O/aurora-b10b3d.dtb
|
||||
cp $B9C/initramfs-b9c.cpio.gz $O/initramfs.cpio.gz; cp $B9C/cmdline.txt $O/cmdline.txt
|
||||
cat $O/Image.gz $O/aurora-b10b3d.dtb > $O/Image.gz-dtb
|
||||
python3 ../../b6p/mkbootimg.py $O/Image.gz-dtb $O/initramfs.cpio.gz $O/cmdline.txt $O/aurora-b10b3d.img
|
||||
SZ=$(python3 -c "import struct;print(struct.unpack_from('<Q',open('$KB/arch/arm64/boot/Image','rb').read(24),16)[0])")
|
||||
printf 'kernel image_size 0x%x, RAM-boot end 0x%x (< 0x81e00000 DTB)\n' $SZ $((0x80000000 + SZ)); [ $((0x80000000 + SZ)) -lt $((0x81e00000)) ]
|
||||
(cd $O && sha256sum Image.gz aurora-b10b3d.dtb Image.gz-dtb config-b10b3 cmdline.txt initramfs.cpio.gz aurora-b10b3d.img > SHA256SUMS; cat SHA256SUMS); ls -l $O/aurora-b10b3d.img
|
||||
19
b10/b10b3/build-b10b3d3.sh
Executable file
19
b10/b10b3/build-b10b3d3.sh
Executable file
|
|
@ -0,0 +1,19 @@
|
|||
#!/bin/sh
|
||||
# B10B-3 Test D3 TEST-ONLY RAM image (D3 kernel: VDD_MAX written at CHARGING entry only if different; safety timer expiry in CHARGING; never for persistent use) (fastboot boot only - never flash; cache B9C / aboot untouched):
|
||||
# kernel = out-b10b3d3 (v3 + b10/b10b3/lbc-v3-to-d3.diff; tree /home/q/aurora-kbuild/src-b10b3d3).
|
||||
# DTB = linux/dts/msm8916-jz08-aurora-b10b3d.dtb (TEST D: production v3 DTB with charge 4.10 V, hold 4.00 V, full-min 4.05 V, cv 5 min, timer 8 min)
|
||||
# initramfs + cmdline = exact B9C (b9/b9c/out). out/ contains the B8F initramfs (Wi-Fi PSK): never publish.
|
||||
set -e; cd "$(dirname "$0")"; O=out-d3; KB=/home/q/aurora-kbuild/out-b10b3d3; L=../../linux; B9C=../../b9/b9c/out
|
||||
mkdir -p $O
|
||||
echo "7ca9cc794a3b85d3b7240f6311ad03bee9e1a4a59aae2ed9438318e853f7c3dc $L/dts/msm8916-jz08-aurora-b9b.dtb" | sha256sum -c
|
||||
grep " initramfs-b9c.cpio.gz\$" $B9C/SHA256SUMS | sed "s| | $B9C/|" | sha256sum -c
|
||||
grep " cmdline.txt\$" $B9C/SHA256SUMS | sed "s| | $B9C/|" | sha256sum -c
|
||||
for s in IIO=y QCOM_SPMI_VADC=y BATTERY_PM8916_BMS_VM=y CHARGER_PM8916_LBC=y QCOM_SPMI_TEMP_ALARM=y 'LOCALVERSION="-aurora-b10b3"'; do grep -q "^CONFIG_$s\$" $KB/.config || { echo "STOP: CONFIG_$s"; exit 1; }; done
|
||||
|
||||
cp $KB/arch/arm64/boot/Image.gz $O/Image.gz; cp $KB/.config $O/config-b10b3; cp $L/dts/msm8916-jz08-aurora-b10b3d.dtb $O/aurora-b10b3d.dtb
|
||||
cp $B9C/initramfs-b9c.cpio.gz $O/initramfs.cpio.gz; cp $B9C/cmdline.txt $O/cmdline.txt
|
||||
cat $O/Image.gz $O/aurora-b10b3d.dtb > $O/Image.gz-dtb
|
||||
python3 ../../b6p/mkbootimg.py $O/Image.gz-dtb $O/initramfs.cpio.gz $O/cmdline.txt $O/aurora-b10b3d3.img
|
||||
SZ=$(python3 -c "import struct;print(struct.unpack_from('<Q',open('$KB/arch/arm64/boot/Image','rb').read(24),16)[0])")
|
||||
printf 'kernel image_size 0x%x, RAM-boot end 0x%x (< 0x81e00000 DTB)\n' $SZ $((0x80000000 + SZ)); [ $((0x80000000 + SZ)) -lt $((0x81e00000)) ]
|
||||
(cd $O && sha256sum Image.gz aurora-b10b3d.dtb Image.gz-dtb config-b10b3 cmdline.txt initramfs.cpio.gz aurora-b10b3d3.img > SHA256SUMS; cat SHA256SUMS); ls -l $O/aurora-b10b3d3.img
|
||||
19
b10/b10b3/build-b10b3p.sh
Executable file
19
b10/b10b3/build-b10b3p.sh
Executable file
|
|
@ -0,0 +1,19 @@
|
|||
#!/bin/sh
|
||||
# B10B-3 Production-profile TEST RAM image (DESIGN 8.7 final RAM run; never flash) (fastboot boot only - never flash; cache B9C / aboot untouched):
|
||||
# kernel = out-b10b3 (b10b2 options; built from /home/q/aurora-kbuild/src-b10b3 = src + linux/patches/b10b3-lbc-supervisor-v3.patch).
|
||||
# DTB = linux/dts/msm8916-jz08-aurora-b10b3p.dtb (production values: 4.20 V / HOLD 4.05 V / full-min 4.15 V / CV 60 min / 450 mA / 512 min; model string only differs)
|
||||
# initramfs + cmdline = exact B9C (b9/b9c/out). out/ contains the B8F initramfs (Wi-Fi PSK): never publish.
|
||||
set -e; cd "$(dirname "$0")"; O=out-p; KB=/home/q/aurora-kbuild/out-b10b3; L=../../linux; B9C=../../b9/b9c/out
|
||||
mkdir -p $O
|
||||
echo "7ca9cc794a3b85d3b7240f6311ad03bee9e1a4a59aae2ed9438318e853f7c3dc $L/dts/msm8916-jz08-aurora-b9b.dtb" | sha256sum -c
|
||||
grep " initramfs-b9c.cpio.gz\$" $B9C/SHA256SUMS | sed "s| | $B9C/|" | sha256sum -c
|
||||
grep " cmdline.txt\$" $B9C/SHA256SUMS | sed "s| | $B9C/|" | sha256sum -c
|
||||
for s in IIO=y QCOM_SPMI_VADC=y BATTERY_PM8916_BMS_VM=y CHARGER_PM8916_LBC=y QCOM_SPMI_TEMP_ALARM=y 'LOCALVERSION="-aurora-b10b3"'; do grep -q "^CONFIG_$s\$" $KB/.config || { echo "STOP: CONFIG_$s"; exit 1; }; done
|
||||
|
||||
cp $KB/arch/arm64/boot/Image.gz $O/Image.gz; cp $KB/.config $O/config-b10b3; cp $L/dts/msm8916-jz08-aurora-b10b3p.dtb $O/aurora-b10b3p.dtb
|
||||
cp $B9C/initramfs-b9c.cpio.gz $O/initramfs.cpio.gz; cp $B9C/cmdline.txt $O/cmdline.txt
|
||||
cat $O/Image.gz $O/aurora-b10b3p.dtb > $O/Image.gz-dtb
|
||||
python3 ../../b6p/mkbootimg.py $O/Image.gz-dtb $O/initramfs.cpio.gz $O/cmdline.txt $O/aurora-b10b3p.img
|
||||
SZ=$(python3 -c "import struct;print(struct.unpack_from('<Q',open('$KB/arch/arm64/boot/Image','rb').read(24),16)[0])")
|
||||
printf 'kernel image_size 0x%x, RAM-boot end 0x%x (< 0x81e00000 DTB)\n' $SZ $((0x80000000 + SZ)); [ $((0x80000000 + SZ)) -lt $((0x81e00000)) ]
|
||||
(cd $O && sha256sum Image.gz aurora-b10b3p.dtb Image.gz-dtb config-b10b3 cmdline.txt initramfs.cpio.gz aurora-b10b3p.img > SHA256SUMS; cat SHA256SUMS); ls -l $O/aurora-b10b3p.img
|
||||
19
b10/b10b3/build-b10b3t.sh
Executable file
19
b10/b10b3/build-b10b3t.sh
Executable file
|
|
@ -0,0 +1,19 @@
|
|||
#!/bin/sh
|
||||
# B10B-3T TEST-ONLY RAM image (accelerated recharge test; never for persistent use) (fastboot boot only - never flash; cache B9C / aboot untouched):
|
||||
# kernel = out-b10b3 (b10b2 options; built from /home/q/aurora-kbuild/src-b10b3 = src + linux/patches/b10b3-lbc-recharge-supervisor.patch).
|
||||
# DTB = linux/dts/msm8916-jz08-aurora-b10b3t.dtb (TEST: production B10B-3 DTB with battery max 4.00 V and re-charge 3.94 V)
|
||||
# initramfs + cmdline = exact B9C (b9/b9c/out). out/ contains the B8F initramfs (Wi-Fi PSK): never publish.
|
||||
set -e; cd "$(dirname "$0")"; O=out-t; KB=/home/q/aurora-kbuild/out-b10b3; L=../../linux; B9C=../../b9/b9c/out
|
||||
mkdir -p $O
|
||||
echo "7ca9cc794a3b85d3b7240f6311ad03bee9e1a4a59aae2ed9438318e853f7c3dc $L/dts/msm8916-jz08-aurora-b9b.dtb" | sha256sum -c
|
||||
grep " initramfs-b9c.cpio.gz\$" $B9C/SHA256SUMS | sed "s| | $B9C/|" | sha256sum -c
|
||||
grep " cmdline.txt\$" $B9C/SHA256SUMS | sed "s| | $B9C/|" | sha256sum -c
|
||||
for s in IIO=y QCOM_SPMI_VADC=y BATTERY_PM8916_BMS_VM=y CHARGER_PM8916_LBC=y QCOM_SPMI_TEMP_ALARM=y 'LOCALVERSION="-aurora-b10b3"'; do grep -q "^CONFIG_$s\$" $KB/.config || { echo "STOP: CONFIG_$s"; exit 1; }; done
|
||||
|
||||
cp $KB/arch/arm64/boot/Image.gz $O/Image.gz; cp $KB/.config $O/config-b10b3; cp $L/dts/msm8916-jz08-aurora-b10b3t.dtb $O/aurora-b10b3t.dtb
|
||||
cp $B9C/initramfs-b9c.cpio.gz $O/initramfs.cpio.gz; cp $B9C/cmdline.txt $O/cmdline.txt
|
||||
cat $O/Image.gz $O/aurora-b10b3t.dtb > $O/Image.gz-dtb
|
||||
python3 ../../b6p/mkbootimg.py $O/Image.gz-dtb $O/initramfs.cpio.gz $O/cmdline.txt $O/aurora-b10b3t.img
|
||||
SZ=$(python3 -c "import struct;print(struct.unpack_from('<Q',open('$KB/arch/arm64/boot/Image','rb').read(24),16)[0])")
|
||||
printf 'kernel image_size 0x%x, RAM-boot end 0x%x (< 0x81e00000 DTB)\n' $SZ $((0x80000000 + SZ)); [ $((0x80000000 + SZ)) -lt $((0x81e00000)) ]
|
||||
(cd $O && sha256sum Image.gz aurora-b10b3t.dtb Image.gz-dtb config-b10b3 cmdline.txt initramfs.cpio.gz aurora-b10b3t.img > SHA256SUMS; cat SHA256SUMS); ls -l $O/aurora-b10b3t.img
|
||||
19
b10/b10b3/build-b10b4.sh
Executable file
19
b10/b10b3/build-b10b4.sh
Executable file
|
|
@ -0,0 +1,19 @@
|
|||
#!/bin/sh
|
||||
# B10B-4 actuator-audit TEST RAM image (TEST-ONLY kernel with debugfs pm8916_lbc/b10b4; never flash, never cache) (fastboot boot only - never flash; cache B9C / aboot untouched):
|
||||
# kernel = out-b10b4 (7.2.7-aurora-b10b4-debug = v3 + b10/b10b3/lbc-v3-to-b10b4-debug.diff, CHARGER_PM8916_LBC_B10B4_DEBUG=y; tree src-b10b4).
|
||||
# DTB = linux/dts/msm8916-jz08-aurora-b10b4.dtb (production values: 4.20 V / HOLD 4.05 V / full-min 4.15 V / CV 60 min / 450 mA / 512 min; model string only differs)
|
||||
# initramfs + cmdline = exact B9C (b9/b9c/out). out/ contains the B8F initramfs (Wi-Fi PSK): never publish.
|
||||
set -e; cd "$(dirname "$0")"; O=out-b4; KB=/home/q/aurora-kbuild/out-b10b4; L=../../linux; B9C=../../b9/b9c/out
|
||||
mkdir -p $O
|
||||
echo "7ca9cc794a3b85d3b7240f6311ad03bee9e1a4a59aae2ed9438318e853f7c3dc $L/dts/msm8916-jz08-aurora-b9b.dtb" | sha256sum -c
|
||||
grep " initramfs-b9c.cpio.gz\$" $B9C/SHA256SUMS | sed "s| | $B9C/|" | sha256sum -c
|
||||
grep " cmdline.txt\$" $B9C/SHA256SUMS | sed "s| | $B9C/|" | sha256sum -c
|
||||
for s in IIO=y QCOM_SPMI_VADC=y BATTERY_PM8916_BMS_VM=y CHARGER_PM8916_LBC=y QCOM_SPMI_TEMP_ALARM=y 'LOCALVERSION="-aurora-b10b4-debug"' CHARGER_PM8916_LBC_B10B4_DEBUG=y; do grep -q "^CONFIG_$s\$" $KB/.config || { echo "STOP: CONFIG_$s"; exit 1; }; done
|
||||
|
||||
cp $KB/arch/arm64/boot/Image.gz $O/Image.gz; cp $KB/.config $O/config-b10b4; cp $L/dts/msm8916-jz08-aurora-b10b4.dtb $O/aurora-b10b4.dtb
|
||||
cp $B9C/initramfs-b9c.cpio.gz $O/initramfs.cpio.gz; cp $B9C/cmdline.txt $O/cmdline.txt
|
||||
cat $O/Image.gz $O/aurora-b10b4.dtb > $O/Image.gz-dtb
|
||||
python3 ../../b6p/mkbootimg.py $O/Image.gz-dtb $O/initramfs.cpio.gz $O/cmdline.txt $O/aurora-b10b4.img
|
||||
SZ=$(python3 -c "import struct;print(struct.unpack_from('<Q',open('$KB/arch/arm64/boot/Image','rb').read(24),16)[0])")
|
||||
printf 'kernel image_size 0x%x, RAM-boot end 0x%x (< 0x81e00000 DTB)\n' $SZ $((0x80000000 + SZ)); [ $((0x80000000 + SZ)) -lt $((0x81e00000)) ]
|
||||
(cd $O && sha256sum Image.gz aurora-b10b4.dtb Image.gz-dtb config-b10b4 cmdline.txt initramfs.cpio.gz aurora-b10b4.img > SHA256SUMS; cat SHA256SUMS); ls -l $O/aurora-b10b4.img
|
||||
21
b10/b10b3/build-b10b5.sh
Executable file
21
b10/b10b3/build-b10b5.sh
Executable file
|
|
@ -0,0 +1,21 @@
|
|||
#!/bin/sh
|
||||
# B10B-5 PRODUCTION v4 image (v3 + FAULT safe clamp to 4.00 V; no test hooks) - RAM pretest + parts for the cache candidate (fastboot boot only - never flash):
|
||||
# kernel = out-b10b5 (7.2.7-aurora-b10b5 = v3 + b10/b10b3/lbc-v3-to-v4-fault-clamp.diff; tree src-b10b5; config = b10b3 + LOCALVERSION only).
|
||||
# DTB = linux/dts/msm8916-jz08-aurora-b10b3.dtb (production v3 values: 4.20 V / HOLD 4.05 V / full-min 4.15 V / CV 60 min / 450 mA / 512 min)
|
||||
# initramfs + cmdline = exact B9C (b9/b9c/out). out/ contains the B8F initramfs (Wi-Fi PSK): never publish.
|
||||
set -e; cd "$(dirname "$0")"; O=out-v4; KB=/home/q/aurora-kbuild/out-b10b5; L=../../linux; B9C=../../b9/b9c/out
|
||||
mkdir -p $O
|
||||
echo "7ca9cc794a3b85d3b7240f6311ad03bee9e1a4a59aae2ed9438318e853f7c3dc $L/dts/msm8916-jz08-aurora-b9b.dtb" | sha256sum -c
|
||||
grep " initramfs-b9c.cpio.gz\$" $B9C/SHA256SUMS | sed "s| | $B9C/|" | sha256sum -c
|
||||
grep " cmdline.txt\$" $B9C/SHA256SUMS | sed "s| | $B9C/|" | sha256sum -c
|
||||
for s in IIO=y QCOM_SPMI_VADC=y BATTERY_PM8916_BMS_VM=y CHARGER_PM8916_LBC=y QCOM_SPMI_TEMP_ALARM=y 'LOCALVERSION="-aurora-b10b5"'; do grep -q "^CONFIG_$s\$" $KB/.config || { echo "STOP: CONFIG_$s"; exit 1; }; done
|
||||
grep -q "B10B5_TEST\|B10B4_DEBUG" $KB/.config && { echo "STOP: test hook symbol in production config"; exit 1; }
|
||||
zcat $KB/arch/arm64/boot/Image.gz | strings | grep -qE "B10B-5 TEST|B10B-4 TEST" && { echo "STOP: test hook strings in production kernel"; exit 1; }
|
||||
|
||||
cp $KB/arch/arm64/boot/Image.gz $O/Image.gz; cp $KB/.config $O/config-b10b5; cp $L/dts/msm8916-jz08-aurora-b10b3.dtb $O/aurora-b10b3.dtb
|
||||
cp $B9C/initramfs-b9c.cpio.gz $O/initramfs.cpio.gz; cp $B9C/cmdline.txt $O/cmdline.txt
|
||||
cat $O/Image.gz $O/aurora-b10b3.dtb > $O/Image.gz-dtb
|
||||
python3 ../../b6p/mkbootimg.py $O/Image.gz-dtb $O/initramfs.cpio.gz $O/cmdline.txt $O/aurora-b10b5.img
|
||||
SZ=$(python3 -c "import struct;print(struct.unpack_from('<Q',open('$KB/arch/arm64/boot/Image','rb').read(24),16)[0])")
|
||||
printf 'kernel image_size 0x%x, RAM-boot end 0x%x (< 0x81e00000 DTB)\n' $SZ $((0x80000000 + SZ)); [ $((0x80000000 + SZ)) -lt $((0x81e00000)) ]
|
||||
(cd $O && sha256sum Image.gz aurora-b10b3.dtb Image.gz-dtb config-b10b5 cmdline.txt initramfs.cpio.gz aurora-b10b5.img > SHA256SUMS; cat SHA256SUMS); ls -l $O/aurora-b10b5.img
|
||||
19
b10/b10b3/build-b10b5t.sh
Executable file
19
b10/b10b3/build-b10b5t.sh
Executable file
|
|
@ -0,0 +1,19 @@
|
|||
#!/bin/sh
|
||||
# B10B-5 FAULT-clamp regression TEST RAM image (TEST-ONLY kernel v4 + debugfs pm8916_lbc/b10b5_fault; never flash, never cache) (fastboot boot only - never flash; cache B9C / aboot untouched):
|
||||
# kernel = out-b10b5 test build (7.2.7-aurora-b10b5-test = v4 [lbc-v3-to-v4-fault-clamp.diff] + lbc-v4-to-v4test-fault-inject.diff, CHARGER_PM8916_LBC_B10B5_TEST=y; tree src-b10b5).
|
||||
# DTB = linux/dts/msm8916-jz08-aurora-b10b5t.dtb (production values: 4.20 V / HOLD 4.05 V / full-min 4.15 V / CV 60 min / 450 mA / 512 min; model string only differs)
|
||||
# initramfs + cmdline = exact B9C (b9/b9c/out). out/ contains the B8F initramfs (Wi-Fi PSK): never publish.
|
||||
set -e; cd "$(dirname "$0")"; O=out-b5t; KB=/home/q/aurora-kbuild/out-b10b5; L=../../linux; B9C=../../b9/b9c/out
|
||||
mkdir -p $O
|
||||
echo "7ca9cc794a3b85d3b7240f6311ad03bee9e1a4a59aae2ed9438318e853f7c3dc $L/dts/msm8916-jz08-aurora-b9b.dtb" | sha256sum -c
|
||||
grep " initramfs-b9c.cpio.gz\$" $B9C/SHA256SUMS | sed "s| | $B9C/|" | sha256sum -c
|
||||
grep " cmdline.txt\$" $B9C/SHA256SUMS | sed "s| | $B9C/|" | sha256sum -c
|
||||
for s in IIO=y QCOM_SPMI_VADC=y BATTERY_PM8916_BMS_VM=y CHARGER_PM8916_LBC=y QCOM_SPMI_TEMP_ALARM=y 'LOCALVERSION="-aurora-b10b5-test"' CHARGER_PM8916_LBC_B10B5_TEST=y; do grep -q "^CONFIG_$s\$" $KB/.config || { echo "STOP: CONFIG_$s"; exit 1; }; done
|
||||
|
||||
cp $KB/arch/arm64/boot/Image.gz $O/Image.gz; cp $KB/.config $O/config-b10b5t; cp $L/dts/msm8916-jz08-aurora-b10b5t.dtb $O/aurora-b10b5t.dtb
|
||||
cp $B9C/initramfs-b9c.cpio.gz $O/initramfs.cpio.gz; cp $B9C/cmdline.txt $O/cmdline.txt
|
||||
cat $O/Image.gz $O/aurora-b10b5t.dtb > $O/Image.gz-dtb
|
||||
python3 ../../b6p/mkbootimg.py $O/Image.gz-dtb $O/initramfs.cpio.gz $O/cmdline.txt $O/aurora-b10b5t.img
|
||||
SZ=$(python3 -c "import struct;print(struct.unpack_from('<Q',open('$KB/arch/arm64/boot/Image','rb').read(24),16)[0])")
|
||||
printf 'kernel image_size 0x%x, RAM-boot end 0x%x (< 0x81e00000 DTB)\n' $SZ $((0x80000000 + SZ)); [ $((0x80000000 + SZ)) -lt $((0x81e00000)) ]
|
||||
(cd $O && sha256sum Image.gz aurora-b10b5t.dtb Image.gz-dtb config-b10b5t cmdline.txt initramfs.cpio.gz aurora-b10b5t.img > SHA256SUMS; cat SHA256SUMS); ls -l $O/aurora-b10b5t.img
|
||||
4
b10/b10b3/cache-v4/SHA256SUMS
Normal file
4
b10/b10b3/cache-v4/SHA256SUMS
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
c37325156a6f4c013982cf01bcb5b2ddb026b0298e9c3ec0be87f57d693464b8 cache-extlinux-b10b5.img
|
||||
7e80063945bcd017d61c3ef285f14b7216a54ca103c796d67628fff917a7b83d mkfs-cache-b10b5.sh
|
||||
b6d9ecdc0cc09528704ffca440f645ac1438c0ffc81176591c2c92ba6d4b4d1c extlinux-b10b5.conf
|
||||
98bfaf2d8d44698bcc33181fd89d339a8eb3b01ccdfea5c6df71d70f6369e256 emu/run-emu-b10b5.sh
|
||||
10
b10/b10b3/cache-v4/cache-contents-v3-vs-v4.txt
Normal file
10
b10/b10b3/cache-v4/cache-contents-v3-vs-v4.txt
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
== cache-extlinux-b10b3
|
||||
5e69f8431d42a9ddb9d64f06dcc408cd8dbfa9dffdba7e9b06e4ba58075ed1c7 Image.gz-dtb
|
||||
e47762d1dcd0af6e2acb711fa47ecc13769cd6bcb81259ce50635e8b18b6514a aurora-b10b3.dtb
|
||||
9b6584fcc71ae74f6c84cba6c9bcd2576ae8c59edee2fad5b9d0753f54f8ca19 extlinux_extlinux.conf
|
||||
ac518e27e2957ad5e4515969b9a3808024e11ef8d1a79433a899a67dbc644558 initramfs-b9c.cpio.gz
|
||||
== cache-extlinux-b10b5
|
||||
b0ea04666c4ab979067fe9c0015bda0e9c8ac742678321e57b18e841c9c69f95 Image.gz-dtb
|
||||
e47762d1dcd0af6e2acb711fa47ecc13769cd6bcb81259ce50635e8b18b6514a aurora-b10b3.dtb
|
||||
b6d9ecdc0cc09528704ffca440f645ac1438c0ffc81176591c2c92ba6d4b4d1c extlinux_extlinux.conf
|
||||
ac518e27e2957ad5e4515969b9a3808024e11ef8d1a79433a899a67dbc644558 initramfs-b9c.cpio.gz
|
||||
42
b10/b10b3/cache-v4/emu/F1-no-conf.out
Normal file
42
b10/b10b3/cache-v4/emu/F1-no-conf.out
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
[lk] Registering wrapper bio devices...
|
||||
[lk] block devices:
|
||||
[lk] | dev | label | size | Leaf |
|
||||
[lk] | wrp0p26 | userdata | 2542 MiB | Yes |
|
||||
[lk] | wrp0p25 | recovery | 16 MiB | Yes |
|
||||
[lk] | wrp0p24 | cache | 128 MiB | Yes |
|
||||
[lk] | wrp0p23 | persist | 32 MiB | Yes |
|
||||
[lk] | wrp0p22 | system | 800 MiB | Yes |
|
||||
[lk] | wrp0p21 | boot | 16 MiB | Yes |
|
||||
[lk] | wrp0p20 | sec | 16 KiB | Yes |
|
||||
[lk] | wrp0p19 | fsg | 1 MiB | Yes |
|
||||
[lk] | wrp0p18 | DDR | 32 KiB | Yes |
|
||||
[lk] | wrp0p17 | splash | 10 MiB | Yes |
|
||||
[lk] | wrp0p16 | ssd | 8 KiB | Yes |
|
||||
[lk] | wrp0p15 | fsc | 1 KiB | Yes |
|
||||
[lk] | wrp0p14 | misc | 1024 KiB | Yes |
|
||||
[lk] | wrp0p13 | modemst2 | 1 MiB | Yes |
|
||||
[lk] | wrp0p12 | modemst1 | 1 MiB | Yes |
|
||||
[lk] | wrp0p11 | pad | 1024 KiB | Yes |
|
||||
[lk] | wrp0p10 | hypbak | 512 KiB | Yes |
|
||||
[lk] | wrp0p9 | hyp | 512 KiB | Yes |
|
||||
[lk] | wrp0p8 | tzbak | 512 KiB | Yes |
|
||||
[lk] | wrp0p7 | tz | 1024 KiB | Yes |
|
||||
[lk] | wrp0p6 | rpmbak | 512 KiB | Yes |
|
||||
[lk] | wrp0p5 | rpm | 512 KiB | Yes |
|
||||
[lk] | wrp0p4 | abootbak | 1024 KiB | Yes |
|
||||
[lk] | wrp0p3 | aboot | 1024 KiB | Yes |
|
||||
[lk] | wrp0p2 | sbl1bak | 512 KiB | Yes |
|
||||
[lk] | wrp0p1 | sbl1 | 512 KiB | Yes |
|
||||
[lk] | wrp0p0 | modem | 64 MiB | Yes |
|
||||
[lk] | wrp0 | | 3728 MiB | |
|
||||
[lk] boot: Trying to boot from the file system...
|
||||
[lk] boot: Bootable file system not found. Reverting to android boot.
|
||||
HARNESS: lk2nd_boot() returned -> aboot would continue to boot_linux_from_mmc() (Android boot partition)
|
||||
HARNESS: scan-candidate wrp0p26 (userdata) ext2 mount rc=-3
|
||||
HARNESS: scan-candidate wrp0p25 (recovery) ext2 mount rc=-1
|
||||
HARNESS: scan-candidate wrp0p24 (cache) ext2 mount rc=0
|
||||
HARNESS: scan-candidate wrp0p23 (persist) ext2 mount rc=-3
|
||||
HARNESS: scan-candidate wrp0p22 (system) ext2 mount rc=-3
|
||||
HARNESS: scan-candidate wrp0p21 (boot) ext2 mount rc=-1
|
||||
HARNESS: scan-candidate wrp0p0 (modem) ext2 mount rc=-1
|
||||
HARNESS: total bytes read 45568
|
||||
42
b10/b10b3/cache-v4/emu/F10-zeroed-cache.out
Normal file
42
b10/b10b3/cache-v4/emu/F10-zeroed-cache.out
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
[lk] Registering wrapper bio devices...
|
||||
[lk] block devices:
|
||||
[lk] | dev | label | size | Leaf |
|
||||
[lk] | wrp0p26 | userdata | 2542 MiB | Yes |
|
||||
[lk] | wrp0p25 | recovery | 16 MiB | Yes |
|
||||
[lk] | wrp0p24 | cache | 128 MiB | Yes |
|
||||
[lk] | wrp0p23 | persist | 32 MiB | Yes |
|
||||
[lk] | wrp0p22 | system | 800 MiB | Yes |
|
||||
[lk] | wrp0p21 | boot | 16 MiB | Yes |
|
||||
[lk] | wrp0p20 | sec | 16 KiB | Yes |
|
||||
[lk] | wrp0p19 | fsg | 1 MiB | Yes |
|
||||
[lk] | wrp0p18 | DDR | 32 KiB | Yes |
|
||||
[lk] | wrp0p17 | splash | 10 MiB | Yes |
|
||||
[lk] | wrp0p16 | ssd | 8 KiB | Yes |
|
||||
[lk] | wrp0p15 | fsc | 1 KiB | Yes |
|
||||
[lk] | wrp0p14 | misc | 1024 KiB | Yes |
|
||||
[lk] | wrp0p13 | modemst2 | 1 MiB | Yes |
|
||||
[lk] | wrp0p12 | modemst1 | 1 MiB | Yes |
|
||||
[lk] | wrp0p11 | pad | 1024 KiB | Yes |
|
||||
[lk] | wrp0p10 | hypbak | 512 KiB | Yes |
|
||||
[lk] | wrp0p9 | hyp | 512 KiB | Yes |
|
||||
[lk] | wrp0p8 | tzbak | 512 KiB | Yes |
|
||||
[lk] | wrp0p7 | tz | 1024 KiB | Yes |
|
||||
[lk] | wrp0p6 | rpmbak | 512 KiB | Yes |
|
||||
[lk] | wrp0p5 | rpm | 512 KiB | Yes |
|
||||
[lk] | wrp0p4 | abootbak | 1024 KiB | Yes |
|
||||
[lk] | wrp0p3 | aboot | 1024 KiB | Yes |
|
||||
[lk] | wrp0p2 | sbl1bak | 512 KiB | Yes |
|
||||
[lk] | wrp0p1 | sbl1 | 512 KiB | Yes |
|
||||
[lk] | wrp0p0 | modem | 64 MiB | Yes |
|
||||
[lk] | wrp0 | | 3728 MiB | |
|
||||
[lk] boot: Trying to boot from the file system...
|
||||
[lk] boot: Bootable file system not found. Reverting to android boot.
|
||||
HARNESS: lk2nd_boot() returned -> aboot would continue to boot_linux_from_mmc() (Android boot partition)
|
||||
HARNESS: scan-candidate wrp0p26 (userdata) ext2 mount rc=-3
|
||||
HARNESS: scan-candidate wrp0p25 (recovery) ext2 mount rc=-1
|
||||
HARNESS: scan-candidate wrp0p24 (cache) ext2 mount rc=-1
|
||||
HARNESS: scan-candidate wrp0p23 (persist) ext2 mount rc=-3
|
||||
HARNESS: scan-candidate wrp0p22 (system) ext2 mount rc=-3
|
||||
HARNESS: scan-candidate wrp0p21 (boot) ext2 mount rc=-1
|
||||
HARNESS: scan-candidate wrp0p0 (modem) ext2 mount rc=-1
|
||||
HARNESS: total bytes read 28160
|
||||
44
b10/b10b3/cache-v4/emu/F3-no-initrd.out
Normal file
44
b10/b10b3/cache-v4/emu/F3-no-initrd.out
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
[lk] Registering wrapper bio devices...
|
||||
[lk] block devices:
|
||||
[lk] | dev | label | size | Leaf |
|
||||
[lk] | wrp0p26 | userdata | 2542 MiB | Yes |
|
||||
[lk] | wrp0p25 | recovery | 16 MiB | Yes |
|
||||
[lk] | wrp0p24 | cache | 128 MiB | Yes |
|
||||
[lk] | wrp0p23 | persist | 32 MiB | Yes |
|
||||
[lk] | wrp0p22 | system | 800 MiB | Yes |
|
||||
[lk] | wrp0p21 | boot | 16 MiB | Yes |
|
||||
[lk] | wrp0p20 | sec | 16 KiB | Yes |
|
||||
[lk] | wrp0p19 | fsg | 1 MiB | Yes |
|
||||
[lk] | wrp0p18 | DDR | 32 KiB | Yes |
|
||||
[lk] | wrp0p17 | splash | 10 MiB | Yes |
|
||||
[lk] | wrp0p16 | ssd | 8 KiB | Yes |
|
||||
[lk] | wrp0p15 | fsc | 1 KiB | Yes |
|
||||
[lk] | wrp0p14 | misc | 1024 KiB | Yes |
|
||||
[lk] | wrp0p13 | modemst2 | 1 MiB | Yes |
|
||||
[lk] | wrp0p12 | modemst1 | 1 MiB | Yes |
|
||||
[lk] | wrp0p11 | pad | 1024 KiB | Yes |
|
||||
[lk] | wrp0p10 | hypbak | 512 KiB | Yes |
|
||||
[lk] | wrp0p9 | hyp | 512 KiB | Yes |
|
||||
[lk] | wrp0p8 | tzbak | 512 KiB | Yes |
|
||||
[lk] | wrp0p7 | tz | 1024 KiB | Yes |
|
||||
[lk] | wrp0p6 | rpmbak | 512 KiB | Yes |
|
||||
[lk] | wrp0p5 | rpm | 512 KiB | Yes |
|
||||
[lk] | wrp0p4 | abootbak | 1024 KiB | Yes |
|
||||
[lk] | wrp0p3 | aboot | 1024 KiB | Yes |
|
||||
[lk] | wrp0p2 | sbl1bak | 512 KiB | Yes |
|
||||
[lk] | wrp0p1 | sbl1 | 512 KiB | Yes |
|
||||
[lk] | wrp0p0 | modem | 64 MiB | Yes |
|
||||
[lk] | wrp0 | | 3728 MiB | |
|
||||
[lk] boot: Trying to boot from the file system...
|
||||
[lk] Initramfs /wrp0p24//initramfs-b9c.cpio.gz does not exist
|
||||
[lk] Failed to parse extlinux.conf
|
||||
[lk] boot: Bootable file system not found. Reverting to android boot.
|
||||
HARNESS: lk2nd_boot() returned -> aboot would continue to boot_linux_from_mmc() (Android boot partition)
|
||||
HARNESS: scan-candidate wrp0p26 (userdata) ext2 mount rc=-3
|
||||
HARNESS: scan-candidate wrp0p25 (recovery) ext2 mount rc=-1
|
||||
HARNESS: scan-candidate wrp0p24 (cache) ext2 mount rc=0
|
||||
HARNESS: scan-candidate wrp0p23 (persist) ext2 mount rc=-3
|
||||
HARNESS: scan-candidate wrp0p22 (system) ext2 mount rc=-3
|
||||
HARNESS: scan-candidate wrp0p21 (boot) ext2 mount rc=-1
|
||||
HARNESS: scan-candidate wrp0p0 (modem) ext2 mount rc=-1
|
||||
HARNESS: total bytes read 49664
|
||||
40
b10/b10b3/cache-v4/emu/S10-b10b5-candidate.out
Normal file
40
b10/b10b3/cache-v4/emu/S10-b10b5-candidate.out
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
[lk] Registering wrapper bio devices...
|
||||
[lk] block devices:
|
||||
[lk] | dev | label | size | Leaf |
|
||||
[lk] | wrp0p26 | userdata | 2542 MiB | Yes |
|
||||
[lk] | wrp0p25 | recovery | 16 MiB | Yes |
|
||||
[lk] | wrp0p24 | cache | 128 MiB | Yes |
|
||||
[lk] | wrp0p23 | persist | 32 MiB | Yes |
|
||||
[lk] | wrp0p22 | system | 800 MiB | Yes |
|
||||
[lk] | wrp0p21 | boot | 16 MiB | Yes |
|
||||
[lk] | wrp0p20 | sec | 16 KiB | Yes |
|
||||
[lk] | wrp0p19 | fsg | 1 MiB | Yes |
|
||||
[lk] | wrp0p18 | DDR | 32 KiB | Yes |
|
||||
[lk] | wrp0p17 | splash | 10 MiB | Yes |
|
||||
[lk] | wrp0p16 | ssd | 8 KiB | Yes |
|
||||
[lk] | wrp0p15 | fsc | 1 KiB | Yes |
|
||||
[lk] | wrp0p14 | misc | 1024 KiB | Yes |
|
||||
[lk] | wrp0p13 | modemst2 | 1 MiB | Yes |
|
||||
[lk] | wrp0p12 | modemst1 | 1 MiB | Yes |
|
||||
[lk] | wrp0p11 | pad | 1024 KiB | Yes |
|
||||
[lk] | wrp0p10 | hypbak | 512 KiB | Yes |
|
||||
[lk] | wrp0p9 | hyp | 512 KiB | Yes |
|
||||
[lk] | wrp0p8 | tzbak | 512 KiB | Yes |
|
||||
[lk] | wrp0p7 | tz | 1024 KiB | Yes |
|
||||
[lk] | wrp0p6 | rpmbak | 512 KiB | Yes |
|
||||
[lk] | wrp0p5 | rpm | 512 KiB | Yes |
|
||||
[lk] | wrp0p4 | abootbak | 1024 KiB | Yes |
|
||||
[lk] | wrp0p3 | aboot | 1024 KiB | Yes |
|
||||
[lk] | wrp0p2 | sbl1bak | 512 KiB | Yes |
|
||||
[lk] | wrp0p1 | sbl1 | 512 KiB | Yes |
|
||||
[lk] | wrp0p0 | modem | 64 MiB | Yes |
|
||||
[lk] | wrp0 | | 3728 MiB | |
|
||||
[lk] boot: Trying to boot from the file system...
|
||||
[lk] Trying to boot 'b10b5'
|
||||
[lk] Decompressing the kernel...
|
||||
HARNESS: boot_linux reached: kernel @DDR+0x0 tags @DDR+0x20a9000 ramdisk @DDR+0x22a9000 (16082426) boot_type 0
|
||||
HARNESS: kernel magic 0x644d5241 image_size 0x1830000 end @DDR+0x1830000
|
||||
HARNESS: cmdline 'earlycon console=tty0 console=ttyMSM0,115200n8 ignore_loglevel loglevel=8 rdinit=/init fbcon=font:6x8 consoleblank=0'
|
||||
HARNESS: kernel sha256 8c8bfccbad6e00bf3397e27563e0a90787e98edc4eae22ecbb7930afea7ad143 (24754184 bytes)
|
||||
HARNESS: dtb sha256 e47762d1dcd0af6e2acb711fa47ecc13769cd6bcb81259ce50635e8b18b6514a (68093 bytes)
|
||||
HARNESS: ramdisk sha256 ac518e27e2957ad5e4515969b9a3808024e11ef8d1a79433a899a67dbc644558 (16082426 bytes)
|
||||
40
b10/b10b3/cache-v4/emu/S8-b9c-regression.out
Normal file
40
b10/b10b3/cache-v4/emu/S8-b9c-regression.out
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
[lk] Registering wrapper bio devices...
|
||||
[lk] block devices:
|
||||
[lk] | dev | label | size | Leaf |
|
||||
[lk] | wrp0p26 | userdata | 2542 MiB | Yes |
|
||||
[lk] | wrp0p25 | recovery | 16 MiB | Yes |
|
||||
[lk] | wrp0p24 | cache | 128 MiB | Yes |
|
||||
[lk] | wrp0p23 | persist | 32 MiB | Yes |
|
||||
[lk] | wrp0p22 | system | 800 MiB | Yes |
|
||||
[lk] | wrp0p21 | boot | 16 MiB | Yes |
|
||||
[lk] | wrp0p20 | sec | 16 KiB | Yes |
|
||||
[lk] | wrp0p19 | fsg | 1 MiB | Yes |
|
||||
[lk] | wrp0p18 | DDR | 32 KiB | Yes |
|
||||
[lk] | wrp0p17 | splash | 10 MiB | Yes |
|
||||
[lk] | wrp0p16 | ssd | 8 KiB | Yes |
|
||||
[lk] | wrp0p15 | fsc | 1 KiB | Yes |
|
||||
[lk] | wrp0p14 | misc | 1024 KiB | Yes |
|
||||
[lk] | wrp0p13 | modemst2 | 1 MiB | Yes |
|
||||
[lk] | wrp0p12 | modemst1 | 1 MiB | Yes |
|
||||
[lk] | wrp0p11 | pad | 1024 KiB | Yes |
|
||||
[lk] | wrp0p10 | hypbak | 512 KiB | Yes |
|
||||
[lk] | wrp0p9 | hyp | 512 KiB | Yes |
|
||||
[lk] | wrp0p8 | tzbak | 512 KiB | Yes |
|
||||
[lk] | wrp0p7 | tz | 1024 KiB | Yes |
|
||||
[lk] | wrp0p6 | rpmbak | 512 KiB | Yes |
|
||||
[lk] | wrp0p5 | rpm | 512 KiB | Yes |
|
||||
[lk] | wrp0p4 | abootbak | 1024 KiB | Yes |
|
||||
[lk] | wrp0p3 | aboot | 1024 KiB | Yes |
|
||||
[lk] | wrp0p2 | sbl1bak | 512 KiB | Yes |
|
||||
[lk] | wrp0p1 | sbl1 | 512 KiB | Yes |
|
||||
[lk] | wrp0p0 | modem | 64 MiB | Yes |
|
||||
[lk] | wrp0 | | 3728 MiB | |
|
||||
[lk] boot: Trying to boot from the file system...
|
||||
[lk] Trying to boot 'b9c'
|
||||
[lk] Decompressing the kernel...
|
||||
HARNESS: boot_linux reached: kernel @DDR+0x0 tags @DDR+0x20a9000 ramdisk @DDR+0x22a9000 (16082426) boot_type 0
|
||||
HARNESS: kernel magic 0x644d5241 image_size 0x1820000 end @DDR+0x1820000
|
||||
HARNESS: cmdline 'earlycon console=tty0 console=ttyMSM0,115200n8 ignore_loglevel loglevel=8 rdinit=/init fbcon=font:6x8 consoleblank=0'
|
||||
HARNESS: kernel sha256 3afc6c77f3ed4b4ad82f61914b9cca354c3bdcaf5d102d7782a0cd5577cbca61 (24686600 bytes)
|
||||
HARNESS: dtb sha256 7ca9cc794a3b85d3b7240f6311ad03bee9e1a4a59aae2ed9438318e853f7c3dc (67425 bytes)
|
||||
HARNESS: ramdisk sha256 ac518e27e2957ad5e4515969b9a3808024e11ef8d1a79433a899a67dbc644558 (16082426 bytes)
|
||||
28
b10/b10b3/cache-v4/emu/map-F1-no-conf.txt
Normal file
28
b10/b10b3/cache-v4/emu/map-F1-no-conf.txt
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
0 34 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/gpt-primary-34.bin
|
||||
131072 131072 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/modem.bin
|
||||
262144 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/sbl1.bin
|
||||
263168 1024 /home/q/doc/modem/jz08-aurora/partitions/sbl1bak.bin
|
||||
264192 2048 /home/q/doc/modem/jz08-aurora/b5a/aboot-lk1st-aurora-autoboot.pad1M
|
||||
266240 2048 /home/q/doc/modem/jz08-aurora/partitions/abootbak.bin
|
||||
268288 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/rpm.bin
|
||||
269312 1024 /home/q/doc/modem/jz08-aurora/partitions/rpmbak.bin
|
||||
270336 2048 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/tz.bin
|
||||
305184 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/tzbak-305184.bin
|
||||
272384 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/hyp.bin
|
||||
273408 1024 /home/q/doc/modem/jz08-aurora/partitions/hypbak.bin
|
||||
274432 2048 /home/q/doc/modem/jz08-aurora/partitions/pad.bin
|
||||
276480 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/modemst1.bin
|
||||
279552 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/modemst2.bin
|
||||
282624 2048 /home/q/doc/modem/jz08-aurora/partitions/misc.bin
|
||||
284672 2 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/fsc.bin
|
||||
284674 16 /home/q/doc/modem/jz08-aurora/partitions/ssd.bin
|
||||
284690 20480 /home/q/doc/modem/jz08-aurora/partitions/splash.bin
|
||||
393216 64 /home/q/doc/modem/jz08-aurora/partitions/DDR.bin
|
||||
393280 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/fsg.bin
|
||||
396352 32 /home/q/doc/modem/jz08-aurora/partitions/sec.bin
|
||||
396384 32768 /home/q/doc/modem/jz08-aurora/b5a/boot-emmc1-16MiB.img
|
||||
429152 1638400 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/system.bin
|
||||
2067552 65536 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/persist.bin
|
||||
2133088 262144 /tmp/tmp.Gm3RAnxk7D/F1-no-conf.img
|
||||
2395232 32768 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/recovery.bin
|
||||
2428000 5206911 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/userdata.bin
|
||||
28
b10/b10b3/cache-v4/emu/map-F10-zeroed-cache.txt
Normal file
28
b10/b10b3/cache-v4/emu/map-F10-zeroed-cache.txt
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
0 34 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/gpt-primary-34.bin
|
||||
131072 131072 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/modem.bin
|
||||
262144 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/sbl1.bin
|
||||
263168 1024 /home/q/doc/modem/jz08-aurora/partitions/sbl1bak.bin
|
||||
264192 2048 /home/q/doc/modem/jz08-aurora/b5a/aboot-lk1st-aurora-autoboot.pad1M
|
||||
266240 2048 /home/q/doc/modem/jz08-aurora/partitions/abootbak.bin
|
||||
268288 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/rpm.bin
|
||||
269312 1024 /home/q/doc/modem/jz08-aurora/partitions/rpmbak.bin
|
||||
270336 2048 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/tz.bin
|
||||
305184 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/tzbak-305184.bin
|
||||
272384 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/hyp.bin
|
||||
273408 1024 /home/q/doc/modem/jz08-aurora/partitions/hypbak.bin
|
||||
274432 2048 /home/q/doc/modem/jz08-aurora/partitions/pad.bin
|
||||
276480 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/modemst1.bin
|
||||
279552 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/modemst2.bin
|
||||
282624 2048 /home/q/doc/modem/jz08-aurora/partitions/misc.bin
|
||||
284672 2 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/fsc.bin
|
||||
284674 16 /home/q/doc/modem/jz08-aurora/partitions/ssd.bin
|
||||
284690 20480 /home/q/doc/modem/jz08-aurora/partitions/splash.bin
|
||||
393216 64 /home/q/doc/modem/jz08-aurora/partitions/DDR.bin
|
||||
393280 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/fsg.bin
|
||||
396352 32 /home/q/doc/modem/jz08-aurora/partitions/sec.bin
|
||||
396384 32768 /home/q/doc/modem/jz08-aurora/b5a/boot-emmc1-16MiB.img
|
||||
429152 1638400 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/system.bin
|
||||
2067552 65536 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/persist.bin
|
||||
2133088 262144 /tmp/tmp.Gm3RAnxk7D/F10-zeroed-cache.img
|
||||
2395232 32768 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/recovery.bin
|
||||
2428000 5206911 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/userdata.bin
|
||||
28
b10/b10b3/cache-v4/emu/map-F3-no-initrd.txt
Normal file
28
b10/b10b3/cache-v4/emu/map-F3-no-initrd.txt
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
0 34 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/gpt-primary-34.bin
|
||||
131072 131072 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/modem.bin
|
||||
262144 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/sbl1.bin
|
||||
263168 1024 /home/q/doc/modem/jz08-aurora/partitions/sbl1bak.bin
|
||||
264192 2048 /home/q/doc/modem/jz08-aurora/b5a/aboot-lk1st-aurora-autoboot.pad1M
|
||||
266240 2048 /home/q/doc/modem/jz08-aurora/partitions/abootbak.bin
|
||||
268288 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/rpm.bin
|
||||
269312 1024 /home/q/doc/modem/jz08-aurora/partitions/rpmbak.bin
|
||||
270336 2048 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/tz.bin
|
||||
305184 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/tzbak-305184.bin
|
||||
272384 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/hyp.bin
|
||||
273408 1024 /home/q/doc/modem/jz08-aurora/partitions/hypbak.bin
|
||||
274432 2048 /home/q/doc/modem/jz08-aurora/partitions/pad.bin
|
||||
276480 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/modemst1.bin
|
||||
279552 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/modemst2.bin
|
||||
282624 2048 /home/q/doc/modem/jz08-aurora/partitions/misc.bin
|
||||
284672 2 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/fsc.bin
|
||||
284674 16 /home/q/doc/modem/jz08-aurora/partitions/ssd.bin
|
||||
284690 20480 /home/q/doc/modem/jz08-aurora/partitions/splash.bin
|
||||
393216 64 /home/q/doc/modem/jz08-aurora/partitions/DDR.bin
|
||||
393280 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/fsg.bin
|
||||
396352 32 /home/q/doc/modem/jz08-aurora/partitions/sec.bin
|
||||
396384 32768 /home/q/doc/modem/jz08-aurora/b5a/boot-emmc1-16MiB.img
|
||||
429152 1638400 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/system.bin
|
||||
2067552 65536 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/persist.bin
|
||||
2133088 262144 /tmp/tmp.Gm3RAnxk7D/F3-no-initrd.img
|
||||
2395232 32768 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/recovery.bin
|
||||
2428000 5206911 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/userdata.bin
|
||||
28
b10/b10b3/cache-v4/emu/map-S10-b10b5-candidate.txt
Normal file
28
b10/b10b3/cache-v4/emu/map-S10-b10b5-candidate.txt
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
0 34 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/gpt-primary-34.bin
|
||||
131072 131072 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/modem.bin
|
||||
262144 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/sbl1.bin
|
||||
263168 1024 /home/q/doc/modem/jz08-aurora/partitions/sbl1bak.bin
|
||||
264192 2048 /home/q/doc/modem/jz08-aurora/b5a/aboot-lk1st-aurora-autoboot.pad1M
|
||||
266240 2048 /home/q/doc/modem/jz08-aurora/partitions/abootbak.bin
|
||||
268288 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/rpm.bin
|
||||
269312 1024 /home/q/doc/modem/jz08-aurora/partitions/rpmbak.bin
|
||||
270336 2048 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/tz.bin
|
||||
305184 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/tzbak-305184.bin
|
||||
272384 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/hyp.bin
|
||||
273408 1024 /home/q/doc/modem/jz08-aurora/partitions/hypbak.bin
|
||||
274432 2048 /home/q/doc/modem/jz08-aurora/partitions/pad.bin
|
||||
276480 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/modemst1.bin
|
||||
279552 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/modemst2.bin
|
||||
282624 2048 /home/q/doc/modem/jz08-aurora/partitions/misc.bin
|
||||
284672 2 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/fsc.bin
|
||||
284674 16 /home/q/doc/modem/jz08-aurora/partitions/ssd.bin
|
||||
284690 20480 /home/q/doc/modem/jz08-aurora/partitions/splash.bin
|
||||
393216 64 /home/q/doc/modem/jz08-aurora/partitions/DDR.bin
|
||||
393280 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/fsg.bin
|
||||
396352 32 /home/q/doc/modem/jz08-aurora/partitions/sec.bin
|
||||
396384 32768 /home/q/doc/modem/jz08-aurora/b5a/boot-emmc1-16MiB.img
|
||||
429152 1638400 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/system.bin
|
||||
2067552 65536 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/persist.bin
|
||||
2133088 262144 /home/q/doc/modem/jz08-aurora/b10/b10b3/cache-v4/cache-extlinux-b10b5.img
|
||||
2395232 32768 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/recovery.bin
|
||||
2428000 5206911 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/userdata.bin
|
||||
28
b10/b10b3/cache-v4/emu/map-S8-b9c-regression.txt
Normal file
28
b10/b10b3/cache-v4/emu/map-S8-b9c-regression.txt
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
0 34 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/gpt-primary-34.bin
|
||||
131072 131072 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/modem.bin
|
||||
262144 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/sbl1.bin
|
||||
263168 1024 /home/q/doc/modem/jz08-aurora/partitions/sbl1bak.bin
|
||||
264192 2048 /home/q/doc/modem/jz08-aurora/b5a/aboot-lk1st-aurora-autoboot.pad1M
|
||||
266240 2048 /home/q/doc/modem/jz08-aurora/partitions/abootbak.bin
|
||||
268288 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/rpm.bin
|
||||
269312 1024 /home/q/doc/modem/jz08-aurora/partitions/rpmbak.bin
|
||||
270336 2048 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/tz.bin
|
||||
305184 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/tzbak-305184.bin
|
||||
272384 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/hyp.bin
|
||||
273408 1024 /home/q/doc/modem/jz08-aurora/partitions/hypbak.bin
|
||||
274432 2048 /home/q/doc/modem/jz08-aurora/partitions/pad.bin
|
||||
276480 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/modemst1.bin
|
||||
279552 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/modemst2.bin
|
||||
282624 2048 /home/q/doc/modem/jz08-aurora/partitions/misc.bin
|
||||
284672 2 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/fsc.bin
|
||||
284674 16 /home/q/doc/modem/jz08-aurora/partitions/ssd.bin
|
||||
284690 20480 /home/q/doc/modem/jz08-aurora/partitions/splash.bin
|
||||
393216 64 /home/q/doc/modem/jz08-aurora/partitions/DDR.bin
|
||||
393280 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/fsg.bin
|
||||
396352 32 /home/q/doc/modem/jz08-aurora/partitions/sec.bin
|
||||
396384 32768 /home/q/doc/modem/jz08-aurora/b5a/boot-emmc1-16MiB.img
|
||||
429152 1638400 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/system.bin
|
||||
2067552 65536 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/persist.bin
|
||||
2133088 262144 /home/q/doc/modem/jz08-aurora/b9/b9c/cache/cache-extlinux-b9c.img
|
||||
2395232 32768 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/recovery.bin
|
||||
2428000 5206911 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/userdata.bin
|
||||
13
b10/b10b3/cache-v4/emu/run-emu-b10b5.sh
Executable file
13
b10/b10b3/cache-v4/emu/run-emu-b10b5.sh
Executable file
|
|
@ -0,0 +1,13 @@
|
|||
#!/bin/bash
|
||||
# lk2nd-23.1 extlinux emulator (b5b/emu) on: S8 (B9C cache = current flash, regression vs b9/b9c/cache/emu S7), S10 B10B-5 (v4) candidate, fault variants. Offline, 480s.
|
||||
cd ~/doc/modem/jz08-aurora/b10/b10b3/cache-v4/emu; E=../../../../b5b/emu; GPT=../../../../logs/b5a/A3/gpt-primary-34.bin; C=/home/q/doc/modem/jz08-aurora/b10/b10b3/cache-v4/cache-extlinux-b10b5.img
|
||||
run() { python3 $E/mkmap.py $2 > map-$1.txt; $E/lk2nd-scan-emu map-$1.txt $GPT $3 > $1.out 2>&1; echo "== $1 rc=$? :: $(grep -E "Trying to boot|Reverting|boot_linux reached|ramdisk sha256|Could not" $1.out | tr '\n' ' ' | cut -c1-260)"; }
|
||||
run S8-b9c-regression /home/q/doc/modem/jz08-aurora/b9/b9c/cache/cache-extlinux-b9c.img 24686600
|
||||
cmp <(grep HARNESS S8-b9c-regression.out) <(grep HARNESS ../../../../b9/b9c/cache/emu/S7-b9c-candidate.out) && echo " S8 HARNESS lines == b9/b9c/cache/emu/S7-b9c-candidate.out"
|
||||
run S10-b10b5-candidate $C 24754184; # kernel_len = b10b5 Image (8c8bfccb, 24754184 B)
|
||||
grep HARNESS S10-b10b5-candidate.out
|
||||
D=$(mktemp -d); v(){ cp $C $D/$1.img; chmod u+w $D/$1.img; }
|
||||
v F3-no-initrd; /sbin/debugfs -w -R "rm /initramfs-b9c.cpio.gz" $D/F3-no-initrd.img >/dev/null 2>&1
|
||||
v F1-no-conf; /sbin/debugfs -w -R "rm /extlinux/extlinux.conf" $D/F1-no-conf.img >/dev/null 2>&1
|
||||
head -c 134217728 /dev/zero > $D/F10-zeroed-cache.img
|
||||
for f in $D/F*.img; do run $(basename $f .img) $f; done; rm -rf $D
|
||||
6
b10/b10b3/cache-v4/extlinux-b10b5.conf
Normal file
6
b10/b10b3/cache-v4/extlinux-b10b5.conf
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
default b10b5
|
||||
label b10b5
|
||||
linux /Image.gz-dtb
|
||||
fdt /aurora-b10b3.dtb
|
||||
initrd /initramfs-b9c.cpio.gz
|
||||
append earlycon console=tty0 console=ttyMSM0,115200n8 ignore_loglevel loglevel=8 rdinit=/init fbcon=font:6x8 consoleblank=0
|
||||
27
b10/b10b3/cache-v4/mkfs-cache-b10b5.sh
Executable file
27
b10/b10b3/cache-v4/mkfs-cache-b10b5.sh
Executable file
|
|
@ -0,0 +1,27 @@
|
|||
#!/bin/bash
|
||||
# B10B-5 cache CANDIDATE (v4 = v3 + FAULT safe clamp; NOT for writing without a separate GO): exact recipe of b10/b10b3/cache/mkfs-cache-b10b3.sh (86869061);
|
||||
# differs only in the kernel file (Image.gz-dtb = kernel 7.2.7-aurora-b10b5 96b71ec3 + the same production DTB e47762d1),
|
||||
# fdt (production DTB), file names, extlinux label, fs label and UUIDs. initrd and append = B9C unchanged. Runs on 480s (mke2fs 1.47.2). Offline only.
|
||||
# The image contains the AP PSK (in the initramfs) - never publish it.
|
||||
set -e
|
||||
cd ~/doc/modem/jz08-aurora/b10/b10b3/cache-v4
|
||||
OUT=${1:-cache-extlinux-b10b5.img}; F=../out-v4
|
||||
echo "0fef41b262917c8ae308fa222da0017e2b3cb3ec5da1ca8ba18d0318476761a3 $F/cmdline.txt" | sha256sum -c
|
||||
echo "b0ea04666c4ab979067fe9c0015bda0e9c8ac742678321e57b18e841c9c69f95 $F/Image.gz-dtb" | sha256sum -c
|
||||
echo "e47762d1dcd0af6e2acb711fa47ecc13769cd6bcb81259ce50635e8b18b6514a $F/aurora-b10b3.dtb" | sha256sum -c
|
||||
echo "ac518e27e2957ad5e4515969b9a3808024e11ef8d1a79433a899a67dbc644558 $F/initramfs.cpio.gz" | sha256sum -c
|
||||
ST=$(mktemp -d); mkdir -p $ST/extlinux
|
||||
cp $F/Image.gz-dtb $F/aurora-b10b3.dtb $ST/; cp $F/initramfs.cpio.gz $ST/initramfs-b9c.cpio.gz
|
||||
printf "default b10b5\nlabel b10b5\n\tlinux /Image.gz-dtb\n\tfdt /aurora-b10b3.dtb\n\tinitrd /initramfs-b9c.cpio.gz\n\tappend %s\n" "$(cat $F/cmdline.txt)" > $ST/extlinux/extlinux.conf
|
||||
cp $ST/extlinux/extlinux.conf extlinux-b10b5.conf
|
||||
chmod 0644 $ST/*.* $ST/extlinux/extlinux.conf; chmod 0755 $ST $ST/extlinux
|
||||
find $ST -exec touch -h -d @1790726400 {} +
|
||||
rm -f $OUT; truncate -s 134217728 $OUT
|
||||
E2FSPROGS_FAKE_TIME=1790726400 /sbin/mke2fs -F -q -t ext2 -O none,filetype,sparse_super \
|
||||
-b 4096 -I 128 -N 64 -m 0 -L aurora-b10b5 -U 4a5a3038-b6f0-4000-8000-0000b10b5c00 \
|
||||
-E root_owner=0:0,hash_seed=4a5a3038-b6f0-4000-8000-0000b10b5c01 -d $ST $OUT 32768
|
||||
rm -rf $ST
|
||||
for f in / /lost+found /extlinux /extlinux/extlinux.conf /Image.gz-dtb /aurora-b10b3.dtb /initramfs-b9c.cpio.gz; do for t in atime ctime mtime; do echo "sif $f $t @1790726400"; done; done > /tmp/b10b5-sif.$$
|
||||
/sbin/debugfs -w -f /tmp/b10b5-sif.$$ $OUT >/dev/null 2>&1; rm -f /tmp/b10b5-sif.$$
|
||||
/sbin/e2fsck -fn $OUT >/dev/null 2>&1 && echo "e2fsck -fn clean"
|
||||
stat -c "%n %s" $OUT; sha256sum $OUT
|
||||
56
b10/b10b3/cache/B10B3-CACHE-CANDIDATE.md
vendored
Normal file
56
b10/b10b3/cache/B10B3-CACHE-CANDIDATE.md
vendored
Normal file
|
|
@ -0,0 +1,56 @@
|
|||
# B10B-3 cache candidate — prepared, NOT written, NOT ready for persistent deployment
|
||||
|
||||
Date: 2026-10-04. **Status: candidate prepared and RAM-pretested; no cache/eMMC write. Persistent GO blocked (see Blocker).**
|
||||
Contains the AP PSK (B8F initramfs) — never publish.
|
||||
|
||||
## Candidate
|
||||
`cache-extlinux-b10b3.img` **86869061fcc971131068644542547893332f3ede9870a324eaf360824610d40a** (134217728 B, ext2, label aurora-b10b3,
|
||||
UUID 4a5a3038-b6f0-4000-8000-0000b10b3c00). Built on 480s by `mkfs-cache-b10b3.sh` (278130cf) = exact B9C recipe (`b9/b9c/cache/mkfs-cache-b9c.sh`);
|
||||
rebuild bit-identical; `e2fsck -fn` clean. `SHA256SUMS` in this directory.
|
||||
|
||||
## Composition and diff vs the live B9C cache (b9ce13c9) — `cache-contents-b9c-vs-b10b3.txt`
|
||||
| file | B9C | candidate |
|
||||
|---|---|---|
|
||||
| /Image.gz-dtb | 632a7be8 (kernel 7.2.7-aurora-b9c + B9B DTB) | **5e69f843** (kernel 7.2.7-aurora-b10b3 1164b1c7 + production DTB) |
|
||||
| DTB (fdt) | /aurora-b9c.dtb 7ca9cc79 | **/aurora-b10b3.dtb e47762d1** (`linux/dts/msm8916-jz08-aurora-b10b3.dts`) |
|
||||
| /initramfs-b9c.cpio.gz | ac518e27 | ac518e27 (unchanged: B9C userspace/init/display/network) |
|
||||
| extlinux.conf | label b9c, fdt aurora-b9c.dtb | label b10b3, fdt aurora-b10b3.dtb; **append identical** |
|
||||
Really replaced: the kernel file and the DTB (plus label/fdt name in extlinux.conf). Kernel config b10b3 = B9C config + CHARGER_PM8916_LBC,
|
||||
BATTERY_PM8916_BMS_VM, IIO, QCOM_SPMI_VADC, QCOM_VADC_COMMON, QCOM_SPMI_TEMP_ALARM (+ LOCALVERSION). Driver = v3 (`linux/patches/b10b3-lbc-supervisor-v3.patch`),
|
||||
**no D3 change**. DTB = B9B DTB + layers b10b0 (VADC VBAT ch6) / b10b1 (battery 3000 mAh, BMS) / b10b2 (charger on, usbin off, extcon) / b10b3 (supervisor).
|
||||
|
||||
## DTB check (fdtget, /soc@0/spmi@200f000/pmic@0/charger@1000)
|
||||
status "okay"; qcom,fast-charge-safe-voltage 4200000; qcom,fast-charge-safe-current 500000 (→ IBAT_MAX 450 mA); qcom,charge-timeout-minutes 512;
|
||||
aurora,hold-voltage-microvolt 4050000; aurora,full-min-voltage-microvolt 4150000; aurora,cv-hold-minutes 60; io-channel-names "vbat";
|
||||
/battery voltage-max-design-microvolt 4200000, charge-full-design 3000000; re-charge-voltage absent. No Test-C/B/D/T values (4.10/4.00 V, 5/2 min,
|
||||
8 min, 3.94 V) present. The DTB appended to Image.gz-dtb is byte-identical to the fdt file. Model string "JZ08AU Aurora (RAM boot B10B-3)" (cosmetic).
|
||||
|
||||
## lk2nd emulator (`emu/run-emu-b10b3.sh`, b5b/emu)
|
||||
- S8 regression on the live B9C cache == b9/b9c/cache/emu S7 (HARNESS lines identical).
|
||||
- S9 candidate: "Trying to boot 'b10b3'", kernel 5afd371e (24754184 B, image_size 0x1830000, ends DDR+0x1830000), DTB e47762d1 @DDR+0x20A9000,
|
||||
ramdisk ac518e27 @DDR+0x22A9000 — no overlap; cmdline = B9C.
|
||||
- F1 (no conf) / F3 (no initrd) / F10 (zeroed cache) → "Reverting to android boot" (emmc1 fallback).
|
||||
|
||||
## RAM pretest (class A, run cand1; `logs/b10/b10b3/cand1*`, `pre-cand-classA-*`)
|
||||
RAM image `b10/b10b3/out/aurora-b10b3.img` b7dc34e9 = same kernel/DTB/initramfs/cmdline as the candidate. Class A proven (RTC 3 s, SBL charger
|
||||
defaults, dump diff ADC/BMS/RTC only). RESET-held boot (stage-3 again, RTC 5 s — harness only).
|
||||
- probe: `safety timer 512 min (TCHG_MAX 0x7f), enabled`; `supervisor v3: charge 4200000, hold 4050000, full-min 4150000, cv 60 min, IBAT_MAX code 4`;
|
||||
`INIT -> CHARGING (probe, usb present)` at 4.072 V.
|
||||
- registers: VDD_MAX 08 (4.20 V), IBAT_MAX 04 (450 mA), CHG_CTRL a0, TCHG 80/7f, BOOT_DONE 80, CHG_FAILED 00, CHG_STATUS 05; no latch; 0 ALERT.
|
||||
- VADC: VBAT 4.159 V (under charge), USBIN 4.884 V; PMIC 45.7 °C (VADC) / 44.6 °C (pm8916-thermal), CPU ≈ 44–46 °C.
|
||||
- LTE START OK 73.7 s, ping 4/4; Wi-Fi AP enabled 77.3 s, MSS + WCNSS running; NCM ok; DISPLAY READY 7.8 s (fbcon bound, backlight on, 0 errors);
|
||||
eMMC writes 0. 60-min CV/HOLD not repeated (state machine validated in B10B3-RESULT.md).
|
||||
Board left CHARGING on the RAM pretest image; nothing written.
|
||||
|
||||
## Blocker before any persistent GO
|
||||
**FAULT currently has no verified physical charge-stop actuator; the safety timer also does not stop charging** (Test D4: expiry only ends the
|
||||
fast-charge state, current continues, CHG_FAILED not set; CHG_EN = 0 does not stop the LBC). FAULT in v3 is logical only.
|
||||
|
||||
## Proposed next test (needs a separate GO; RAM only, not executed)
|
||||
**B10B-4 — emergency actuator search.** Test-only kernel hook (debugfs, RAM image only) or manual regmap writes per approved list, each step:
|
||||
class-A start, CHARGING at ≈ 0.4 A, apply one actuator, observe USB current (meter), CHG_STATUS, RT, path, VBAT, PMIC 30–60 s, then revert:
|
||||
1. USB_SUSP (0x1347 bit0 = 1): does input current go to ≈ 0, does the board drop to battery, does it survive; release → recovery.
|
||||
2. IBAT_MAX minimum (0x1044 = 00, 90 mA): residual current with the board load.
|
||||
3. VDD_MAX minimum (0x1040 = 00, 4.00 V) when VBAT > 4.00 V: does charging stop (HOLD phase-1 already suggests yes).
|
||||
4. Combination (2 + 3) and, if 1 works, 1 alone as the FAULT action.
|
||||
Pass criterion for an actuator: battery current stops within seconds, no 00/01 latch, board keeps running (from USB or battery), reversible.
|
||||
4
b10/b10b3/cache/SHA256SUMS
vendored
Normal file
4
b10/b10b3/cache/SHA256SUMS
vendored
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
86869061fcc971131068644542547893332f3ede9870a324eaf360824610d40a cache-extlinux-b10b3.img
|
||||
278130cfeabdc625c91accd2f29d660f65eec4b04f917325f43d574711df64fb mkfs-cache-b10b3.sh
|
||||
9b6584fcc71ae74f6c84cba6c9bcd2576ae8c59edee2fad5b9d0753f54f8ca19 extlinux-b10b3.conf
|
||||
d34697d23c65fa5d31478522b5551b074f208e5314e4e4b0ba72a5be819f105a emu/run-emu-b10b3.sh
|
||||
10
b10/b10b3/cache/cache-contents-b9c-vs-b10b3.txt
vendored
Normal file
10
b10/b10b3/cache/cache-contents-b9c-vs-b10b3.txt
vendored
Normal file
|
|
@ -0,0 +1,10 @@
|
|||
== cache-extlinux-b10b3
|
||||
5e69f8431d42a9ddb9d64f06dcc408cd8dbfa9dffdba7e9b06e4ba58075ed1c7 Image.gz-dtb
|
||||
e47762d1dcd0af6e2acb711fa47ecc13769cd6bcb81259ce50635e8b18b6514a aurora-b10b3.dtb
|
||||
9b6584fcc71ae74f6c84cba6c9bcd2576ae8c59edee2fad5b9d0753f54f8ca19 extlinux_extlinux.conf
|
||||
ac518e27e2957ad5e4515969b9a3808024e11ef8d1a79433a899a67dbc644558 initramfs-b9c.cpio.gz
|
||||
== cache-extlinux-b9c
|
||||
632a7be801978dfaddeae633d5293b3abe385f2281cc5053772e6637897a7e5a Image.gz-dtb
|
||||
7ca9cc794a3b85d3b7240f6311ad03bee9e1a4a59aae2ed9438318e853f7c3dc aurora-b9c.dtb
|
||||
7facbd7aec20d7a823f23a824172448dd3d21a3f9bc9cc422fe6ef4565d52e90 extlinux_extlinux.conf
|
||||
ac518e27e2957ad5e4515969b9a3808024e11ef8d1a79433a899a67dbc644558 initramfs-b9c.cpio.gz
|
||||
42
b10/b10b3/cache/emu/F1-no-conf.out
vendored
Normal file
42
b10/b10b3/cache/emu/F1-no-conf.out
vendored
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
[lk] Registering wrapper bio devices...
|
||||
[lk] block devices:
|
||||
[lk] | dev | label | size | Leaf |
|
||||
[lk] | wrp0p26 | userdata | 2542 MiB | Yes |
|
||||
[lk] | wrp0p25 | recovery | 16 MiB | Yes |
|
||||
[lk] | wrp0p24 | cache | 128 MiB | Yes |
|
||||
[lk] | wrp0p23 | persist | 32 MiB | Yes |
|
||||
[lk] | wrp0p22 | system | 800 MiB | Yes |
|
||||
[lk] | wrp0p21 | boot | 16 MiB | Yes |
|
||||
[lk] | wrp0p20 | sec | 16 KiB | Yes |
|
||||
[lk] | wrp0p19 | fsg | 1 MiB | Yes |
|
||||
[lk] | wrp0p18 | DDR | 32 KiB | Yes |
|
||||
[lk] | wrp0p17 | splash | 10 MiB | Yes |
|
||||
[lk] | wrp0p16 | ssd | 8 KiB | Yes |
|
||||
[lk] | wrp0p15 | fsc | 1 KiB | Yes |
|
||||
[lk] | wrp0p14 | misc | 1024 KiB | Yes |
|
||||
[lk] | wrp0p13 | modemst2 | 1 MiB | Yes |
|
||||
[lk] | wrp0p12 | modemst1 | 1 MiB | Yes |
|
||||
[lk] | wrp0p11 | pad | 1024 KiB | Yes |
|
||||
[lk] | wrp0p10 | hypbak | 512 KiB | Yes |
|
||||
[lk] | wrp0p9 | hyp | 512 KiB | Yes |
|
||||
[lk] | wrp0p8 | tzbak | 512 KiB | Yes |
|
||||
[lk] | wrp0p7 | tz | 1024 KiB | Yes |
|
||||
[lk] | wrp0p6 | rpmbak | 512 KiB | Yes |
|
||||
[lk] | wrp0p5 | rpm | 512 KiB | Yes |
|
||||
[lk] | wrp0p4 | abootbak | 1024 KiB | Yes |
|
||||
[lk] | wrp0p3 | aboot | 1024 KiB | Yes |
|
||||
[lk] | wrp0p2 | sbl1bak | 512 KiB | Yes |
|
||||
[lk] | wrp0p1 | sbl1 | 512 KiB | Yes |
|
||||
[lk] | wrp0p0 | modem | 64 MiB | Yes |
|
||||
[lk] | wrp0 | | 3728 MiB | |
|
||||
[lk] boot: Trying to boot from the file system...
|
||||
[lk] boot: Bootable file system not found. Reverting to android boot.
|
||||
HARNESS: lk2nd_boot() returned -> aboot would continue to boot_linux_from_mmc() (Android boot partition)
|
||||
HARNESS: scan-candidate wrp0p26 (userdata) ext2 mount rc=-3
|
||||
HARNESS: scan-candidate wrp0p25 (recovery) ext2 mount rc=-1
|
||||
HARNESS: scan-candidate wrp0p24 (cache) ext2 mount rc=0
|
||||
HARNESS: scan-candidate wrp0p23 (persist) ext2 mount rc=-3
|
||||
HARNESS: scan-candidate wrp0p22 (system) ext2 mount rc=-3
|
||||
HARNESS: scan-candidate wrp0p21 (boot) ext2 mount rc=-1
|
||||
HARNESS: scan-candidate wrp0p0 (modem) ext2 mount rc=-1
|
||||
HARNESS: total bytes read 45568
|
||||
42
b10/b10b3/cache/emu/F10-zeroed-cache.out
vendored
Normal file
42
b10/b10b3/cache/emu/F10-zeroed-cache.out
vendored
Normal file
|
|
@ -0,0 +1,42 @@
|
|||
[lk] Registering wrapper bio devices...
|
||||
[lk] block devices:
|
||||
[lk] | dev | label | size | Leaf |
|
||||
[lk] | wrp0p26 | userdata | 2542 MiB | Yes |
|
||||
[lk] | wrp0p25 | recovery | 16 MiB | Yes |
|
||||
[lk] | wrp0p24 | cache | 128 MiB | Yes |
|
||||
[lk] | wrp0p23 | persist | 32 MiB | Yes |
|
||||
[lk] | wrp0p22 | system | 800 MiB | Yes |
|
||||
[lk] | wrp0p21 | boot | 16 MiB | Yes |
|
||||
[lk] | wrp0p20 | sec | 16 KiB | Yes |
|
||||
[lk] | wrp0p19 | fsg | 1 MiB | Yes |
|
||||
[lk] | wrp0p18 | DDR | 32 KiB | Yes |
|
||||
[lk] | wrp0p17 | splash | 10 MiB | Yes |
|
||||
[lk] | wrp0p16 | ssd | 8 KiB | Yes |
|
||||
[lk] | wrp0p15 | fsc | 1 KiB | Yes |
|
||||
[lk] | wrp0p14 | misc | 1024 KiB | Yes |
|
||||
[lk] | wrp0p13 | modemst2 | 1 MiB | Yes |
|
||||
[lk] | wrp0p12 | modemst1 | 1 MiB | Yes |
|
||||
[lk] | wrp0p11 | pad | 1024 KiB | Yes |
|
||||
[lk] | wrp0p10 | hypbak | 512 KiB | Yes |
|
||||
[lk] | wrp0p9 | hyp | 512 KiB | Yes |
|
||||
[lk] | wrp0p8 | tzbak | 512 KiB | Yes |
|
||||
[lk] | wrp0p7 | tz | 1024 KiB | Yes |
|
||||
[lk] | wrp0p6 | rpmbak | 512 KiB | Yes |
|
||||
[lk] | wrp0p5 | rpm | 512 KiB | Yes |
|
||||
[lk] | wrp0p4 | abootbak | 1024 KiB | Yes |
|
||||
[lk] | wrp0p3 | aboot | 1024 KiB | Yes |
|
||||
[lk] | wrp0p2 | sbl1bak | 512 KiB | Yes |
|
||||
[lk] | wrp0p1 | sbl1 | 512 KiB | Yes |
|
||||
[lk] | wrp0p0 | modem | 64 MiB | Yes |
|
||||
[lk] | wrp0 | | 3728 MiB | |
|
||||
[lk] boot: Trying to boot from the file system...
|
||||
[lk] boot: Bootable file system not found. Reverting to android boot.
|
||||
HARNESS: lk2nd_boot() returned -> aboot would continue to boot_linux_from_mmc() (Android boot partition)
|
||||
HARNESS: scan-candidate wrp0p26 (userdata) ext2 mount rc=-3
|
||||
HARNESS: scan-candidate wrp0p25 (recovery) ext2 mount rc=-1
|
||||
HARNESS: scan-candidate wrp0p24 (cache) ext2 mount rc=-1
|
||||
HARNESS: scan-candidate wrp0p23 (persist) ext2 mount rc=-3
|
||||
HARNESS: scan-candidate wrp0p22 (system) ext2 mount rc=-3
|
||||
HARNESS: scan-candidate wrp0p21 (boot) ext2 mount rc=-1
|
||||
HARNESS: scan-candidate wrp0p0 (modem) ext2 mount rc=-1
|
||||
HARNESS: total bytes read 28160
|
||||
44
b10/b10b3/cache/emu/F3-no-initrd.out
vendored
Normal file
44
b10/b10b3/cache/emu/F3-no-initrd.out
vendored
Normal file
|
|
@ -0,0 +1,44 @@
|
|||
[lk] Registering wrapper bio devices...
|
||||
[lk] block devices:
|
||||
[lk] | dev | label | size | Leaf |
|
||||
[lk] | wrp0p26 | userdata | 2542 MiB | Yes |
|
||||
[lk] | wrp0p25 | recovery | 16 MiB | Yes |
|
||||
[lk] | wrp0p24 | cache | 128 MiB | Yes |
|
||||
[lk] | wrp0p23 | persist | 32 MiB | Yes |
|
||||
[lk] | wrp0p22 | system | 800 MiB | Yes |
|
||||
[lk] | wrp0p21 | boot | 16 MiB | Yes |
|
||||
[lk] | wrp0p20 | sec | 16 KiB | Yes |
|
||||
[lk] | wrp0p19 | fsg | 1 MiB | Yes |
|
||||
[lk] | wrp0p18 | DDR | 32 KiB | Yes |
|
||||
[lk] | wrp0p17 | splash | 10 MiB | Yes |
|
||||
[lk] | wrp0p16 | ssd | 8 KiB | Yes |
|
||||
[lk] | wrp0p15 | fsc | 1 KiB | Yes |
|
||||
[lk] | wrp0p14 | misc | 1024 KiB | Yes |
|
||||
[lk] | wrp0p13 | modemst2 | 1 MiB | Yes |
|
||||
[lk] | wrp0p12 | modemst1 | 1 MiB | Yes |
|
||||
[lk] | wrp0p11 | pad | 1024 KiB | Yes |
|
||||
[lk] | wrp0p10 | hypbak | 512 KiB | Yes |
|
||||
[lk] | wrp0p9 | hyp | 512 KiB | Yes |
|
||||
[lk] | wrp0p8 | tzbak | 512 KiB | Yes |
|
||||
[lk] | wrp0p7 | tz | 1024 KiB | Yes |
|
||||
[lk] | wrp0p6 | rpmbak | 512 KiB | Yes |
|
||||
[lk] | wrp0p5 | rpm | 512 KiB | Yes |
|
||||
[lk] | wrp0p4 | abootbak | 1024 KiB | Yes |
|
||||
[lk] | wrp0p3 | aboot | 1024 KiB | Yes |
|
||||
[lk] | wrp0p2 | sbl1bak | 512 KiB | Yes |
|
||||
[lk] | wrp0p1 | sbl1 | 512 KiB | Yes |
|
||||
[lk] | wrp0p0 | modem | 64 MiB | Yes |
|
||||
[lk] | wrp0 | | 3728 MiB | |
|
||||
[lk] boot: Trying to boot from the file system...
|
||||
[lk] Initramfs /wrp0p24//initramfs-b9c.cpio.gz does not exist
|
||||
[lk] Failed to parse extlinux.conf
|
||||
[lk] boot: Bootable file system not found. Reverting to android boot.
|
||||
HARNESS: lk2nd_boot() returned -> aboot would continue to boot_linux_from_mmc() (Android boot partition)
|
||||
HARNESS: scan-candidate wrp0p26 (userdata) ext2 mount rc=-3
|
||||
HARNESS: scan-candidate wrp0p25 (recovery) ext2 mount rc=-1
|
||||
HARNESS: scan-candidate wrp0p24 (cache) ext2 mount rc=0
|
||||
HARNESS: scan-candidate wrp0p23 (persist) ext2 mount rc=-3
|
||||
HARNESS: scan-candidate wrp0p22 (system) ext2 mount rc=-3
|
||||
HARNESS: scan-candidate wrp0p21 (boot) ext2 mount rc=-1
|
||||
HARNESS: scan-candidate wrp0p0 (modem) ext2 mount rc=-1
|
||||
HARNESS: total bytes read 49664
|
||||
40
b10/b10b3/cache/emu/S8-b9c-regression.out
vendored
Normal file
40
b10/b10b3/cache/emu/S8-b9c-regression.out
vendored
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
[lk] Registering wrapper bio devices...
|
||||
[lk] block devices:
|
||||
[lk] | dev | label | size | Leaf |
|
||||
[lk] | wrp0p26 | userdata | 2542 MiB | Yes |
|
||||
[lk] | wrp0p25 | recovery | 16 MiB | Yes |
|
||||
[lk] | wrp0p24 | cache | 128 MiB | Yes |
|
||||
[lk] | wrp0p23 | persist | 32 MiB | Yes |
|
||||
[lk] | wrp0p22 | system | 800 MiB | Yes |
|
||||
[lk] | wrp0p21 | boot | 16 MiB | Yes |
|
||||
[lk] | wrp0p20 | sec | 16 KiB | Yes |
|
||||
[lk] | wrp0p19 | fsg | 1 MiB | Yes |
|
||||
[lk] | wrp0p18 | DDR | 32 KiB | Yes |
|
||||
[lk] | wrp0p17 | splash | 10 MiB | Yes |
|
||||
[lk] | wrp0p16 | ssd | 8 KiB | Yes |
|
||||
[lk] | wrp0p15 | fsc | 1 KiB | Yes |
|
||||
[lk] | wrp0p14 | misc | 1024 KiB | Yes |
|
||||
[lk] | wrp0p13 | modemst2 | 1 MiB | Yes |
|
||||
[lk] | wrp0p12 | modemst1 | 1 MiB | Yes |
|
||||
[lk] | wrp0p11 | pad | 1024 KiB | Yes |
|
||||
[lk] | wrp0p10 | hypbak | 512 KiB | Yes |
|
||||
[lk] | wrp0p9 | hyp | 512 KiB | Yes |
|
||||
[lk] | wrp0p8 | tzbak | 512 KiB | Yes |
|
||||
[lk] | wrp0p7 | tz | 1024 KiB | Yes |
|
||||
[lk] | wrp0p6 | rpmbak | 512 KiB | Yes |
|
||||
[lk] | wrp0p5 | rpm | 512 KiB | Yes |
|
||||
[lk] | wrp0p4 | abootbak | 1024 KiB | Yes |
|
||||
[lk] | wrp0p3 | aboot | 1024 KiB | Yes |
|
||||
[lk] | wrp0p2 | sbl1bak | 512 KiB | Yes |
|
||||
[lk] | wrp0p1 | sbl1 | 512 KiB | Yes |
|
||||
[lk] | wrp0p0 | modem | 64 MiB | Yes |
|
||||
[lk] | wrp0 | | 3728 MiB | |
|
||||
[lk] boot: Trying to boot from the file system...
|
||||
[lk] Trying to boot 'b9c'
|
||||
[lk] Decompressing the kernel...
|
||||
HARNESS: boot_linux reached: kernel @DDR+0x0 tags @DDR+0x20a9000 ramdisk @DDR+0x22a9000 (16082426) boot_type 0
|
||||
HARNESS: kernel magic 0x644d5241 image_size 0x1820000 end @DDR+0x1820000
|
||||
HARNESS: cmdline 'earlycon console=tty0 console=ttyMSM0,115200n8 ignore_loglevel loglevel=8 rdinit=/init fbcon=font:6x8 consoleblank=0'
|
||||
HARNESS: kernel sha256 3afc6c77f3ed4b4ad82f61914b9cca354c3bdcaf5d102d7782a0cd5577cbca61 (24686600 bytes)
|
||||
HARNESS: dtb sha256 7ca9cc794a3b85d3b7240f6311ad03bee9e1a4a59aae2ed9438318e853f7c3dc (67425 bytes)
|
||||
HARNESS: ramdisk sha256 ac518e27e2957ad5e4515969b9a3808024e11ef8d1a79433a899a67dbc644558 (16082426 bytes)
|
||||
40
b10/b10b3/cache/emu/S9-b10b3-candidate.out
vendored
Normal file
40
b10/b10b3/cache/emu/S9-b10b3-candidate.out
vendored
Normal file
|
|
@ -0,0 +1,40 @@
|
|||
[lk] Registering wrapper bio devices...
|
||||
[lk] block devices:
|
||||
[lk] | dev | label | size | Leaf |
|
||||
[lk] | wrp0p26 | userdata | 2542 MiB | Yes |
|
||||
[lk] | wrp0p25 | recovery | 16 MiB | Yes |
|
||||
[lk] | wrp0p24 | cache | 128 MiB | Yes |
|
||||
[lk] | wrp0p23 | persist | 32 MiB | Yes |
|
||||
[lk] | wrp0p22 | system | 800 MiB | Yes |
|
||||
[lk] | wrp0p21 | boot | 16 MiB | Yes |
|
||||
[lk] | wrp0p20 | sec | 16 KiB | Yes |
|
||||
[lk] | wrp0p19 | fsg | 1 MiB | Yes |
|
||||
[lk] | wrp0p18 | DDR | 32 KiB | Yes |
|
||||
[lk] | wrp0p17 | splash | 10 MiB | Yes |
|
||||
[lk] | wrp0p16 | ssd | 8 KiB | Yes |
|
||||
[lk] | wrp0p15 | fsc | 1 KiB | Yes |
|
||||
[lk] | wrp0p14 | misc | 1024 KiB | Yes |
|
||||
[lk] | wrp0p13 | modemst2 | 1 MiB | Yes |
|
||||
[lk] | wrp0p12 | modemst1 | 1 MiB | Yes |
|
||||
[lk] | wrp0p11 | pad | 1024 KiB | Yes |
|
||||
[lk] | wrp0p10 | hypbak | 512 KiB | Yes |
|
||||
[lk] | wrp0p9 | hyp | 512 KiB | Yes |
|
||||
[lk] | wrp0p8 | tzbak | 512 KiB | Yes |
|
||||
[lk] | wrp0p7 | tz | 1024 KiB | Yes |
|
||||
[lk] | wrp0p6 | rpmbak | 512 KiB | Yes |
|
||||
[lk] | wrp0p5 | rpm | 512 KiB | Yes |
|
||||
[lk] | wrp0p4 | abootbak | 1024 KiB | Yes |
|
||||
[lk] | wrp0p3 | aboot | 1024 KiB | Yes |
|
||||
[lk] | wrp0p2 | sbl1bak | 512 KiB | Yes |
|
||||
[lk] | wrp0p1 | sbl1 | 512 KiB | Yes |
|
||||
[lk] | wrp0p0 | modem | 64 MiB | Yes |
|
||||
[lk] | wrp0 | | 3728 MiB | |
|
||||
[lk] boot: Trying to boot from the file system...
|
||||
[lk] Trying to boot 'b10b3'
|
||||
[lk] Decompressing the kernel...
|
||||
HARNESS: boot_linux reached: kernel @DDR+0x0 tags @DDR+0x20a9000 ramdisk @DDR+0x22a9000 (16082426) boot_type 0
|
||||
HARNESS: kernel magic 0x644d5241 image_size 0x1830000 end @DDR+0x1830000
|
||||
HARNESS: cmdline 'earlycon console=tty0 console=ttyMSM0,115200n8 ignore_loglevel loglevel=8 rdinit=/init fbcon=font:6x8 consoleblank=0'
|
||||
HARNESS: kernel sha256 5afd371e3bb1d2a2119071622194ae533db9f456408fda696ad4aa3d9df871fb (24754184 bytes)
|
||||
HARNESS: dtb sha256 e47762d1dcd0af6e2acb711fa47ecc13769cd6bcb81259ce50635e8b18b6514a (68093 bytes)
|
||||
HARNESS: ramdisk sha256 ac518e27e2957ad5e4515969b9a3808024e11ef8d1a79433a899a67dbc644558 (16082426 bytes)
|
||||
28
b10/b10b3/cache/emu/map-F1-no-conf.txt
vendored
Normal file
28
b10/b10b3/cache/emu/map-F1-no-conf.txt
vendored
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
0 34 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/gpt-primary-34.bin
|
||||
131072 131072 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/modem.bin
|
||||
262144 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/sbl1.bin
|
||||
263168 1024 /home/q/doc/modem/jz08-aurora/partitions/sbl1bak.bin
|
||||
264192 2048 /home/q/doc/modem/jz08-aurora/b5a/aboot-lk1st-aurora-autoboot.pad1M
|
||||
266240 2048 /home/q/doc/modem/jz08-aurora/partitions/abootbak.bin
|
||||
268288 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/rpm.bin
|
||||
269312 1024 /home/q/doc/modem/jz08-aurora/partitions/rpmbak.bin
|
||||
270336 2048 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/tz.bin
|
||||
305184 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/tzbak-305184.bin
|
||||
272384 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/hyp.bin
|
||||
273408 1024 /home/q/doc/modem/jz08-aurora/partitions/hypbak.bin
|
||||
274432 2048 /home/q/doc/modem/jz08-aurora/partitions/pad.bin
|
||||
276480 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/modemst1.bin
|
||||
279552 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/modemst2.bin
|
||||
282624 2048 /home/q/doc/modem/jz08-aurora/partitions/misc.bin
|
||||
284672 2 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/fsc.bin
|
||||
284674 16 /home/q/doc/modem/jz08-aurora/partitions/ssd.bin
|
||||
284690 20480 /home/q/doc/modem/jz08-aurora/partitions/splash.bin
|
||||
393216 64 /home/q/doc/modem/jz08-aurora/partitions/DDR.bin
|
||||
393280 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/fsg.bin
|
||||
396352 32 /home/q/doc/modem/jz08-aurora/partitions/sec.bin
|
||||
396384 32768 /home/q/doc/modem/jz08-aurora/b5a/boot-emmc1-16MiB.img
|
||||
429152 1638400 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/system.bin
|
||||
2067552 65536 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/persist.bin
|
||||
2133088 262144 /tmp/tmp.9yMft8rFLs/F1-no-conf.img
|
||||
2395232 32768 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/recovery.bin
|
||||
2428000 5206911 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/userdata.bin
|
||||
28
b10/b10b3/cache/emu/map-F10-zeroed-cache.txt
vendored
Normal file
28
b10/b10b3/cache/emu/map-F10-zeroed-cache.txt
vendored
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
0 34 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/gpt-primary-34.bin
|
||||
131072 131072 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/modem.bin
|
||||
262144 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/sbl1.bin
|
||||
263168 1024 /home/q/doc/modem/jz08-aurora/partitions/sbl1bak.bin
|
||||
264192 2048 /home/q/doc/modem/jz08-aurora/b5a/aboot-lk1st-aurora-autoboot.pad1M
|
||||
266240 2048 /home/q/doc/modem/jz08-aurora/partitions/abootbak.bin
|
||||
268288 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/rpm.bin
|
||||
269312 1024 /home/q/doc/modem/jz08-aurora/partitions/rpmbak.bin
|
||||
270336 2048 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/tz.bin
|
||||
305184 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/tzbak-305184.bin
|
||||
272384 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/hyp.bin
|
||||
273408 1024 /home/q/doc/modem/jz08-aurora/partitions/hypbak.bin
|
||||
274432 2048 /home/q/doc/modem/jz08-aurora/partitions/pad.bin
|
||||
276480 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/modemst1.bin
|
||||
279552 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/modemst2.bin
|
||||
282624 2048 /home/q/doc/modem/jz08-aurora/partitions/misc.bin
|
||||
284672 2 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/fsc.bin
|
||||
284674 16 /home/q/doc/modem/jz08-aurora/partitions/ssd.bin
|
||||
284690 20480 /home/q/doc/modem/jz08-aurora/partitions/splash.bin
|
||||
393216 64 /home/q/doc/modem/jz08-aurora/partitions/DDR.bin
|
||||
393280 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/fsg.bin
|
||||
396352 32 /home/q/doc/modem/jz08-aurora/partitions/sec.bin
|
||||
396384 32768 /home/q/doc/modem/jz08-aurora/b5a/boot-emmc1-16MiB.img
|
||||
429152 1638400 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/system.bin
|
||||
2067552 65536 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/persist.bin
|
||||
2133088 262144 /tmp/tmp.9yMft8rFLs/F10-zeroed-cache.img
|
||||
2395232 32768 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/recovery.bin
|
||||
2428000 5206911 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/userdata.bin
|
||||
28
b10/b10b3/cache/emu/map-F3-no-initrd.txt
vendored
Normal file
28
b10/b10b3/cache/emu/map-F3-no-initrd.txt
vendored
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
0 34 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/gpt-primary-34.bin
|
||||
131072 131072 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/modem.bin
|
||||
262144 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/sbl1.bin
|
||||
263168 1024 /home/q/doc/modem/jz08-aurora/partitions/sbl1bak.bin
|
||||
264192 2048 /home/q/doc/modem/jz08-aurora/b5a/aboot-lk1st-aurora-autoboot.pad1M
|
||||
266240 2048 /home/q/doc/modem/jz08-aurora/partitions/abootbak.bin
|
||||
268288 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/rpm.bin
|
||||
269312 1024 /home/q/doc/modem/jz08-aurora/partitions/rpmbak.bin
|
||||
270336 2048 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/tz.bin
|
||||
305184 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/tzbak-305184.bin
|
||||
272384 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/hyp.bin
|
||||
273408 1024 /home/q/doc/modem/jz08-aurora/partitions/hypbak.bin
|
||||
274432 2048 /home/q/doc/modem/jz08-aurora/partitions/pad.bin
|
||||
276480 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/modemst1.bin
|
||||
279552 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/modemst2.bin
|
||||
282624 2048 /home/q/doc/modem/jz08-aurora/partitions/misc.bin
|
||||
284672 2 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/fsc.bin
|
||||
284674 16 /home/q/doc/modem/jz08-aurora/partitions/ssd.bin
|
||||
284690 20480 /home/q/doc/modem/jz08-aurora/partitions/splash.bin
|
||||
393216 64 /home/q/doc/modem/jz08-aurora/partitions/DDR.bin
|
||||
393280 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/fsg.bin
|
||||
396352 32 /home/q/doc/modem/jz08-aurora/partitions/sec.bin
|
||||
396384 32768 /home/q/doc/modem/jz08-aurora/b5a/boot-emmc1-16MiB.img
|
||||
429152 1638400 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/system.bin
|
||||
2067552 65536 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/persist.bin
|
||||
2133088 262144 /tmp/tmp.9yMft8rFLs/F3-no-initrd.img
|
||||
2395232 32768 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/recovery.bin
|
||||
2428000 5206911 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/userdata.bin
|
||||
28
b10/b10b3/cache/emu/map-S8-b9c-regression.txt
vendored
Normal file
28
b10/b10b3/cache/emu/map-S8-b9c-regression.txt
vendored
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
0 34 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/gpt-primary-34.bin
|
||||
131072 131072 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/modem.bin
|
||||
262144 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/sbl1.bin
|
||||
263168 1024 /home/q/doc/modem/jz08-aurora/partitions/sbl1bak.bin
|
||||
264192 2048 /home/q/doc/modem/jz08-aurora/b5a/aboot-lk1st-aurora-autoboot.pad1M
|
||||
266240 2048 /home/q/doc/modem/jz08-aurora/partitions/abootbak.bin
|
||||
268288 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/rpm.bin
|
||||
269312 1024 /home/q/doc/modem/jz08-aurora/partitions/rpmbak.bin
|
||||
270336 2048 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/tz.bin
|
||||
305184 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/tzbak-305184.bin
|
||||
272384 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/hyp.bin
|
||||
273408 1024 /home/q/doc/modem/jz08-aurora/partitions/hypbak.bin
|
||||
274432 2048 /home/q/doc/modem/jz08-aurora/partitions/pad.bin
|
||||
276480 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/modemst1.bin
|
||||
279552 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/modemst2.bin
|
||||
282624 2048 /home/q/doc/modem/jz08-aurora/partitions/misc.bin
|
||||
284672 2 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/fsc.bin
|
||||
284674 16 /home/q/doc/modem/jz08-aurora/partitions/ssd.bin
|
||||
284690 20480 /home/q/doc/modem/jz08-aurora/partitions/splash.bin
|
||||
393216 64 /home/q/doc/modem/jz08-aurora/partitions/DDR.bin
|
||||
393280 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/fsg.bin
|
||||
396352 32 /home/q/doc/modem/jz08-aurora/partitions/sec.bin
|
||||
396384 32768 /home/q/doc/modem/jz08-aurora/b5a/boot-emmc1-16MiB.img
|
||||
429152 1638400 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/system.bin
|
||||
2067552 65536 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/persist.bin
|
||||
2133088 262144 /home/q/doc/modem/jz08-aurora/b9/b9c/cache/cache-extlinux-b9c.img
|
||||
2395232 32768 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/recovery.bin
|
||||
2428000 5206911 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/userdata.bin
|
||||
28
b10/b10b3/cache/emu/map-S9-b10b3-candidate.txt
vendored
Normal file
28
b10/b10b3/cache/emu/map-S9-b10b3-candidate.txt
vendored
Normal file
|
|
@ -0,0 +1,28 @@
|
|||
0 34 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/gpt-primary-34.bin
|
||||
131072 131072 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/modem.bin
|
||||
262144 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/sbl1.bin
|
||||
263168 1024 /home/q/doc/modem/jz08-aurora/partitions/sbl1bak.bin
|
||||
264192 2048 /home/q/doc/modem/jz08-aurora/b5a/aboot-lk1st-aurora-autoboot.pad1M
|
||||
266240 2048 /home/q/doc/modem/jz08-aurora/partitions/abootbak.bin
|
||||
268288 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/rpm.bin
|
||||
269312 1024 /home/q/doc/modem/jz08-aurora/partitions/rpmbak.bin
|
||||
270336 2048 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/tz.bin
|
||||
305184 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/tzbak-305184.bin
|
||||
272384 1024 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/hyp.bin
|
||||
273408 1024 /home/q/doc/modem/jz08-aurora/partitions/hypbak.bin
|
||||
274432 2048 /home/q/doc/modem/jz08-aurora/partitions/pad.bin
|
||||
276480 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/modemst1.bin
|
||||
279552 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/modemst2.bin
|
||||
282624 2048 /home/q/doc/modem/jz08-aurora/partitions/misc.bin
|
||||
284672 2 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/fsc.bin
|
||||
284674 16 /home/q/doc/modem/jz08-aurora/partitions/ssd.bin
|
||||
284690 20480 /home/q/doc/modem/jz08-aurora/partitions/splash.bin
|
||||
393216 64 /home/q/doc/modem/jz08-aurora/partitions/DDR.bin
|
||||
393280 3072 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/fsg.bin
|
||||
396352 32 /home/q/doc/modem/jz08-aurora/partitions/sec.bin
|
||||
396384 32768 /home/q/doc/modem/jz08-aurora/b5a/boot-emmc1-16MiB.img
|
||||
429152 1638400 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/system.bin
|
||||
2067552 65536 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/persist.bin
|
||||
2133088 262144 /home/q/doc/modem/jz08-aurora/b10/b10b3/cache/cache-extlinux-b10b3.img
|
||||
2395232 32768 /home/q/doc/modem/jz08-aurora/logs/b5a/A3/recovery.bin
|
||||
2428000 5206911 /home/q/doc/modem/jz08-aurora/logs/b5a/A4pre/userdata.bin
|
||||
13
b10/b10b3/cache/emu/run-emu-b10b3.sh
vendored
Normal file
13
b10/b10b3/cache/emu/run-emu-b10b3.sh
vendored
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
#!/bin/bash
|
||||
# lk2nd-23.1 extlinux emulator (b5b/emu) on: S8 (B9C cache = current flash, regression vs b9/b9c/cache/emu S7), S9 B10B-3 candidate, fault variants. Offline, 480s.
|
||||
cd ~/doc/modem/jz08-aurora/b10/b10b3/cache/emu; E=../../../../b5b/emu; GPT=../../../../logs/b5a/A3/gpt-primary-34.bin; C=/home/q/doc/modem/jz08-aurora/b10/b10b3/cache/cache-extlinux-b10b3.img
|
||||
run() { python3 $E/mkmap.py $2 > map-$1.txt; $E/lk2nd-scan-emu map-$1.txt $GPT $3 > $1.out 2>&1; echo "== $1 rc=$? :: $(grep -E "Trying to boot|Reverting|boot_linux reached|ramdisk sha256|Could not" $1.out | tr '\n' ' ' | cut -c1-260)"; }
|
||||
run S8-b9c-regression /home/q/doc/modem/jz08-aurora/b9/b9c/cache/cache-extlinux-b9c.img 24686600
|
||||
cmp <(grep HARNESS S8-b9c-regression.out) <(grep HARNESS ../../../../b9/b9c/cache/emu/S7-b9c-candidate.out) && echo " S8 HARNESS lines == b9/b9c/cache/emu/S7-b9c-candidate.out"
|
||||
run S9-b10b3-candidate $C 24754184; # kernel_len = b10b3 Image (5afd371e, 24754184 B)
|
||||
grep HARNESS S9-b10b3-candidate.out
|
||||
D=$(mktemp -d); v(){ cp $C $D/$1.img; chmod u+w $D/$1.img; }
|
||||
v F3-no-initrd; /sbin/debugfs -w -R "rm /initramfs-b9c.cpio.gz" $D/F3-no-initrd.img >/dev/null 2>&1
|
||||
v F1-no-conf; /sbin/debugfs -w -R "rm /extlinux/extlinux.conf" $D/F1-no-conf.img >/dev/null 2>&1
|
||||
head -c 134217728 /dev/zero > $D/F10-zeroed-cache.img
|
||||
for f in $D/F*.img; do run $(basename $f .img) $f; done; rm -rf $D
|
||||
6
b10/b10b3/cache/extlinux-b10b3.conf
vendored
Normal file
6
b10/b10b3/cache/extlinux-b10b3.conf
vendored
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
default b10b3
|
||||
label b10b3
|
||||
linux /Image.gz-dtb
|
||||
fdt /aurora-b10b3.dtb
|
||||
initrd /initramfs-b9c.cpio.gz
|
||||
append earlycon console=tty0 console=ttyMSM0,115200n8 ignore_loglevel loglevel=8 rdinit=/init fbcon=font:6x8 consoleblank=0
|
||||
27
b10/b10b3/cache/mkfs-cache-b10b3.sh
vendored
Normal file
27
b10/b10b3/cache/mkfs-cache-b10b3.sh
vendored
Normal file
|
|
@ -0,0 +1,27 @@
|
|||
#!/bin/bash
|
||||
# B10B-3 cache CANDIDATE (not for writing without a separate GO): exact recipe of b9/b9c/cache/mkfs-cache-b9c.sh (b9ce13c9); differs only in
|
||||
# the kernel file (b10b3 production Image.gz-dtb = kernel 7.2.7-aurora-b10b3 1164b1c7 + production DTB msm8916-jz08-aurora-b10b3 e47762d1),
|
||||
# fdt (production DTB), file names, extlinux label, fs label and UUIDs. initrd and append = B9C unchanged. Runs on 480s (mke2fs 1.47.2). Offline only.
|
||||
# The image contains the AP PSK (in the initramfs) - never publish it.
|
||||
set -e
|
||||
cd ~/doc/modem/jz08-aurora/b10/b10b3/cache
|
||||
OUT=${1:-cache-extlinux-b10b3.img}; F=../out
|
||||
echo "0fef41b262917c8ae308fa222da0017e2b3cb3ec5da1ca8ba18d0318476761a3 $F/cmdline.txt" | sha256sum -c
|
||||
echo "5e69f8431d42a9ddb9d64f06dcc408cd8dbfa9dffdba7e9b06e4ba58075ed1c7 $F/Image.gz-dtb" | sha256sum -c
|
||||
echo "e47762d1dcd0af6e2acb711fa47ecc13769cd6bcb81259ce50635e8b18b6514a $F/aurora-b10b3.dtb" | sha256sum -c
|
||||
echo "ac518e27e2957ad5e4515969b9a3808024e11ef8d1a79433a899a67dbc644558 $F/initramfs.cpio.gz" | sha256sum -c
|
||||
ST=$(mktemp -d); mkdir -p $ST/extlinux
|
||||
cp $F/Image.gz-dtb $F/aurora-b10b3.dtb $ST/; cp $F/initramfs.cpio.gz $ST/initramfs-b9c.cpio.gz
|
||||
printf "default b10b3\nlabel b10b3\n\tlinux /Image.gz-dtb\n\tfdt /aurora-b10b3.dtb\n\tinitrd /initramfs-b9c.cpio.gz\n\tappend %s\n" "$(cat $F/cmdline.txt)" > $ST/extlinux/extlinux.conf
|
||||
cp $ST/extlinux/extlinux.conf extlinux-b10b3.conf
|
||||
chmod 0644 $ST/*.* $ST/extlinux/extlinux.conf; chmod 0755 $ST $ST/extlinux
|
||||
find $ST -exec touch -h -d @1790726400 {} +
|
||||
rm -f $OUT; truncate -s 134217728 $OUT
|
||||
E2FSPROGS_FAKE_TIME=1790726400 /sbin/mke2fs -F -q -t ext2 -O none,filetype,sparse_super \
|
||||
-b 4096 -I 128 -N 64 -m 0 -L aurora-b10b3 -U 4a5a3038-b6f0-4000-8000-0000b10b3c00 \
|
||||
-E root_owner=0:0,hash_seed=4a5a3038-b6f0-4000-8000-0000b10b3c01 -d $ST $OUT 32768
|
||||
rm -rf $ST
|
||||
for f in / /lost+found /extlinux /extlinux/extlinux.conf /Image.gz-dtb /aurora-b10b3.dtb /initramfs-b9c.cpio.gz; do for t in atime ctime mtime; do echo "sif $f $t @1790726400"; done; done > /tmp/b10b3-sif.$$
|
||||
/sbin/debugfs -w -f /tmp/b10b3-sif.$$ $OUT >/dev/null 2>&1; rm -f /tmp/b10b3-sif.$$
|
||||
/sbin/e2fsck -fn $OUT >/dev/null 2>&1 && echo "e2fsck -fn clean"
|
||||
stat -c "%n %s" $OUT; sha256sum $OUT
|
||||
Some files were not shown because too many files have changed in this diff Show more
Loading…
Reference in a new issue