There are significant changes between NSS version 11.4.0.5 and 12.1 (12.0.5),
that it doesn't really make sense to use it with older firmware (i.e. using mesh releated
features).
This change will explicitly link building the proper driver and client
packages when FW 12.1 or 11.4 is selected, while also backporting
patches from 12.4.
Fixes the following
Collected errors:
* pkg_hash_check_unresolved: cannot find dependency nss-firmware-default for nss-firmware-ipq8074
* pkg_hash_fetch_best_installation_candidate: Packages for nss-firmware-ipq8074 found, but incompatible with the architectures configured
* satisfy_dependencies_for: Cannot satisfy the following dependencies for kmod-qca-nss-cfi-cryptoapi:
* nss-firmware-default
* opkg_install_cmd: Cannot install package kmod-qca-nss-cfi-cryptoapi.
There is an issue with NSS firmware version 12.0/12.1 where NSS WIFI
mesh feature fails to bring up meshmgr.
Example of error:
Tue Feb 27 13:52:04 2024 kern.debug kernel: [10738.593826] nss_wifi_meshmgr_if_create_sync[1827]:ffffff8022a40000: Encap allocation failed.
Tue Feb 27 13:52:04 2024 kern.warn kernel: [10738.593858] ath11k c000000.wifi: failed to create meshmgr
Tue Feb 27 13:52:04 2024 kern.warn kernel: [10738.593880] ath11k c000000.wifi: failed to alloc and register mesh vap -22
Tue Feb 27 13:52:04 2024 kern.debug kernel: [10738.598335] nss_wifi_meshmgr_find_and_ref_inc[167]:ffffffc000be0500: Invalid mesh handle: -1
Tue Feb 27 13:52:04 2024 kern.debug kernel: [10738.598349] nss_wifi_meshmgr_if_destroy_sync[1728]:ffffffc000be0500: Mesh context is null
Tue Feb 27 13:52:04 2024 kern.warn kernel: [10738.598357] ath11k c000000.wifi: failed to free nss mesh object vdev nss_err:7
Tue Feb 27 13:52:04 2024 kern.warn kernel: [10738.605208] ath11k c000000.wifi: failed to create nss vdev -22
Tue Feb 27 13:52:04 2024 kern.debug kernel: [10738.616401] nss_wifi_meshmgr_if_create_sync[1827]:ffffff8022a40000: Encap allocation failed.
Tue Feb 27 13:52:04 2024 kern.warn kernel: [10738.616436] ath11k c000000.wifi: failed to create meshmgr
Tue Feb 27 13:52:04 2024 kern.warn kernel: [10738.618091] ath11k c000000.wifi: failed to alloc and register mesh vap -22
Tue Feb 27 13:52:04 2024 kern.debug kernel: [10738.623697] nss_wifi_meshmgr_find_and_ref_inc[167]:ffffffc000be0500: Invalid mesh handle: -1
Tue Feb 27 13:52:04 2024 kern.debug kernel: [10738.623715] nss_wifi_meshmgr_if_destroy_sync[1728]:ffffffc000be0500: Mesh context is null
Tue Feb 27 13:52:04 2024 kern.warn kernel: [10738.623723] ath11k c000000.wifi: failed to free nss mesh object vdev nss_err:7
Tue Feb 27 13:52:04 2024 kern.warn kernel: [10738.630541] ath11k c000000.wifi: failed to create nss vdev -22
The only version currently working is version 11.4. It is not
confirmed if this feature was removed in firmware > 11.4, or if the
issue if with the NSS driver package, or client package wifimgr. Looking
at the code changes between NHSS.QSDK.11.4 and 12.0.5 little was changed in
nss-drv/nss-clients related to the way mesh interfaces are brought up
(dynamic interfaces), much of the changes are related to stats.
To work around the issue, allow user selectable option to choose a
specific NSS firmware. The dependency is currently not enforced when
selecting NSS mesh offloading in ath11k. Users will need to switch
manually or disable the option altogether.
To keep fork as closely synced with upstream, move NSS packages back
into repository. Not sure why they were moved out from my original fork.
* nss-firmware
* qca-nss-crypto
* qca-nss-cfi
Removed the following:
* mhz (already available in packages repo)
* qrtr (unecessary, and has been broken for years)
Also moved packages out of `qca` and back into root directory.