B8A audit, B8B Pronto remoteproc (fixed wcnss_mem 0x8b600000), B8C stock NV (fixes Pronto startup watchdog), B8D cfg80211/mac80211/wcn36xx -> phy0/wlan0, B8E wlan0 up + WPA2/CCMP test AP, B8F eMMC cache 857c9c30 with aurora-wifi autostart: 3/3 class-A cold boots, AP up 76-94 s after power-on, LTE unaffected. PSK, NV and PSK-bearing images are not published.
70 lines
6 KiB
Markdown
70 lines
6 KiB
Markdown
# B8B — Pronto/WCNSS remoteproc (RAM test, без Wi-Fi стека)
|
||
|
||
Дата: 2026-10-02. Прогон c1: cold power-on с RESET → lk1st fastboot → `fastboot boot b8/b8b/out/aurora-b8b.img` (bf92247d…).
|
||
eMMC/B7C cache не записывались (mmcblk0 stat writes 0 / sectors 0 на всём прогоне). Следующая обычная загрузка = B7C с eMMC.
|
||
|
||
## Iris compatible (перед сборкой)
|
||
|
||
- Стоковые boot.bin и recovery.bin: QCDT по 2 DTB (= dtb_00/dtb_01), везде generic `qcom,wcnss_wlan` + `qcom,has-autodetect-xo`,
|
||
имени чипа нет. В прошивке Pronto только generic `Iris_TSMC_*`/`Iris_GF_*`. **Точного compatible в стоке нет.**
|
||
- Стоковые питания: vddpa = L9 3.3 V, vdddig = L5 1.8 V → **WCN3660/3660B исключены** (2.9–3.0 V / 1.2 V).
|
||
WCN3620 и WCN3680 по vregs совпадают (различие — 48 MHz XO). Стоковые FW caps без DOT11AC → выбран `qcom,wcn3620`
|
||
как контролируемая гипотеза. Маркировка чипа не снята — остаётся открытым.
|
||
|
||
## Сборка
|
||
|
||
| Компонент | Значение |
|
||
|---|---|
|
||
| kernel | bam1 + `CONFIG_QCOM_WCNSS_PIL=y` (единственная разница конфигов кроме LOCALVERSION), `/home/q/aurora-kbuild/out-b8b`, Image.gz 50e4dce0…, image_size 0x1680000 |
|
||
| DTB | `linux/dts/msm8916-jz08-aurora-b8b.dts` (diff `linux/ramboot-b8b.dts.diff`), cc74b57d…: model, `wcnss_mem` = `wcnss@8b600000` reg 0x8b600000/0x600000 no-map, `&wcnss` okay, `&wcnss_iris` `qcom,wcn3620`. Декомпилированный дифф vs bam1 — только это |
|
||
| initramfs / cmdline | точно B7C (f219b04d…), golden cmdline; mkbootimg воспроизводит B7C бит-в-бит |
|
||
| не включено | CONFIG_WLAN / CFG80211 / MAC80211 / WCN36XX, NV |
|
||
|
||
## Результат c1
|
||
|
||
| Критерий | Результат | Статус |
|
||
|---|---|---|
|
||
| 6 MiB carve-out | `reserved mem: 0x8b600000..0x8bbfffff (6144 KiB) nomap wcnss@8b600000`; iomem `86000000-8bbfffff reserved`, System RAM теперь с 0x8bc00000 | PASS |
|
||
| overlap с MPSS | mpss 0x86800000..0x8b5fffff, wcnss 0x8b600000..0x8bbfffff — встык, без пересечения; mba 0x8e700000 | PASS |
|
||
| MPSS/LTE до старта WCNSS | `START OK in 76.5s`, bearer, ping wwan0 OK | PASS |
|
||
| WCNSS probe | `remoteproc1 = a204000.remoteproc`, fw `wcnss.mdt`, offline (автостарт на 1.26 с: `wcnss.mdt -2` — /firmware ещё не смонтирован, как ожидалось) | PASS |
|
||
| запуск | `echo start > remoteproc1/state` (t=129.5 с) → `Booting fw image wcnss.mdt` → `remote processor a204000.remoteproc is now up` (0.47 с) | **PASS** |
|
||
| SMD edge pronto | rpmsg: `WCNSS_CTRL` (qcom_wcnss_ctrl), `WLAN_CTRL`, `APPS_RIVA_CTRL`, `APPS_RIVA_DATA`, `IPCRTR` (qcom_smd_qrtr), `sys_mon` (qcom_sysmon), `rpmsg_ctrl` | **PASS** |
|
||
| WCNSS_CTRL | `WCNSS Version 1.5 1.2` (версия-ответ от Pronto) | **PASS** |
|
||
| NV | `Failed to load nv file wlan/prima/WCNSS_qcom_wlan_nv.bin: -2` | ожидаемая граница |
|
||
| MPSS/LTE после | remoteproc0 running, MM connected/LTE, ping wwan0 OK (до, во время и после) | PASS |
|
||
| eMMC | writes 0 / sectors 0 | PASS |
|
||
|
||
## Новое наблюдение: watchdog Pronto без NV
|
||
|
||
Через ~40 с после старта: `qcom-wcnss-pil: fatal error received: dog.c:1561:Watchdog startup timeout` → crash → recovery →
|
||
снова up → `WCNSS Version 1.5 1.2` → NV fail → снова crash (~46 с цикл; к t=222 с — 2 краша). Модем/LTE при этом не пострадали.
|
||
Гипотеза (не доказана): Pronto ждёт завершения NV download/старта WLAN host и без него падает по startup-watchdog.
|
||
В t=241 с WCNSS остановлен вручную (`echo stop` → offline; `timeout waiting for ssctl service` при stop — побочный эффект краш-цикла);
|
||
после этого MM connected/LTE, ping OK. На плате сейчас WCNSS offline, система = B8B RAM boot.
|
||
|
||
Прочее (не блокеры):
|
||
- `supply vddcx not found, using dummy` — у pronto-v2 cx/mx через power-domains, ожидаемо.
|
||
- `a204000.remoteproc.iris: failed to get regulators` на 0.98 с — первая probe-попытка до готовности RPM-регуляторов, вторая (1.02 с) успешна.
|
||
- rmtfs (`-r`) за время прогона получил одну запись EFS от модема (`write 0:1792` в RAM-буфер 0x86700000); eMMC не тронута.
|
||
Связь с WCNSS не установлена.
|
||
|
||
## Цепочка после B8B
|
||
|
||
```
|
||
hardware PASS → DT PASS (B8B DTB) → remoteproc PASS (remoteproc1 running) → firmware PASS (wcnss.mdt)
|
||
→ SMD pronto / WCNSS_CTRL PASS (FW 1.5 1.2) → NV FAIL (нет файла) → Pronto watchdog crash-loop
|
||
→ wcn36xx / cfg80211 — не включены → phy / wlan0 нет
|
||
```
|
||
|
||
## Следующий минимальный шаг (предложение B8C, ждёт GO)
|
||
|
||
Подложить NV только в RAM-образ: `persist:/WCNSS_qcom_wlan_nv.bin` (29816 B, c6b71825…, из локального дампа `partitions/persist.bin`)
|
||
как `/firmware`-независимый путь (например `/lib/firmware/wlan/prima/WCNSS_qcom_wlan_nv.bin` в initramfs + fw search path),
|
||
без WLAN-стека. PASS: NV upload ack, нет `Watchdog startup timeout` ≥ 5 мин, LTE не задет. Только после этого — wcn36xx/cfg80211.
|
||
|
||
## Файлы
|
||
|
||
- `c1/host-actions.txt`, `c1/pre.txt`, `c1/start.txt`, `c1/post.txt`, `c1/stop.txt`, `c1/rmtfs-tail.txt`, `c1/dmesg.full`, `c1/uart.log`, `c1.console`
|
||
- скрипты: `b8/b8b/build-b8b.sh`, `b8/b8b/b8b-boot.sh`; артефакты `b8/b8b/out/` (SHA256SUMS)
|
||
- `linux/aurora-b8b.config`, `linux/dts/msm8916-jz08-aurora-b8b.dts`, `linux/ramboot-b8b.dts.diff`
|