Merged
Conversation
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.
vamOS System ProfileChanges vs master
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)
Top 10 Directories
Category Breakdown
Top 10 Packages 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 |
robin-reckmann
approved these changes
Mar 23, 2026
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>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
based on commaai/agnos-builder@f69f13a from @robin-reckmann !
Summary
Changes
Kernel config — build WiFi stack as built-in (
=y):RFKILL,CFG80211,MAC80211,ATH10K,ATH10K_SNOC,QCOM_RMTFS_MEMKernel patch — apply
ath10k-snoc-host-cap-skip-quirkfor WCN3990 firmware compatibilityDTS — point
mss_pilat upstreamqcom/sdm845/mba.mbn+modem_nm.mbnFirmware (LFS, vendored from linux-firmware):
ath10k/WCN3990/hw1.0/: board-2.bin, firmware-5.bin, wlanmdsp.mbnqcom/sdm845/: mba.mbn, modem_nm.mbn, JSN service mapsUserspace:
qrtr-ns,rmtfs,tqftpserv,pd-mapper,iw,wireless-regdbrmt_storage,init_mss,pdmappersvc,tftp_server,cnss_daemon,wcnssfilterTest plan
validated on both tizi and mici