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.
8.9 KiB
B8A — Wi-Fi / WCNSS read-only audit (Aurora JZ08AU, B7C)
Дата: 2026-10-02. Система: Linux 7.2.7-aurora-bam1 #5, DT model «JZ08AU Aurora (RAM boot BAM1)», cache = B7C, uptime 23 мин, LTE/bearer работают. Канал: telnet 172.16.42.1 через 480s.
Что было записано: только /tmp/b8a* на плате (tmpfs, RAM) и файлы в logs/b8/b8a/, b8/b8a/ локально.
DT, kernel, eMMC, firmware, modem stack, B7C cache не трогались; модули не грузились; reboot не было; интерфейсы не создавались.
Таблица
| Уровень | Найдено | Статус | Примечание |
|---|---|---|---|
| Hardware | MSM8916: встроенный WCNSS Pronto + внешний RF Iris (WCN36xx). Сток Android: wlan0 UP 192.168.100.1, MAC , hostapd + wcnss_service, phy0 на a000000.qcom,wcnss-wlan; WCNSS FW CNSS.PR.1.4.2.C4-00084 |
PASS (железо есть и работало) | Точная модель Iris UNKNOWN: в стоковом DT стоит generic MTP-узел qcom,wcnss_wlan с qcom,has-autodetect-xo, без имени чипа. Косвенно: FW caps без DOT11AC → скорее не WCN3680; WCN3620 vs WCN3660 не различить ни по DT, ни по логам |
| DT | /soc@0/remoteproc@a204000 = qcom,pronto-v2-pil,qcom,pronto, smd-edge pronto (edge 6, pid 4), wcnss (qcom,wcnss, WCNSS_CTRL) → wifi (qcom,wcnss-wlan, irq 145/146, local-mac-address от lk2nd по serial), bluetooth; smp2p-wcnss, smsm/wcnss@6, pinctrl wcss-wlan-default-state |
FAIL: status = "disabled" |
Отключено намеренно в нашем DTS (linux/dts/msm8916-jz08-aurora-bam1.dts:45). Также reserved-memory/wcnss disabled. Под iris нет compatible (upstream требует qcom,wcn3620/3660/3660b/3680, иначе «no matching compatible for iris»). Supplies vddxo/vddrfa/vddpa/vdddig/vddpx в узле есть |
| Память | wcnss_mem dynamic 6 MiB в 0x86800000+128 MiB, disabled. Сток: peripheral_mem 0x8b600000 / 0x600000. Сейчас 0x8b600000–0x8e6fffff = System RAM, mba @0x8e700000 |
INFO | wcnss.mdt слинкован на 0x8b600000 (сразу за mpss_mem 0x86800000+0x4e00000), все LOAD-сегменты RELOCATABLE → динамическое размещение допустимо, но стоковый адрес свободен и известен |
| remoteproc | Только remoteproc0 = 4080000.remoteproc (MPSS, mba.mbn, running). Нет a204000.remoteproc ни в platform devices, ни в /sys/class/remoteproc |
FAIL: WLAN remoteproc не существует | CONFIG_QCOM_WCNSS_PIL is not set (и DT disabled) → драйвера qcom-wcnss-pil/qcom-iris нет. MPSS не перепутан: remoteproc0 — модем |
| firmware | /firmware/image/wcnss.mdt + b00,b01,b02,b04,b06,b09,b10,b11 (FAT modem p1, RO); fw path = /firmware/image; sha256 == firmware-fat/image |
PASS (есть) | Upstream имя по умолчанию wcnss.mdt → совпадает с путём, копировать не нужно. /lib/firmware, /vendor/firmware отсутствуют |
| calibration / NV | Требуется wlan/prima/WCNSS_qcom_wlan_nv.bin (wcnss_ctrl NVBIN_FILE). В rootfs нет. Сток: persist:/WCNSS_qcom_wlan_nv.bin 29816 B sha256 c6b71825…; system:/etc/firmware/wlan/prima/WCNSS_cfg.dat 11322 B 68e31b4b…; WCNSS_qcom_cfg.ini 9158 B 05588969… (prima-only) |
FAIL (отсутствует в rootfs) | Источник найден: раздел persist (mmcblk0p24, не смонтирован) и локальный дамп partitions/persist.bin. Без NV wcnss_ctrl не скачает NV → wcn36xx не стартует. WCNSS_cfg.dat/cfg.ini нужны только prima, не upstream |
| kernel driver | CONFIG_QCOM_WCNSS_CTRL=y (rpmsg driver qcom_wcnss_ctrl зарегистрирован, устройств нет); CONFIG_WLAN not set → нет wcn36xx; CONFIG_MODULES not set (всё только built-in) |
FAIL | lsmod пуст (ядро без модулей), /lib/modules нет. RPMSG_QCOM_SMD, QCOM_SMEM/SMP2P/SMSM, QCOM_SYSMON, MDT_LOADER, SCM = y (база готова) |
| cfg80211 / mac80211 | CONFIG_CFG80211 not set, MAC80211 нет; CONFIG_WIRELESS=y, RFKILL=y |
FAIL | Нет /sys/class/ieee80211, /proc/net/wireless; regulatory db не нужен до cfg80211 |
| userland | iw, rfkill, ethtool, hostapd, wpa_supplicant — absent |
FAIL (позже) | Нужны для B8 AP-этапа, не сейчас |
| wlan interface | ip link: lo, sit0, usb0, wwan0–7. wlan0 нет, rfkill пуст |
FAIL | Следствие всего выше |
dmesg (303 строки, весь буфер с 0 с): ни одной строки wlan/wcnss/pronto/iris/cfg80211/firmware-load для WLAN.
Это не «ошибка», а отсутствие попытки: узел disabled + драйвера нет. Первая реальная точка обрыва — DT status="disabled",
сразу за ней (неявно, т.к. до неё не доходит) — отсутствие QCOM_WCNSS_PIL в ядре. Ошибки в dmesg вида qcom-smsm mboxes,
psci PC mode, qseecom untested — старые, к WLAN не относятся.
Цепочка
hardware Pronto + Iris WCN36xx (модель Iris UNKNOWN) PASS (сток Android: wlan0 AP работал)
→ DT remoteproc@a204000 / smd-edge pronto / wifi / iris FAIL status=disabled; iris без compatible; wcnss_mem disabled
→ remoteproc qcom_wcnss (pronto-v2) + qcom_iris FAIL CONFIG_QCOM_WCNSS_PIL=n → нет устройства remoteproc
→ firmware /firmware/image/wcnss.mdt+b* PASS на месте, имя совпадает с upstream default
→ NV wlan/prima/WCNSS_qcom_wlan_nv.bin FAIL нет в rootfs; источник = persist (p24)
→ ctrl qcom_wcnss_ctrl (rpmsg WCNSS_CTRL) built-in, нет канала
→ driver wcn36xx FAIL CONFIG_WLAN=n
→ phy cfg80211 / mac80211 FAIL CONFIG_CFG80211=n
→ wlan0 FAIL
Реально дошли до: hardware (доказан стоком) + DT-описание присутствует, но выключено. Firmware-блобы уже на месте. Цепочка в Linux не начинается вообще — ни одного probe-попытки WCNSS.
Предлагаемый ОДИН следующий шаг — B8B (ждёт GO)
B8B: RAM-only проверка только Pronto remoteproc (без Wi-Fi стека).
Отдельный RAM-образ (RESET-held power-on → fastboot boot, eMMC и B7C cache не трогаются):
- kernel: +
CONFIG_QCOM_WCNSS_PIL=y(только это; cfg80211/wcn36xx — нет); - DT:
&wcnssokay,&wcnss_memokay с фиксированным стоковымreg = <0x8b600000 0x600000>,&wcnss_iriscompatible (гипотезаqcom,wcn3620— 2.4 GHz-only, по FW caps без 11ac; регуляторы как в стоке); - firmware: существующий
/firmware/image/wcnss.mdt(ничего не копировать), NV пока не добавлять.
Критерий PASS: remoteproc1 = a204000 running, появился rpmsg-канал WCNSS_CTRL на edge pronto, wcnss_ctrl получил
version-ответ (версия FW в dmesg), ожидаемая ошибка только Failed to load nv file … (это и есть следующая граница).
Параллельно MPSS/LTE/bearer не должны пострадать (проверка как в B7C).
Открытый вопрос, влияющий на B8B: точная модель Iris (WCN3620 vs WCN3660/3660B). Самый надёжный read-only способ — маркировка чипа на плате (фото) — если есть возможность, это стоит сделать до B8B.
Файлы
b8a-dt.txt— DT (повторный прогонb8/b8a/b8a-dt.sh: busybox find не входит в симлинк/proc/device-treeбез/)b8a-kconfig.txt(+config.full= /proc/config.gz)b8a-modules.txt,b8a-firmware.txt,b8a-remoteproc.txt,b8a-net.txtb8a-dmesg.txt(+dmesg.full)b8a-stock-ref.txt— host-side: стоковый DT/Android/UART, хэши NV/cfg, wcnss.mdt program headers- скрипты:
b8/b8a/b8a-audit.sh(на плате выполнена версия 671b9b0a… с багом пути DT; в файле уже исправлено),b8/b8a/b8a-dt.sh