Skip to content

kernel/system: bringup wifi#62

Merged
greatgitsby merged 6 commits intomasterfrom
wifi-mainline
Mar 23, 2026
Merged

kernel/system: bringup wifi#62
greatgitsby merged 6 commits intomasterfrom
wifi-mainline

Conversation

@greatgitsby
Copy link
Copy Markdown
Collaborator

@greatgitsby greatgitsby commented Mar 22, 2026

based on commaai/agnos-builder@f69f13a from @robin-reckmann !

Summary

  • Replace proprietary Qualcomm WiFi/modem stack with mainline ath10k and open-source userspace services
  • Vendor firmware from upstream linux-firmware (ath10k WCN3990 + modem_nm)
  • Remove 6 proprietary blobs (~375 KB), add open-source packages from Void repos

Changes

Kernel config — build WiFi stack as built-in (=y): RFKILL, CFG80211, MAC80211, ATH10K, ATH10K_SNOC, QCOM_RMTFS_MEM

Kernel patch — apply ath10k-snoc-host-cap-skip-quirk for WCN3990 firmware compatibility

DTS — point mss_pil at upstream qcom/sdm845/mba.mbn + modem_nm.mbn

Firmware (LFS, vendored from linux-firmware):

  • ath10k/WCN3990/hw1.0/: board-2.bin, firmware-5.bin, wlanmdsp.mbn
  • qcom/sdm845/: mba.mbn, modem_nm.mbn, JSN service maps

Userspace:

  • Add: qrtr-ns, rmtfs, tqftpserv, pd-mapper, iw, wireless-regdb
  • Remove: rmt_storage, init_mss, pdmappersvc, tftp_server, cnss_daemon, wcnssfilter

Test plan

  • WiFi interface (wlan0) comes up on boot
  • Network scan finds APs
  • WPA-PSK connection succeeds
  • ~80 Mbps throughput over WiFi
  • Modem subsystem stable (no crash loop)
  • Survives reboot (needs kernel + system reflash from this branch)

validated on both tizi and mici

Replace proprietary Qualcomm WiFi/modem stack with mainline ath10k and
open-source userspace services.

Kernel:
- Build WiFi stack (cfg80211, mac80211, ath10k_snoc, rfkill) as built-in
- Enable QCOM_RMTFS_MEM for modem shared memory access
- Apply ath10k host-cap-skip quirk patch for WCN3990 firmware compat
- Point mss_pil at upstream modem_nm firmware via DTS

Firmware (vendored from upstream linux-firmware):
- ath10k WCN3990 hw1.0: board-2.bin, firmware-5.bin, wlanmdsp.mbn
- qcom sdm845: mba.mbn, modem_nm.mbn (no-modem variant)
- Protection domain JSN maps for pd-mapper

Userspace:
- Add open-source services: qrtr-ns, rmtfs, tqftpserv, pd-mapper
- Add iw and wireless-regdb packages
- Remove proprietary blobs: rmt_storage, init_mss, pdmappersvc,
  tftp_server, cnss_daemon, wcnssfilter
- Remove boot_wlan sysfs trigger (not used by mainline ath10k)

Tested: WiFi scanning, WPA connection, ~80 Mbps throughput.
The ath10k host-cap-skip quirk patch is applied at build time from
kernel/patches/, not as a submodule commit.
@github-actions
Copy link
Copy Markdown

github-actions bot commented Mar 22, 2026

vamOS System Profile

Changes vs master

Metric Change
Used space 3442.3MB → 3468.7MB (+26.3MB)
Sparse image 3382.2MB → 3405.0MB (+22.8MB)
Package count 517 → 522

Added packages: pd-mapper-1.0_1, qrtr-ns-1.0_1, rmtfs-1.0_1, tqftpserv-1.0_1, wireless-regdb-2025.07.10_1

Directory size changes (>1MB)
Directory Change

Metric Value
Used space 3468.7MB / 5959.5MB
Files 55643
Directories 4431
Symlinks 3456
Packages 522

Top 10 Directories

Directory Size

Category Breakdown

