forked from openwrt/openwrt
-
Notifications
You must be signed in to change notification settings - Fork 4
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
sync 21/5 #123
Merged
rmandrad
merged 80 commits into
rmandrad:qosmio-nss-wifi-6.x
from
qosmio:qualcommax-6.x-nss-wifi
May 21, 2024
Merged
sync 21/5 #123
rmandrad
merged 80 commits into
rmandrad:qosmio-nss-wifi-6.x
from
qosmio:qualcommax-6.x-nss-wifi
May 21, 2024
Conversation
This file contains 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
This adds support for the RTL8723BE PCIe Wi-Fi Adapter by adding backports drivers Signed-off-by: David Adriao <[email protected]> [Do not remove rtl8xxxu and add dependency to rtl8723be-firmware] Signed-off-by: Hauke Mehrtens <[email protected]>
This code assumed that the mt7628an_tplink_8m.dtsi file defines mediatek,mtd-eeprom for the wmac and sets status to okay. The mediatek,mtd-eeprom definition was removed in commit e93f41a ("ramips: convert MT7628 EEPROM to NVMEM format") but the dts for these two devices was not adapted to include the eeprom position on its own. The status = "okay" property was removed in 0a1d156 ("ramips: mt7628: use nvmem-layout"), but the property was not added to these dts files. Without this change wifi does not work for these devices. Fixes: e93f41a ("ramips: convert MT7628 EEPROM to NVMEM format") Fixes: 0a1d156 ("ramips: mt7628: use nvmem-layout") Signed-off-by: Hauke Mehrtens <[email protected]>
Use mac-base for mac-base TP-Link TL-MR6400 v4 and v5 Signed-off-by: Hauke Mehrtens <[email protected]>
STRIP_KERNEL_EXPORTS is currently not working on kernel 6.6 as there have been major changes in the upstream kernel. I have looked at it, and I dont think we can adapt the current patch to work so until this is fixed lets prevent STRIP_KERNEL_EXPORTS from being selected on 6.6. Link: openwrt#15498 Signed-off-by: Robert Marko <[email protected]>
Our kernel export stripping has been broken on 6.6 from the start since upstream kernel really reworked stuff in ("kbuild: generate KSYMTAB entries by modpost") and other commits as well. So, until this is either fixed or reworked lets drop the patch as it doesnt make sense to carry it knowing its broken and it can always be easily restored. Link: openwrt#15498 Signed-off-by: Robert Marko <[email protected]>
All three PCIe ports are reported non working on Meraki MR42/MR52 boards since kernel 6.1 with the issue of PCIe PHY link never coming up thus no WLAN cards are available on the boards. After debugging it seems that PCIe worked on 5.15 and older purely by accident as device DTS was using /delete-property/ perst-gpios; in each of the 3 PCIe nodes but there was no "perst-gpios" property in the SoC DTSI as it was still using the older "perst-gpio" property so it was not getting removed from the device DTS. However, in kernel 6.1 commit ("ARM: dts: qcom-*: replace deprecated perst-gpio with perst-gpios") updated all Qualcomm DTS-es to use the newer "perst-gpios" and thus once ipq806x moved to 6.1 PCIe stopped working as now that property was being dropped from the device DTS. So, since the removal of PERST pins seems to have been wrong from the start lets drop the property removal from MR42/MR52. Fixes: openwrt#15408 Link: openwrt#15509 Signed-off-by: Robert Marko <[email protected]>
Remove gpio16 from the default NAND pinctrl configuration as its unused and only needed for LCD. Signed-off-by: Paweł Owoc <[email protected]> Link: openwrt#14883 Signed-off-by: Robert Marko <[email protected]>
Add support for AQR114C PHY ID. Signed-off-by: Paweł Owoc <[email protected]> Link: openwrt#14883 Signed-off-by: Robert Marko <[email protected]>
Add support for AQR114C-B0 PHY. Signed-off-by: Paweł Owoc <[email protected]> Link: openwrt#14883 Signed-off-by: Robert Marko <[email protected]>
Define common Linksys MX device for MX4200v1/v2 and MX5300. Signed-off-by: Paweł Owoc <[email protected]> Link: openwrt#14883 Signed-off-by: Robert Marko <[email protected]>
Hardware specification: ======== SoC: Qualcomm IPQ8072A Flash: 512MB (Fidelix FMND4G08S3J-ID) RAM: 1GB (2x Kingston DDR3L D2516ECMDXGJD) Ethernet: 1x 10/100/1000/2500/5000Mbps (Marvell AQR114C) Ethernet: 4x 10/100/1000Mbps (Qualcomm QCA8075) WiFi1: 6GHz ax 4x4 (Qualcomm QCN9024 + Skyworks SKY85784-11) - channels 33-229 WiFi2: 5GHz ax 4x4 (Qualcomm QCN5054 + Skyworks SKY85755-11) - channels 36-177 WiFi3: 2.4GHz ax 4x4 (Qualcomm QCN5024 + Skyworks SKY8340-11) IoT: Bluetooth 5, Zigbee and Thread (NXP K32W041) LED: 1x RGB status (NXP PCA9633) USB: 1x USB 3.0 Button: WPS, Reset Flash instructions: ======== 1. Manually upgrade firmware using openwrt-qualcommax-ipq807x-linksys_mx8500-squashfs-factory.bin image. More details can be found here: https://www.linksys.com/support-article?articleNum=47547 After first boot check actual partition: - fw_printenv -n boot_part and install firmware on second partition using command in case of 2: - mtd -r -e kernel -n write openwrt-qualcommax-ipq807x-linksys_mx8500-squashfs-factory.bin kernel and in case of 1: - mtd -r -e alt_kernel -n write openwrt-qualcommax-ipq807x-linksys_mx8500-squashfs-factory.bin alt_kernel 2. Installation using serial connection from OEM firmware (default login: root, password: admin): - fw_printenv -n boot_part In case of 2: - flash_erase /dev/mtd21 0 0 - nandwrite -p /dev/mtd21 openwrt-qualcommax-ipq807x-linksys_mx8500-squashfs-factory.bin or in case of 1: - flash_erase /dev/mtd23 0 0 - nandwrite -p /dev/mtd23 openwrt-qualcommax-ipq807x-linksys_mx8500-squashfs-factory.bin After first boot install firmware on second partition: - mtd -r -e kernel -n write openwrt-qualcommax-ipq807x-linksys_mx8500-squashfs-factory.bin kernel or: - mtd -r -e alt_kernel -n write openwrt-qualcommax-ipq807x-linksys_mx8500-squashfs-factory.bin alt_kernel 3. Installation from initramfs image using USB drive: Put the initramfs image on the USB drive: - dd bs=1M if=openwrt-qualcommax-ipq807x-linksys_mx8500-initramfs-uImage.itb of=/dev/sda Stop u-boot and run: - usb start && usbboot $loadaddr 0 && bootm $loadaddr Write firmware to the flash from initramfs: - mtd -e kernel -n write openwrt-qualcommax-ipq807x-linksys_mx8500-squashfs-factory.bin kernel and: - mtd -r -e alt_kernel -n write openwrt-qualcommax-ipq807x-linksys_mx8500-squashfs-factory.bin alt_kernel 4. Back to the OEM firmware: - mtd -e kernel -n write FW_MX8500_1.0.11.208937_prod.img kernel and: - mtd -r -e alt_kernel -n write FW_MX8500_1.0.11.208937_prod.img alt_kernel 5. USB recovery: Put the initramfs image on the USB: - dd bs=1M if=openwrt-qualcommax-ipq807x-linksys_mx8500-initramfs-uImage.itb of=/dev/sda Set u-boot env: - fw_setenv bootusb 'usb start && usbboot $loadaddr 0 && bootm $loadaddr' - fw_setenv bootcmd 'run bootusb; if test $auto_recovery = no; then bootipq; elif test $boot_part = 1; then run bootpart1; else run bootpart2; fi' AQR firmware: ======== 1. Firmware loading: To properly load the firmware and initialize AQR PHY, we must use the u-boot aq_load_fw function. To do this, you need to modify u-boot env: With USB recovery: - fw_setenv bootcmd 'aq_load_fw; run bootusb; if test $auto_recovery = no; then bootipq; elif test $boot_part = 1; then run bootpart1; else run bootpart2; fi' and without: - fw_setenv bootcmd 'aq_load_fw; if test $auto_recovery = no; then bootipq; elif test $boot_part = 1; then run bootpart1; else run bootpart2; fi' 2. Firmware updating: Newer firmware (AQR-G4_v5.6.5-AQR_WNC_SAQA-L2_GT_ID45287_VER24005.cld) is available in the latest OEM firmware. To load this firmware via u-boot, we need to add the MBN header and update 0:ethphyfw partition. For MBN header we can use script from this repository: https://github.com/testuser7/aqr_mbn_tool - python aqr_mbn_tool.py AQR-G4_v5.6.5-AQR_WNC_SAQA-L2_GT_ID45287_VER24005.cld To update partition we need to install kmod-mtd-rw package first: - insmod mtd-rw.ko i_want_a_brick=1 - mtd -e /dev/mtd26 -n write aqr_fw.mbn /dev/mtd26 Signed-off-by: Paweł Owoc <[email protected]> Link: openwrt#14883 Signed-off-by: Robert Marko <[email protected]>
The old overlay remained after upgrades and would cause failure on first boot after upgrade, in which no new overlay could be created while old one was unusable. Signed-off-by: Tomasz Maciej Nowak <[email protected]>
Because recent changes to procd, last "console" argument was used as primary argument and causing no terminal to be spawned on serial interface. So drop the hardcoded consoles in boot script, since dts has already an alias specified, which lets procd decide where to spawn the terminal. Signed-off-by: Tomasz Maciej Nowak <[email protected]>
LEDs are on all the time since boot, until there's driver to claim them. Signed-off-by: Tomasz Maciej Nowak <[email protected]>
Without serial or network access the only option for initial configuration, is a attached display with USB keyboard, but the keyboard driver needs to be installed first. So enable keyboard driver by default to avoid this issue. Signed-off-by: Tomasz Maciej Nowak <[email protected]>
Since swig is mentioned as build dependency and buildbots have it installed we can safely bump version. Signed-off-by: Tomasz Maciej Nowak <[email protected]>
Version dependencies must not contain spaces to be compatible with both OPKG and APK. Signed-off-by: Paul Spooren <[email protected]>
Add PROVIDES:=apk to the Makefile so we can default to install `apk` by default as a dependency. Signed-off-by: Paul Spooren <[email protected]>
Those keys should never be added to the git repository. Signed-off-by: Paul Spooren <[email protected]>
A new option called `USE_APK` is added which generated APK packages (.apk) instead of OPKG packages (.ipk). Some features like fstools `snapshot` command are not yet ported Signed-off-by: Paul Spooren <[email protected]>
The APK package manager does not support handling of package alternatives itself, so implement it via a simple shell script. Signed-off-by: Paul Spooren <[email protected]>
Both package managers work slightly different, i.e. stores files at different places. Modify the `functions.sh` file to cover those. Signed-off-by: Paul Spooren <[email protected]>
The host build would need Lua to compile which currently adds a race condition. Instead of tracking that down just disable helptext for the host build. Signed-off-by: Paul Spooren <[email protected]>
The function incorrectly tried to APK keys even if there were none. Correctly separate it into its own `ifdef` section. Signed-off-by: Paul Spooren <[email protected]> Link: openwrt#15519 Signed-off-by: Christian Marangi <[email protected]>
Drop downstream mbedtls patch since it went upstream. Signed-off-by: Paul Spooren <[email protected]> Link: openwrt#15522 Signed-off-by: Christian Marangi <[email protected]>
Due to missing quotes the script would wrongly assume APK to be enabled and don't run post install scripts, breaking pretty much everything. Signed-off-by: Paul Spooren <[email protected]>
Fixes autoboot and storing env in UBI Signed-off-by: Felix Fietkau <[email protected]>
Add ubi volumes for mt7988a-rfb and support for using factory data for Ethernet MAC addresses and MT7996 WLAN calibration data. Also add rootdisk handle. Removes the need to keep using nmbm Signed-off-by: Felix Fietkau <[email protected]>
Fixes PHY probe in case there is no firmware in a connected EEPROM Signed-off-by: Felix Fietkau <[email protected]>
Skip removal of APK cache since now deprecated as APK doesn't make use of cache anymore in our configuration. Signed-off-by: Christian Marangi <[email protected]>
Implementing the updating of firmware initiated dynamic MU-EDCA parameters in Beacon IE. Firmware routinely checks its clients and updates its MU-EDCA values every 3 seconds. Firmware is tuning MU-EDCA parameters to improve performance. As part of this process, the firmware informs host about new MU-EDCA values utilizing WMI_MUEDCA_PARAMS_CONFIG_EVENTID. FW expectation is that host will update MU-EDCA parameters in the Beacon IE.
not needed for NSS offload and helps save some memory
Leave it set to '0', as it will kernel panic with 2K skb patch. This flag was incorrectly assumed to save memory on 1G platforms. ath11k_nss: remove leftover max_tx_ring it was not removed when applying patch to replace it with 'max_tx_ring = DP_TCL_NUM_RING_MAX +1' ath11k_nss: Import bugfix patches ath11k_nss: Experimental build for IPQ6018 This will require setting the correct `ATH11K_MEM_PROFILE_XXX` for your platform. Setting it to value lower/higher than physically available will cause NULL virtual address kernel panics. I believe this setting was not originally meant to reduce memory footprint of 1G+ platforms, but to account for platforms that were 512M or less. Will require tweaking to allow for the old behvaior on 1G+ IPQ807x, while still saving memory for platforms <= 512M.
QSDK NSS builds utilize skbuff recycling for better handling of memory. On a Dynalink DL-WRX36 (pbuf script should be set to 'auto') a significant drop in memory usage was observed as well consistent sustained RX/TX speeds. BEFORE: echo 3 >! /proc/sys/vm/drop_caches free -m total used free shared buff/cache available Mem: 867 338 547 90 101 528 Swap: 0 0 0 AFTER: total used free shared buff/cache available Mem: 867 242 594 1 81 624 Swap: 0 0 0 NOTE: For 512MB platforms, users need to test with the following scenarios, as the patch `999-233-ath11k-Disable-rx_header-tlv-for-2K-SKB.patch` is really only testable on platforms with 512M or less RAM. 1.) Explicitly setting 'ATH11K_MEM_PROFILE_512M' on and see if system crashes on boot. 2.) Explicitly setting 'ATH11K_MEM_PROFILE_1G' 3.) Remove patches 999-233-ath11k-Disable-rx_header-tlv-for-2K-SKB.patch 999-311-ath11k-configure-nss-thread-priority-during-pdev_ini.patch And re-test with #1 and #2 It was incorrectly assumed that setting a 512M for 1G platforms would save memory, instead it needs to be explicitly set to know proper memory regions, otherwise it would cause fw crash. ath11k_nss: fix typo in 512M memory profile ath11k_nss: remove SFE patch 718-e-mac80211-Deliver-the-frame-to-driver-tx-ops-directly It is not relevant to NSS builds and only meant for SFE. ath11k_nss: remove unecessary patches Color collision should be left on by default, as it's a primary feature of 802.11AX. ath11k_nss: fix spacing ath11k_nss: Remove unnecessary TKIP bloat Remove TKIP patches that are not being used as 99% of folks are running modern encryption (AES-CCMP,SAE,etc). ath11k_nss: parameterize DP_RXDMA_REFILL_RING_SIZE memory profile ath11k_nss: Remove SFE related code Cleanup SFE (shortcut fe) related code as we're not using it on NSS ath11k_nss: idr, ampdu, and skb headroom check optimizations ath11k_nss: get valid last_rate for rx_bitrate from cpu stats ath11k_nss: Fix BCCA counter for EMA Currently BCCA counter is updated to FW via csa counter offs and beacon with new countdown is updated for every beacon tx completion event. For EMA, all EMA beacons are updated in one shot, and counter update for every tx event will mess up the actual sequence of countdown sent over the air. Allow FW to update the countdown till 1 and finalize the color change. ath11k_nss: Fix compile for TRACE feature
The performance of Qualcomm Crypto Engine is 10x slower than kernel based encryption via ARMv8 crypto extensions. Rather than building it into the kernel allow users to select it as module which can be tested with other HW based crypto APIs via cryptodev-linux.
Since SKB recycler was merged into main nss-wifi branch, it is not necessary to manually tinker with pbuf script. Memory is now properly managed between NSS driver allocating/deallocating SKBs. For optimal wifi performance, especially upload, it is advised to leave the script to 'auto'. Users who use sysupgrade should manually set the uci config '/etc/config/pbuf' as it will not overwrite existing configuration.
This will now be the default NSS branch, and will cover both kernel 6.1 and 6.6 related changes going forward. qualcommax: NSS: fix up 'nss_region'
Symbols for crypto, ktls, netfilter are removed from from being compiled into the kernel and instead left up to the user to compile as modules, as is the case upstream. Other unused qca features were also removed as they don't apply to ipq807x/6018 and are not upstream. Common symbols between 6.1/6.6 that are required for NSS related features have been consolidated into 'config-default'. There is an average 300kb of savings in the final kernel image as well decreased compile time. qualcommax: NSS: consolidate patches and align with 6.1 Update nss-cfi to kernel 6.6
Disable software input output translation lookaside buffer (swiotlb) as it wastes memory on low memory platforms (512m or less) qualcommax: only disable swiotlb for platforms <= 512M Disabling swiotlb is only required for platforms with 512M or less to save 64mb.
Signed-off-by: Sean Khan <[email protected]>
In ath11k_dp_rx_msdu_coalesce(), rxcb is fetched from skb and bool is_continuation is part of rxcb. Currently, after freeing the skb, the rxcb->is_continuation accessed again which is wrong since the memory is already freed. Hence fix the issue by locally defining bool is_continuation from rxcb, so that after freeing skb also we can use is_continuation. Signed-off-by: Sean Khan <[email protected]>
NSS offload feature should be available for all IPQ807x/IPQ817x targets. * Arcadyan AW1000 * CMCC RM2-6 * Linksys MX4200 V1/V2 * Linksys MX5300 * Sagemcom Fast 5285 Spectrum SAXV1V1S * Yuncore AX880 * ZBT Z800AX * ZTE MF269 Signed-off-by: Sean Khan <[email protected]>
Causes issues with rate stats on IPQ9074 Signed-off-by: Sean Khan <[email protected]>
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.
Thanks for your contribution to OpenWrt!
To help keep the codebase consistent and readable,
and to help people review your contribution,
we ask you to follow the rules you find in the wiki at this link
https://openwrt.org/submitting-patches
Please remove this message before posting the pull request.