Category Size %
xbps packages 2478.2MB 71.4%
Python venv 655.3MB 18.8%
Firmware 11.2MB .3%
Other 323.7MB 9.3%

Top 10 Packages by Size

Package Size
mit-krb5-libs-1.21.3_1 270.4MB
gawk-5.3.2_1 210.3MB
llvm-21_3 148.6MB
libldns-1.9.0_1 124.3MB
pd-mapper-1.0_1 74MB
libclang21-21.1.7_1 70.2MB
glib-2.86.1_2 67.1MB
gcc-14.2.1+20250405_4 65.4MB
libcap-progs-2.77_1 56MB
cmake-4.2.2_1 53.2MB

Top 30 Files by Size

File Size
/usr/lib/llvm/21/lib/libLLVM.so.21.1 124.3MB
/usr/lib/llvm/21/lib/libMLIR.so.21.1 89.7MB
/usr/lib/llvm/21/bin/mlir-transform-opt 82.9MB
/usr/lib/llvm/21/lib/libclang-cpp.so.21.1 56MB
/usr/lib/llvm/21/bin/mlir-translate 53.2MB
/usr/lib/llvm/21/bin/llvm-exegesis 52MB
/usr/lib/llvm/21/bin/llvm-bolt-binary-analysis 50.6MB
/usr/local/venv/lib/python3.12/site-packages/ffmpeg/install/lib/libavcodec.a 50.5MB
/usr/bin/uv 46.3MB
/usr/lib/gcc/aarch64-linux-gnu/14.2/gnat1 40.1MB
/usr/bin/gdb 38.1MB
/usr/lib/gcc/aarch64-linux-gnu/14.2/cc1plus 37.3MB
/usr/lib/libgallium-25.3.3.so 35.4MB
/usr/lib/libllvm-qcom.so 35.2MB
/usr/lib/gcc/aarch64-linux-gnu/14.2/cc1 35.2MB
/usr/lib/gcc/aarch64-linux-gnu/14.2/lto1 33.9MB
/usr/bin/lto-dump 33.9MB
/usr/lib/libRusticlOpenCL.so.1.0.0 32.5MB
/usr/local/venv/bin/ruff 31.8MB
/usr/share/icu/78.2/icudt78l.dat 31.5MB
/usr/lib/llvm/21/lib/libclang.so.21.1.7 30.2MB
/usr/lib/llvm/21/bin/c-index-test 28.6MB
/usr/local/venv/lib/python3.12/site-packages/gcc_arm_none_eabi/toolchain/libexec/gcc/arm-none-eabi/13.2.1/cc1 28.2MB
/usr/lib/libz3.so 27.9MB
/usr/bin/run 26.6MB
/usr/local/venv/lib/python3.12/site-packages/numpy.libs/libscipy_openblas64_-71e1b124.so 23.6MB
/usr/comma/updater 23.5MB
/usr/comma/setup 23.5MB
/usr/comma/reset 23.5MB
/usr/local/uv/python/cpython-3.12.13-linux-aarch64-gnu/bin/python3.12 21.6MB

@greatgitsby greatgitsby marked this pull request as ready for review March 22, 2026 07:11
@greatgitsby greatgitsby merged commit f6f7978 into master Mar 23, 2026
2 checks passed
@greatgitsby greatgitsby deleted the wifi-mainline branch March 23, 2026 00:24
denysvitali added a commit to denysvitali/linux-surface that referenced this pull request Mar 23, 2026
Some WCN3990 firmware versions do not properly support the host
capability QMI request, causing degraded throughput. This has been
observed on SDM845 (comma.ai) where skipping host_cap increased
WiFi throughput from ~20 Mbps to ~80 Mbps.

Add a devicetree quirk "qcom,snoc-host-cap-skip-quirk" that skips
the ath10k_qmi_host_cap_send_sync() call during firmware init.
Enable it on the Surface Pro X (SC8180X) which uses the same WCN3990
WiFi chip.

Based on patch by Amit Pundir <amit.pundir@linaro.org>:
https://lkml.org/lkml/2020/9/25/1119

Reference: commaai/vamOS#62

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants