From 88d9095ca50178f19e2cc11f12955a00c06119b5 Mon Sep 17 00:00:00 2001 From: FUKAUMI Naoki Date: Thu, 11 Jul 2024 14:01:39 +0900 Subject: [PATCH 01/21] rockchip: stop "heartbeat" LED for Radxa CM3I(E25) stop "heartbeat" which happens before OpenWrt controls LED. instead, just turn LED on. Signed-off-by: FUKAUMI Naoki Link: https://github.com/openwrt/openwrt/pull/15913 Signed-off-by: Robert Marko --- ...adxa-e25-add-led-aliases-and-stop-heartbeat.patch} | 11 +++++++++++ 1 file changed, 11 insertions(+) rename target/linux/rockchip/patches-6.6/{112-radxa-e25-add-led-aliases.patch => 112-radxa-e25-add-led-aliases-and-stop-heartbeat.patch} (61%) diff --git a/target/linux/rockchip/patches-6.6/112-radxa-e25-add-led-aliases.patch b/target/linux/rockchip/patches-6.6/112-radxa-e25-add-led-aliases-and-stop-heartbeat.patch similarity index 61% rename from target/linux/rockchip/patches-6.6/112-radxa-e25-add-led-aliases.patch rename to target/linux/rockchip/patches-6.6/112-radxa-e25-add-led-aliases-and-stop-heartbeat.patch index 75038c7f39..6bcde5b8eb 100644 --- a/target/linux/rockchip/patches-6.6/112-radxa-e25-add-led-aliases.patch +++ b/target/linux/rockchip/patches-6.6/112-radxa-e25-add-led-aliases-and-stop-heartbeat.patch @@ -22,3 +22,14 @@ Signed-off-by: Marius Durbaca }; pwm-leds { +--- a/arch/arm64/boot/dts/rockchip/rk3568-radxa-cm3i.dtsi ++++ b/arch/arm64/boot/dts/rockchip/rk3568-radxa-cm3i.dtsi +@@ -23,7 +23,7 @@ + gpios = <&gpio0 RK_PA6 GPIO_ACTIVE_HIGH>; + function = LED_FUNCTION_HEARTBEAT; + color = ; +- linux,default-trigger = "heartbeat"; ++ default-state = "on"; + pinctrl-names = "default"; + pinctrl-0 = <&led_user_en>; + }; From d44eb323173e63bef358471d32f55702c94ea123 Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Thu, 11 Jul 2024 15:02:28 +0200 Subject: [PATCH 02/21] mvebu: rb5009: fix QCA8081 LED polarity Currently, QCA8081 LED is never configured and the default configuration has the LED polarity inverted so it will be lit when there is nothing connected to the PHY. So lets define the LED as active-low and configure the trigger via 01_leds. Fixes: 85d9fd6f0ec7 ("mvebu: add support for RB5009UG+S+IN") Link: https://github.com/openwrt/openwrt/pull/15927 Signed-off-by: Robert Marko --- .../mvebu/cortexa72/base-files/etc/board.d/01_leds | 3 +++ .../arm64/boot/dts/marvell/armada-7040-rb5009.dts | 14 ++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/target/linux/mvebu/cortexa72/base-files/etc/board.d/01_leds b/target/linux/mvebu/cortexa72/base-files/etc/board.d/01_leds index 809a64a60e..b958c2fdab 100644 --- a/target/linux/mvebu/cortexa72/base-files/etc/board.d/01_leds +++ b/target/linux/mvebu/cortexa72/base-files/etc/board.d/01_leds @@ -13,6 +13,9 @@ iei,puzzle-m901) iei,puzzle-m902) ucidef_set_led_netdev "wan" "WAN" "white:network" "eth2" "link" ;; +mikrotik,rb5009) + ucidef_set_led_netdev "wan-port-link" "WAN-PORT-LINK" "!cp0!config-space@f2000000!mdio@12a200!switch@0!mdio1:00:green:" "p1" "tx rx link_10 link_100 link_1000 link_2500" + ;; esac board_config_flush diff --git a/target/linux/mvebu/files-6.6/arch/arm64/boot/dts/marvell/armada-7040-rb5009.dts b/target/linux/mvebu/files-6.6/arch/arm64/boot/dts/marvell/armada-7040-rb5009.dts index 8cd744f64d..ca13e6aa89 100644 --- a/target/linux/mvebu/files-6.6/arch/arm64/boot/dts/marvell/armada-7040-rb5009.dts +++ b/target/linux/mvebu/files-6.6/arch/arm64/boot/dts/marvell/armada-7040-rb5009.dts @@ -5,6 +5,7 @@ #include "armada-7040.dtsi" #include #include +#include / { model = "MikroTik RB5009"; @@ -378,6 +379,19 @@ qca8081: qca8081@0 { reg = <0>; + + leds { + #address-cells = <1>; + #size-cells = <0>; + + led@1 { + reg = <1>; + color = ; + function = LED_FUNCTION_WAN; + default-state = "keep"; + active-low; + }; + }; }; }; }; From e0faad2a7900d7270f4496ff4ee88caec1248210 Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Thu, 11 Jul 2024 15:14:47 +0200 Subject: [PATCH 03/21] mvebu: rb5009: convert LEDs to color/function Since we are trying to get rid of using labels, lets convert RB5009 to the function/color combo. Link: https://github.com/openwrt/openwrt/pull/15927 Signed-off-by: Robert Marko --- .../arm64/boot/dts/marvell/armada-7040-rb5009.dts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/target/linux/mvebu/files-6.6/arch/arm64/boot/dts/marvell/armada-7040-rb5009.dts b/target/linux/mvebu/files-6.6/arch/arm64/boot/dts/marvell/armada-7040-rb5009.dts index ca13e6aa89..dfbf3af137 100644 --- a/target/linux/mvebu/files-6.6/arch/arm64/boot/dts/marvell/armada-7040-rb5009.dts +++ b/target/linux/mvebu/files-6.6/arch/arm64/boot/dts/marvell/armada-7040-rb5009.dts @@ -72,23 +72,27 @@ compatible = "gpio-leds"; led_user: user { - label = "green:user"; + function = "user"; gpios = <&cp0_gpio2 26 GPIO_ACTIVE_LOW>; + color = ; }; sfp { - label = "green:sfp"; + function = "sfp"; gpios = <&cp0_gpio2 25 GPIO_ACTIVE_LOW>; + color = ; }; hdr1 { - label = "blue:hdr1"; + function = "hdr1"; gpios = <&cp0_gpio1 4 GPIO_ACTIVE_LOW>; + color = ; }; hdr2 { - label = "blue:hdr2"; + function = "hdr2"; gpios = <&cp0_gpio2 19 GPIO_ACTIVE_LOW>; + color = ; }; }; From d40f9ad48f49b445acd3af3b967a4d5802b48cea Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Thu, 11 Jul 2024 15:16:27 +0200 Subject: [PATCH 04/21] mvebu: rb5009: wire SFP led by default There is no reason not to wire up the default netdev trigger for the SFP LED since we have a separate SFP interface visible. Link: https://github.com/openwrt/openwrt/pull/15927 Signed-off-by: Robert Marko --- target/linux/mvebu/cortexa72/base-files/etc/board.d/01_leds | 1 + 1 file changed, 1 insertion(+) diff --git a/target/linux/mvebu/cortexa72/base-files/etc/board.d/01_leds b/target/linux/mvebu/cortexa72/base-files/etc/board.d/01_leds index b958c2fdab..2d18587a62 100644 --- a/target/linux/mvebu/cortexa72/base-files/etc/board.d/01_leds +++ b/target/linux/mvebu/cortexa72/base-files/etc/board.d/01_leds @@ -14,6 +14,7 @@ iei,puzzle-m902) ucidef_set_led_netdev "wan" "WAN" "white:network" "eth2" "link" ;; mikrotik,rb5009) + ucidef_set_led_netdev "sfp" "SFP" "green:sfp" "sfp" ucidef_set_led_netdev "wan-port-link" "WAN-PORT-LINK" "!cp0!config-space@f2000000!mdio@12a200!switch@0!mdio1:00:green:" "p1" "tx rx link_10 link_100 link_1000 link_2500" ;; esac From a98cacbeb4983c1f29eb3b5a1c01e3bb48eebdac Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Fri, 12 Jul 2024 15:04:12 +0200 Subject: [PATCH 05/21] kernel: add mhi bus firmware download backport to 6.1 Required by a newer mac80211 backport Signed-off-by: Felix Fietkau --- ...ow-MHI-client-drivers-to-provide-the.patch | 142 ++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 target/linux/generic/backport-6.1/864-v6.6-bus-mhi-host-allow-MHI-client-drivers-to-provide-the.patch diff --git a/target/linux/generic/backport-6.1/864-v6.6-bus-mhi-host-allow-MHI-client-drivers-to-provide-the.patch b/target/linux/generic/backport-6.1/864-v6.6-bus-mhi-host-allow-MHI-client-drivers-to-provide-the.patch new file mode 100644 index 0000000000..a04b19b157 --- /dev/null +++ b/target/linux/generic/backport-6.1/864-v6.6-bus-mhi-host-allow-MHI-client-drivers-to-provide-the.patch @@ -0,0 +1,142 @@ +From: Kalle Valo +Date: Thu, 27 Jul 2023 13:04:28 +0300 +Subject: [PATCH] bus: mhi: host: allow MHI client drivers to provide the + firmware via a pointer + +Currently MHI loads the firmware image from the path provided by client +devices. ath11k needs to support firmware image embedded along with meta +data (named as firmware-2.bin). So allow the client driver to request the +firmware file from user space on it's own and provide the firmware image +data and size to MHI via a pointer struct mhi_controller::fw_data. + +This is an optional feature, if fw_data is NULL MHI load the firmware using +the name from struct mhi_controller::fw_image string as before. + +Tested with ath11k and WCN6855 hw2.0. + +Signed-off-by: Kalle Valo +Reviewed-by: Manivannan Sadhasivam +Reviewed-by: Jeffrey Hugo +Link: https://lore.kernel.org/r/20230727100430.3603551-2-kvalo@kernel.org +[mani: wrapped commit message to 75 columns] +Signed-off-by: Manivannan Sadhasivam +--- + +--- a/drivers/bus/mhi/host/boot.c ++++ b/drivers/bus/mhi/host/boot.c +@@ -367,12 +367,10 @@ error_alloc_mhi_buf: + } + + static void mhi_firmware_copy(struct mhi_controller *mhi_cntrl, +- const struct firmware *firmware, ++ const u8 *buf, size_t remainder, + struct image_info *img_info) + { +- size_t remainder = firmware->size; + size_t to_cpy; +- const u8 *buf = firmware->data; + struct mhi_buf *mhi_buf = img_info->mhi_buf; + struct bhi_vec_entry *bhi_vec = img_info->bhi_vec; + +@@ -395,9 +393,10 @@ void mhi_fw_load_handler(struct mhi_cont + struct device *dev = &mhi_cntrl->mhi_dev->dev; + enum mhi_pm_state new_state; + const char *fw_name; ++ const u8 *fw_data; + void *buf; + dma_addr_t dma_addr; +- size_t size; ++ size_t size, fw_sz; + int i, ret; + + if (MHI_PM_IN_ERROR_STATE(mhi_cntrl->pm_state)) { +@@ -427,6 +426,20 @@ void mhi_fw_load_handler(struct mhi_cont + fw_name = (mhi_cntrl->ee == MHI_EE_EDL) ? + mhi_cntrl->edl_image : mhi_cntrl->fw_image; + ++ /* check if the driver has already provided the firmware data */ ++ if (!fw_name && mhi_cntrl->fbc_download && ++ mhi_cntrl->fw_data && mhi_cntrl->fw_sz) { ++ if (!mhi_cntrl->sbl_size) { ++ dev_err(dev, "fw_data provided but no sbl_size\n"); ++ goto error_fw_load; ++ } ++ ++ size = mhi_cntrl->sbl_size; ++ fw_data = mhi_cntrl->fw_data; ++ fw_sz = mhi_cntrl->fw_sz; ++ goto skip_req_fw; ++ } ++ + if (!fw_name || (mhi_cntrl->fbc_download && (!mhi_cntrl->sbl_size || + !mhi_cntrl->seg_len))) { + dev_err(dev, +@@ -446,6 +459,10 @@ void mhi_fw_load_handler(struct mhi_cont + if (size > firmware->size) + size = firmware->size; + ++ fw_data = firmware->data; ++ fw_sz = firmware->size; ++ ++skip_req_fw: + buf = dma_alloc_coherent(mhi_cntrl->cntrl_dev, size, &dma_addr, + GFP_KERNEL); + if (!buf) { +@@ -454,7 +471,7 @@ void mhi_fw_load_handler(struct mhi_cont + } + + /* Download image using BHI */ +- memcpy(buf, firmware->data, size); ++ memcpy(buf, fw_data, size); + ret = mhi_fw_load_bhi(mhi_cntrl, dma_addr, size); + dma_free_coherent(mhi_cntrl->cntrl_dev, size, buf, dma_addr); + +@@ -466,7 +483,7 @@ void mhi_fw_load_handler(struct mhi_cont + } + + /* Wait for ready since EDL image was loaded */ +- if (fw_name == mhi_cntrl->edl_image) { ++ if (fw_name && fw_name == mhi_cntrl->edl_image) { + release_firmware(firmware); + goto fw_load_ready_state; + } +@@ -480,15 +497,14 @@ void mhi_fw_load_handler(struct mhi_cont + * device transitioning into MHI READY state + */ + if (mhi_cntrl->fbc_download) { +- ret = mhi_alloc_bhie_table(mhi_cntrl, &mhi_cntrl->fbc_image, +- firmware->size); ++ ret = mhi_alloc_bhie_table(mhi_cntrl, &mhi_cntrl->fbc_image, fw_sz); + if (ret) { + release_firmware(firmware); + goto error_fw_load; + } + + /* Load the firmware into BHIE vec table */ +- mhi_firmware_copy(mhi_cntrl, firmware, mhi_cntrl->fbc_image); ++ mhi_firmware_copy(mhi_cntrl, fw_data, fw_sz, mhi_cntrl->fbc_image); + } + + release_firmware(firmware); +--- a/include/linux/mhi.h ++++ b/include/linux/mhi.h +@@ -301,6 +301,10 @@ struct mhi_controller_config { + * @iova_start: IOMMU starting address for data (required) + * @iova_stop: IOMMU stop address for data (required) + * @fw_image: Firmware image name for normal booting (optional) ++ * @fw_data: Firmware image data content for normal booting, used only ++ * if fw_image is NULL and fbc_download is true (optional) ++ * @fw_sz: Firmware image data size for normal booting, used only if fw_image ++ * is NULL and fbc_download is true (optional) + * @edl_image: Firmware image name for emergency download mode (optional) + * @rddm_size: RAM dump size that host should allocate for debugging purpose + * @sbl_size: SBL image size downloaded through BHIe (optional) +@@ -387,6 +391,8 @@ struct mhi_controller { + dma_addr_t iova_start; + dma_addr_t iova_stop; + const char *fw_image; ++ const u8 *fw_data; ++ size_t fw_sz; + const char *edl_image; + size_t rddm_size; + size_t sbl_size; From 1bfcc1ea8a78ae834055bf554aa45720c09ea919 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Wed, 19 Jun 2024 13:51:47 +0200 Subject: [PATCH 06/21] mac80211: update to version 6.9.9 Brings lots of driver updates and API changes needed for mt76 updates. Disable iwlwifi and ath11k on 5.15, since backport is too difficult, and the only remaining targets won't need those drivers. Signed-off-by: Felix Fietkau --- .../patches/010-mac80211_backport.patch | 35 + package/kernel/mac80211/Makefile | 7 +- package/kernel/mac80211/ath.mk | 2 +- package/kernel/mac80211/intel.mk | 2 +- ...uct_group-for-struct-ath_cycle_count.patch | 117 --- .../patches/ath/402-ath_regd_optional.patch | 2 +- .../patches/ath/404-regd_no_assoc_hints.patch | 4 +- ...add_platform_eeprom_support_to_ath5k.patch | 2 +- ...9170_re-fix_fortified-memset_warning.patch | 51 -- .../ath10k/080-ath10k_thermal_config.patch | 4 +- ...21-ath10k_init_devices_synchronously.patch | 2 +- .../930-ath10k_add_tpt_led_trigger.patch | 4 +- ...LED-and-GPIO-controlling-support-for.patch | 68 +- ...75-ath10k-use-tpt-trigger-by-default.patch | 4 +- ...-power-reduction-for-US-regulatory-d.patch | 8 +- ...h10k-Try-to-get-mac-address-from-dts.patch | 4 +- ...k-always-use-mac80211-loss-detection.patch | 2 +- .../ath10k/990-ath10k-small-buffers.patch | 10 +- ...add-a-warning-message-for-MHI_CB_EE_.patch | 34 - ...-references-from-rsvd2-to-info-field.patch | 75 -- ...-tid-bitmap-is-0-in-peer-rx-mu-stats.patch | 100 --- ...chip-id-board-name-while-searching-b.patch | 214 ------ ...-NULL-pointer-check-in-ath11k_update.patch | 32 - ...-redundant-check-in-ath11k_dp_rx_mon.patch | 38 - ...ve-unused-members-of-struct-ath11k_b.patch | 46 -- ...kstrtoul_from_user-where-appropriate.patch | 60 -- ...-remove-unnecessary-void-conversions.patch | 248 ------- ...ath11k_mac_op_remain_on_channel-stac.patch | 96 --- ...fix-struct-ieee80211_sband_iftype_da.patch | 67 -- ...CAC-running-state-during-virtual-int.patch | 80 --- ...fix-Tx-power-value-during-active-CAC.patch | 43 -- ...-ath11k_mac_fils_discovery-without-c.patch | 37 - ...1k_debugfs_register-fix-format-trunc.patch | 39 - ...-parsing-of-phy-bitmap-for-reg-rules.patch | 84 --- ...emove-unused-struct-ath11k_htc_frame.patch | 38 - ...ntroduce-and-use-ath11k_sta_to_arsta.patch | 384 ---------- ...-ath11k-disable-coldboot-for-ipq6018.patch | 2 +- ...i-ath11k-use-unique-QRTR-instance-ID.patch | 10 +- ...-add-support-DT-ieee80211-freq-limit.patch | 2 +- ...k-control-thermal-support-via-symbol.patch | 10 +- ...ci-fix-compilation-in-5.16-and-older.patch | 29 - ...upport-setting-FW-memory-mode-via-DT.patch | 6 +- ...tersection-support-for-regulatory-ru.patch | 93 +-- .../ath9k/512-ath9k_channelbw_debugfs.patch | 2 +- .../ath9k/531-ath9k_extra_platform_leds.patch | 12 - .../ath9k/542-ath9k_debugfs_diag.patch | 2 +- .../ath9k/543-ath9k_entropy_from_adc.patch | 4 +- .../ath9k/545-ath9k_ani_ws_detect.patch | 4 +- .../ath9k/549-ath9k_enable_gpio_buttons.patch | 13 - .../ath9k/551-ath9k_ubnt_uap_plus_hsr.patch | 8 +- .../patches/ath9k/552-ath9k-ahb_of.patch | 15 +- .../810-b43-gpio-mask-module-option.patch | 2 +- .../brcm/812-b43-add-antenna-control.patch | 18 +- .../814-b43-only-use-gpio-0-1-for-led.patch | 2 +- ...und-bug-with-some-inconsistent-BSSes.patch | 2 +- ...62-brcmfmac-Disable-power-management.patch | 2 +- ...mfmac-disable-dump_survey-on-bcm2835.patch | 6 +- .../patches/build/001-fix_build.patch | 23 +- .../patches/build/060-no_local_ssb_bcma.patch | 10 +- .../patches/build/080-resv_start_op.patch | 24 - .../100-backports-drop-QRTR-and-MHI.patch | 6 +- .../build/120-headers_version_fix.patch | 2 +- ...ifi-Use-generic-thermal_zone_get_tri.patch | 159 ---- .../build/200-iwlwifi_thermal_backport.patch | 26 + ...atch => 210-backport_genl_split_ops.patch} | 24 +- .../patches/build/210-revert-split-op.patch | 22 - .../230-backport_genl_info_userhdr.patch | 32 - .../230-brcmfmac_usb_driver_backport.patch | 14 + .../build/250-backport_iwlwifi_thermal.patch | 160 ----- ...700-mwl8k-missing-pci-id-for-WNR854T.patch | 2 +- ...940-mwl8k_init_devices_synchronously.patch | 4 +- ...ringified-name-of-command-in-error-l.patch | 4 +- ...ifi-rt2x00-fix-MT7620-low-RSSI-issue.patch | 43 -- ...-rt2x00-fix-rt2800-watchdog-function.patch | 78 -- ...prove-MT7620-register-initialization.patch | 124 ---- ...ework-MT7620-channel-config-function.patch | 146 ---- ...-rework-MT7620-PA-LNA-RF-calibration.patch | 241 ------- ...oduce-DMA-busy-check-watchdog-for-rt.patch | 177 ----- ...ble-RTS-threshold-for-rt2800-by-defa.patch | 43 -- ...art-beacon-queue-when-hardware-reset.patch | 67 -- ...ect-wrong-BBP-register-in-RxDCOC-cal.patch | 8 +- ...support-for-loading-EEPROM-from-user.patch | 4 +- ...c-loadable-via-OF-on-rt288x-305x-SoC.patch | 2 +- ...0-rt2x00-change-led-polarity-from-OF.patch | 2 +- ...t-support-for-external-LNA-on-MT7620.patch | 4 +- ...duce-accessors-for-CHIP_VER-register.patch | 18 +- ...-differentiate-based-on-SoC-CHIP_VER.patch | 10 +- ...move-assignment-of-priv-vif-in-rtl8x.patch | 27 - ...epare-supporting-two-virtual-interfa.patch | 61 -- ...pport-setting-linktype-for-both-inte.patch | 102 --- ...88e-convert-usage-of-priv-vif-to-pri.patch | 28 - ...pport-setting-mac-address-register-f.patch | 72 -- ...tend-wifi-connected-check-to-both-in.patch | 75 -- ...tend-check-for-matching-bssid-to-bot.patch | 70 -- ...n-t-parse-CFO-if-both-interfaces-are.patch | 51 -- ...pport-setting-bssid-register-for-mul.patch | 67 -- ...pport-multiple-interfaces-in-set_aif.patch | 44 -- ...pport-multiple-interfaces-in-update_.patch | 28 - ...pport-multiple-interfaces-in-configu.patch | 33 - ...pport-multiple-interfaces-in-watchdo.patch | 66 -- ...pport-multiple-interfaces-in-add-rem.patch | 137 ---- ...pport-multiple-interfaces-in-bss_inf.patch | 57 -- ...pport-multiple-interface-in-start_ap.patch | 32 - ...ifi-rtl8xxxu-add-macids-for-STA-mode.patch | 82 --- ...fi-rtl8xxxu-remove-obsolete-priv-vif.patch | 49 -- ...xu-add-hw-crypto-support-for-AP-mode.patch | 226 ------ ...ke-supporting-AP-mode-only-on-port-0.patch | 130 ---- ...clare-concurrent-mode-support-for-81.patch | 76 -- ...xu-Fix-LED-control-code-of-RTL8192FU.patch | 98 --- ...xxxu-Fix-off-by-one-initial-RTS-rate.patch | 36 - ...add-cancel_work_sync-for-c2hcmd_work.patch | 27 - ...l8xxxu-enable-channel-switch-support.patch | 100 --- ...nvert-EN_DESC_ID-of-TX-descriptor-to.patch | 31 - ...ke-instances-of-iface-limit-and-comb.patch | 36 - ...d-missing-number-of-sec-cam-entries-.patch | 100 --- ...6.9-wifi-rtl8xxxu-fix-error-messages.patch | 37 - ...fi-rtl8xxxu-Add-TP-Link-TL-WN823N-V2.patch | 36 - ...fi-rtl8xxxu-update-rate-mask-per-sta.patch | 411 ----------- ...heck-vif-before-using-in-rtl8xxxu_tx.patch | 40 -- ...x-mixed-declarations-and-code-warnin.patch | 34 - ...i-mac80211-rework-RX-timestamp-flags.patch | 161 ----- ...e-flexible-array-in-struct-ieee80211.patch | 58 -- .../110-mac80211_keep_keys_on_stop_ap.patch | 13 +- .../patches/subsys/130-disable_auto_vif.patch | 6 +- .../mac80211/patches/subsys/210-ap_scan.patch | 2 +- ...domize-BA-session-dialog-token-alloc.patch | 6 +- ...crease-quantum-for-airtime-scheduler.patch | 12 +- ...ear-vif-drv_priv-after-calling-remov.patch | 2 +- ...esh-fast-tx-cache-into-local-proxied.patch | 224 ------ ...notate-iftype_data-pointer-with-spar.patch | 467 ------------ ...port-DFS-CAC-time-and-usable-state-h.patch | 111 --- ...x-race-condition-on-enabling-fast-xm.patch | 34 - ...race-period-for-DFS-available-after-.patch | 18 +- ...dd-AQL-support-for-broadcast-packets.patch | 47 +- ...end-IEEE80211_KEY_FLAG_GENERATE_MMI.patch} | 14 +- ...ly-call-drv_sta_rc_update-for-upload.patch | 25 - ...eck-clear-fast-rx-for-non-4addr-sta-.patch | 35 - ...it-helper-function-from-nl80211_put_.patch | 145 ++++ ...d-support-for-advertising-multiple-r.patch | 348 +++++++++ ...tend-interface-combination-check-for.patch | 172 +++++ ...d-helper-for-checking-if-a-chandef-i.patch | 69 ++ ...d-support-for-DFS-with-multiple-radi.patch | 88 +++ ...d-radio-index-to-ieee80211_chanctx_c.patch | 66 ++ ...tend-ifcomb-check-functions-for-mult.patch | 322 +++++++++ ...ve-code-in-ieee80211_link_reserve_ch.patch | 175 +++++ ...d-wiphy-radio-assignment-and-validat.patch | 132 ++++ ...sim-add-support-for-multi-radio-wiph.patch | 199 +++++ .../780-avoid-crashing-missing-band.patch | 2 +- .../kernel/mt76/patches/100-api_changes.patch | 678 ++++++++++++++++++ .../mwlwifi/patches/005-mac80211_update.patch | 86 ++- 150 files changed, 2833 insertions(+), 7149 deletions(-) create mode 100644 package/kernel/ath10k-ct/patches/010-mac80211_backport.patch delete mode 100644 package/kernel/mac80211/patches/ath/100-wifi-ath-add-struct_group-for-struct-ath_cycle_count.patch delete mode 100644 package/kernel/mac80211/patches/ath/432-carl9170_re-fix_fortified-memset_warning.patch delete mode 100644 package/kernel/mac80211/patches/ath11k/0013-wifi-ath11k-mhi-add-a-warning-message-for-MHI_CB_EE_.patch delete mode 100644 package/kernel/mac80211/patches/ath11k/0014-wifi-ath11k-move-references-from-rsvd2-to-info-field.patch delete mode 100644 package/kernel/mac80211/patches/ath11k/0015-wifi-ath11k-fix-tid-bitmap-is-0-in-peer-rx-mu-stats.patch delete mode 100644 package/kernel/mac80211/patches/ath11k/0016-wifi-ath11k-add-chip-id-board-name-while-searching-b.patch delete mode 100644 package/kernel/mac80211/patches/ath11k/0018-wifi-ath11k-drop-NULL-pointer-check-in-ath11k_update.patch delete mode 100644 package/kernel/mac80211/patches/ath11k/0019-wifi-ath11k-drop-redundant-check-in-ath11k_dp_rx_mon.patch delete mode 100644 package/kernel/mac80211/patches/ath11k/0020-wifi-ath11k-remove-unused-members-of-struct-ath11k_b.patch delete mode 100644 package/kernel/mac80211/patches/ath11k/0021-wifi-ath11k-use-kstrtoul_from_user-where-appropriate.patch delete mode 100644 package/kernel/mac80211/patches/ath11k/0022-wifi-ath11k-remove-unnecessary-void-conversions.patch delete mode 100644 package/kernel/mac80211/patches/ath11k/0023-wifi-ath11k-fix-ath11k_mac_op_remain_on_channel-stac.patch delete mode 100644 package/kernel/mac80211/patches/ath11k/0024-wifi-ath11k-mac-fix-struct-ieee80211_sband_iftype_da.patch delete mode 100644 package/kernel/mac80211/patches/ath11k/0025-wifi-ath11k-fix-CAC-running-state-during-virtual-int.patch delete mode 100644 package/kernel/mac80211/patches/ath11k/0026-wifi-ath11k-fix-Tx-power-value-during-active-CAC.patch delete mode 100644 package/kernel/mac80211/patches/ath11k/0027-wifi-ath11k-call-ath11k_mac_fils_discovery-without-c.patch delete mode 100644 package/kernel/mac80211/patches/ath11k/0028-wifi-ath11k-ath11k_debugfs_register-fix-format-trunc.patch delete mode 100644 package/kernel/mac80211/patches/ath11k/0029-wifi-ath11k-add-parsing-of-phy-bitmap-for-reg-rules.patch delete mode 100644 package/kernel/mac80211/patches/ath11k/0030-wifi-ath11k-Remove-unused-struct-ath11k_htc_frame.patch delete mode 100644 package/kernel/mac80211/patches/ath11k/0031-wifi-ath11k-Introduce-and-use-ath11k_sta_to_arsta.patch delete mode 100644 package/kernel/mac80211/patches/ath11k/901-wifi-ath11k-pci-fix-compilation-in-5.16-and-older.patch delete mode 100644 package/kernel/mac80211/patches/build/080-resv_start_op.patch delete mode 100644 package/kernel/mac80211/patches/build/200-Revert-wifi-iwlwifi-Use-generic-thermal_zone_get_tri.patch create mode 100644 package/kernel/mac80211/patches/build/200-iwlwifi_thermal_backport.patch rename package/kernel/mac80211/patches/build/{240-backport_genl_split_ops.patch => 210-backport_genl_split_ops.patch} (55%) delete mode 100644 package/kernel/mac80211/patches/build/210-revert-split-op.patch delete mode 100644 package/kernel/mac80211/patches/build/230-backport_genl_info_userhdr.patch create mode 100644 package/kernel/mac80211/patches/build/230-brcmfmac_usb_driver_backport.patch delete mode 100644 package/kernel/mac80211/patches/build/250-backport_iwlwifi_thermal.patch delete mode 100644 package/kernel/mac80211/patches/rt2x00/002-v6.7-wifi-rt2x00-fix-MT7620-low-RSSI-issue.patch delete mode 100644 package/kernel/mac80211/patches/rt2x00/003-v6.7-wifi-rt2x00-fix-rt2800-watchdog-function.patch delete mode 100644 package/kernel/mac80211/patches/rt2x00/004-1-v6.7-wifi-rt2x00-improve-MT7620-register-initialization.patch delete mode 100644 package/kernel/mac80211/patches/rt2x00/004-2-v6.7-wifi-rt2x00-rework-MT7620-channel-config-function.patch delete mode 100644 package/kernel/mac80211/patches/rt2x00/004-3-v6.7-wifi-rt2x00-rework-MT7620-PA-LNA-RF-calibration.patch delete mode 100644 package/kernel/mac80211/patches/rt2x00/005-1-v6.8-wifi-rt2x00-introduce-DMA-busy-check-watchdog-for-rt.patch delete mode 100644 package/kernel/mac80211/patches/rt2x00/005-2-v6.8-wifi-rt2x00-disable-RTS-threshold-for-rt2800-by-defa.patch delete mode 100644 package/kernel/mac80211/patches/rt2x00/005-3-v6.8-wifi-rt2x00-restart-beacon-queue-when-hardware-reset.patch delete mode 100644 package/kernel/mac80211/patches/rtl/001-01-v6.9-wifi-rtl8xxxu-remove-assignment-of-priv-vif-in-rtl8x.patch delete mode 100644 package/kernel/mac80211/patches/rtl/001-02-v6.9-wifi-rtl8xxxu-prepare-supporting-two-virtual-interfa.patch delete mode 100644 package/kernel/mac80211/patches/rtl/001-03-v6.9-wifi-rtl8xxxu-support-setting-linktype-for-both-inte.patch delete mode 100644 package/kernel/mac80211/patches/rtl/001-04-v6.9-wifi-rtl8xxxu-8188e-convert-usage-of-priv-vif-to-pri.patch delete mode 100644 package/kernel/mac80211/patches/rtl/001-05-v6.9-wifi-rtl8xxxu-support-setting-mac-address-register-f.patch delete mode 100644 package/kernel/mac80211/patches/rtl/001-06-v6.9-wifi-rtl8xxxu-extend-wifi-connected-check-to-both-in.patch delete mode 100644 package/kernel/mac80211/patches/rtl/001-07-v6.9-wifi-rtl8xxxu-extend-check-for-matching-bssid-to-bot.patch delete mode 100644 package/kernel/mac80211/patches/rtl/001-08-v6.9-wifi-rtl8xxxu-don-t-parse-CFO-if-both-interfaces-are.patch delete mode 100644 package/kernel/mac80211/patches/rtl/001-09-v6.9-wifi-rtl8xxxu-support-setting-bssid-register-for-mul.patch delete mode 100644 package/kernel/mac80211/patches/rtl/001-10-v6.9-wifi-rtl8xxxu-support-multiple-interfaces-in-set_aif.patch delete mode 100644 package/kernel/mac80211/patches/rtl/001-11-v6.9-wifi-rtl8xxxu-support-multiple-interfaces-in-update_.patch delete mode 100644 package/kernel/mac80211/patches/rtl/001-12-v6.9-wifi-rtl8xxxu-support-multiple-interfaces-in-configu.patch delete mode 100644 package/kernel/mac80211/patches/rtl/001-13-v6.9-wifi-rtl8xxxu-support-multiple-interfaces-in-watchdo.patch delete mode 100644 package/kernel/mac80211/patches/rtl/001-14-v6.9-wifi-rtl8xxxu-support-multiple-interfaces-in-add-rem.patch delete mode 100644 package/kernel/mac80211/patches/rtl/001-15-v6.9-wifi-rtl8xxxu-support-multiple-interfaces-in-bss_inf.patch delete mode 100644 package/kernel/mac80211/patches/rtl/001-16-v6.9-wifi-rtl8xxxu-support-multiple-interface-in-start_ap.patch delete mode 100644 package/kernel/mac80211/patches/rtl/001-17-v6.9-wifi-rtl8xxxu-add-macids-for-STA-mode.patch delete mode 100644 package/kernel/mac80211/patches/rtl/001-18-v6.9-wifi-rtl8xxxu-remove-obsolete-priv-vif.patch delete mode 100644 package/kernel/mac80211/patches/rtl/001-19-v6.9-wifi-rtl8xxxu-add-hw-crypto-support-for-AP-mode.patch delete mode 100644 package/kernel/mac80211/patches/rtl/001-20-v6.9-wifi-rtl8xxxu-make-supporting-AP-mode-only-on-port-0.patch delete mode 100644 package/kernel/mac80211/patches/rtl/001-21-v6.9-wifi-rtl8xxxu-declare-concurrent-mode-support-for-81.patch delete mode 100644 package/kernel/mac80211/patches/rtl/002-01-v6.9-wifi-rtl8xxxu-Fix-LED-control-code-of-RTL8192FU.patch delete mode 100644 package/kernel/mac80211/patches/rtl/002-02-v6.9-wifi-rtl8xxxu-Fix-off-by-one-initial-RTS-rate.patch delete mode 100644 package/kernel/mac80211/patches/rtl/003-01-v6.9-wifi-rtl8xxxu-add-cancel_work_sync-for-c2hcmd_work.patch delete mode 100644 package/kernel/mac80211/patches/rtl/003-02-v6.9-wifi-rtl8xxxu-enable-channel-switch-support.patch delete mode 100644 package/kernel/mac80211/patches/rtl/004-01-v6.9-wifi-rtl8xxxu-convert-EN_DESC_ID-of-TX-descriptor-to.patch delete mode 100644 package/kernel/mac80211/patches/rtl/004-02-v6.9-wifi-rtl8xxxu-make-instances-of-iface-limit-and-comb.patch delete mode 100644 package/kernel/mac80211/patches/rtl/005-v6.9-wifi-rtl8xxxu-add-missing-number-of-sec-cam-entries-.patch delete mode 100644 package/kernel/mac80211/patches/rtl/006-v6.9-wifi-rtl8xxxu-fix-error-messages.patch delete mode 100644 package/kernel/mac80211/patches/rtl/007-v6.9-wifi-rtl8xxxu-Add-TP-Link-TL-WN823N-V2.patch delete mode 100644 package/kernel/mac80211/patches/rtl/008-v6.9-wifi-rtl8xxxu-update-rate-mask-per-sta.patch delete mode 100644 package/kernel/mac80211/patches/rtl/009-v6.9-wifi-rtl8xxxu-check-vif-before-using-in-rtl8xxxu_tx.patch delete mode 100644 package/kernel/mac80211/patches/rtl/010-v6.9-wifi-rtl8xxxu-fix-mixed-declarations-and-code-warnin.patch delete mode 100644 package/kernel/mac80211/patches/subsys/100-v6.8-wifi-mac80211-rework-RX-timestamp-flags.patch delete mode 100644 package/kernel/mac80211/patches/subsys/101-v6.7-wifi-mac80211-Use-flexible-array-in-struct-ieee80211.patch delete mode 100644 package/kernel/mac80211/patches/subsys/310-mac80211-split-mesh-fast-tx-cache-into-local-proxied.patch delete mode 100644 package/kernel/mac80211/patches/subsys/312-wifi-cfg80211-annotate-iftype_data-pointer-with-spar.patch delete mode 100644 package/kernel/mac80211/patches/subsys/313-wifi-cfg80211-export-DFS-CAC-time-and-usable-state-h.patch delete mode 100644 package/kernel/mac80211/patches/subsys/314-wifi-mac80211-fix-race-condition-on-enabling-fast-xm.patch rename package/kernel/mac80211/patches/subsys/{333-wifi-mac80211-extend-IEEE80211_KEY_FLAG_GENERATE_MMI.patch => 331-wifi-mac80211-extend-IEEE80211_KEY_FLAG_GENERATE_MMI.patch} (81%) delete mode 100644 package/kernel/mac80211/patches/subsys/331-wifi-mac80211-only-call-drv_sta_rc_update-for-upload.patch delete mode 100644 package/kernel/mac80211/patches/subsys/332-wifi-mac80211-check-clear-fast-rx-for-non-4addr-sta-.patch create mode 100644 package/kernel/mac80211/patches/subsys/340-wifi-nl80211-split-helper-function-from-nl80211_put_.patch create mode 100644 package/kernel/mac80211/patches/subsys/341-wifi-cfg80211-add-support-for-advertising-multiple-r.patch create mode 100644 package/kernel/mac80211/patches/subsys/342-wifi-cfg80211-extend-interface-combination-check-for.patch create mode 100644 package/kernel/mac80211/patches/subsys/343-wifi-cfg80211-add-helper-for-checking-if-a-chandef-i.patch create mode 100644 package/kernel/mac80211/patches/subsys/344-wifi-mac80211-add-support-for-DFS-with-multiple-radi.patch create mode 100644 package/kernel/mac80211/patches/subsys/345-wifi-mac80211-add-radio-index-to-ieee80211_chanctx_c.patch create mode 100644 package/kernel/mac80211/patches/subsys/346-wifi-mac80211-extend-ifcomb-check-functions-for-mult.patch create mode 100644 package/kernel/mac80211/patches/subsys/347-wifi-mac80211-move-code-in-ieee80211_link_reserve_ch.patch create mode 100644 package/kernel/mac80211/patches/subsys/348-wifi-mac80211-add-wiphy-radio-assignment-and-validat.patch create mode 100644 package/kernel/mac80211/patches/subsys/349-wifi-mac80211_hwsim-add-support-for-multi-radio-wiph.patch create mode 100644 package/kernel/mt76/patches/100-api_changes.patch diff --git a/package/kernel/ath10k-ct/patches/010-mac80211_backport.patch b/package/kernel/ath10k-ct/patches/010-mac80211_backport.patch new file mode 100644 index 0000000000..b3f7d580fa --- /dev/null +++ b/package/kernel/ath10k-ct/patches/010-mac80211_backport.patch @@ -0,0 +1,35 @@ +--- a/ath10k-6.4/mac.c ++++ b/ath10k-6.4/mac.c +@@ -2310,8 +2310,8 @@ static void ath10k_mac_vif_ap_csa_count_ + if (!arvif->is_up) + return; + +- if (!ieee80211_beacon_cntdwn_is_complete(vif)) { +- ieee80211_beacon_update_cntdwn(vif); ++ if (!ieee80211_beacon_cntdwn_is_complete(vif, 0)) { ++ ieee80211_beacon_update_cntdwn(vif, 0); + + ret = ath10k_mac_setup_bcn_tmpl(arvif); + if (ret) +@@ -2323,7 +2323,7 @@ static void ath10k_mac_vif_ap_csa_count_ + ath10k_warn(ar, "failed to update prb tmpl during csa: %d\n", + ret); + } else { +- ieee80211_csa_finish(vif); ++ ieee80211_csa_finish(vif, 0); + } + } + +--- a/ath10k-6.4/wmi.c ++++ b/ath10k-6.4/wmi.c +@@ -4284,8 +4284,8 @@ void ath10k_wmi_event_host_swba(struct a + * actual channel switch is done + */ + if (arvif->vif->bss_conf.csa_active && +- ieee80211_beacon_cntdwn_is_complete(arvif->vif)) { +- ieee80211_csa_finish(arvif->vif); ++ ieee80211_beacon_cntdwn_is_complete(arvif->vif, 0)) { ++ ieee80211_csa_finish(arvif->vif, 0); + continue; + } + diff --git a/package/kernel/mac80211/Makefile b/package/kernel/mac80211/Makefile index 79ef87b998..aa022c9cd3 100644 --- a/package/kernel/mac80211/Makefile +++ b/package/kernel/mac80211/Makefile @@ -10,13 +10,13 @@ include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=mac80211 -PKG_VERSION:=6.6.15 -PKG_RELEASE:=2 +PKG_VERSION:=6.9.9 +PKG_RELEASE:=1 PKG_LICENSE:=GPL-2.0-only PKG_LICENSE_FILES:=COPYING PKG_SOURCE_URL:=http://mirror2.openwrt.org/sources/ -PKG_HASH:=3bbc461121134fda9089c084a5eed577d05e7837a157edf9a3797937172a3ece +PKG_HASH:=3417da091a57c7b1c145d44c1fae9f1e0bac6d0c8ad61b37e57b0a802eeb2837 PKG_SOURCE:=backports-$(PKG_VERSION).tar.xz PKG_BUILD_DIR:=$(KERNEL_BUILD_DIR)/$(if $(BUILD_VARIANT),$(PKG_NAME)-$(BUILD_VARIANT)/)backports-$(PKG_VERSION) @@ -333,7 +333,6 @@ endif ifeq ($(strip $(CONFIG_EXTERNAL_KERNEL_TREE)),"") ifeq ($(strip $(CONFIG_KERNEL_GIT_CLONE_URI)),"") define Build/Configure - cmp $(PKG_BUILD_DIR)/include/linux/ath9k_platform.h $(LINUX_DIR)/include/linux/ath9k_platform.h cmp $(PKG_BUILD_DIR)/include/linux/ath5k_platform.h $(LINUX_DIR)/include/linux/ath5k_platform.h cmp $(PKG_BUILD_DIR)/include/linux/rt2x00_platform.h $(LINUX_DIR)/include/linux/rt2x00_platform.h endef diff --git a/package/kernel/mac80211/ath.mk b/package/kernel/mac80211/ath.mk index b0c3691a57..1d4b37d259 100644 --- a/package/kernel/mac80211/ath.mk +++ b/package/kernel/mac80211/ath.mk @@ -296,7 +296,7 @@ define KernelPackage/ath11k $(call KernelPackage/mac80211/Default) TITLE:=Qualcomm 802.11ax wireless chipset support (common code) URL:=https://wireless.wiki.kernel.org/en/users/drivers/ath11k - DEPENDS+= +kmod-ath +@DRIVER_11AC_SUPPORT +@DRIVER_11AX_SUPPORT \ + DEPENDS+= +kmod-ath +@DRIVER_11AC_SUPPORT +@DRIVER_11AX_SUPPORT @!LINUX_5_15 \ +kmod-crypto-michael-mic +ATH11K_THERMAL:kmod-hwmon-core +ATH11K_THERMAL:kmod-thermal FILES:=$(PKG_BUILD_DIR)/drivers/soc/qcom/qmi_helpers.ko \ $(PKG_BUILD_DIR)/drivers/net/wireless/ath/ath11k/ath11k.ko diff --git a/package/kernel/mac80211/intel.mk b/package/kernel/mac80211/intel.mk index f2aceb96cd..63b19a55c1 100644 --- a/package/kernel/mac80211/intel.mk +++ b/package/kernel/mac80211/intel.mk @@ -6,7 +6,7 @@ config-$(CONFIG_PACKAGE_IWLWIFI_DEBUGFS)+= IWLWIFI_DEBUGFS define KernelPackage/iwlwifi $(call KernelPackage/mac80211/Default) - DEPENDS:= +kmod-mac80211 +kmod-ptp @PCI_SUPPORT +@DRIVER_11AC_SUPPORT +@DRIVER_11AX_SUPPORT + DEPENDS:= +kmod-mac80211 +kmod-ptp @PCI_SUPPORT +@DRIVER_11AC_SUPPORT +@DRIVER_11AX_SUPPORT @!LINUX_5_15 TITLE:=Intel AGN Wireless support FILES:= \ $(PKG_BUILD_DIR)/drivers/net/wireless/intel/iwlwifi/iwlwifi.ko \ diff --git a/package/kernel/mac80211/patches/ath/100-wifi-ath-add-struct_group-for-struct-ath_cycle_count.patch b/package/kernel/mac80211/patches/ath/100-wifi-ath-add-struct_group-for-struct-ath_cycle_count.patch deleted file mode 100644 index f464072d75..0000000000 --- a/package/kernel/mac80211/patches/ath/100-wifi-ath-add-struct_group-for-struct-ath_cycle_count.patch +++ /dev/null @@ -1,117 +0,0 @@ -From e8053643b6d70e23a634f14e4408f3a6d1d3a6bf Mon Sep 17 00:00:00 2001 -From: Shiji Yang -Date: Sat, 27 May 2023 09:04:48 +0000 -Subject: [PATCH] wifi: ath: add struct_group for struct ath_cycle_counters - -Add a struct_group to around all members in struct ath_cycle_counters. -It can help the compiler detect the intended bounds of the memcpy() and -memset(). - -This patch fixes the following build warning: - -In function 'fortify_memset_chk', - inlined from 'ath9k_ps_wakeup' at /home/db/openwrt/build_dir/target-mips_24kc_musl/linux-ath79_generic/backports-6.1.24/drivers/net/wireless/ath/ath9k/main.c:140:3: -./include/linux/fortify-string.h:314:25: error: call to '__write_overflow_field' declared with attribute warning: detected write beyond size of field (1st parameter); maybe use struct_group()? [-Werror=attribute-warning] - 314 | __write_overflow_field(p_size_field, size); - | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Signed-off-by: Shiji Yang ---- - drivers/net/wireless/ath/ath.h | 10 ++++++---- - drivers/net/wireless/ath/ath5k/ani.c | 2 +- - drivers/net/wireless/ath/ath5k/base.c | 4 ++-- - drivers/net/wireless/ath/ath5k/mac80211-ops.c | 2 +- - drivers/net/wireless/ath/ath9k/link.c | 2 +- - drivers/net/wireless/ath/ath9k/main.c | 4 ++-- - drivers/net/wireless/ath/hw.c | 2 +- - 7 files changed, 14 insertions(+), 12 deletions(-) - ---- a/drivers/net/wireless/ath/ath.h -+++ b/drivers/net/wireless/ath/ath.h -@@ -43,10 +43,12 @@ struct ath_ani { - }; - - struct ath_cycle_counters { -- u32 cycles; -- u32 rx_busy; -- u32 rx_frame; -- u32 tx_frame; -+ struct_group(cnts, -+ u32 cycles; -+ u32 rx_busy; -+ u32 rx_frame; -+ u32 tx_frame; -+ ); - }; - - enum ath_device_state { ---- a/drivers/net/wireless/ath/ath5k/ani.c -+++ b/drivers/net/wireless/ath/ath5k/ani.c -@@ -379,7 +379,7 @@ ath5k_hw_ani_get_listen_time(struct ath5 - spin_lock_bh(&common->cc_lock); - - ath_hw_cycle_counters_update(common); -- memcpy(&as->last_cc, &common->cc_ani, sizeof(as->last_cc)); -+ memcpy(&as->last_cc.cnts, &common->cc_ani.cnts, sizeof(as->last_cc.cnts)); - - /* clears common->cc_ani */ - listen = ath_hw_get_listen_time(common); ---- a/drivers/net/wireless/ath/ath5k/base.c -+++ b/drivers/net/wireless/ath/ath5k/base.c -@@ -2985,8 +2985,8 @@ ath5k_reset(struct ath5k_hw *ah, struct - memset(&ah->survey, 0, sizeof(ah->survey)); - spin_lock_bh(&common->cc_lock); - ath_hw_cycle_counters_update(common); -- memset(&common->cc_survey, 0, sizeof(common->cc_survey)); -- memset(&common->cc_ani, 0, sizeof(common->cc_ani)); -+ memset(&common->cc_survey.cnts, 0, sizeof(common->cc_survey.cnts)); -+ memset(&common->cc_ani.cnts, 0, sizeof(common->cc_ani.cnts)); - spin_unlock_bh(&common->cc_lock); - - /* ---- a/drivers/net/wireless/ath/ath5k/mac80211-ops.c -+++ b/drivers/net/wireless/ath/ath5k/mac80211-ops.c -@@ -664,7 +664,7 @@ ath5k_get_survey(struct ieee80211_hw *hw - ah->survey.time_rx += cc->rx_frame / div; - ah->survey.time_tx += cc->tx_frame / div; - } -- memset(cc, 0, sizeof(*cc)); -+ memset(&cc->cnts, 0, sizeof(cc->cnts)); - spin_unlock_bh(&common->cc_lock); - - memcpy(survey, &ah->survey, sizeof(*survey)); ---- a/drivers/net/wireless/ath/ath9k/link.c -+++ b/drivers/net/wireless/ath/ath9k/link.c -@@ -536,7 +536,7 @@ int ath_update_survey_stats(struct ath_s - if (cc->cycles > 0) - ret = cc->rx_busy * 100 / cc->cycles; - -- memset(cc, 0, sizeof(*cc)); -+ memset(&cc->cnts, 0, sizeof(cc->cnts)); - - ath_update_survey_nf(sc, pos); - ---- a/drivers/net/wireless/ath/ath9k/main.c -+++ b/drivers/net/wireless/ath/ath9k/main.c -@@ -135,8 +135,8 @@ void ath9k_ps_wakeup(struct ath_softc *s - if (power_mode != ATH9K_PM_AWAKE) { - spin_lock(&common->cc_lock); - ath_hw_cycle_counters_update(common); -- memset(&common->cc_survey, 0, sizeof(common->cc_survey)); -- memset(&common->cc_ani, 0, sizeof(common->cc_ani)); -+ memset(&common->cc_survey.cnts, 0, sizeof(common->cc_survey.cnts)); -+ memset(&common->cc_ani.cnts, 0, sizeof(common->cc_ani.cnts)); - spin_unlock(&common->cc_lock); - } - ---- a/drivers/net/wireless/ath/hw.c -+++ b/drivers/net/wireless/ath/hw.c -@@ -183,7 +183,7 @@ int32_t ath_hw_get_listen_time(struct at - listen_time = (cc->cycles - cc->rx_frame - cc->tx_frame) / - (common->clockrate * 1000); - -- memset(cc, 0, sizeof(*cc)); -+ memset(&cc->cnts, 0, sizeof(cc->cnts)); - - return listen_time; - } diff --git a/package/kernel/mac80211/patches/ath/402-ath_regd_optional.patch b/package/kernel/mac80211/patches/ath/402-ath_regd_optional.patch index 601ebdc758..0f6a570cb0 100644 --- a/package/kernel/mac80211/patches/ath/402-ath_regd_optional.patch +++ b/package/kernel/mac80211/patches/ath/402-ath_regd_optional.patch @@ -82,7 +82,7 @@ help --- a/local-symbols +++ b/local-symbols -@@ -101,6 +101,7 @@ ADM8211= +@@ -94,6 +94,7 @@ ADM8211= ATH_COMMON= WLAN_VENDOR_ATH= ATH_DEBUG= diff --git a/package/kernel/mac80211/patches/ath/404-regd_no_assoc_hints.patch b/package/kernel/mac80211/patches/ath/404-regd_no_assoc_hints.patch index d0f4b15772..895e2ff8d8 100644 --- a/package/kernel/mac80211/patches/ath/404-regd_no_assoc_hints.patch +++ b/package/kernel/mac80211/patches/ath/404-regd_no_assoc_hints.patch @@ -1,6 +1,6 @@ --- a/net/wireless/reg.c +++ b/net/wireless/reg.c -@@ -3340,6 +3340,8 @@ void regulatory_hint_country_ie(struct w +@@ -3364,6 +3364,8 @@ void regulatory_hint_country_ie(struct w enum environment_cap env = ENVIRON_ANY; struct regulatory_request *request = NULL, *lr; @@ -9,7 +9,7 @@ /* IE len must be evenly divisible by 2 */ if (country_ie_len & 0x01) return; -@@ -3591,6 +3593,7 @@ static bool is_wiphy_all_set_reg_flag(en +@@ -3615,6 +3617,7 @@ static bool is_wiphy_all_set_reg_flag(en void regulatory_hint_disconnect(void) { diff --git a/package/kernel/mac80211/patches/ath/431-add_platform_eeprom_support_to_ath5k.patch b/package/kernel/mac80211/patches/ath/431-add_platform_eeprom_support_to_ath5k.patch index 136be19894..c762aa6d64 100644 --- a/package/kernel/mac80211/patches/ath/431-add_platform_eeprom_support_to_ath5k.patch +++ b/package/kernel/mac80211/patches/ath/431-add_platform_eeprom_support_to_ath5k.patch @@ -18,7 +18,7 @@ static bool ath5k_pci_eeprom_read(struct ath_common *common, u32 offset, u16 *data) @@ -79,6 +80,19 @@ ath5k_pci_eeprom_read(struct ath_common - struct ath5k_hw *ah = (struct ath5k_hw *) common->ah; + struct ath5k_hw *ah = common->ah; u32 status, timeout; + struct ath5k_platform_data *pdata = NULL; diff --git a/package/kernel/mac80211/patches/ath/432-carl9170_re-fix_fortified-memset_warning.patch b/package/kernel/mac80211/patches/ath/432-carl9170_re-fix_fortified-memset_warning.patch deleted file mode 100644 index eafe49bd6f..0000000000 --- a/package/kernel/mac80211/patches/ath/432-carl9170_re-fix_fortified-memset_warning.patch +++ /dev/null @@ -1,51 +0,0 @@ -[PATCH 1/2] carl9170: re-fix fortified-memset warning -@ 2023-06-23 15:23 Arnd Bergmann - 2023-06-23 15:24 ` [PATCH 2/2] mac80211: make ieee80211_tx_info padding explicit Arnd Bergmann - ` (2 more replies) - 0 siblings, 3 replies; 9+ messages in thread -From: Arnd Bergmann @ 2023-06-23 15:23 UTC (permalink / raw) - To: Christian Lamparter, Kalle Valo, Kees Cook, Johannes Berg - Cc: Arnd Bergmann, linux-wireless, linux-kernel - -From: Arnd Bergmann - -The carl9170_tx_release() function sometimes triggers a fortified-memset -warning in my randconfig builds: - -In file included from include/linux/string.h:254, - from drivers/net/wireless/ath/carl9170/tx.c:40: -In function 'fortify_memset_chk', - inlined from 'carl9170_tx_release' at drivers/net/wireless/ath/carl9170/tx.c:283:2, - inlined from 'kref_put' at include/linux/kref.h:65:3, - inlined from 'carl9170_tx_put_skb' at drivers/net/wireless/ath/carl9170/tx.c:342:9: -include/linux/fortify-string.h:493:25: error: call to '__write_overflow_field' declared with attribute warning: detected write beyond size of field (1st parameter); maybe use struct_group()? [-Werror=attribute-warning] - 493 | __write_overflow_field(p_size_field, size); - -Kees previously tried to avoid this by using memset_after(), but it seems -this does not fully address the problem. I noticed that the memset_after() -here is done on a different part of the union (status) than the original -cast was from (rate_driver_data), which may confuse the compiler. - -Unfortunately, the memset_after() trick does not work on driver_rates[] -because that is part of an anonymous struct, and I could not get -struct_group() to do this either. Using two separate memset() calls -on the two members does address the warning though. - -Fixes: fb5f6a0e8063b ("mac80211: Use memset_after() to clear tx status") -Signed-off-by: Arnd Bergmann ---- - drivers/net/wireless/ath/carl9170/tx.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - ---- a/drivers/net/wireless/ath/carl9170/tx.c -+++ b/drivers/net/wireless/ath/carl9170/tx.c -@@ -280,7 +280,8 @@ static void carl9170_tx_release(struct k - * carl9170_tx_fill_rateinfo() has filled the rate information - * before we get to this point. - */ -- memset_after(&txinfo->status, 0, rates); -+ memset(&txinfo->pad, 0, sizeof(txinfo->pad)); -+ memset(&txinfo->rate_driver_data, 0, sizeof(txinfo->rate_driver_data)); - - if (atomic_read(&ar->tx_total_queued)) - ar->tx_schedule = true; diff --git a/package/kernel/mac80211/patches/ath10k/080-ath10k_thermal_config.patch b/package/kernel/mac80211/patches/ath10k/080-ath10k_thermal_config.patch index f1b5ce1f1b..c41bfa8888 100644 --- a/package/kernel/mac80211/patches/ath10k/080-ath10k_thermal_config.patch +++ b/package/kernel/mac80211/patches/ath10k/080-ath10k_thermal_config.patch @@ -1,6 +1,6 @@ --- a/drivers/net/wireless/ath/ath10k/Kconfig +++ b/drivers/net/wireless/ath/ath10k/Kconfig -@@ -87,6 +87,12 @@ config ATH10K_TRACING +@@ -88,6 +88,12 @@ config ATH10K_TRACING help Select this to ath10k use tracing infrastructure. @@ -37,7 +37,7 @@ void ath10k_thermal_event_temperature(struct ath10k *ar, int temperature); --- a/local-symbols +++ b/local-symbols -@@ -160,6 +160,7 @@ ATH10K_SNOC= +@@ -153,6 +153,7 @@ ATH10K_SNOC= ATH10K_DEBUG= ATH10K_DEBUGFS= ATH10K_SPECTRAL= diff --git a/package/kernel/mac80211/patches/ath10k/921-ath10k_init_devices_synchronously.patch b/package/kernel/mac80211/patches/ath10k/921-ath10k_init_devices_synchronously.patch index adfeb3eaae..479c74e473 100644 --- a/package/kernel/mac80211/patches/ath10k/921-ath10k_init_devices_synchronously.patch +++ b/package/kernel/mac80211/patches/ath10k/921-ath10k_init_devices_synchronously.patch @@ -14,7 +14,7 @@ Signed-off-by: Sven Eckelmann --- a/drivers/net/wireless/ath/ath10k/core.c +++ b/drivers/net/wireless/ath/ath10k/core.c -@@ -3507,6 +3507,16 @@ int ath10k_core_register(struct ath10k * +@@ -3527,6 +3527,16 @@ int ath10k_core_register(struct ath10k * queue_work(ar->workqueue, &ar->register_work); diff --git a/package/kernel/mac80211/patches/ath10k/930-ath10k_add_tpt_led_trigger.patch b/package/kernel/mac80211/patches/ath10k/930-ath10k_add_tpt_led_trigger.patch index 1a043f7b15..c9ad4018c8 100644 --- a/package/kernel/mac80211/patches/ath10k/930-ath10k_add_tpt_led_trigger.patch +++ b/package/kernel/mac80211/patches/ath10k/930-ath10k_add_tpt_led_trigger.patch @@ -1,6 +1,6 @@ --- a/drivers/net/wireless/ath/ath10k/mac.c +++ b/drivers/net/wireless/ath/ath10k/mac.c -@@ -9917,6 +9917,21 @@ static int ath10k_mac_init_rd(struct ath +@@ -9918,6 +9918,21 @@ static int ath10k_mac_init_rd(struct ath return 0; } @@ -22,7 +22,7 @@ int ath10k_mac_register(struct ath10k *ar) { static const u32 cipher_suites[] = { -@@ -10275,6 +10290,12 @@ int ath10k_mac_register(struct ath10k *a +@@ -10280,6 +10295,12 @@ int ath10k_mac_register(struct ath10k *a ar->hw->weight_multiplier = ATH10K_AIRTIME_WEIGHT_MULTIPLIER; diff --git a/package/kernel/mac80211/patches/ath10k/974-wifi-ath10k-add-LED-and-GPIO-controlling-support-for.patch b/package/kernel/mac80211/patches/ath10k/974-wifi-ath10k-add-LED-and-GPIO-controlling-support-for.patch index 05e3b2a28d..a9eb38e576 100644 --- a/package/kernel/mac80211/patches/ath10k/974-wifi-ath10k-add-LED-and-GPIO-controlling-support-for.patch +++ b/package/kernel/mac80211/patches/ath10k/974-wifi-ath10k-add-LED-and-GPIO-controlling-support-for.patch @@ -38,7 +38,7 @@ Link: https://msgid.link/20230611080505.17393-1-ansuelsmth@gmail.com --- a/drivers/net/wireless/ath/ath10k/Kconfig +++ b/drivers/net/wireless/ath/ath10k/Kconfig -@@ -72,6 +72,12 @@ config ATH10K_DEBUGFS +@@ -73,6 +73,12 @@ config ATH10K_DEBUGFS If unsure, say Y to make it easier to debug problems. @@ -63,7 +63,7 @@ Link: https://msgid.link/20230611080505.17393-1-ansuelsmth@gmail.com ath10k_core-$(CONFIG_DEV_COREDUMP) += coredump.o --- a/local-symbols +++ b/local-symbols -@@ -161,6 +161,7 @@ ATH10K_DEBUG= +@@ -154,6 +154,7 @@ ATH10K_DEBUG= ATH10K_DEBUGFS= ATH10K_SPECTRAL= ATH10K_THERMAL= @@ -73,7 +73,7 @@ Link: https://msgid.link/20230611080505.17393-1-ansuelsmth@gmail.com WCN36XX= --- a/drivers/net/wireless/ath/ath10k/core.c +++ b/drivers/net/wireless/ath/ath10k/core.c -@@ -26,6 +26,7 @@ +@@ -27,6 +27,7 @@ #include "testmode.h" #include "wmi-ops.h" #include "coredump.h" @@ -81,7 +81,7 @@ Link: https://msgid.link/20230611080505.17393-1-ansuelsmth@gmail.com unsigned int ath10k_debug_mask; EXPORT_SYMBOL(ath10k_debug_mask); -@@ -67,6 +68,7 @@ static const struct ath10k_hw_params ath +@@ -68,6 +69,7 @@ static const struct ath10k_hw_params ath .name = "qca988x hw2.0", .patch_load_addr = QCA988X_HW_2_0_PATCH_LOAD_ADDR, .uart_pin = 7, @@ -89,7 +89,7 @@ Link: https://msgid.link/20230611080505.17393-1-ansuelsmth@gmail.com .cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_ALL, .otp_exe_param = 0, .channel_counters_freq_hz = 88000, -@@ -107,6 +109,7 @@ static const struct ath10k_hw_params ath +@@ -109,6 +111,7 @@ static const struct ath10k_hw_params ath .name = "qca988x hw2.0 ubiquiti", .patch_load_addr = QCA988X_HW_2_0_PATCH_LOAD_ADDR, .uart_pin = 7, @@ -97,7 +97,7 @@ Link: https://msgid.link/20230611080505.17393-1-ansuelsmth@gmail.com .cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_ALL, .otp_exe_param = 0, .channel_counters_freq_hz = 88000, -@@ -148,6 +151,7 @@ static const struct ath10k_hw_params ath +@@ -151,6 +154,7 @@ static const struct ath10k_hw_params ath .name = "qca9887 hw1.0", .patch_load_addr = QCA9887_HW_1_0_PATCH_LOAD_ADDR, .uart_pin = 7, @@ -105,7 +105,7 @@ Link: https://msgid.link/20230611080505.17393-1-ansuelsmth@gmail.com .cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_ALL, .otp_exe_param = 0, .channel_counters_freq_hz = 88000, -@@ -189,6 +193,7 @@ static const struct ath10k_hw_params ath +@@ -193,6 +197,7 @@ static const struct ath10k_hw_params ath .name = "qca6174 hw3.2 sdio", .patch_load_addr = QCA6174_HW_3_0_PATCH_LOAD_ADDR, .uart_pin = 19, @@ -113,7 +113,7 @@ Link: https://msgid.link/20230611080505.17393-1-ansuelsmth@gmail.com .otp_exe_param = 0, .channel_counters_freq_hz = 88000, .max_probe_resp_desc_thres = 0, -@@ -225,6 +230,7 @@ static const struct ath10k_hw_params ath +@@ -230,6 +235,7 @@ static const struct ath10k_hw_params ath .name = "qca6164 hw2.1", .patch_load_addr = QCA6174_HW_2_1_PATCH_LOAD_ADDR, .uart_pin = 6, @@ -121,7 +121,7 @@ Link: https://msgid.link/20230611080505.17393-1-ansuelsmth@gmail.com .otp_exe_param = 0, .channel_counters_freq_hz = 88000, .max_probe_resp_desc_thres = 0, -@@ -265,6 +271,7 @@ static const struct ath10k_hw_params ath +@@ -271,6 +277,7 @@ static const struct ath10k_hw_params ath .name = "qca6174 hw2.1", .patch_load_addr = QCA6174_HW_2_1_PATCH_LOAD_ADDR, .uart_pin = 6, @@ -129,7 +129,7 @@ Link: https://msgid.link/20230611080505.17393-1-ansuelsmth@gmail.com .otp_exe_param = 0, .channel_counters_freq_hz = 88000, .max_probe_resp_desc_thres = 0, -@@ -305,6 +312,7 @@ static const struct ath10k_hw_params ath +@@ -312,6 +319,7 @@ static const struct ath10k_hw_params ath .name = "qca6174 hw3.0", .patch_load_addr = QCA6174_HW_3_0_PATCH_LOAD_ADDR, .uart_pin = 6, @@ -137,7 +137,7 @@ Link: https://msgid.link/20230611080505.17393-1-ansuelsmth@gmail.com .otp_exe_param = 0, .channel_counters_freq_hz = 88000, .max_probe_resp_desc_thres = 0, -@@ -345,6 +353,7 @@ static const struct ath10k_hw_params ath +@@ -353,6 +361,7 @@ static const struct ath10k_hw_params ath .name = "qca6174 hw3.2", .patch_load_addr = QCA6174_HW_3_0_PATCH_LOAD_ADDR, .uart_pin = 6, @@ -145,7 +145,7 @@ Link: https://msgid.link/20230611080505.17393-1-ansuelsmth@gmail.com .otp_exe_param = 0, .channel_counters_freq_hz = 88000, .max_probe_resp_desc_thres = 0, -@@ -389,6 +398,7 @@ static const struct ath10k_hw_params ath +@@ -398,6 +407,7 @@ static const struct ath10k_hw_params ath .name = "qca99x0 hw2.0", .patch_load_addr = QCA99X0_HW_2_0_PATCH_LOAD_ADDR, .uart_pin = 7, @@ -153,7 +153,7 @@ Link: https://msgid.link/20230611080505.17393-1-ansuelsmth@gmail.com .otp_exe_param = 0x00000700, .continuous_frag_desc = true, .cck_rate_map_rev2 = true, -@@ -435,6 +445,7 @@ static const struct ath10k_hw_params ath +@@ -445,6 +455,7 @@ static const struct ath10k_hw_params ath .name = "qca9984/qca9994 hw1.0", .patch_load_addr = QCA9984_HW_1_0_PATCH_LOAD_ADDR, .uart_pin = 7, @@ -161,7 +161,7 @@ Link: https://msgid.link/20230611080505.17393-1-ansuelsmth@gmail.com .cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_EACH, .otp_exe_param = 0x00000700, .continuous_frag_desc = true, -@@ -488,6 +499,7 @@ static const struct ath10k_hw_params ath +@@ -499,6 +510,7 @@ static const struct ath10k_hw_params ath .name = "qca9888 hw2.0", .patch_load_addr = QCA9888_HW_2_0_PATCH_LOAD_ADDR, .uart_pin = 7, @@ -169,7 +169,7 @@ Link: https://msgid.link/20230611080505.17393-1-ansuelsmth@gmail.com .cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_EACH, .otp_exe_param = 0x00000700, .continuous_frag_desc = true, -@@ -538,6 +550,7 @@ static const struct ath10k_hw_params ath +@@ -550,6 +562,7 @@ static const struct ath10k_hw_params ath .name = "qca9377 hw1.0", .patch_load_addr = QCA9377_HW_1_0_PATCH_LOAD_ADDR, .uart_pin = 6, @@ -177,7 +177,7 @@ Link: https://msgid.link/20230611080505.17393-1-ansuelsmth@gmail.com .otp_exe_param = 0, .channel_counters_freq_hz = 88000, .max_probe_resp_desc_thres = 0, -@@ -578,6 +591,7 @@ static const struct ath10k_hw_params ath +@@ -591,6 +604,7 @@ static const struct ath10k_hw_params ath .name = "qca9377 hw1.1", .patch_load_addr = QCA9377_HW_1_0_PATCH_LOAD_ADDR, .uart_pin = 6, @@ -185,7 +185,7 @@ Link: https://msgid.link/20230611080505.17393-1-ansuelsmth@gmail.com .otp_exe_param = 0, .channel_counters_freq_hz = 88000, .max_probe_resp_desc_thres = 0, -@@ -620,6 +634,7 @@ static const struct ath10k_hw_params ath +@@ -634,6 +648,7 @@ static const struct ath10k_hw_params ath .name = "qca9377 hw1.1 sdio", .patch_load_addr = QCA9377_HW_1_0_PATCH_LOAD_ADDR, .uart_pin = 19, @@ -193,7 +193,7 @@ Link: https://msgid.link/20230611080505.17393-1-ansuelsmth@gmail.com .otp_exe_param = 0, .channel_counters_freq_hz = 88000, .max_probe_resp_desc_thres = 0, -@@ -653,6 +668,7 @@ static const struct ath10k_hw_params ath +@@ -668,6 +683,7 @@ static const struct ath10k_hw_params ath .name = "qca4019 hw1.0", .patch_load_addr = QCA4019_HW_1_0_PATCH_LOAD_ADDR, .uart_pin = 7, @@ -201,7 +201,7 @@ Link: https://msgid.link/20230611080505.17393-1-ansuelsmth@gmail.com .cc_wraparound_type = ATH10K_HW_CC_WRAP_SHIFTED_EACH, .otp_exe_param = 0x0010000, .continuous_frag_desc = true, -@@ -698,6 +714,7 @@ static const struct ath10k_hw_params ath +@@ -714,6 +730,7 @@ static const struct ath10k_hw_params ath .dev_id = 0, .bus = ATH10K_BUS_SNOC, .name = "wcn3990 hw1.0", @@ -209,7 +209,7 @@ Link: https://msgid.link/20230611080505.17393-1-ansuelsmth@gmail.com .continuous_frag_desc = true, .tx_chain_mask = 0x7, .rx_chain_mask = 0x7, -@@ -3222,6 +3239,10 @@ int ath10k_core_start(struct ath10k *ar, +@@ -3242,6 +3259,10 @@ int ath10k_core_start(struct ath10k *ar, goto err_hif_stop; } @@ -220,7 +220,7 @@ Link: https://msgid.link/20230611080505.17393-1-ansuelsmth@gmail.com return 0; err_hif_stop: -@@ -3480,9 +3501,18 @@ static void ath10k_core_register_work(st +@@ -3500,9 +3521,18 @@ static void ath10k_core_register_work(st goto err_spectral_destroy; } @@ -239,7 +239,7 @@ Link: https://msgid.link/20230611080505.17393-1-ansuelsmth@gmail.com err_spectral_destroy: ath10k_spectral_destroy(ar); err_debug_destroy: -@@ -3528,6 +3558,8 @@ void ath10k_core_unregister(struct ath10 +@@ -3548,6 +3578,8 @@ void ath10k_core_unregister(struct ath10 if (!test_bit(ATH10K_FLAG_CORE_REGISTERED, &ar->dev_flags)) return; @@ -250,7 +250,7 @@ Link: https://msgid.link/20230611080505.17393-1-ansuelsmth@gmail.com * relayfs debugfs file cleanly. Otherwise the parent debugfs tree --- a/drivers/net/wireless/ath/ath10k/core.h +++ b/drivers/net/wireless/ath/ath10k/core.h -@@ -14,6 +14,7 @@ +@@ -15,6 +15,7 @@ #include #include #include @@ -258,7 +258,7 @@ Link: https://msgid.link/20230611080505.17393-1-ansuelsmth@gmail.com #include "htt.h" #include "htc.h" -@@ -1256,6 +1257,13 @@ struct ath10k { +@@ -1257,6 +1258,13 @@ struct ath10k { } testmode; struct { @@ -274,7 +274,7 @@ Link: https://msgid.link/20230611080505.17393-1-ansuelsmth@gmail.com u32 fw_crash_counter; --- a/drivers/net/wireless/ath/ath10k/hw.h +++ b/drivers/net/wireless/ath/ath10k/hw.h -@@ -519,6 +519,7 @@ struct ath10k_hw_params { +@@ -521,6 +521,7 @@ struct ath10k_hw_params { const char *name; u32 patch_load_addr; int uart_pin; @@ -414,7 +414,7 @@ Link: https://msgid.link/20230611080505.17393-1-ansuelsmth@gmail.com +#endif /* _LEDS_H_ */ --- a/drivers/net/wireless/ath/ath10k/mac.c +++ b/drivers/net/wireless/ath/ath10k/mac.c -@@ -24,6 +24,7 @@ +@@ -25,6 +25,7 @@ #include "wmi-tlv.h" #include "wmi-ops.h" #include "wow.h" @@ -473,7 +473,7 @@ Link: https://msgid.link/20230611080505.17393-1-ansuelsmth@gmail.com { --- a/drivers/net/wireless/ath/ath10k/wmi-tlv.c +++ b/drivers/net/wireless/ath/ath10k/wmi-tlv.c -@@ -4601,6 +4601,8 @@ static const struct wmi_ops wmi_tlv_ops +@@ -4606,6 +4606,8 @@ static const struct wmi_ops wmi_tlv_ops .gen_echo = ath10k_wmi_tlv_op_gen_echo, .gen_vdev_spectral_conf = ath10k_wmi_tlv_op_gen_vdev_spectral_conf, .gen_vdev_spectral_enable = ath10k_wmi_tlv_op_gen_vdev_spectral_enable, @@ -484,7 +484,7 @@ Link: https://msgid.link/20230611080505.17393-1-ansuelsmth@gmail.com static const struct wmi_peer_flags_map wmi_tlv_peer_flags_map = { --- a/drivers/net/wireless/ath/ath10k/wmi.c +++ b/drivers/net/wireless/ath/ath10k/wmi.c -@@ -7472,6 +7472,49 @@ ath10k_wmi_op_gen_peer_set_param(struct +@@ -7493,6 +7493,49 @@ ath10k_wmi_op_gen_peer_set_param(struct return skb; } @@ -534,7 +534,7 @@ Link: https://msgid.link/20230611080505.17393-1-ansuelsmth@gmail.com static struct sk_buff * ath10k_wmi_op_gen_set_psmode(struct ath10k *ar, u32 vdev_id, enum wmi_sta_ps_mode psmode) -@@ -9138,6 +9181,9 @@ static const struct wmi_ops wmi_ops = { +@@ -9157,6 +9200,9 @@ static const struct wmi_ops wmi_ops = { .fw_stats_fill = ath10k_wmi_main_op_fw_stats_fill, .get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype, .gen_echo = ath10k_wmi_op_gen_echo, @@ -544,7 +544,7 @@ Link: https://msgid.link/20230611080505.17393-1-ansuelsmth@gmail.com /* .gen_bcn_tmpl not implemented */ /* .gen_prb_tmpl not implemented */ /* .gen_p2p_go_bcn_ie not implemented */ -@@ -9208,6 +9254,8 @@ static const struct wmi_ops wmi_10_1_ops +@@ -9227,6 +9273,8 @@ static const struct wmi_ops wmi_10_1_ops .fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill, .get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype, .gen_echo = ath10k_wmi_op_gen_echo, @@ -553,7 +553,7 @@ Link: https://msgid.link/20230611080505.17393-1-ansuelsmth@gmail.com /* .gen_bcn_tmpl not implemented */ /* .gen_prb_tmpl not implemented */ /* .gen_p2p_go_bcn_ie not implemented */ -@@ -9280,6 +9328,8 @@ static const struct wmi_ops wmi_10_2_ops +@@ -9299,6 +9347,8 @@ static const struct wmi_ops wmi_10_2_ops .gen_delba_send = ath10k_wmi_op_gen_delba_send, .fw_stats_fill = ath10k_wmi_10x_op_fw_stats_fill, .get_vdev_subtype = ath10k_wmi_op_get_vdev_subtype, @@ -562,7 +562,7 @@ Link: https://msgid.link/20230611080505.17393-1-ansuelsmth@gmail.com /* .gen_pdev_enable_adaptive_cca not implemented */ }; -@@ -9351,6 +9401,8 @@ static const struct wmi_ops wmi_10_2_4_o +@@ -9370,6 +9420,8 @@ static const struct wmi_ops wmi_10_2_4_o ath10k_wmi_op_gen_pdev_enable_adaptive_cca, .get_vdev_subtype = ath10k_wmi_10_2_4_op_get_vdev_subtype, .gen_bb_timing = ath10k_wmi_10_2_4_op_gen_bb_timing, @@ -571,7 +571,7 @@ Link: https://msgid.link/20230611080505.17393-1-ansuelsmth@gmail.com /* .gen_bcn_tmpl not implemented */ /* .gen_prb_tmpl not implemented */ /* .gen_p2p_go_bcn_ie not implemented */ -@@ -9432,6 +9484,8 @@ static const struct wmi_ops wmi_10_4_ops +@@ -9451,6 +9503,8 @@ static const struct wmi_ops wmi_10_4_ops .gen_pdev_bss_chan_info_req = ath10k_wmi_10_2_op_gen_pdev_bss_chan_info, .gen_echo = ath10k_wmi_op_gen_echo, .gen_pdev_get_tpc_config = ath10k_wmi_10_2_4_op_gen_pdev_get_tpc_config, @@ -582,7 +582,7 @@ Link: https://msgid.link/20230611080505.17393-1-ansuelsmth@gmail.com int ath10k_wmi_attach(struct ath10k *ar) --- a/drivers/net/wireless/ath/ath10k/wmi.h +++ b/drivers/net/wireless/ath/ath10k/wmi.h -@@ -3030,6 +3030,41 @@ enum wmi_10_4_feature_mask { +@@ -3034,6 +3034,41 @@ enum wmi_10_4_feature_mask { }; diff --git a/package/kernel/mac80211/patches/ath10k/975-ath10k-use-tpt-trigger-by-default.patch b/package/kernel/mac80211/patches/ath10k/975-ath10k-use-tpt-trigger-by-default.patch index 2e598199c4..5bd9186d19 100644 --- a/package/kernel/mac80211/patches/ath10k/975-ath10k-use-tpt-trigger-by-default.patch +++ b/package/kernel/mac80211/patches/ath10k/975-ath10k-use-tpt-trigger-by-default.patch @@ -16,7 +16,7 @@ Signed-off-by: Mathias Kresin --- a/drivers/net/wireless/ath/ath10k/core.h +++ b/drivers/net/wireless/ath/ath10k/core.h -@@ -1312,6 +1312,10 @@ struct ath10k { +@@ -1313,6 +1313,10 @@ struct ath10k { s32 tx_power_2g_limit; s32 tx_power_5g_limit; @@ -40,7 +40,7 @@ Signed-off-by: Mathias Kresin if (ret) --- a/drivers/net/wireless/ath/ath10k/mac.c +++ b/drivers/net/wireless/ath/ath10k/mac.c -@@ -10292,7 +10292,7 @@ int ath10k_mac_register(struct ath10k *a +@@ -10297,7 +10297,7 @@ int ath10k_mac_register(struct ath10k *a ar->hw->weight_multiplier = ATH10K_AIRTIME_WEIGHT_MULTIPLIER; #ifdef CPTCFG_MAC80211_LEDS diff --git a/package/kernel/mac80211/patches/ath10k/981-ath10k-adjust-tx-power-reduction-for-US-regulatory-d.patch b/package/kernel/mac80211/patches/ath10k/981-ath10k-adjust-tx-power-reduction-for-US-regulatory-d.patch index 3626debf19..f1770cfbe0 100644 --- a/package/kernel/mac80211/patches/ath10k/981-ath10k-adjust-tx-power-reduction-for-US-regulatory-d.patch +++ b/package/kernel/mac80211/patches/ath10k/981-ath10k-adjust-tx-power-reduction-for-US-regulatory-d.patch @@ -28,7 +28,7 @@ Forwarded: no --- a/drivers/net/wireless/ath/ath10k/mac.c +++ b/drivers/net/wireless/ath/ath10k/mac.c -@@ -1028,6 +1028,40 @@ static inline int ath10k_vdev_setup_sync +@@ -1022,6 +1022,40 @@ static inline int ath10k_vdev_setup_sync return ar->last_wmi_vdev_start_status; } @@ -69,7 +69,7 @@ Forwarded: no static int ath10k_monitor_vdev_start(struct ath10k *ar, int vdev_id) { struct cfg80211_chan_def *chandef = NULL; -@@ -1060,7 +1094,8 @@ static int ath10k_monitor_vdev_start(str +@@ -1054,7 +1088,8 @@ static int ath10k_monitor_vdev_start(str arg.channel.min_power = 0; arg.channel.max_power = channel->max_power * 2; arg.channel.max_reg_power = channel->max_reg_power * 2; @@ -79,7 +79,7 @@ Forwarded: no reinit_completion(&ar->vdev_setup_done); reinit_completion(&ar->vdev_delete_done); -@@ -1506,7 +1541,8 @@ static int ath10k_vdev_start_restart(str +@@ -1500,7 +1535,8 @@ static int ath10k_vdev_start_restart(str arg.channel.min_power = 0; arg.channel.max_power = chandef->chan->max_power * 2; arg.channel.max_reg_power = chandef->chan->max_reg_power * 2; @@ -89,7 +89,7 @@ Forwarded: no if (arvif->vdev_type == WMI_VDEV_TYPE_AP) { arg.ssid = arvif->u.ap.ssid; -@@ -3437,7 +3473,8 @@ static int ath10k_update_channel_list(st +@@ -3431,7 +3467,8 @@ static int ath10k_update_channel_list(st ch->min_power = 0; ch->max_power = channel->max_power * 2; ch->max_reg_power = channel->max_reg_power * 2; diff --git a/package/kernel/mac80211/patches/ath10k/984-ath10k-Try-to-get-mac-address-from-dts.patch b/package/kernel/mac80211/patches/ath10k/984-ath10k-Try-to-get-mac-address-from-dts.patch index 6439ff9803..5d70df15ad 100644 --- a/package/kernel/mac80211/patches/ath10k/984-ath10k-Try-to-get-mac-address-from-dts.patch +++ b/package/kernel/mac80211/patches/ath10k/984-ath10k-Try-to-get-mac-address-from-dts.patch @@ -18,7 +18,7 @@ Signed-off-by: Ansuel Smith --- a/drivers/net/wireless/ath/ath10k/core.c +++ b/drivers/net/wireless/ath/ath10k/core.c -@@ -8,6 +8,7 @@ +@@ -9,6 +9,7 @@ #include #include #include @@ -26,7 +26,7 @@ Signed-off-by: Ansuel Smith #include #include #include -@@ -3409,6 +3410,8 @@ static int ath10k_core_probe_fw(struct a +@@ -3429,6 +3430,8 @@ static int ath10k_core_probe_fw(struct a device_get_mac_address(ar->dev, ar->mac_addr); diff --git a/package/kernel/mac80211/patches/ath10k/988-ath10k-always-use-mac80211-loss-detection.patch b/package/kernel/mac80211/patches/ath10k/988-ath10k-always-use-mac80211-loss-detection.patch index 5a62ea3fc2..b9cdae7e1f 100644 --- a/package/kernel/mac80211/patches/ath10k/988-ath10k-always-use-mac80211-loss-detection.patch +++ b/package/kernel/mac80211/patches/ath10k/988-ath10k-always-use-mac80211-loss-detection.patch @@ -18,7 +18,7 @@ Signed-off-by: David Bauer --- a/drivers/net/wireless/ath/ath10k/mac.c +++ b/drivers/net/wireless/ath/ath10k/mac.c -@@ -10088,7 +10088,6 @@ int ath10k_mac_register(struct ath10k *a +@@ -10089,7 +10089,6 @@ int ath10k_mac_register(struct ath10k *a ieee80211_hw_set(ar->hw, CHANCTX_STA_CSA); ieee80211_hw_set(ar->hw, QUEUE_CONTROL); ieee80211_hw_set(ar->hw, SUPPORTS_TX_FRAG); diff --git a/package/kernel/mac80211/patches/ath10k/990-ath10k-small-buffers.patch b/package/kernel/mac80211/patches/ath10k/990-ath10k-small-buffers.patch index 2f560c70a0..755982a7d5 100644 --- a/package/kernel/mac80211/patches/ath10k/990-ath10k-small-buffers.patch +++ b/package/kernel/mac80211/patches/ath10k/990-ath10k-small-buffers.patch @@ -1,6 +1,6 @@ --- a/drivers/net/wireless/ath/ath10k/htt.h +++ b/drivers/net/wireless/ath/ath10k/htt.h -@@ -235,7 +235,11 @@ enum htt_rx_ring_flags { +@@ -236,7 +236,11 @@ enum htt_rx_ring_flags { }; #define HTT_RX_RING_SIZE_MIN 128 @@ -14,7 +14,7 @@ #define HTT_RX_RING_FILL_LEVEL_DUAL_MAC (HTT_RX_RING_SIZE - 1) --- a/drivers/net/wireless/ath/ath10k/pci.c +++ b/drivers/net/wireless/ath/ath10k/pci.c -@@ -131,7 +131,11 @@ static const struct ce_attr pci_host_ce_ +@@ -132,7 +132,11 @@ static const struct ce_attr pci_host_ce_ .flags = CE_ATTR_FLAGS, .src_nentries = 0, .src_sz_max = 2048, @@ -26,7 +26,7 @@ .recv_cb = ath10k_pci_htt_htc_rx_cb, }, -@@ -140,7 +144,11 @@ static const struct ce_attr pci_host_ce_ +@@ -141,7 +145,11 @@ static const struct ce_attr pci_host_ce_ .flags = CE_ATTR_FLAGS, .src_nentries = 0, .src_sz_max = 2048, @@ -38,7 +38,7 @@ .recv_cb = ath10k_pci_htc_rx_cb, }, -@@ -167,7 +175,11 @@ static const struct ce_attr pci_host_ce_ +@@ -168,7 +176,11 @@ static const struct ce_attr pci_host_ce_ .flags = CE_ATTR_FLAGS, .src_nentries = 0, .src_sz_max = 512, @@ -50,7 +50,7 @@ .recv_cb = ath10k_pci_htt_rx_cb, }, -@@ -192,7 +204,11 @@ static const struct ce_attr pci_host_ce_ +@@ -193,7 +205,11 @@ static const struct ce_attr pci_host_ce_ .flags = CE_ATTR_FLAGS, .src_nentries = 0, .src_sz_max = 2048, diff --git a/package/kernel/mac80211/patches/ath11k/0013-wifi-ath11k-mhi-add-a-warning-message-for-MHI_CB_EE_.patch b/package/kernel/mac80211/patches/ath11k/0013-wifi-ath11k-mhi-add-a-warning-message-for-MHI_CB_EE_.patch deleted file mode 100644 index e1286c9537..0000000000 --- a/package/kernel/mac80211/patches/ath11k/0013-wifi-ath11k-mhi-add-a-warning-message-for-MHI_CB_EE_.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 4a93b554cf9fa64faa7cf164c0d32fc3ce67108b Mon Sep 17 00:00:00 2001 -From: Arowa Suliman -Date: Sat, 26 Aug 2023 08:42:42 +0300 -Subject: [PATCH] wifi: ath11k: mhi: add a warning message for MHI_CB_EE_RDDM - crash - -Currently, the ath11k driver does not print a crash signature when a -MHI_CB_EE_RDDM crash happens. Checked by triggering a simulated crash using the -command and checking dmesg for logs: - -echo assert > /sys/kernel/debug/ath11k/../simulate_fw_crash - -Add a warning when firmware crash MHI_CB_EE_RDDM happens. - -Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.23 - -Signed-off-by: Arowa Suliman -Reviewed-by: Jeff Johnson -Signed-off-by: Kalle Valo -Link: https://lore.kernel.org/r/20230714001126.463127-1-arowa@chromium.org ---- - drivers/net/wireless/ath/ath11k/mhi.c | 1 + - 1 file changed, 1 insertion(+) - ---- a/drivers/net/wireless/ath/ath11k/mhi.c -+++ b/drivers/net/wireless/ath/ath11k/mhi.c -@@ -333,6 +333,7 @@ static void ath11k_mhi_op_status_cb(stru - ath11k_warn(ab, "firmware crashed: MHI_CB_SYS_ERROR\n"); - break; - case MHI_CB_EE_RDDM: -+ ath11k_warn(ab, "firmware crashed: MHI_CB_EE_RDDM\n"); - if (!(test_bit(ATH11K_FLAG_UNREGISTERING, &ab->dev_flags))) - queue_work(ab->workqueue_aux, &ab->reset_work); - break; diff --git a/package/kernel/mac80211/patches/ath11k/0014-wifi-ath11k-move-references-from-rsvd2-to-info-field.patch b/package/kernel/mac80211/patches/ath11k/0014-wifi-ath11k-move-references-from-rsvd2-to-info-field.patch deleted file mode 100644 index 731a763e17..0000000000 --- a/package/kernel/mac80211/patches/ath11k/0014-wifi-ath11k-move-references-from-rsvd2-to-info-field.patch +++ /dev/null @@ -1,75 +0,0 @@ -From 5bd2ced044bb95029d5c44cf7d23ced73e0fc05b Mon Sep 17 00:00:00 2001 -From: Muna Sinada -Date: Sat, 26 Aug 2023 08:42:46 +0300 -Subject: [PATCH] wifi: ath11k: move references from rsvd2 to info fields - -Remove references to reserved fields and add new info fields for -struct hal_rx_ppdu_end_user_stats. Reserved fields should not be -accessed, therefore existing references to it are to be changed to -referencing specific info fields. - -Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.4.0.1-00356-QCAHKSWPL_SILICONZ-1 - -Signed-off-by: Muna Sinada -Acked-by: Jeff Johnson -Signed-off-by: Kalle Valo -Link: https://lore.kernel.org/r/1692827868-15667-1-git-send-email-quic_msinada@quicinc.com ---- - drivers/net/wireless/ath/ath11k/hal_rx.c | 10 +++++----- - drivers/net/wireless/ath/ath11k/hal_rx.h | 11 ++++++++--- - 2 files changed, 13 insertions(+), 8 deletions(-) - ---- a/drivers/net/wireless/ath/ath11k/hal_rx.c -+++ b/drivers/net/wireless/ath/ath11k/hal_rx.c -@@ -814,7 +814,7 @@ ath11k_hal_rx_handle_ofdma_info(void *rx - - rx_user_status->ul_ofdma_user_v0_word0 = __le32_to_cpu(ppdu_end_user->info6); - -- rx_user_status->ul_ofdma_user_v0_word1 = __le32_to_cpu(ppdu_end_user->rsvd2[10]); -+ rx_user_status->ul_ofdma_user_v0_word1 = __le32_to_cpu(ppdu_end_user->info9); - } - - static inline void -@@ -825,11 +825,11 @@ ath11k_hal_rx_populate_byte_count(void * - (struct hal_rx_ppdu_end_user_stats *)rx_tlv; - - rx_user_status->mpdu_ok_byte_count = -- FIELD_GET(HAL_RX_PPDU_END_USER_STATS_RSVD2_6_MPDU_OK_BYTE_COUNT, -- __le32_to_cpu(ppdu_end_user->rsvd2[6])); -+ FIELD_GET(HAL_RX_PPDU_END_USER_STATS_INFO8_MPDU_OK_BYTE_COUNT, -+ __le32_to_cpu(ppdu_end_user->info7)); - rx_user_status->mpdu_err_byte_count = -- FIELD_GET(HAL_RX_PPDU_END_USER_STATS_RSVD2_8_MPDU_ERR_BYTE_COUNT, -- __le32_to_cpu(ppdu_end_user->rsvd2[8])); -+ FIELD_GET(HAL_RX_PPDU_END_USER_STATS_INFO9_MPDU_ERR_BYTE_COUNT, -+ __le32_to_cpu(ppdu_end_user->info8)); - } - - static inline void ---- a/drivers/net/wireless/ath/ath11k/hal_rx.h -+++ b/drivers/net/wireless/ath/ath11k/hal_rx.h -@@ -222,8 +222,8 @@ struct hal_rx_ppdu_start { - #define HAL_RX_PPDU_END_USER_STATS_INFO6_TID_BITMAP GENMASK(15, 0) - #define HAL_RX_PPDU_END_USER_STATS_INFO6_TID_EOSP_BITMAP GENMASK(31, 16) - --#define HAL_RX_PPDU_END_USER_STATS_RSVD2_6_MPDU_OK_BYTE_COUNT GENMASK(24, 0) --#define HAL_RX_PPDU_END_USER_STATS_RSVD2_8_MPDU_ERR_BYTE_COUNT GENMASK(24, 0) -+#define HAL_RX_PPDU_END_USER_STATS_INFO7_MPDU_OK_BYTE_COUNT GENMASK(24, 0) -+#define HAL_RX_PPDU_END_USER_STATS_INFO8_MPDU_ERR_BYTE_COUNT GENMASK(24, 0) - - struct hal_rx_ppdu_end_user_stats { - __le32 rsvd0[2]; -@@ -236,7 +236,12 @@ struct hal_rx_ppdu_end_user_stats { - __le32 info4; - __le32 info5; - __le32 info6; -- __le32 rsvd2[11]; -+ __le32 rsvd2[5]; -+ __le32 info7; -+ __le32 rsvd3; -+ __le32 info8; -+ __le32 rsvd3[2]; -+ __le32 info9; - } __packed; - - struct hal_rx_ppdu_end_user_stats_ext { diff --git a/package/kernel/mac80211/patches/ath11k/0015-wifi-ath11k-fix-tid-bitmap-is-0-in-peer-rx-mu-stats.patch b/package/kernel/mac80211/patches/ath11k/0015-wifi-ath11k-fix-tid-bitmap-is-0-in-peer-rx-mu-stats.patch deleted file mode 100644 index 3edc3fc956..0000000000 --- a/package/kernel/mac80211/patches/ath11k/0015-wifi-ath11k-fix-tid-bitmap-is-0-in-peer-rx-mu-stats.patch +++ /dev/null @@ -1,100 +0,0 @@ -From 7791487cd16cafd018cba0bf73789111a9f16843 Mon Sep 17 00:00:00 2001 -From: Muna Sinada -Date: Sat, 26 Aug 2023 08:42:46 +0300 -Subject: [PATCH] wifi: ath11k: fix tid bitmap is 0 in peer rx mu stats - -Correct parsing of reading offset for rx tid 16 bit bitmap. Incorrect -offset caused peer rx mu stats tid bitmap to always be zero. This -correction is in the software context and does not affect the -firmware interface. - -Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.4.0.1-00356-QCAHKSWPL_SILICONZ-1 - -Signed-off-by: Muna Sinada -Acked-by: Jeff Johnson -Signed-off-by: Kalle Valo -Link: https://lore.kernel.org/r/1692827868-15667-2-git-send-email-quic_msinada@quicinc.com ---- - drivers/net/wireless/ath/ath11k/hal_rx.c | 10 +++++----- - drivers/net/wireless/ath/ath11k/hal_rx.h | 17 +++++++++-------- - 2 files changed, 14 insertions(+), 13 deletions(-) - ---- a/drivers/net/wireless/ath/ath11k/hal_rx.c -+++ b/drivers/net/wireless/ath/ath11k/hal_rx.c -@@ -814,7 +814,7 @@ ath11k_hal_rx_handle_ofdma_info(void *rx - - rx_user_status->ul_ofdma_user_v0_word0 = __le32_to_cpu(ppdu_end_user->info6); - -- rx_user_status->ul_ofdma_user_v0_word1 = __le32_to_cpu(ppdu_end_user->info9); -+ rx_user_status->ul_ofdma_user_v0_word1 = __le32_to_cpu(ppdu_end_user->info10); - } - - static inline void -@@ -826,10 +826,10 @@ ath11k_hal_rx_populate_byte_count(void * - - rx_user_status->mpdu_ok_byte_count = - FIELD_GET(HAL_RX_PPDU_END_USER_STATS_INFO8_MPDU_OK_BYTE_COUNT, -- __le32_to_cpu(ppdu_end_user->info7)); -+ __le32_to_cpu(ppdu_end_user->info8)); - rx_user_status->mpdu_err_byte_count = - FIELD_GET(HAL_RX_PPDU_END_USER_STATS_INFO9_MPDU_ERR_BYTE_COUNT, -- __le32_to_cpu(ppdu_end_user->info8)); -+ __le32_to_cpu(ppdu_end_user->info9)); - } - - static inline void -@@ -903,8 +903,8 @@ ath11k_hal_rx_parse_mon_status_tlv(struc - FIELD_GET(HAL_RX_PPDU_END_USER_STATS_INFO2_AST_INDEX, - __le32_to_cpu(eu_stats->info2)); - ppdu_info->tid = -- ffs(FIELD_GET(HAL_RX_PPDU_END_USER_STATS_INFO6_TID_BITMAP, -- __le32_to_cpu(eu_stats->info6))) - 1; -+ ffs(FIELD_GET(HAL_RX_PPDU_END_USER_STATS_INFO7_TID_BITMAP, -+ __le32_to_cpu(eu_stats->info7))) - 1; - ppdu_info->tcp_msdu_count = - FIELD_GET(HAL_RX_PPDU_END_USER_STATS_INFO4_TCP_MSDU_CNT, - __le32_to_cpu(eu_stats->info4)); ---- a/drivers/net/wireless/ath/ath11k/hal_rx.h -+++ b/drivers/net/wireless/ath/ath11k/hal_rx.h -@@ -149,7 +149,7 @@ struct hal_rx_mon_ppdu_info { - u8 beamformed; - u8 rssi_comb; - u8 rssi_chain_pri20[HAL_RX_MAX_NSS]; -- u8 tid; -+ u16 tid; - u16 ht_flags; - u16 vht_flags; - u16 he_flags; -@@ -219,11 +219,11 @@ struct hal_rx_ppdu_start { - #define HAL_RX_PPDU_END_USER_STATS_INFO5_OTHER_MSDU_CNT GENMASK(15, 0) - #define HAL_RX_PPDU_END_USER_STATS_INFO5_TCP_ACK_MSDU_CNT GENMASK(31, 16) - --#define HAL_RX_PPDU_END_USER_STATS_INFO6_TID_BITMAP GENMASK(15, 0) --#define HAL_RX_PPDU_END_USER_STATS_INFO6_TID_EOSP_BITMAP GENMASK(31, 16) -+#define HAL_RX_PPDU_END_USER_STATS_INFO7_TID_BITMAP GENMASK(15, 0) -+#define HAL_RX_PPDU_END_USER_STATS_INFO7_TID_EOSP_BITMAP GENMASK(31, 16) - --#define HAL_RX_PPDU_END_USER_STATS_INFO7_MPDU_OK_BYTE_COUNT GENMASK(24, 0) --#define HAL_RX_PPDU_END_USER_STATS_INFO8_MPDU_ERR_BYTE_COUNT GENMASK(24, 0) -+#define HAL_RX_PPDU_END_USER_STATS_INFO8_MPDU_OK_BYTE_COUNT GENMASK(24, 0) -+#define HAL_RX_PPDU_END_USER_STATS_INFO9_MPDU_ERR_BYTE_COUNT GENMASK(24, 0) - - struct hal_rx_ppdu_end_user_stats { - __le32 rsvd0[2]; -@@ -236,12 +236,13 @@ struct hal_rx_ppdu_end_user_stats { - __le32 info4; - __le32 info5; - __le32 info6; -- __le32 rsvd2[5]; - __le32 info7; -- __le32 rsvd3; -+ __le32 rsvd2[4]; - __le32 info8; -- __le32 rsvd3[2]; -+ __le32 rsvd3; - __le32 info9; -+ __le32 rsvd4[2]; -+ __le32 info10; - } __packed; - - struct hal_rx_ppdu_end_user_stats_ext { diff --git a/package/kernel/mac80211/patches/ath11k/0016-wifi-ath11k-add-chip-id-board-name-while-searching-b.patch b/package/kernel/mac80211/patches/ath11k/0016-wifi-ath11k-add-chip-id-board-name-while-searching-b.patch deleted file mode 100644 index 662e28f4ef..0000000000 --- a/package/kernel/mac80211/patches/ath11k/0016-wifi-ath11k-add-chip-id-board-name-while-searching-b.patch +++ /dev/null @@ -1,214 +0,0 @@ -From 1133af5aea588a58043244a4ecb5ce511b310356 Mon Sep 17 00:00:00 2001 -From: Wen Gong -Date: Wed, 30 Aug 2023 02:02:26 -0400 -Subject: [PATCH] wifi: ath11k: add chip id board name while searching - board-2.bin for WCN6855 - -Sometimes board-2.bin does not have the board data which matched the -parameters such as bus type, vendor, device, subsystem-vendor, -subsystem-device, qmi-chip-id and qmi-board-id, then wlan will load fail. - -Hence add another type which only matches the bus type and qmi-chip-id, -then the ratio of missing board data reduced. - -Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.23 - -Signed-off-by: Wen Gong -Signed-off-by: Kalle Valo -Link: https://lore.kernel.org/r/20230830060226.18664-1-quic_wgong@quicinc.com ---- - drivers/net/wireless/ath/ath11k/core.c | 108 ++++++++++++++++++++----- - 1 file changed, 87 insertions(+), 21 deletions(-) - ---- a/drivers/net/wireless/ath/ath11k/core.c -+++ b/drivers/net/wireless/ath/ath11k/core.c -@@ -985,9 +985,15 @@ int ath11k_core_check_dt(struct ath11k_b - return 0; - } - -+enum ath11k_bdf_name_type { -+ ATH11K_BDF_NAME_FULL, -+ ATH11K_BDF_NAME_BUS_NAME, -+ ATH11K_BDF_NAME_CHIP_ID, -+}; -+ - static int __ath11k_core_create_board_name(struct ath11k_base *ab, char *name, - size_t name_len, bool with_variant, -- bool bus_type_mode) -+ enum ath11k_bdf_name_type name_type) - { - /* strlen(',variant=') + strlen(ab->qmi.target.bdf_ext) */ - char variant[9 + ATH11K_QMI_BDF_EXT_STR_LENGTH] = { 0 }; -@@ -998,11 +1004,8 @@ static int __ath11k_core_create_board_na - - switch (ab->id.bdf_search) { - case ATH11K_BDF_SEARCH_BUS_AND_BOARD: -- if (bus_type_mode) -- scnprintf(name, name_len, -- "bus=%s", -- ath11k_bus_str(ab->hif.bus)); -- else -+ switch (name_type) { -+ case ATH11K_BDF_NAME_FULL: - scnprintf(name, name_len, - "bus=%s,vendor=%04x,device=%04x,subsystem-vendor=%04x,subsystem-device=%04x,qmi-chip-id=%d,qmi-board-id=%d%s", - ath11k_bus_str(ab->hif.bus), -@@ -1012,6 +1015,19 @@ static int __ath11k_core_create_board_na - ab->qmi.target.chip_id, - ab->qmi.target.board_id, - variant); -+ break; -+ case ATH11K_BDF_NAME_BUS_NAME: -+ scnprintf(name, name_len, -+ "bus=%s", -+ ath11k_bus_str(ab->hif.bus)); -+ break; -+ case ATH11K_BDF_NAME_CHIP_ID: -+ scnprintf(name, name_len, -+ "bus=%s,qmi-chip-id=%d", -+ ath11k_bus_str(ab->hif.bus), -+ ab->qmi.target.chip_id); -+ break; -+ } - break; - default: - scnprintf(name, name_len, -@@ -1030,19 +1046,29 @@ static int __ath11k_core_create_board_na - static int ath11k_core_create_board_name(struct ath11k_base *ab, char *name, - size_t name_len) - { -- return __ath11k_core_create_board_name(ab, name, name_len, true, false); -+ return __ath11k_core_create_board_name(ab, name, name_len, true, -+ ATH11K_BDF_NAME_FULL); - } - - static int ath11k_core_create_fallback_board_name(struct ath11k_base *ab, char *name, - size_t name_len) - { -- return __ath11k_core_create_board_name(ab, name, name_len, false, false); -+ return __ath11k_core_create_board_name(ab, name, name_len, false, -+ ATH11K_BDF_NAME_FULL); - } - - static int ath11k_core_create_bus_type_board_name(struct ath11k_base *ab, char *name, - size_t name_len) - { -- return __ath11k_core_create_board_name(ab, name, name_len, false, true); -+ return __ath11k_core_create_board_name(ab, name, name_len, false, -+ ATH11K_BDF_NAME_BUS_NAME); -+} -+ -+static int ath11k_core_create_chip_id_board_name(struct ath11k_base *ab, char *name, -+ size_t name_len) -+{ -+ return __ath11k_core_create_board_name(ab, name, name_len, false, -+ ATH11K_BDF_NAME_CHIP_ID); - } - - const struct firmware *ath11k_core_firmware_request(struct ath11k_base *ab, -@@ -1289,16 +1315,21 @@ int ath11k_core_fetch_board_data_api_1(s - #define BOARD_NAME_SIZE 200 - int ath11k_core_fetch_bdf(struct ath11k_base *ab, struct ath11k_board_data *bd) - { -- char boardname[BOARD_NAME_SIZE], fallback_boardname[BOARD_NAME_SIZE]; -+ char *boardname = NULL, *fallback_boardname = NULL, *chip_id_boardname = NULL; - char *filename, filepath[100]; -- int ret; -+ int ret = 0; - - filename = ATH11K_BOARD_API2_FILE; -+ boardname = kzalloc(BOARD_NAME_SIZE, GFP_KERNEL); -+ if (!boardname) { -+ ret = -ENOMEM; -+ goto exit; -+ } - -- ret = ath11k_core_create_board_name(ab, boardname, sizeof(boardname)); -+ ret = ath11k_core_create_board_name(ab, boardname, BOARD_NAME_SIZE); - if (ret) { - ath11k_err(ab, "failed to create board name: %d", ret); -- return ret; -+ goto exit; - } - - ab->bd_api = 2; -@@ -1307,13 +1338,19 @@ int ath11k_core_fetch_bdf(struct ath11k_ - ATH11K_BD_IE_BOARD_NAME, - ATH11K_BD_IE_BOARD_DATA); - if (!ret) -- goto success; -+ goto exit; -+ -+ fallback_boardname = kzalloc(BOARD_NAME_SIZE, GFP_KERNEL); -+ if (!fallback_boardname) { -+ ret = -ENOMEM; -+ goto exit; -+ } - - ret = ath11k_core_create_fallback_board_name(ab, fallback_boardname, -- sizeof(fallback_boardname)); -+ BOARD_NAME_SIZE); - if (ret) { - ath11k_err(ab, "failed to create fallback board name: %d", ret); -- return ret; -+ goto exit; - } - - ret = ath11k_core_fetch_board_data_api_n(ab, bd, fallback_boardname, -@@ -1321,7 +1358,28 @@ int ath11k_core_fetch_bdf(struct ath11k_ - ATH11K_BD_IE_BOARD_NAME, - ATH11K_BD_IE_BOARD_DATA); - if (!ret) -- goto success; -+ goto exit; -+ -+ chip_id_boardname = kzalloc(BOARD_NAME_SIZE, GFP_KERNEL); -+ if (!chip_id_boardname) { -+ ret = -ENOMEM; -+ goto exit; -+ } -+ -+ ret = ath11k_core_create_chip_id_board_name(ab, chip_id_boardname, -+ BOARD_NAME_SIZE); -+ if (ret) { -+ ath11k_err(ab, "failed to create chip id board name: %d", ret); -+ goto exit; -+ } -+ -+ ret = ath11k_core_fetch_board_data_api_n(ab, bd, chip_id_boardname, -+ ATH11K_BD_IE_BOARD, -+ ATH11K_BD_IE_BOARD_NAME, -+ ATH11K_BD_IE_BOARD_DATA); -+ -+ if (!ret) -+ goto exit; - - ab->bd_api = 1; - ret = ath11k_core_fetch_board_data_api_1(ab, bd, ATH11K_DEFAULT_BOARD_FILE); -@@ -1334,14 +1392,22 @@ int ath11k_core_fetch_bdf(struct ath11k_ - ath11k_err(ab, "failed to fetch board data for %s from %s\n", - fallback_boardname, filepath); - -+ ath11k_err(ab, "failed to fetch board data for %s from %s\n", -+ chip_id_boardname, filepath); -+ - ath11k_err(ab, "failed to fetch board.bin from %s\n", - ab->hw_params.fw.dir); -- return ret; - } - --success: -- ath11k_dbg(ab, ATH11K_DBG_BOOT, "using board api %d\n", ab->bd_api); -- return 0; -+exit: -+ kfree(boardname); -+ kfree(fallback_boardname); -+ kfree(chip_id_boardname); -+ -+ if (!ret) -+ ath11k_dbg(ab, ATH11K_DBG_BOOT, "using board api %d\n", ab->bd_api); -+ -+ return ret; - } - - int ath11k_core_fetch_regdb(struct ath11k_base *ab, struct ath11k_board_data *bd) diff --git a/package/kernel/mac80211/patches/ath11k/0018-wifi-ath11k-drop-NULL-pointer-check-in-ath11k_update.patch b/package/kernel/mac80211/patches/ath11k/0018-wifi-ath11k-drop-NULL-pointer-check-in-ath11k_update.patch deleted file mode 100644 index ccf7461a75..0000000000 --- a/package/kernel/mac80211/patches/ath11k/0018-wifi-ath11k-drop-NULL-pointer-check-in-ath11k_update.patch +++ /dev/null @@ -1,32 +0,0 @@ -From ac13a7842ab46a87aa315514d6d7e19b03cb2adc Mon Sep 17 00:00:00 2001 -From: Dmitry Antipov -Date: Wed, 6 Sep 2023 12:36:55 +0300 -Subject: [PATCH] wifi: ath11k: drop NULL pointer check in - ath11k_update_per_peer_tx_stats() - -Since 'user_stats' is a fixed-size array of 'struct htt_ppdu_user_stats' -in 'struct htt_ppdu_stats', any of its member can't be NULL and so -relevant check may be dropped. - -Found by Linux Verification Center (linuxtesting.org) with SVACE. - -Signed-off-by: Dmitry Antipov -Acked-by: Jeff Johnson -Signed-off-by: Kalle Valo -Link: https://lore.kernel.org/r/20230906093704.14001-1-dmantipov@yandex.ru ---- - drivers/net/wireless/ath/ath11k/dp_rx.c | 3 --- - 1 file changed, 3 deletions(-) - ---- a/drivers/net/wireless/ath/ath11k/dp_rx.c -+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c -@@ -1388,9 +1388,6 @@ ath11k_update_per_peer_tx_stats(struct a - u8 tid = HTT_PPDU_STATS_NON_QOS_TID; - bool is_ampdu = false; - -- if (!usr_stats) -- return; -- - if (!(usr_stats->tlv_flags & BIT(HTT_PPDU_STATS_TAG_USR_RATE))) - return; - diff --git a/package/kernel/mac80211/patches/ath11k/0019-wifi-ath11k-drop-redundant-check-in-ath11k_dp_rx_mon.patch b/package/kernel/mac80211/patches/ath11k/0019-wifi-ath11k-drop-redundant-check-in-ath11k_dp_rx_mon.patch deleted file mode 100644 index cf18273918..0000000000 --- a/package/kernel/mac80211/patches/ath11k/0019-wifi-ath11k-drop-redundant-check-in-ath11k_dp_rx_mon.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 82ae3f4635382ff23e2ece55b5d5e713223951ec Mon Sep 17 00:00:00 2001 -From: Dmitry Antipov -Date: Thu, 24 Aug 2023 10:50:44 +0300 -Subject: [PATCH] wifi: ath11k: drop redundant check in - ath11k_dp_rx_mon_dest_process() - -In 'ath11k_dp_rx_mon_dest_process()', 'mon_dst_srng' points to -a member of 'srng_list', which is a fixed-size array inside -'struct ath11k_hal'. This way, if 'ring_id' is valid (i. e. -between 0 and HAL_SRNG_RING_ID_MAX - 1 inclusive), 'mon_dst_srng' -can't be NULL and so relevant check may be dropped. - -Found by Linux Verification Center (linuxtesting.org) with SVACE. - -Signed-off-by: Dmitry Antipov -Acked-by: Jeff Johnson -Signed-off-by: Kalle Valo -Link: https://lore.kernel.org/r/20230824075121.121144-1-dmantipov@yandex.ru ---- - drivers/net/wireless/ath/ath11k/dp_rx.c | 7 ------- - 1 file changed, 7 deletions(-) - ---- a/drivers/net/wireless/ath/ath11k/dp_rx.c -+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c -@@ -5100,13 +5100,6 @@ static void ath11k_dp_rx_mon_dest_proces - - mon_dst_srng = &ar->ab->hal.srng_list[ring_id]; - -- if (!mon_dst_srng) { -- ath11k_warn(ar->ab, -- "HAL Monitor Destination Ring Init Failed -- %p", -- mon_dst_srng); -- return; -- } -- - spin_lock_bh(&pmon->mon_lock); - - ath11k_hal_srng_access_begin(ar->ab, mon_dst_srng); diff --git a/package/kernel/mac80211/patches/ath11k/0020-wifi-ath11k-remove-unused-members-of-struct-ath11k_b.patch b/package/kernel/mac80211/patches/ath11k/0020-wifi-ath11k-remove-unused-members-of-struct-ath11k_b.patch deleted file mode 100644 index ffb210cc10..0000000000 --- a/package/kernel/mac80211/patches/ath11k/0020-wifi-ath11k-remove-unused-members-of-struct-ath11k_b.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 9066794113c4813b6ce4a66ed6ce14ecdf35625d Mon Sep 17 00:00:00 2001 -From: Dmitry Antipov -Date: Thu, 24 Aug 2023 10:50:45 +0300 -Subject: [PATCH] wifi: ath11k: remove unused members of 'struct ath11k_base' - -Remove set but otherwise unused 'wlan_init_status' and -'wmi_ready' members of 'struct ath11k_base', adjust -'ath11k_wmi_tlv_rdy_parse()' accordingly. - -Signed-off-by: Dmitry Antipov -Acked-by: Jeff Johnson -Signed-off-by: Kalle Valo -Link: https://lore.kernel.org/r/20230824075121.121144-2-dmantipov@yandex.ru ---- - drivers/net/wireless/ath/ath11k/core.h | 2 -- - drivers/net/wireless/ath/ath11k/wmi.c | 2 -- - 2 files changed, 4 deletions(-) - ---- a/drivers/net/wireless/ath/ath11k/core.h -+++ b/drivers/net/wireless/ath/ath11k/core.h -@@ -901,8 +901,6 @@ struct ath11k_base { - struct list_head peers; - wait_queue_head_t peer_mapping_wq; - u8 mac_addr[ETH_ALEN]; -- bool wmi_ready; -- u32 wlan_init_status; - int irq_num[ATH11K_IRQ_NUM_MAX]; - struct ath11k_ext_irq_grp ext_irq_grp[ATH11K_EXT_IRQ_GRP_NUM_MAX]; - struct ath11k_targ_cap target_caps; ---- a/drivers/net/wireless/ath/ath11k/wmi.c -+++ b/drivers/net/wireless/ath/ath11k/wmi.c -@@ -7222,14 +7222,12 @@ static int ath11k_wmi_tlv_rdy_parse(stru - memset(&fixed_param, 0, sizeof(fixed_param)); - memcpy(&fixed_param, (struct wmi_ready_event *)ptr, - min_t(u16, sizeof(fixed_param), len)); -- ab->wlan_init_status = fixed_param.ready_event_min.status; - rdy_parse->num_extra_mac_addr = - fixed_param.ready_event_min.num_extra_mac_addr; - - ether_addr_copy(ab->mac_addr, - fixed_param.ready_event_min.mac_addr.addr); - ab->pktlog_defs_checksum = fixed_param.pktlog_defs_checksum; -- ab->wmi_ready = true; - break; - case WMI_TAG_ARRAY_FIXED_STRUCT: - addr_list = (struct wmi_mac_addr *)ptr; diff --git a/package/kernel/mac80211/patches/ath11k/0021-wifi-ath11k-use-kstrtoul_from_user-where-appropriate.patch b/package/kernel/mac80211/patches/ath11k/0021-wifi-ath11k-use-kstrtoul_from_user-where-appropriate.patch deleted file mode 100644 index 7a6b11b6d3..0000000000 --- a/package/kernel/mac80211/patches/ath11k/0021-wifi-ath11k-use-kstrtoul_from_user-where-appropriate.patch +++ /dev/null @@ -1,60 +0,0 @@ -From 458f66c30df2b8495790cf6fca76ebad44046921 Mon Sep 17 00:00:00 2001 -From: Dmitry Antipov -Date: Thu, 21 Sep 2023 11:16:57 +0300 -Subject: [PATCH] wifi: ath11k: use kstrtoul_from_user() where appropriate - -Use 'kstrtoul_from_user()' in 'ath11k_write_file_spectral_count()' -and 'ath11k_write_file_spectral_bins()' - -Signed-off-by: Dmitry Antipov -Acked-by: Jeff Johnson -Signed-off-by: Kalle Valo -Link: https://lore.kernel.org/r/20230824075121.121144-4-dmantipov@yandex.ru ---- - drivers/net/wireless/ath/ath11k/spectral.c | 26 +++++++--------------- - 1 file changed, 8 insertions(+), 18 deletions(-) - ---- a/drivers/net/wireless/ath/ath11k/spectral.c -+++ b/drivers/net/wireless/ath/ath11k/spectral.c -@@ -386,16 +386,11 @@ static ssize_t ath11k_write_file_spectra - { - struct ath11k *ar = file->private_data; - unsigned long val; -- char buf[32]; -- ssize_t len; -- -- len = min(count, sizeof(buf) - 1); -- if (copy_from_user(buf, user_buf, len)) -- return -EFAULT; -+ ssize_t ret; - -- buf[len] = '\0'; -- if (kstrtoul(buf, 0, &val)) -- return -EINVAL; -+ ret = kstrtoul_from_user(user_buf, count, 0, &val); -+ if (ret) -+ return ret; - - if (val > ATH11K_SPECTRAL_SCAN_COUNT_MAX) - return -EINVAL; -@@ -441,16 +436,11 @@ static ssize_t ath11k_write_file_spectra - { - struct ath11k *ar = file->private_data; - unsigned long val; -- char buf[32]; -- ssize_t len; -- -- len = min(count, sizeof(buf) - 1); -- if (copy_from_user(buf, user_buf, len)) -- return -EFAULT; -+ ssize_t ret; - -- buf[len] = '\0'; -- if (kstrtoul(buf, 0, &val)) -- return -EINVAL; -+ ret = kstrtoul_from_user(user_buf, count, 0, &val); -+ if (ret) -+ return ret; - - if (val < ATH11K_SPECTRAL_MIN_BINS || - val > ar->ab->hw_params.spectral.max_fft_bins) diff --git a/package/kernel/mac80211/patches/ath11k/0022-wifi-ath11k-remove-unnecessary-void-conversions.patch b/package/kernel/mac80211/patches/ath11k/0022-wifi-ath11k-remove-unnecessary-void-conversions.patch deleted file mode 100644 index 81c1ca16b3..0000000000 --- a/package/kernel/mac80211/patches/ath11k/0022-wifi-ath11k-remove-unnecessary-void-conversions.patch +++ /dev/null @@ -1,248 +0,0 @@ -From 87fd0602610d6965c45afc61780ac98842e8f902 Mon Sep 17 00:00:00 2001 -From: Wu Yunchuan -Date: Thu, 21 Sep 2023 11:50:05 +0300 -Subject: [PATCH] wifi: ath11k: remove unnecessary (void*) conversions - -No need cast (void *) to (struct ath11k_base *), -struct hal_rx_msdu_link *), (struct ath11k_buffer_addr *) or -other types. - -Signed-off-by: Wu Yunchuan -Acked-by: Jeff Johnson -Signed-off-by: Kalle Valo -Link: https://lore.kernel.org/r/20230919045150.524304-1-yunchuan@nfschina.com ---- - drivers/net/wireless/ath/ath11k/dp.c | 2 +- - drivers/net/wireless/ath/ath11k/dp_rx.c | 13 +++++-------- - drivers/net/wireless/ath/ath11k/hal.c | 8 +++----- - drivers/net/wireless/ath/ath11k/hal_rx.c | 17 +++++++---------- - drivers/net/wireless/ath/ath11k/hal_tx.c | 2 +- - drivers/net/wireless/ath/ath11k/mac.c | 4 ++-- - drivers/net/wireless/ath/ath11k/spectral.c | 2 +- - drivers/net/wireless/ath/ath11k/wmi.c | 6 +++--- - 8 files changed, 23 insertions(+), 31 deletions(-) - ---- a/drivers/net/wireless/ath/ath11k/dp.c -+++ b/drivers/net/wireless/ath/ath11k/dp.c -@@ -1009,7 +1009,7 @@ void ath11k_dp_vdev_tx_attach(struct ath - - static int ath11k_dp_tx_pending_cleanup(int buf_id, void *skb, void *ctx) - { -- struct ath11k_base *ab = (struct ath11k_base *)ctx; -+ struct ath11k_base *ab = ctx; - struct sk_buff *msdu = skb; - - dma_unmap_single(ab->dev, ATH11K_SKB_CB(msdu)->paddr, msdu->len, ---- a/drivers/net/wireless/ath/ath11k/dp_rx.c -+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c -@@ -1256,7 +1256,7 @@ static int ath11k_htt_tlv_ppdu_stats_par - int cur_user; - u16 peer_id; - -- ppdu_info = (struct htt_ppdu_stats_info *)data; -+ ppdu_info = data; - - switch (tag) { - case HTT_PPDU_STATS_TAG_COMMON: -@@ -4492,8 +4492,7 @@ int ath11k_dp_rx_monitor_link_desc_retur - src_srng_desc = ath11k_hal_srng_src_get_next_entry(ar->ab, hal_srng); - - if (src_srng_desc) { -- struct ath11k_buffer_addr *src_desc = -- (struct ath11k_buffer_addr *)src_srng_desc; -+ struct ath11k_buffer_addr *src_desc = src_srng_desc; - - *src_desc = *((struct ath11k_buffer_addr *)p_last_buf_addr_info); - } else { -@@ -4512,8 +4511,7 @@ void ath11k_dp_rx_mon_next_link_desc_get - u8 *rbm, - void **pp_buf_addr_info) - { -- struct hal_rx_msdu_link *msdu_link = -- (struct hal_rx_msdu_link *)rx_msdu_link_desc; -+ struct hal_rx_msdu_link *msdu_link = rx_msdu_link_desc; - struct ath11k_buffer_addr *buf_addr_info; - - buf_addr_info = (struct ath11k_buffer_addr *)&msdu_link->buf_addr_info; -@@ -4554,7 +4552,7 @@ static void ath11k_hal_rx_msdu_list_get( - u32 first = FIELD_PREP(RX_MSDU_DESC_INFO0_FIRST_MSDU_IN_MPDU, 1); - u8 tmp = 0; - -- msdu_link = (struct hal_rx_msdu_link *)msdu_link_desc; -+ msdu_link = msdu_link_desc; - msdu_details = &msdu_link->msdu_link[0]; - - for (i = 0; i < HAL_RX_NUM_MSDU_DESC; i++) { -@@ -4651,8 +4649,7 @@ ath11k_dp_rx_mon_mpdu_pop(struct ath11k - bool is_frag, is_first_msdu; - bool drop_mpdu = false; - struct ath11k_skb_rxcb *rxcb; -- struct hal_reo_entrance_ring *ent_desc = -- (struct hal_reo_entrance_ring *)ring_entry; -+ struct hal_reo_entrance_ring *ent_desc = ring_entry; - int buf_id; - u32 rx_link_buf_info[2]; - u8 rbm; ---- a/drivers/net/wireless/ath/ath11k/hal.c -+++ b/drivers/net/wireless/ath/ath11k/hal.c -@@ -571,7 +571,7 @@ u32 ath11k_hal_ce_get_desc_size(enum hal - void ath11k_hal_ce_src_set_desc(void *buf, dma_addr_t paddr, u32 len, u32 id, - u8 byte_swap_data) - { -- struct hal_ce_srng_src_desc *desc = (struct hal_ce_srng_src_desc *)buf; -+ struct hal_ce_srng_src_desc *desc = buf; - - desc->buffer_addr_low = paddr & HAL_ADDR_LSB_REG_MASK; - desc->buffer_addr_info = -@@ -586,8 +586,7 @@ void ath11k_hal_ce_src_set_desc(void *bu - - void ath11k_hal_ce_dst_set_desc(void *buf, dma_addr_t paddr) - { -- struct hal_ce_srng_dest_desc *desc = -- (struct hal_ce_srng_dest_desc *)buf; -+ struct hal_ce_srng_dest_desc *desc = buf; - - desc->buffer_addr_low = paddr & HAL_ADDR_LSB_REG_MASK; - desc->buffer_addr_info = -@@ -597,8 +596,7 @@ void ath11k_hal_ce_dst_set_desc(void *bu - - u32 ath11k_hal_ce_dst_status_get_length(void *buf) - { -- struct hal_ce_srng_dst_status_desc *desc = -- (struct hal_ce_srng_dst_status_desc *)buf; -+ struct hal_ce_srng_dst_status_desc *desc = buf; - u32 len; - - len = FIELD_GET(HAL_CE_DST_STATUS_DESC_FLAGS_LEN, desc->flags); ---- a/drivers/net/wireless/ath/ath11k/hal_rx.c -+++ b/drivers/net/wireless/ath/ath11k/hal_rx.c -@@ -265,7 +265,7 @@ out: - void ath11k_hal_rx_buf_addr_info_set(void *desc, dma_addr_t paddr, - u32 cookie, u8 manager) - { -- struct ath11k_buffer_addr *binfo = (struct ath11k_buffer_addr *)desc; -+ struct ath11k_buffer_addr *binfo = desc; - u32 paddr_lo, paddr_hi; - - paddr_lo = lower_32_bits(paddr); -@@ -279,7 +279,7 @@ void ath11k_hal_rx_buf_addr_info_set(voi - void ath11k_hal_rx_buf_addr_info_get(void *desc, dma_addr_t *paddr, - u32 *cookie, u8 *rbm) - { -- struct ath11k_buffer_addr *binfo = (struct ath11k_buffer_addr *)desc; -+ struct ath11k_buffer_addr *binfo = desc; - - *paddr = - (((u64)FIELD_GET(BUFFER_ADDR_INFO1_ADDR, binfo->info1)) << 32) | -@@ -292,7 +292,7 @@ void ath11k_hal_rx_msdu_link_info_get(vo - u32 *msdu_cookies, - enum hal_rx_buf_return_buf_manager *rbm) - { -- struct hal_rx_msdu_link *link = (struct hal_rx_msdu_link *)link_desc; -+ struct hal_rx_msdu_link *link = link_desc; - struct hal_rx_msdu_details *msdu; - int i; - -@@ -699,7 +699,7 @@ u32 ath11k_hal_reo_qdesc_size(u32 ba_win - void ath11k_hal_reo_qdesc_setup(void *vaddr, int tid, u32 ba_window_size, - u32 start_seq, enum hal_pn_type type) - { -- struct hal_rx_reo_queue *qdesc = (struct hal_rx_reo_queue *)vaddr; -+ struct hal_rx_reo_queue *qdesc = vaddr; - struct hal_rx_reo_queue_ext *ext_desc; - - memset(qdesc, 0, sizeof(*qdesc)); -@@ -809,8 +809,7 @@ static inline void - ath11k_hal_rx_handle_ofdma_info(void *rx_tlv, - struct hal_rx_user_status *rx_user_status) - { -- struct hal_rx_ppdu_end_user_stats *ppdu_end_user = -- (struct hal_rx_ppdu_end_user_stats *)rx_tlv; -+ struct hal_rx_ppdu_end_user_stats *ppdu_end_user = rx_tlv; - - rx_user_status->ul_ofdma_user_v0_word0 = __le32_to_cpu(ppdu_end_user->info6); - -@@ -821,8 +820,7 @@ static inline void - ath11k_hal_rx_populate_byte_count(void *rx_tlv, void *ppduinfo, - struct hal_rx_user_status *rx_user_status) - { -- struct hal_rx_ppdu_end_user_stats *ppdu_end_user = -- (struct hal_rx_ppdu_end_user_stats *)rx_tlv; -+ struct hal_rx_ppdu_end_user_stats *ppdu_end_user = rx_tlv; - - rx_user_status->mpdu_ok_byte_count = - FIELD_GET(HAL_RX_PPDU_END_USER_STATS_INFO8_MPDU_OK_BYTE_COUNT, -@@ -1540,8 +1538,7 @@ void ath11k_hal_rx_reo_ent_buf_paddr_get - u32 *sw_cookie, void **pp_buf_addr, - u8 *rbm, u32 *msdu_cnt) - { -- struct hal_reo_entrance_ring *reo_ent_ring = -- (struct hal_reo_entrance_ring *)rx_desc; -+ struct hal_reo_entrance_ring *reo_ent_ring = rx_desc; - struct ath11k_buffer_addr *buf_addr_info; - struct rx_mpdu_desc *rx_mpdu_desc_info_details; - ---- a/drivers/net/wireless/ath/ath11k/hal_tx.c -+++ b/drivers/net/wireless/ath/ath11k/hal_tx.c -@@ -37,7 +37,7 @@ static const u8 dscp_tid_map[DSCP_TID_MA - void ath11k_hal_tx_cmd_desc_setup(struct ath11k_base *ab, void *cmd, - struct hal_tx_info *ti) - { -- struct hal_tcl_data_cmd *tcl_cmd = (struct hal_tcl_data_cmd *)cmd; -+ struct hal_tcl_data_cmd *tcl_cmd = cmd; - - tcl_cmd->buf_addr_info.info0 = - FIELD_PREP(BUFFER_ADDR_INFO0_ADDR, ti->paddr); ---- a/drivers/net/wireless/ath/ath11k/mac.c -+++ b/drivers/net/wireless/ath/ath11k/mac.c -@@ -6970,8 +6970,8 @@ err: - - static int ath11k_mac_vif_unref(int buf_id, void *skb, void *ctx) - { -- struct ieee80211_vif *vif = (struct ieee80211_vif *)ctx; -- struct ath11k_skb_cb *skb_cb = ATH11K_SKB_CB((struct sk_buff *)skb); -+ struct ieee80211_vif *vif = ctx; -+ struct ath11k_skb_cb *skb_cb = ATH11K_SKB_CB(skb); - - if (skb_cb->vif == vif) - skb_cb->vif = NULL; ---- a/drivers/net/wireless/ath/ath11k/spectral.c -+++ b/drivers/net/wireless/ath/ath11k/spectral.c -@@ -592,7 +592,7 @@ int ath11k_spectral_process_fft(struct a - return -EINVAL; - } - -- tlv = (struct spectral_tlv *)data; -+ tlv = data; - tlv_len = FIELD_GET(SPECTRAL_TLV_HDR_LEN, __le32_to_cpu(tlv->header)); - /* convert Dword into bytes */ - tlv_len *= ATH11K_SPECTRAL_DWORD_SIZE; ---- a/drivers/net/wireless/ath/ath11k/wmi.c -+++ b/drivers/net/wireless/ath/ath11k/wmi.c -@@ -2281,7 +2281,7 @@ int ath11k_wmi_send_scan_start_cmd(struc - tlv->header = FIELD_PREP(WMI_TLV_TAG, WMI_TAG_ARRAY_UINT32) | - FIELD_PREP(WMI_TLV_LEN, len); - ptr += TLV_HDR_SIZE; -- tmp_ptr = (u32 *)ptr; -+ tmp_ptr = ptr; - - for (i = 0; i < params->num_chan; ++i) - tmp_ptr[i] = params->chan_list[i]; -@@ -4148,7 +4148,7 @@ static int ath11k_init_cmd_send(struct a - ptr += TLV_HDR_SIZE + len; - - if (param->hw_mode_id != WMI_HOST_HW_MODE_MAX) { -- hw_mode = (struct wmi_pdev_set_hw_mode_cmd_param *)ptr; -+ hw_mode = ptr; - hw_mode->tlv_header = FIELD_PREP(WMI_TLV_TAG, - WMI_TAG_PDEV_SET_HW_MODE_CMD) | - FIELD_PREP(WMI_TLV_LEN, -@@ -4168,7 +4168,7 @@ static int ath11k_init_cmd_send(struct a - len = sizeof(*band_to_mac); - - for (idx = 0; idx < param->num_band_to_mac; idx++) { -- band_to_mac = (void *)ptr; -+ band_to_mac = ptr; - - band_to_mac->tlv_header = FIELD_PREP(WMI_TLV_TAG, - WMI_TAG_PDEV_BAND_TO_MAC) | diff --git a/package/kernel/mac80211/patches/ath11k/0023-wifi-ath11k-fix-ath11k_mac_op_remain_on_channel-stac.patch b/package/kernel/mac80211/patches/ath11k/0023-wifi-ath11k-fix-ath11k_mac_op_remain_on_channel-stac.patch deleted file mode 100644 index 2c7f196f8e..0000000000 --- a/package/kernel/mac80211/patches/ath11k/0023-wifi-ath11k-fix-ath11k_mac_op_remain_on_channel-stac.patch +++ /dev/null @@ -1,96 +0,0 @@ -From 4fd15bb705d3faa7e6adab2daba2e3af80d9b6bd Mon Sep 17 00:00:00 2001 -From: Dmitry Antipov -Date: Tue, 26 Sep 2023 07:29:04 +0300 -Subject: [PATCH] wifi: ath11k: fix ath11k_mac_op_remain_on_channel() stack - usage - -When compiling with clang 16.0.6, I've noticed the following: - -drivers/net/wireless/ath/ath11k/mac.c:8903:12: warning: stack frame -size (1032) exceeds limit (1024) in 'ath11k_mac_op_remain_on_channel' -[-Wframe-larger-than] -static int ath11k_mac_op_remain_on_channel(struct ieee80211_hw *hw, - ^ -68/1032 (6.59%) spills, 964/1032 (93.41%) variables - -So switch to kzalloc()'ed instance of 'struct scan_req_params' like -it's done in 'ath11k_mac_op_hw_scan()'. Compile tested only. - -Signed-off-by: Dmitry Antipov -Acked-by: Jeff Johnson -Signed-off-by: Kalle Valo -Link: https://lore.kernel.org/r/20230926042906.13725-1-dmantipov@yandex.ru ---- - drivers/net/wireless/ath/ath11k/mac.c | 44 +++++++++++++++------------ - 1 file changed, 25 insertions(+), 19 deletions(-) - ---- a/drivers/net/wireless/ath/ath11k/mac.c -+++ b/drivers/net/wireless/ath/ath11k/mac.c -@@ -8908,7 +8908,7 @@ static int ath11k_mac_op_remain_on_chann - { - struct ath11k *ar = hw->priv; - struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif); -- struct scan_req_params arg; -+ struct scan_req_params *arg; - int ret; - u32 scan_time_msec; - -@@ -8940,27 +8940,31 @@ static int ath11k_mac_op_remain_on_chann - - scan_time_msec = ar->hw->wiphy->max_remain_on_channel_duration * 2; - -- memset(&arg, 0, sizeof(arg)); -- ath11k_wmi_start_scan_init(ar, &arg); -- arg.num_chan = 1; -- arg.chan_list = kcalloc(arg.num_chan, sizeof(*arg.chan_list), -- GFP_KERNEL); -- if (!arg.chan_list) { -+ arg = kzalloc(sizeof(*arg), GFP_KERNEL); -+ if (!arg) { - ret = -ENOMEM; - goto exit; - } -+ ath11k_wmi_start_scan_init(ar, arg); -+ arg->num_chan = 1; -+ arg->chan_list = kcalloc(arg->num_chan, sizeof(*arg->chan_list), -+ GFP_KERNEL); -+ if (!arg->chan_list) { -+ ret = -ENOMEM; -+ goto free_arg; -+ } - -- arg.vdev_id = arvif->vdev_id; -- arg.scan_id = ATH11K_SCAN_ID; -- arg.chan_list[0] = chan->center_freq; -- arg.dwell_time_active = scan_time_msec; -- arg.dwell_time_passive = scan_time_msec; -- arg.max_scan_time = scan_time_msec; -- arg.scan_flags |= WMI_SCAN_FLAG_PASSIVE; -- arg.scan_flags |= WMI_SCAN_FILTER_PROBE_REQ; -- arg.burst_duration = duration; -+ arg->vdev_id = arvif->vdev_id; -+ arg->scan_id = ATH11K_SCAN_ID; -+ arg->chan_list[0] = chan->center_freq; -+ arg->dwell_time_active = scan_time_msec; -+ arg->dwell_time_passive = scan_time_msec; -+ arg->max_scan_time = scan_time_msec; -+ arg->scan_flags |= WMI_SCAN_FLAG_PASSIVE; -+ arg->scan_flags |= WMI_SCAN_FILTER_PROBE_REQ; -+ arg->burst_duration = duration; - -- ret = ath11k_start_scan(ar, &arg); -+ ret = ath11k_start_scan(ar, arg); - if (ret) { - ath11k_warn(ar->ab, "failed to start roc scan: %d\n", ret); - -@@ -8986,7 +8990,9 @@ static int ath11k_mac_op_remain_on_chann - ret = 0; - - free_chan_list: -- kfree(arg.chan_list); -+ kfree(arg->chan_list); -+free_arg: -+ kfree(arg); - exit: - mutex_unlock(&ar->conf_mutex); - return ret; diff --git a/package/kernel/mac80211/patches/ath11k/0024-wifi-ath11k-mac-fix-struct-ieee80211_sband_iftype_da.patch b/package/kernel/mac80211/patches/ath11k/0024-wifi-ath11k-mac-fix-struct-ieee80211_sband_iftype_da.patch deleted file mode 100644 index 90da6a8c44..0000000000 --- a/package/kernel/mac80211/patches/ath11k/0024-wifi-ath11k-mac-fix-struct-ieee80211_sband_iftype_da.patch +++ /dev/null @@ -1,67 +0,0 @@ -From 9e61589ac3c2d23c528d3ffd44604d98553ea1cb Mon Sep 17 00:00:00 2001 -From: Kalle Valo -Date: Wed, 27 Sep 2023 17:27:08 +0300 -Subject: [PATCH] wifi: ath11k: mac: fix struct ieee80211_sband_iftype_data - handling - -Commit e8c1841278a7 ("wifi: cfg80211: annotate iftype_data pointer with -sparse") added sparse checks for struct ieee80211_sband_iftype_data handling -which immediately found an issue in ath11k: - -drivers/net/wireless/ath/ath11k/mac.c:7952:22: warning: incorrect type in argument 1 (different address spaces) -drivers/net/wireless/ath/ath11k/mac.c:7952:22: expected struct ieee80211_sta_he_cap const *he_cap -drivers/net/wireless/ath/ath11k/mac.c:7952:22: got struct ieee80211_sta_he_cap const [noderef] __iftype_data * - -The problem here is that we are accessing sband->iftype_data directly even -though we should use for_each_sband_iftype_data() or similar. Fortunately -there's ieee80211_get_he_iftype_cap_vif() which is just what we need here so -use it to get HE capabilities. - -Tested-on: WCN6855 hw2.0 PCI WLAN.HSP.1.1-03125-QCAHSPSWPL_V1_V2_SILICONZ_LITE-3.6510.23 - -Reported-by: Johannes Berg -Signed-off-by: Kalle Valo -Link: https://lore.kernel.org/r/20230927142708.2897504-2-kvalo@kernel.org ---- - drivers/net/wireless/ath/ath11k/mac.c | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - ---- a/drivers/net/wireless/ath/ath11k/mac.c -+++ b/drivers/net/wireless/ath/ath11k/mac.c -@@ -7913,12 +7913,14 @@ ath11k_mac_get_tx_mcs_map(const struct i - - static bool - ath11k_mac_bitrate_mask_get_single_nss(struct ath11k *ar, -+ struct ath11k_vif *arvif, - enum nl80211_band band, - const struct cfg80211_bitrate_mask *mask, - int *nss) - { - struct ieee80211_supported_band *sband = &ar->mac.sbands[band]; - u16 vht_mcs_map = le16_to_cpu(sband->vht_cap.vht_mcs.tx_mcs_map); -+ const struct ieee80211_sta_he_cap *he_cap; - u16 he_mcs_map = 0; - u8 ht_nss_mask = 0; - u8 vht_nss_mask = 0; -@@ -7949,7 +7951,11 @@ ath11k_mac_bitrate_mask_get_single_nss(s - return false; - } - -- he_mcs_map = le16_to_cpu(ath11k_mac_get_tx_mcs_map(&sband->iftype_data->he_cap)); -+ he_cap = ieee80211_get_he_iftype_cap_vif(sband, arvif->vif); -+ if (!he_cap) -+ return false; -+ -+ he_mcs_map = le16_to_cpu(ath11k_mac_get_tx_mcs_map(he_cap)); - - for (i = 0; i < ARRAY_SIZE(mask->control[band].he_mcs); i++) { - if (mask->control[band].he_mcs[i] == 0) -@@ -8365,7 +8371,7 @@ ath11k_mac_op_set_bitrate_mask(struct ie - ieee80211_iterate_stations_atomic(ar->hw, - ath11k_mac_disable_peer_fixed_rate, - arvif); -- } else if (ath11k_mac_bitrate_mask_get_single_nss(ar, band, mask, -+ } else if (ath11k_mac_bitrate_mask_get_single_nss(ar, arvif, band, mask, - &single_nss)) { - rate = WMI_FIXED_RATE_NONE; - nss = single_nss; diff --git a/package/kernel/mac80211/patches/ath11k/0025-wifi-ath11k-fix-CAC-running-state-during-virtual-int.patch b/package/kernel/mac80211/patches/ath11k/0025-wifi-ath11k-fix-CAC-running-state-during-virtual-int.patch deleted file mode 100644 index eee0bf0fb5..0000000000 --- a/package/kernel/mac80211/patches/ath11k/0025-wifi-ath11k-fix-CAC-running-state-during-virtual-int.patch +++ /dev/null @@ -1,80 +0,0 @@ -From 69fcb525905600a151997cd16367bb92c34a2b14 Mon Sep 17 00:00:00 2001 -From: Aditya Kumar Singh -Date: Tue, 3 Oct 2023 17:26:54 +0300 -Subject: [PATCH] wifi: ath11k: fix CAC running state during virtual interface - start - -Currently channel definition's primary channel's DFS CAC time -as well as primary channel's state i.e usable are used to set -the CAC_RUNNING flag for the ath11k radio structure. However, -this is wrong since certain channel definition are possbile -where primary channel may not be a DFS channel but, secondary -channel is a DFS channel. For example - channel 36 with 160 MHz -bandwidth. -In such cases, the flag will not be set which is wrong. - -Fix this issue by using cfg80211_chandef_dfs_usable() function -from cfg80211 which return trues if at least one channel is in -usable state. - -While at it, modify the CAC running debug log message to print -the CAC time as well in milli-seconds. - -Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1 - -Signed-off-by: Aditya Kumar Singh -Acked-by: Jeff Johnson -Signed-off-by: Kalle Valo -Link: https://lore.kernel.org/r/20230912051857.2284-3-quic_adisi@quicinc.com ---- - drivers/net/wireless/ath/ath11k/mac.c | 19 +++++++++++-------- - 1 file changed, 11 insertions(+), 8 deletions(-) - ---- a/drivers/net/wireless/ath/ath11k/mac.c -+++ b/drivers/net/wireless/ath/ath11k/mac.c -@@ -5,6 +5,7 @@ - */ - - #include -+#include - #include - #include - #include -@@ -7196,6 +7197,7 @@ ath11k_mac_vdev_start_restart(struct ath - struct wmi_vdev_start_req_arg arg = {}; - const struct cfg80211_chan_def *chandef = &ctx->def; - int ret = 0; -+ unsigned int dfs_cac_time; - - lockdep_assert_held(&ar->conf_mutex); - -@@ -7275,20 +7277,21 @@ ath11k_mac_vdev_start_restart(struct ath - ath11k_dbg(ab, ATH11K_DBG_MAC, "vdev %pM started, vdev_id %d\n", - arvif->vif->addr, arvif->vdev_id); - -- /* Enable CAC Flag in the driver by checking the channel DFS cac time, -- * i.e dfs_cac_ms value which will be valid only for radar channels -- * and state as NL80211_DFS_USABLE which indicates CAC needs to be -+ /* Enable CAC Flag in the driver by checking the all sub-channel's DFS -+ * state as NL80211_DFS_USABLE which indicates CAC needs to be - * done before channel usage. This flags is used to drop rx packets. - * during CAC. - */ - /* TODO Set the flag for other interface types as required */ -- if (arvif->vdev_type == WMI_VDEV_TYPE_AP && -- chandef->chan->dfs_cac_ms && -- chandef->chan->dfs_state == NL80211_DFS_USABLE) { -+ if (arvif->vdev_type == WMI_VDEV_TYPE_AP && ctx->radar_enabled && -+ cfg80211_chandef_dfs_usable(ar->hw->wiphy, chandef)) { - set_bit(ATH11K_CAC_RUNNING, &ar->dev_flags); -+ dfs_cac_time = cfg80211_chandef_dfs_cac_time(ar->hw->wiphy, -+ chandef); - ath11k_dbg(ab, ATH11K_DBG_MAC, -- "CAC Started in chan_freq %d for vdev %d\n", -- arg.channel.freq, arg.vdev_id); -+ "cac started dfs_cac_time %u center_freq %d center_freq1 %d for vdev %d\n", -+ dfs_cac_time, arg.channel.freq, chandef->center_freq1, -+ arg.vdev_id); - } - - ret = ath11k_mac_set_txbf_conf(arvif); diff --git a/package/kernel/mac80211/patches/ath11k/0026-wifi-ath11k-fix-Tx-power-value-during-active-CAC.patch b/package/kernel/mac80211/patches/ath11k/0026-wifi-ath11k-fix-Tx-power-value-during-active-CAC.patch deleted file mode 100644 index c3aa8a49af..0000000000 --- a/package/kernel/mac80211/patches/ath11k/0026-wifi-ath11k-fix-Tx-power-value-during-active-CAC.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 77f1ee6fd8b6e470f721d05a2e269039d5cafcb7 Mon Sep 17 00:00:00 2001 -From: Aditya Kumar Singh -Date: Tue, 3 Oct 2023 17:26:54 +0300 -Subject: [PATCH] wifi: ath11k: fix Tx power value during active CAC - -Tx power is fetched from firmware's pdev stats. However, during active -CAC, firmware does not fill the current Tx power and sends the max -initialised value filled during firmware init. If host sends this power -to user space, this is wrong since in certain situations, the Tx power -could be greater than the max allowed by the regulatory. Hence, host -should not be fetching the Tx power during an active CAC. - -Fix this issue by returning -EAGAIN error so that user space knows that there's -no valid value available. - -Tested-on: QCN9074 hw1.0 PCI WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1 - -Fixes: 9a2aa68afe3d ("wifi: ath11k: add get_txpower mac ops") -Signed-off-by: Aditya Kumar Singh -Acked-by: Jeff Johnson -Signed-off-by: Kalle Valo -Link: https://lore.kernel.org/r/20230912051857.2284-4-quic_adisi@quicinc.com ---- - drivers/net/wireless/ath/ath11k/mac.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - ---- a/drivers/net/wireless/ath/ath11k/mac.c -+++ b/drivers/net/wireless/ath/ath11k/mac.c -@@ -9068,6 +9068,14 @@ static int ath11k_mac_op_get_txpower(str - return -EAGAIN; - } - -+ /* Firmware doesn't provide Tx power during CAC hence no need to fetch -+ * the stats. -+ */ -+ if (test_bit(ATH11K_CAC_RUNNING, &ar->dev_flags)) { -+ mutex_unlock(&ar->conf_mutex); -+ return -EAGAIN; -+ } -+ - req_param.pdev_id = ar->pdev->pdev_id; - req_param.stats_id = WMI_REQUEST_PDEV_STAT; - diff --git a/package/kernel/mac80211/patches/ath11k/0027-wifi-ath11k-call-ath11k_mac_fils_discovery-without-c.patch b/package/kernel/mac80211/patches/ath11k/0027-wifi-ath11k-call-ath11k_mac_fils_discovery-without-c.patch deleted file mode 100644 index d233492513..0000000000 --- a/package/kernel/mac80211/patches/ath11k/0027-wifi-ath11k-call-ath11k_mac_fils_discovery-without-c.patch +++ /dev/null @@ -1,37 +0,0 @@ -From e149353e6562f3e3246f75dfc4cca6a0cc5b4efc Mon Sep 17 00:00:00 2001 -From: Aloka Dixit -Date: Mon, 9 Oct 2023 10:13:54 +0300 -Subject: [PATCH] wifi: ath11k: call ath11k_mac_fils_discovery() without - condition - -Mac80211 does not set flags BSS_CHANGED_FILS_DISCOVERY and -BSS_CHANGED_UNSOL_BCAST_PROBE_RESP if there are no updates to -FILS discovery and unsolicited broadcast probe response transmission -configurations respectively. This results in the transmissions getting -stopped during BSS change operations which do not include these -attributes. Remove the checks for the flags and always send the existing -configuration to firmware. - -Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1 - -Signed-off-by: Aloka Dixit -Acked-by: Jeff Johnson -Signed-off-by: Kalle Valo -Link: https://lore.kernel.org/r/20231004044915.6817-1-quic_alokad@quicinc.com ---- - drivers/net/wireless/ath/ath11k/mac.c | 4 +--- - 1 file changed, 1 insertion(+), 3 deletions(-) - ---- a/drivers/net/wireless/ath/ath11k/mac.c -+++ b/drivers/net/wireless/ath/ath11k/mac.c -@@ -3732,9 +3732,7 @@ static void ath11k_mac_op_bss_info_chang - arvif->vdev_id, ret); - } - -- if (changed & BSS_CHANGED_FILS_DISCOVERY || -- changed & BSS_CHANGED_UNSOL_BCAST_PROBE_RESP) -- ath11k_mac_fils_discovery(arvif, info); -+ ath11k_mac_fils_discovery(arvif, info); - - if (changed & BSS_CHANGED_ARP_FILTER) { - ipv4_cnt = min(vif->cfg.arp_addr_cnt, ATH11K_IPV4_MAX_COUNT); diff --git a/package/kernel/mac80211/patches/ath11k/0028-wifi-ath11k-ath11k_debugfs_register-fix-format-trunc.patch b/package/kernel/mac80211/patches/ath11k/0028-wifi-ath11k-ath11k_debugfs_register-fix-format-trunc.patch deleted file mode 100644 index df8a4283fa..0000000000 --- a/package/kernel/mac80211/patches/ath11k/0028-wifi-ath11k-ath11k_debugfs_register-fix-format-trunc.patch +++ /dev/null @@ -1,39 +0,0 @@ -From a47111663491ff2829df0626493ce81b48dd880a Mon Sep 17 00:00:00 2001 -From: Kalle Valo -Date: Tue, 10 Oct 2023 09:22:50 +0300 -Subject: [PATCH] wifi: ath11k: ath11k_debugfs_register(): fix - format-truncation warning - -In v6.6-rc4 with GCC 13.2 I see a new warning: - -drivers/net/wireless/ath/ath11k/debugfs.c: In function 'ath11k_debugfs_register': -drivers/net/wireless/ath/ath11k/debugfs.c:1597:51: error: '%d' directive output may be truncated writing between 1 and 3 bytes into a region of size 2 [-Werror=format-truncation=] -drivers/net/wireless/ath/ath11k/debugfs.c:1597:48: note: directive argument in the range [0, 255] -drivers/net/wireless/ath/ath11k/debugfs.c:1597:9: note: 'snprintf' output between 5 and 7 bytes into a destination of size 5 - -Increase the size of pdev_name to 10 bytes to make sure there's enough room for -the string. Also change the format to '%u' as ar->pdev_idx is u8. - -Compile tested only. - -Signed-off-by: Kalle Valo -Link: https://lore.kernel.org/r/20231010062250.2580951-1-kvalo@kernel.org ---- - drivers/net/wireless/ath/ath11k/debugfs.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- a/drivers/net/wireless/ath/ath11k/debugfs.c -+++ b/drivers/net/wireless/ath/ath11k/debugfs.c -@@ -1591,10 +1591,10 @@ static const struct file_operations fops - int ath11k_debugfs_register(struct ath11k *ar) - { - struct ath11k_base *ab = ar->ab; -- char pdev_name[5]; -+ char pdev_name[10]; - char buf[100] = {0}; - -- snprintf(pdev_name, sizeof(pdev_name), "%s%d", "mac", ar->pdev_idx); -+ snprintf(pdev_name, sizeof(pdev_name), "%s%u", "mac", ar->pdev_idx); - - ar->debug.debugfs_pdev = debugfs_create_dir(pdev_name, ab->debugfs_soc); - if (IS_ERR(ar->debug.debugfs_pdev)) diff --git a/package/kernel/mac80211/patches/ath11k/0029-wifi-ath11k-add-parsing-of-phy-bitmap-for-reg-rules.patch b/package/kernel/mac80211/patches/ath11k/0029-wifi-ath11k-add-parsing-of-phy-bitmap-for-reg-rules.patch deleted file mode 100644 index 10d517a27a..0000000000 --- a/package/kernel/mac80211/patches/ath11k/0029-wifi-ath11k-add-parsing-of-phy-bitmap-for-reg-rules.patch +++ /dev/null @@ -1,84 +0,0 @@ -From 534c2dd8099a9cc4bad8ea8b3c7fa1f730e10d5d Mon Sep 17 00:00:00 2001 -From: Aditya Kumar Singh -Date: Tue, 10 Oct 2023 10:27:19 +0300 -Subject: [PATCH] wifi: ath11k: add parsing of phy bitmap for reg rules - -Certain regulatory domains could put restrictions on phy mode operation. -For example, in a few countries HE Operation is not allowed. For such -countries, firmware indicates this via phy bitmap in each reg rule. - -Currently, there is no logic to parse this info and then pass it on to the -cfg80211/regulatory. - -Add parsing of this phy bitmap from the regulatory channel change event and -then accordingly map it to cfg80211/regulatory flags and pass it on to it. - -While at it, correct typo in debug print s/dsf/dfs. - -Tested-on: IPQ8074 hw2.0 AHB WLAN.HK.2.7.0.1-01744-QCAHKSWPL_SILICONZ-1 - -Signed-off-by: Aditya Kumar Singh -Acked-by: Jeff Johnson -Signed-off-by: Kalle Valo -Link: https://lore.kernel.org/r/20231004092655.25020-1-quic_adisi@quicinc.com ---- - drivers/net/wireless/ath/ath11k/reg.c | 11 +++++++++++ - drivers/net/wireless/ath/ath11k/reg.h | 3 +++ - drivers/net/wireless/ath/ath11k/wmi.c | 5 +++-- - 3 files changed, 17 insertions(+), 2 deletions(-) - ---- a/drivers/net/wireless/ath/ath11k/reg.c -+++ b/drivers/net/wireless/ath/ath11k/reg.c -@@ -352,6 +352,16 @@ static u32 ath11k_map_fw_reg_flags(u16 r - return flags; - } - -+static u32 ath11k_map_fw_phy_flags(u32 phy_flags) -+{ -+ u32 flags = 0; -+ -+ if (phy_flags & ATH11K_REG_PHY_BITMAP_NO11AX) -+ flags |= NL80211_RRF_NO_HE; -+ -+ return flags; -+} -+ - static bool - ath11k_reg_can_intersect(struct ieee80211_reg_rule *rule1, - struct ieee80211_reg_rule *rule2) -@@ -685,6 +695,7 @@ ath11k_reg_build_regd(struct ath11k_base - } - - flags |= ath11k_map_fw_reg_flags(reg_rule->flags); -+ flags |= ath11k_map_fw_phy_flags(reg_info->phybitmap); - - ath11k_reg_update_rule(tmp_regd->reg_rules + i, - reg_rule->start_freq, ---- a/drivers/net/wireless/ath/ath11k/reg.h -+++ b/drivers/net/wireless/ath/ath11k/reg.h -@@ -24,6 +24,9 @@ enum ath11k_dfs_region { - ATH11K_DFS_REG_UNDEF, - }; - -+/* Phy bitmaps */ -+#define ATH11K_REG_PHY_BITMAP_NO11AX BIT(5) -+ - /* ATH11K Regulatory API's */ - void ath11k_reg_init(struct ath11k *ar); - void ath11k_reg_free(struct ath11k_base *ab); ---- a/drivers/net/wireless/ath/ath11k/wmi.c -+++ b/drivers/net/wireless/ath/ath11k/wmi.c -@@ -5440,10 +5440,11 @@ static int ath11k_pull_reg_chan_list_ext - } - - ath11k_dbg(ab, ATH11K_DBG_WMI, -- "cc_ext %s dsf %d BW: min_2ghz %d max_2ghz %d min_5ghz %d max_5ghz %d", -+ "cc_ext %s dfs %d BW: min_2ghz %d max_2ghz %d min_5ghz %d max_5ghz %d phy_bitmap 0x%x", - reg_info->alpha2, reg_info->dfs_region, - reg_info->min_bw_2ghz, reg_info->max_bw_2ghz, -- reg_info->min_bw_5ghz, reg_info->max_bw_5ghz); -+ reg_info->min_bw_5ghz, reg_info->max_bw_5ghz, -+ reg_info->phybitmap); - - ath11k_dbg(ab, ATH11K_DBG_WMI, - "num_2ghz_reg_rules %d num_5ghz_reg_rules %d", diff --git a/package/kernel/mac80211/patches/ath11k/0030-wifi-ath11k-Remove-unused-struct-ath11k_htc_frame.patch b/package/kernel/mac80211/patches/ath11k/0030-wifi-ath11k-Remove-unused-struct-ath11k_htc_frame.patch deleted file mode 100644 index df4235388a..0000000000 --- a/package/kernel/mac80211/patches/ath11k/0030-wifi-ath11k-Remove-unused-struct-ath11k_htc_frame.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 480d230bef0ecd06e72ae3a84117142e38e77503 Mon Sep 17 00:00:00 2001 -From: Jeff Johnson -Date: Mon, 9 Oct 2023 09:36:54 -0700 -Subject: [PATCH] wifi: ath11k: Remove unused struct ath11k_htc_frame - -struct ath11k_htc_frame is unused, and since it illogically contains -two consecutive flexible arrays, it could never be used, so remove it. - -No functional changes, compile tested only. - -Signed-off-by: Jeff Johnson -Signed-off-by: Kalle Valo -Link: https://lore.kernel.org/r/20231009-ath11k_htc_frame-v1-1-81d405b7a195@quicinc.com ---- - drivers/net/wireless/ath/ath11k/htc.h | 12 ------------ - 1 file changed, 12 deletions(-) - ---- a/drivers/net/wireless/ath/ath11k/htc.h -+++ b/drivers/net/wireless/ath/ath11k/htc.h -@@ -156,18 +156,6 @@ struct ath11k_htc_record { - }; - } __packed __aligned(4); - --/* note: the trailer offset is dynamic depending -- * on payload length. this is only a struct layout draft -- */ --struct ath11k_htc_frame { -- struct ath11k_htc_hdr hdr; -- union { -- struct ath11k_htc_msg msg; -- u8 payload[0]; -- }; -- struct ath11k_htc_record trailer[0]; --} __packed __aligned(4); -- - enum ath11k_htc_svc_gid { - ATH11K_HTC_SVC_GRP_RSVD = 0, - ATH11K_HTC_SVC_GRP_WMI = 1, diff --git a/package/kernel/mac80211/patches/ath11k/0031-wifi-ath11k-Introduce-and-use-ath11k_sta_to_arsta.patch b/package/kernel/mac80211/patches/ath11k/0031-wifi-ath11k-Introduce-and-use-ath11k_sta_to_arsta.patch deleted file mode 100644 index 1a6a701eec..0000000000 --- a/package/kernel/mac80211/patches/ath11k/0031-wifi-ath11k-Introduce-and-use-ath11k_sta_to_arsta.patch +++ /dev/null @@ -1,384 +0,0 @@ -From 10c65f97b424fcee439463f933140df2a0022f98 Mon Sep 17 00:00:00 2001 -From: Jeff Johnson -Date: Mon, 9 Oct 2023 09:39:42 -0700 -Subject: [PATCH] wifi: ath11k: Introduce and use ath11k_sta_to_arsta() - -Currently, the logic to return an ath11k_sta pointer, given a -ieee80211_sta pointer, uses typecasting throughout the driver. In -general, conversion functions are preferable to typecasting since -using a conversion function allows the compiler to validate the types -of both the input and output parameters. - -ath11k already defines a conversion function ath11k_vif_to_arvif() for -a similar conversion. So introduce ath11k_sta_to_arsta() for this use -case, and convert all of the existing typecasting to use this -function. - -No functional changes, compile tested only. - -Signed-off-by: Jeff Johnson -Signed-off-by: Kalle Valo -Link: https://lore.kernel.org/r/20231009-ath11k_sta_to_arsta-v1-1-1563e3a307e8@quicinc.com ---- - drivers/net/wireless/ath/ath11k/core.h | 5 ++++ - drivers/net/wireless/ath/ath11k/debugfs.c | 4 +-- - drivers/net/wireless/ath/ath11k/debugfs_sta.c | 30 +++++++++---------- - drivers/net/wireless/ath/ath11k/dp_rx.c | 8 ++--- - drivers/net/wireless/ath/ath11k/dp_tx.c | 4 +-- - drivers/net/wireless/ath/ath11k/mac.c | 18 +++++------ - drivers/net/wireless/ath/ath11k/peer.c | 2 +- - drivers/net/wireless/ath/ath11k/wmi.c | 6 ++-- - 8 files changed, 41 insertions(+), 36 deletions(-) - ---- a/drivers/net/wireless/ath/ath11k/core.h -+++ b/drivers/net/wireless/ath/ath11k/core.h -@@ -1223,6 +1223,11 @@ static inline struct ath11k_vif *ath11k_ - return (struct ath11k_vif *)vif->drv_priv; - } - -+static inline struct ath11k_sta *ath11k_sta_to_arsta(struct ieee80211_sta *sta) -+{ -+ return (struct ath11k_sta *)sta->drv_priv; -+} -+ - static inline struct ath11k *ath11k_ab_to_ar(struct ath11k_base *ab, - int mac_id) - { ---- a/drivers/net/wireless/ath/ath11k/debugfs.c -+++ b/drivers/net/wireless/ath/ath11k/debugfs.c -@@ -1459,7 +1459,7 @@ static void ath11k_reset_peer_ps_duratio - struct ieee80211_sta *sta) - { - struct ath11k *ar = data; -- struct ath11k_sta *arsta = (struct ath11k_sta *)sta->drv_priv; -+ struct ath11k_sta *arsta = ath11k_sta_to_arsta(sta); - - spin_lock_bh(&ar->data_lock); - arsta->ps_total_duration = 0; -@@ -1510,7 +1510,7 @@ static void ath11k_peer_ps_state_disable - struct ieee80211_sta *sta) - { - struct ath11k *ar = data; -- struct ath11k_sta *arsta = (struct ath11k_sta *)sta->drv_priv; -+ struct ath11k_sta *arsta = ath11k_sta_to_arsta(sta); - - spin_lock_bh(&ar->data_lock); - arsta->peer_ps_state = WMI_PEER_PS_STATE_DISABLED; ---- a/drivers/net/wireless/ath/ath11k/debugfs_sta.c -+++ b/drivers/net/wireless/ath/ath11k/debugfs_sta.c -@@ -136,7 +136,7 @@ static ssize_t ath11k_dbg_sta_dump_tx_st - size_t count, loff_t *ppos) - { - struct ieee80211_sta *sta = file->private_data; -- struct ath11k_sta *arsta = (struct ath11k_sta *)sta->drv_priv; -+ struct ath11k_sta *arsta = ath11k_sta_to_arsta(sta); - struct ath11k *ar = arsta->arvif->ar; - struct ath11k_htt_data_stats *stats; - static const char *str_name[ATH11K_STATS_TYPE_MAX] = {"succ", "fail", -@@ -243,7 +243,7 @@ static ssize_t ath11k_dbg_sta_dump_rx_st - size_t count, loff_t *ppos) - { - struct ieee80211_sta *sta = file->private_data; -- struct ath11k_sta *arsta = (struct ath11k_sta *)sta->drv_priv; -+ struct ath11k_sta *arsta = ath11k_sta_to_arsta(sta); - struct ath11k *ar = arsta->arvif->ar; - struct ath11k_rx_peer_stats *rx_stats = arsta->rx_stats; - int len = 0, i, retval = 0; -@@ -340,7 +340,7 @@ static int - ath11k_dbg_sta_open_htt_peer_stats(struct inode *inode, struct file *file) - { - struct ieee80211_sta *sta = inode->i_private; -- struct ath11k_sta *arsta = (struct ath11k_sta *)sta->drv_priv; -+ struct ath11k_sta *arsta = ath11k_sta_to_arsta(sta); - struct ath11k *ar = arsta->arvif->ar; - struct debug_htt_stats_req *stats_req; - int type = ar->debug.htt_stats.type; -@@ -376,7 +376,7 @@ static int - ath11k_dbg_sta_release_htt_peer_stats(struct inode *inode, struct file *file) - { - struct ieee80211_sta *sta = inode->i_private; -- struct ath11k_sta *arsta = (struct ath11k_sta *)sta->drv_priv; -+ struct ath11k_sta *arsta = ath11k_sta_to_arsta(sta); - struct ath11k *ar = arsta->arvif->ar; - - mutex_lock(&ar->conf_mutex); -@@ -413,7 +413,7 @@ static ssize_t ath11k_dbg_sta_write_peer - size_t count, loff_t *ppos) - { - struct ieee80211_sta *sta = file->private_data; -- struct ath11k_sta *arsta = (struct ath11k_sta *)sta->drv_priv; -+ struct ath11k_sta *arsta = ath11k_sta_to_arsta(sta); - struct ath11k *ar = arsta->arvif->ar; - int ret, enable; - -@@ -453,7 +453,7 @@ static ssize_t ath11k_dbg_sta_read_peer_ - size_t count, loff_t *ppos) - { - struct ieee80211_sta *sta = file->private_data; -- struct ath11k_sta *arsta = (struct ath11k_sta *)sta->drv_priv; -+ struct ath11k_sta *arsta = ath11k_sta_to_arsta(sta); - struct ath11k *ar = arsta->arvif->ar; - char buf[32] = {0}; - int len; -@@ -480,7 +480,7 @@ static ssize_t ath11k_dbg_sta_write_delb - size_t count, loff_t *ppos) - { - struct ieee80211_sta *sta = file->private_data; -- struct ath11k_sta *arsta = (struct ath11k_sta *)sta->drv_priv; -+ struct ath11k_sta *arsta = ath11k_sta_to_arsta(sta); - struct ath11k *ar = arsta->arvif->ar; - u32 tid, initiator, reason; - int ret; -@@ -531,7 +531,7 @@ static ssize_t ath11k_dbg_sta_write_addb - size_t count, loff_t *ppos) - { - struct ieee80211_sta *sta = file->private_data; -- struct ath11k_sta *arsta = (struct ath11k_sta *)sta->drv_priv; -+ struct ath11k_sta *arsta = ath11k_sta_to_arsta(sta); - struct ath11k *ar = arsta->arvif->ar; - u32 tid, status; - int ret; -@@ -581,7 +581,7 @@ static ssize_t ath11k_dbg_sta_write_addb - size_t count, loff_t *ppos) - { - struct ieee80211_sta *sta = file->private_data; -- struct ath11k_sta *arsta = (struct ath11k_sta *)sta->drv_priv; -+ struct ath11k_sta *arsta = ath11k_sta_to_arsta(sta); - struct ath11k *ar = arsta->arvif->ar; - u32 tid, buf_size; - int ret; -@@ -632,7 +632,7 @@ static ssize_t ath11k_dbg_sta_read_aggr_ - size_t count, loff_t *ppos) - { - struct ieee80211_sta *sta = file->private_data; -- struct ath11k_sta *arsta = (struct ath11k_sta *)sta->drv_priv; -+ struct ath11k_sta *arsta = ath11k_sta_to_arsta(sta); - struct ath11k *ar = arsta->arvif->ar; - char buf[64]; - int len = 0; -@@ -652,7 +652,7 @@ static ssize_t ath11k_dbg_sta_write_aggr - size_t count, loff_t *ppos) - { - struct ieee80211_sta *sta = file->private_data; -- struct ath11k_sta *arsta = (struct ath11k_sta *)sta->drv_priv; -+ struct ath11k_sta *arsta = ath11k_sta_to_arsta(sta); - struct ath11k *ar = arsta->arvif->ar; - u32 aggr_mode; - int ret; -@@ -697,7 +697,7 @@ ath11k_write_htt_peer_stats_reset(struct - size_t count, loff_t *ppos) - { - struct ieee80211_sta *sta = file->private_data; -- struct ath11k_sta *arsta = (struct ath11k_sta *)sta->drv_priv; -+ struct ath11k_sta *arsta = ath11k_sta_to_arsta(sta); - struct ath11k *ar = arsta->arvif->ar; - struct htt_ext_stats_cfg_params cfg_params = { 0 }; - int ret; -@@ -756,7 +756,7 @@ static ssize_t ath11k_dbg_sta_read_peer_ - size_t count, loff_t *ppos) - { - struct ieee80211_sta *sta = file->private_data; -- struct ath11k_sta *arsta = (struct ath11k_sta *)sta->drv_priv; -+ struct ath11k_sta *arsta = ath11k_sta_to_arsta(sta); - struct ath11k *ar = arsta->arvif->ar; - char buf[20]; - int len; -@@ -783,7 +783,7 @@ static ssize_t ath11k_dbg_sta_read_curre - loff_t *ppos) - { - struct ieee80211_sta *sta = file->private_data; -- struct ath11k_sta *arsta = (struct ath11k_sta *)sta->drv_priv; -+ struct ath11k_sta *arsta = ath11k_sta_to_arsta(sta); - struct ath11k *ar = arsta->arvif->ar; - u64 time_since_station_in_power_save; - char buf[20]; -@@ -817,7 +817,7 @@ static ssize_t ath11k_dbg_sta_read_total - size_t count, loff_t *ppos) - { - struct ieee80211_sta *sta = file->private_data; -- struct ath11k_sta *arsta = (struct ath11k_sta *)sta->drv_priv; -+ struct ath11k_sta *arsta = ath11k_sta_to_arsta(sta); - struct ath11k *ar = arsta->arvif->ar; - char buf[20]; - u64 power_save_duration; ---- a/drivers/net/wireless/ath/ath11k/dp_rx.c -+++ b/drivers/net/wireless/ath/ath11k/dp_rx.c -@@ -1099,7 +1099,7 @@ int ath11k_dp_rx_ampdu_start(struct ath1 - struct ieee80211_ampdu_params *params) - { - struct ath11k_base *ab = ar->ab; -- struct ath11k_sta *arsta = (void *)params->sta->drv_priv; -+ struct ath11k_sta *arsta = ath11k_sta_to_arsta(params->sta); - int vdev_id = arsta->arvif->vdev_id; - int ret; - -@@ -1117,7 +1117,7 @@ int ath11k_dp_rx_ampdu_stop(struct ath11 - { - struct ath11k_base *ab = ar->ab; - struct ath11k_peer *peer; -- struct ath11k_sta *arsta = (void *)params->sta->drv_priv; -+ struct ath11k_sta *arsta = ath11k_sta_to_arsta(params->sta); - int vdev_id = arsta->arvif->vdev_id; - dma_addr_t paddr; - bool active; -@@ -1456,7 +1456,7 @@ ath11k_update_per_peer_tx_stats(struct a - } - - sta = peer->sta; -- arsta = (struct ath11k_sta *)sta->drv_priv; -+ arsta = ath11k_sta_to_arsta(sta); - - memset(&arsta->txrate, 0, sizeof(arsta->txrate)); - -@@ -5248,7 +5248,7 @@ int ath11k_dp_rx_process_mon_status(stru - goto next_skb; - } - -- arsta = (struct ath11k_sta *)peer->sta->drv_priv; -+ arsta = ath11k_sta_to_arsta(peer->sta); - ath11k_dp_rx_update_peer_stats(arsta, ppdu_info); - - if (ath11k_debugfs_is_pktlog_peer_valid(ar, peer->addr)) ---- a/drivers/net/wireless/ath/ath11k/dp_tx.c -+++ b/drivers/net/wireless/ath/ath11k/dp_tx.c -@@ -467,7 +467,7 @@ void ath11k_dp_tx_update_txcompl(struct - } - - sta = peer->sta; -- arsta = (struct ath11k_sta *)sta->drv_priv; -+ arsta = ath11k_sta_to_arsta(sta); - - memset(&arsta->txrate, 0, sizeof(arsta->txrate)); - pkt_type = FIELD_GET(HAL_TX_RATE_STATS_INFO0_PKT_TYPE, -@@ -627,7 +627,7 @@ static void ath11k_dp_tx_complete_msdu(s - ieee80211_free_txskb(ar->hw, msdu); - return; - } -- arsta = (struct ath11k_sta *)peer->sta->drv_priv; -+ arsta = ath11k_sta_to_arsta(peer->sta); - status.sta = peer->sta; - status.skb = msdu; - status.info = info; ---- a/drivers/net/wireless/ath/ath11k/mac.c -+++ b/drivers/net/wireless/ath/ath11k/mac.c -@@ -2832,7 +2832,7 @@ static void ath11k_peer_assoc_prepare(st - - lockdep_assert_held(&ar->conf_mutex); - -- arsta = (struct ath11k_sta *)sta->drv_priv; -+ arsta = ath11k_sta_to_arsta(sta); - - memset(arg, 0, sizeof(*arg)); - -@@ -4313,7 +4313,7 @@ static int ath11k_mac_op_set_key(struct - ath11k_warn(ab, "peer %pM disappeared!\n", peer_addr); - - if (sta) { -- arsta = (struct ath11k_sta *)sta->drv_priv; -+ arsta = ath11k_sta_to_arsta(sta); - - switch (key->cipher) { - case WLAN_CIPHER_SUITE_TKIP: -@@ -4904,7 +4904,7 @@ static int ath11k_mac_station_add(struct - { - struct ath11k_base *ab = ar->ab; - struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif); -- struct ath11k_sta *arsta = (struct ath11k_sta *)sta->drv_priv; -+ struct ath11k_sta *arsta = ath11k_sta_to_arsta(sta); - struct peer_create_params peer_param; - int ret; - -@@ -5028,7 +5028,7 @@ static int ath11k_mac_op_sta_state(struc - { - struct ath11k *ar = hw->priv; - struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif); -- struct ath11k_sta *arsta = (struct ath11k_sta *)sta->drv_priv; -+ struct ath11k_sta *arsta = ath11k_sta_to_arsta(sta); - struct ath11k_peer *peer; - int ret = 0; - -@@ -5194,7 +5194,7 @@ static void ath11k_mac_op_sta_set_4addr( - struct ieee80211_sta *sta, bool enabled) - { - struct ath11k *ar = hw->priv; -- struct ath11k_sta *arsta = (struct ath11k_sta *)sta->drv_priv; -+ struct ath11k_sta *arsta = ath11k_sta_to_arsta(sta); - - if (enabled && !arsta->use_4addr_set) { - ieee80211_queue_work(ar->hw, &arsta->set_4addr_wk); -@@ -5208,7 +5208,7 @@ static void ath11k_mac_op_sta_rc_update( - u32 changed) - { - struct ath11k *ar = hw->priv; -- struct ath11k_sta *arsta = (struct ath11k_sta *)sta->drv_priv; -+ struct ath11k_sta *arsta = ath11k_sta_to_arsta(sta); - struct ath11k_vif *arvif = ath11k_vif_to_arvif(vif); - struct ath11k_peer *peer; - u32 bw, smps; -@@ -6201,7 +6201,7 @@ static void ath11k_mac_op_tx(struct ieee - } - - if (control->sta) -- arsta = (struct ath11k_sta *)control->sta->drv_priv; -+ arsta = ath11k_sta_to_arsta(control->sta); - - ret = ath11k_dp_tx(ar, arvif, arsta, skb); - if (unlikely(ret)) { -@@ -8233,7 +8233,7 @@ static void ath11k_mac_set_bitrate_mask_ - struct ieee80211_sta *sta) - { - struct ath11k_vif *arvif = data; -- struct ath11k_sta *arsta = (struct ath11k_sta *)sta->drv_priv; -+ struct ath11k_sta *arsta = ath11k_sta_to_arsta(sta); - struct ath11k *ar = arvif->ar; - - spin_lock_bh(&ar->data_lock); -@@ -8637,7 +8637,7 @@ static void ath11k_mac_op_sta_statistics - struct ieee80211_sta *sta, - struct station_info *sinfo) - { -- struct ath11k_sta *arsta = (struct ath11k_sta *)sta->drv_priv; -+ struct ath11k_sta *arsta = ath11k_sta_to_arsta(sta); - struct ath11k *ar = arsta->arvif->ar; - s8 signal; - bool db2dbm = test_bit(WMI_TLV_SERVICE_HW_DB2DBM_CONVERSION_SUPPORT, ---- a/drivers/net/wireless/ath/ath11k/peer.c -+++ b/drivers/net/wireless/ath/ath11k/peer.c -@@ -446,7 +446,7 @@ int ath11k_peer_create(struct ath11k *ar - peer->sec_type_grp = HAL_ENCRYPT_TYPE_OPEN; - - if (sta) { -- arsta = (struct ath11k_sta *)sta->drv_priv; -+ arsta = ath11k_sta_to_arsta(sta); - arsta->tcl_metadata |= FIELD_PREP(HTT_TCL_META_DATA_TYPE, 0) | - FIELD_PREP(HTT_TCL_META_DATA_PEER_ID, - peer->peer_id); ---- a/drivers/net/wireless/ath/ath11k/wmi.c -+++ b/drivers/net/wireless/ath/ath11k/wmi.c -@@ -6453,7 +6453,7 @@ static int ath11k_wmi_tlv_rssi_chain_par - goto exit; - } - -- arsta = (struct ath11k_sta *)sta->drv_priv; -+ arsta = ath11k_sta_to_arsta(sta); - - BUILD_BUG_ON(ARRAY_SIZE(arsta->chain_signal) > - ARRAY_SIZE(stats_rssi->rssi_avg_beacon)); -@@ -6541,7 +6541,7 @@ static int ath11k_wmi_tlv_fw_stats_data_ - arvif->bssid, - NULL); - if (sta) { -- arsta = (struct ath11k_sta *)sta->drv_priv; -+ arsta = ath11k_sta_to_arsta(sta); - arsta->rssi_beacon = src->beacon_snr; - ath11k_dbg(ab, ATH11K_DBG_WMI, - "stats vdev id %d snr %d\n", -@@ -7468,7 +7468,7 @@ static void ath11k_wmi_event_peer_sta_ps - goto exit; - } - -- arsta = (struct ath11k_sta *)sta->drv_priv; -+ arsta = ath11k_sta_to_arsta(sta); - - spin_lock_bh(&ar->data_lock); - diff --git a/package/kernel/mac80211/patches/ath11k/0906-wifi-ath11k-disable-coldboot-for-ipq6018.patch b/package/kernel/mac80211/patches/ath11k/0906-wifi-ath11k-disable-coldboot-for-ipq6018.patch index db646f7620..325724e68d 100644 --- a/package/kernel/mac80211/patches/ath11k/0906-wifi-ath11k-disable-coldboot-for-ipq6018.patch +++ b/package/kernel/mac80211/patches/ath11k/0906-wifi-ath11k-disable-coldboot-for-ipq6018.patch @@ -13,7 +13,7 @@ Signed-off-by: Mantas Pucka --- a/drivers/net/wireless/ath/ath11k/core.c +++ b/drivers/net/wireless/ath/ath11k/core.c -@@ -168,8 +168,8 @@ static const struct ath11k_hw_params ath +@@ -170,8 +170,8 @@ static const struct ath11k_hw_params ath .supports_shadow_regs = false, .idle_ps = false, .supports_sta_ps = false, diff --git a/package/kernel/mac80211/patches/ath11k/100-wifi-ath11k-use-unique-QRTR-instance-ID.patch b/package/kernel/mac80211/patches/ath11k/100-wifi-ath11k-use-unique-QRTR-instance-ID.patch index 30472b3229..f1583b6e96 100644 --- a/package/kernel/mac80211/patches/ath11k/100-wifi-ath11k-use-unique-QRTR-instance-ID.patch +++ b/package/kernel/mac80211/patches/ath11k/100-wifi-ath11k-use-unique-QRTR-instance-ID.patch @@ -49,7 +49,7 @@ Signed-off-by: Robert Marko --- a/drivers/net/wireless/ath/ath11k/mhi.c +++ b/drivers/net/wireless/ath/ath11k/mhi.c -@@ -294,6 +294,34 @@ static void ath11k_mhi_op_runtime_put(st +@@ -239,6 +239,34 @@ static void ath11k_mhi_op_runtime_put(st { } @@ -84,7 +84,7 @@ Signed-off-by: Robert Marko static char *ath11k_mhi_op_callback_to_str(enum mhi_callback reason) { switch (reason) { -@@ -315,6 +343,8 @@ static char *ath11k_mhi_op_callback_to_s +@@ -260,6 +288,8 @@ static char *ath11k_mhi_op_callback_to_s return "MHI_CB_FATAL_ERROR"; case MHI_CB_BW_REQ: return "MHI_CB_BW_REQ"; @@ -93,7 +93,7 @@ Signed-off-by: Robert Marko default: return "UNKNOWN"; } -@@ -337,27 +367,14 @@ static void ath11k_mhi_op_status_cb(stru +@@ -282,27 +312,14 @@ static void ath11k_mhi_op_status_cb(stru if (!(test_bit(ATH11K_FLAG_UNREGISTERING, &ab->dev_flags))) queue_work(ab->workqueue_aux, &ab->reset_work); break; @@ -126,7 +126,7 @@ Signed-off-by: Robert Marko struct device_node *np; --- a/drivers/net/wireless/ath/ath11k/mhi.h +++ b/drivers/net/wireless/ath/ath11k/mhi.h -@@ -16,6 +16,9 @@ +@@ -17,6 +17,9 @@ #define MHICTRL 0x38 #define MHICTRL_RESET_MASK 0x2 @@ -138,7 +138,7 @@ Signed-off-by: Robert Marko int ath11k_mhi_register(struct ath11k_pci *ar_pci); --- a/drivers/net/wireless/ath/ath11k/pci.c +++ b/drivers/net/wireless/ath/ath11k/pci.c -@@ -371,13 +371,20 @@ static void ath11k_pci_sw_reset(struct a +@@ -374,13 +374,20 @@ static void ath11k_pci_sw_reset(struct a static void ath11k_pci_init_qmi_ce_config(struct ath11k_base *ab) { struct ath11k_qmi_ce_cfg *cfg = &ab->qmi.ce_cfg; diff --git a/package/kernel/mac80211/patches/ath11k/101-wifi-ath11k-add-support-DT-ieee80211-freq-limit.patch b/package/kernel/mac80211/patches/ath11k/101-wifi-ath11k-add-support-DT-ieee80211-freq-limit.patch index 9571f7f207..6088b26e6b 100644 --- a/package/kernel/mac80211/patches/ath11k/101-wifi-ath11k-add-support-DT-ieee80211-freq-limit.patch +++ b/package/kernel/mac80211/patches/ath11k/101-wifi-ath11k-add-support-DT-ieee80211-freq-limit.patch @@ -14,7 +14,7 @@ Signed-off-by: Christian Lamparter --- a/drivers/net/wireless/ath/ath11k/mac.c +++ b/drivers/net/wireless/ath/ath11k/mac.c -@@ -9455,6 +9455,7 @@ static int __ath11k_mac_register(struct +@@ -10034,6 +10034,7 @@ static int __ath11k_mac_register(struct if (ret) goto err; diff --git a/package/kernel/mac80211/patches/ath11k/900-ath11k-control-thermal-support-via-symbol.patch b/package/kernel/mac80211/patches/ath11k/900-ath11k-control-thermal-support-via-symbol.patch index dcfb4b5ac8..6b351cc81d 100644 --- a/package/kernel/mac80211/patches/ath11k/900-ath11k-control-thermal-support-via-symbol.patch +++ b/package/kernel/mac80211/patches/ath11k/900-ath11k-control-thermal-support-via-symbol.patch @@ -34,7 +34,7 @@ Signed-off-by: Robert Marko + Enable ath11k thermal sensors and throttling support. --- a/drivers/net/wireless/ath/ath11k/Makefile +++ b/drivers/net/wireless/ath/ath11k/Makefile -@@ -22,7 +22,7 @@ ath11k-y += core.o \ +@@ -23,7 +23,7 @@ ath11k-y += core.o \ ath11k-$(CPTCFG_ATH11K_DEBUGFS) += debugfs.o debugfs_htt_stats.o debugfs_sta.o ath11k-$(CPTCFG_NL80211_TESTMODE) += testmode.o ath11k-$(CPTCFG_ATH11K_TRACING) += trace.o @@ -45,18 +45,18 @@ Signed-off-by: Robert Marko --- a/drivers/net/wireless/ath/ath11k/thermal.h +++ b/drivers/net/wireless/ath/ath11k/thermal.h -@@ -25,7 +25,7 @@ struct ath11k_thermal { +@@ -26,7 +26,7 @@ struct ath11k_thermal { int temperature; }; -#if IS_REACHABLE(CONFIG_THERMAL) +#if IS_REACHABLE(CPTCFG_ATH11K_THERMAL) - int ath11k_thermal_register(struct ath11k_base *sc); - void ath11k_thermal_unregister(struct ath11k_base *sc); + int ath11k_thermal_register(struct ath11k_base *ab); + void ath11k_thermal_unregister(struct ath11k_base *ab); int ath11k_thermal_set_throttling(struct ath11k *ar, u32 throttle_state); --- a/local-symbols +++ b/local-symbols -@@ -173,6 +173,7 @@ ATH11K_DEBUG= +@@ -166,6 +166,7 @@ ATH11K_DEBUG= ATH11K_DEBUGFS= ATH11K_TRACING= ATH11K_SPECTRAL= diff --git a/package/kernel/mac80211/patches/ath11k/901-wifi-ath11k-pci-fix-compilation-in-5.16-and-older.patch b/package/kernel/mac80211/patches/ath11k/901-wifi-ath11k-pci-fix-compilation-in-5.16-and-older.patch deleted file mode 100644 index 9a0ca80090..0000000000 --- a/package/kernel/mac80211/patches/ath11k/901-wifi-ath11k-pci-fix-compilation-in-5.16-and-older.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 04178918e7f6b5f34dde81ec79ee8a1ccace3be3 Mon Sep 17 00:00:00 2001 -From: Robert Marko -Date: Mon, 17 Oct 2022 11:45:03 +0200 -Subject: [PATCH] wifi: ath11k: pci: fix compilation in 5.16 and older - -Commit ("genirq/msi, treewide: Use a named struct for PCI/MSI attributes") -changed the msi_desc structure a bit, however that is only available in -kernels 5.17 and newer, so check for kernel version to allow compilation -in 5.16 and older. - -Signed-off-by: Robert Marko ---- - drivers/net/wireless/ath/ath11k/pci.c | 4 ++++ - 1 file changed, 4 insertions(+) - ---- a/drivers/net/wireless/ath/ath11k/pci.c -+++ b/drivers/net/wireless/ath/ath11k/pci.c -@@ -459,7 +459,11 @@ static int ath11k_pci_alloc_msi(struct a - pci_read_config_dword(pci_dev, pci_dev->msi_cap + PCI_MSI_ADDRESS_LO, - &ab->pci.msi.addr_lo); - -+#if (LINUX_VERSION_CODE > KERNEL_VERSION(5, 17, 0)) - if (msi_desc->pci.msi_attrib.is_64) { -+#else -+ if (msi_desc->msi_attrib.is_64) { -+#endif - pci_read_config_dword(pci_dev, pci_dev->msi_cap + PCI_MSI_ADDRESS_HI, - &ab->pci.msi.addr_hi); - } else { diff --git a/package/kernel/mac80211/patches/ath11k/903-ath11k-support-setting-FW-memory-mode-via-DT.patch b/package/kernel/mac80211/patches/ath11k/903-ath11k-support-setting-FW-memory-mode-via-DT.patch index 71373b2136..dcf1f5f276 100644 --- a/package/kernel/mac80211/patches/ath11k/903-ath11k-support-setting-FW-memory-mode-via-DT.patch +++ b/package/kernel/mac80211/patches/ath11k/903-ath11k-support-setting-FW-memory-mode-via-DT.patch @@ -22,7 +22,7 @@ Signed-off-by: Robert Marko --- a/drivers/net/wireless/ath/ath11k/core.c +++ b/drivers/net/wireless/ath/ath11k/core.c -@@ -36,7 +36,7 @@ bool ath11k_ftm_mode; +@@ -37,7 +37,7 @@ bool ath11k_ftm_mode; module_param_named(ftm_mode, ath11k_ftm_mode, bool, 0444); MODULE_PARM_DESC(ftm_mode, "Boots up in factory test mode"); @@ -31,7 +31,7 @@ Signed-off-by: Robert Marko { .hw_rev = ATH11K_HW_IPQ8074, .name = "ipq8074 hw2.0", -@@ -2040,7 +2040,8 @@ static void ath11k_core_reset(struct wor +@@ -2138,7 +2138,8 @@ static void ath11k_core_reset(struct wor static int ath11k_init_hw_params(struct ath11k_base *ab) { const struct ath11k_hw_params *hw_params = NULL; @@ -41,7 +41,7 @@ Signed-off-by: Robert Marko for (i = 0; i < ARRAY_SIZE(ath11k_hw_params); i++) { hw_params = &ath11k_hw_params[i]; -@@ -2056,7 +2057,31 @@ static int ath11k_init_hw_params(struct +@@ -2154,7 +2155,31 @@ static int ath11k_init_hw_params(struct ab->hw_params = *hw_params; diff --git a/package/kernel/mac80211/patches/ath11k/905-ath11k-remove-intersection-support-for-regulatory-ru.patch b/package/kernel/mac80211/patches/ath11k/905-ath11k-remove-intersection-support-for-regulatory-ru.patch index 74317e0262..19f4e7dbe2 100644 --- a/package/kernel/mac80211/patches/ath11k/905-ath11k-remove-intersection-support-for-regulatory-ru.patch +++ b/package/kernel/mac80211/patches/ath11k/905-ath11k-remove-intersection-support-for-regulatory-ru.patch @@ -23,7 +23,7 @@ Signed-off-by: Aditya Kumar Singh --- a/drivers/net/wireless/ath/ath11k/reg.c +++ b/drivers/net/wireless/ath/ath11k/reg.c -@@ -362,129 +362,6 @@ static u32 ath11k_map_fw_phy_flags(u32 p +@@ -363,134 +363,6 @@ static u32 ath11k_map_fw_phy_flags(u32 p return flags; } @@ -89,6 +89,11 @@ Signed-off-by: Aditya Kumar Singh - /* Use the flags of both the rules */ - new_rule->flags = rule1->flags | rule2->flags; - +- if ((rule1->flags & NL80211_RRF_PSD) && (rule2->flags & NL80211_RRF_PSD)) +- new_rule->psd = min_t(s8, rule1->psd, rule2->psd); +- else +- new_rule->flags &= ~NL80211_RRF_PSD; +- - /* To be safe, lts use the max cac timeout of both rules */ - new_rule->dfs_cac_ms = max_t(u32, rule1->dfs_cac_ms, - rule2->dfs_cac_ms); @@ -153,20 +158,22 @@ Signed-off-by: Aditya Kumar Singh static const char * ath11k_reg_get_regdom_str(enum nl80211_dfs_regions dfs_region) { -@@ -619,9 +496,9 @@ ath11k_reg_update_weather_radar_band(str +@@ -641,11 +513,11 @@ ath11k_reg_ap_pwr_convert(enum ieee80211 struct ieee80211_regdomain * ath11k_reg_build_regd(struct ath11k_base *ab, -- struct cur_regulatory_info *reg_info, bool intersect) -+ struct cur_regulatory_info *reg_info) +- struct cur_regulatory_info *reg_info, bool intersect, ++ struct cur_regulatory_info *reg_info, + enum wmi_vdev_type vdev_type, + enum ieee80211_ap_reg_power power_type) { - struct ieee80211_regdomain *tmp_regd, *default_regd, *new_regd = NULL; + struct ieee80211_regdomain *new_regd = NULL; - struct cur_reg_rule *reg_rule; + struct cur_reg_rule *reg_rule, *reg_rule_6ghz; u8 i = 0, j = 0, k = 0; u8 num_rules; -@@ -638,26 +515,26 @@ ath11k_reg_build_regd(struct ath11k_base - num_rules += reg_info->num_6ghz_rules_ap[WMI_REG_INDOOR_AP]; +@@ -688,26 +560,26 @@ ath11k_reg_build_regd(struct ath11k_base + } if (!num_rules) - goto ret; @@ -199,7 +206,7 @@ Signed-off-by: Aditya Kumar Singh reg_info->dfs_region, num_rules); /* Update reg_rules[] below. Firmware is expected to * send these rules in order(2 GHz rules first and then 5 GHz) -@@ -697,7 +574,7 @@ ath11k_reg_build_regd(struct ath11k_base +@@ -746,7 +618,7 @@ ath11k_reg_build_regd(struct ath11k_base flags |= ath11k_map_fw_reg_flags(reg_rule->flags); flags |= ath11k_map_fw_phy_flags(reg_info->phybitmap); @@ -208,7 +215,7 @@ Signed-off-by: Aditya Kumar Singh reg_rule->start_freq, reg_rule->end_freq, max_bw, reg_rule->ant_gain, reg_rule->reg_power, -@@ -712,7 +589,7 @@ ath11k_reg_build_regd(struct ath11k_base +@@ -761,7 +633,7 @@ ath11k_reg_build_regd(struct ath11k_base reg_info->dfs_region == ATH11K_DFS_REG_ETSI && (reg_rule->end_freq > ETSI_WEATHER_RADAR_BAND_LOW && reg_rule->start_freq < ETSI_WEATHER_RADAR_BAND_HIGH)){ @@ -217,7 +224,7 @@ Signed-off-by: Aditya Kumar Singh reg_rule, &i, flags, max_bw); continue; -@@ -723,37 +600,20 @@ ath11k_reg_build_regd(struct ath11k_base +@@ -772,51 +644,23 @@ ath11k_reg_build_regd(struct ath11k_base "\t%d. (%d - %d @ %d) (%d, %d) (%d ms) (FLAGS %d) (%d, %d)\n", i + 1, reg_rule->start_freq, reg_rule->end_freq, max_bw, reg_rule->ant_gain, reg_rule->reg_power, @@ -236,7 +243,8 @@ Signed-off-by: Aditya Kumar Singh } - tmp_regd->n_reg_rules = i; -- ++ new_regd->n_reg_rules = i; + - if (intersect) { - default_regd = ab->default_regd[reg_info->phy_id]; - @@ -252,29 +260,11 @@ Signed-off-by: Aditya Kumar Singh - } else { - new_regd = tmp_regd; - } -+ new_regd->n_reg_rules = i; - +- -ret: return new_regd; } ---- a/drivers/net/wireless/ath/ath11k/reg.h -+++ b/drivers/net/wireless/ath/ath11k/reg.h -@@ -33,7 +33,7 @@ void ath11k_reg_free(struct ath11k_base - void ath11k_regd_update_work(struct work_struct *work); - struct ieee80211_regdomain * - ath11k_reg_build_regd(struct ath11k_base *ab, -- struct cur_regulatory_info *reg_info, bool intersect); -+ struct cur_regulatory_info *reg_info); - int ath11k_regd_update(struct ath11k *ar); - int ath11k_reg_update_chan_list(struct ath11k *ar, bool wait); - #endif ---- a/drivers/net/wireless/ath/ath11k/wmi.c -+++ b/drivers/net/wireless/ath/ath11k/wmi.c -@@ -7060,24 +7060,12 @@ static void ath11k_wmi_htc_tx_complete(s - wake_up(&wmi->tx_ce_desc_wq); - } - -static bool ath11k_reg_is_world_alpha(char *alpha) -{ - if (alpha[0] == '0' && alpha[1] == '0') @@ -286,19 +276,20 @@ Signed-off-by: Aditya Kumar Singh - return false; -} - - static int ath11k_reg_chan_list_event(struct ath11k_base *ab, - struct sk_buff *skb, - enum wmi_reg_chan_list_cmd_type id) + static enum wmi_vdev_type ath11k_reg_get_ar_vdev_type(struct ath11k *ar) { - struct cur_regulatory_info *reg_info = NULL; - struct ieee80211_regdomain *regd = NULL; + struct ath11k_vif *arvif; +@@ -839,7 +683,6 @@ int ath11k_reg_handle_chan_list(struct a + enum ieee80211_ap_reg_power power_type) + { + struct ieee80211_regdomain *regd; - bool intersect = false; - int ret = 0, pdev_idx, i, j; + int pdev_idx; struct ath11k *ar; - -@@ -7141,17 +7129,7 @@ static int ath11k_reg_chan_list_event(st + enum wmi_vdev_type vdev_type; +@@ -891,24 +734,14 @@ int ath11k_reg_handle_chan_list(struct a (char *)reg_info->alpha2, 2)) - goto mem_free; + goto retfail; - /* Intersect new rules with default regd if a new country setting was - * requested, i.e a default regd was already set during initialization @@ -310,8 +301,28 @@ Signed-off-by: Aditya Kumar Singh - !ath11k_reg_is_world_alpha((char *)reg_info->alpha2)) - intersect = true; - -- regd = ath11k_reg_build_regd(ab, reg_info, intersect); -+ regd = ath11k_reg_build_regd(ab, reg_info); + ar = ab->pdevs[pdev_idx].ar; + vdev_type = ath11k_reg_get_ar_vdev_type(ar); + + ath11k_dbg(ab, ATH11K_DBG_WMI, +- "wmi handle chan list power type %d vdev type %d intersect %d\n", +- power_type, vdev_type, intersect); ++ "wmi handle chan list power type %d vdev type %d\n", ++ power_type, vdev_type); + +- regd = ath11k_reg_build_regd(ab, reg_info, intersect, vdev_type, power_type); ++ regd = ath11k_reg_build_regd(ab, reg_info, vdev_type, power_type); if (!regd) { ath11k_warn(ab, "failed to build regd from reg_info\n"); goto fallback; +--- a/drivers/net/wireless/ath/ath11k/reg.h ++++ b/drivers/net/wireless/ath/ath11k/reg.h +@@ -35,7 +35,7 @@ void ath11k_reg_free(struct ath11k_base + void ath11k_regd_update_work(struct work_struct *work); + struct ieee80211_regdomain * + ath11k_reg_build_regd(struct ath11k_base *ab, +- struct cur_regulatory_info *reg_info, bool intersect, ++ struct cur_regulatory_info *reg_info, + enum wmi_vdev_type vdev_type, + enum ieee80211_ap_reg_power power_type); + int ath11k_regd_update(struct ath11k *ar); diff --git a/package/kernel/mac80211/patches/ath9k/512-ath9k_channelbw_debugfs.patch b/package/kernel/mac80211/patches/ath9k/512-ath9k_channelbw_debugfs.patch index 3ec2d6ec6e..72eae8c7d6 100644 --- a/package/kernel/mac80211/patches/ath9k/512-ath9k_channelbw_debugfs.patch +++ b/package/kernel/mac80211/patches/ath9k/512-ath9k_channelbw_debugfs.patch @@ -10,7 +10,7 @@ sc->debug.debugfs_phy, &sc->sc_ah->gpio_mask); --- a/drivers/net/wireless/ath/ath.h +++ b/drivers/net/wireless/ath/ath.h -@@ -153,6 +153,7 @@ struct ath_common { +@@ -151,6 +151,7 @@ struct ath_common { int debug_mask; enum ath_device_state state; unsigned long op_flags; diff --git a/package/kernel/mac80211/patches/ath9k/531-ath9k_extra_platform_leds.patch b/package/kernel/mac80211/patches/ath9k/531-ath9k_extra_platform_leds.patch index 8ed7ad8a09..1055bd335c 100644 --- a/package/kernel/mac80211/patches/ath9k/531-ath9k_extra_platform_leds.patch +++ b/package/kernel/mac80211/patches/ath9k/531-ath9k_extra_platform_leds.patch @@ -1,15 +1,3 @@ ---- a/include/linux/ath9k_platform.h -+++ b/include/linux/ath9k_platform.h -@@ -46,6 +46,9 @@ struct ath9k_platform_data { - int (*external_reset)(void); - - bool use_eeprom; -+ -+ int num_leds; -+ const struct gpio_led *leds; - }; - - #endif /* _LINUX_ATH9K_PLATFORM_H */ --- a/drivers/net/wireless/ath/ath9k/gpio.c +++ b/drivers/net/wireless/ath/ath9k/gpio.c @@ -15,6 +15,7 @@ diff --git a/package/kernel/mac80211/patches/ath9k/542-ath9k_debugfs_diag.patch b/package/kernel/mac80211/patches/ath9k/542-ath9k_debugfs_diag.patch index f00ce5f3dc..a0e5a24ed8 100644 --- a/package/kernel/mac80211/patches/ath9k/542-ath9k_debugfs_diag.patch +++ b/package/kernel/mac80211/patches/ath9k/542-ath9k_debugfs_diag.patch @@ -125,7 +125,7 @@ REG_SET_BIT(ah, AR_BTCOEX_WL_LNADIV, AR_BTCOEX_WL_LNADIV_FORCE_ON); --- a/drivers/net/wireless/ath/ath9k/main.c +++ b/drivers/net/wireless/ath/ath9k/main.c -@@ -538,6 +538,11 @@ irqreturn_t ath_isr(int irq, void *dev) +@@ -537,6 +537,11 @@ irqreturn_t ath_isr(int irq, void *dev) return IRQ_HANDLED; } diff --git a/package/kernel/mac80211/patches/ath9k/543-ath9k_entropy_from_adc.patch b/package/kernel/mac80211/patches/ath9k/543-ath9k_entropy_from_adc.patch index 8b399f4b4c..0fedc71270 100644 --- a/package/kernel/mac80211/patches/ath9k/543-ath9k_entropy_from_adc.patch +++ b/package/kernel/mac80211/patches/ath9k/543-ath9k_entropy_from_adc.patch @@ -18,7 +18,7 @@ void (*spectral_scan_trigger)(struct ath_hw *ah); --- a/drivers/net/wireless/ath/ath9k/ar9003_phy.c +++ b/drivers/net/wireless/ath/ath9k/ar9003_phy.c -@@ -1918,6 +1918,26 @@ void ar9003_hw_init_rate_txpower(struct +@@ -1915,6 +1915,26 @@ void ar9003_hw_init_rate_txpower(struct } } @@ -45,7 +45,7 @@ void ar9003_hw_attach_phy_ops(struct ath_hw *ah) { struct ath_hw_private_ops *priv_ops = ath9k_hw_private_ops(ah); -@@ -1954,6 +1974,7 @@ void ar9003_hw_attach_phy_ops(struct ath +@@ -1951,6 +1971,7 @@ void ar9003_hw_attach_phy_ops(struct ath priv_ops->set_radar_params = ar9003_hw_set_radar_params; priv_ops->fast_chan_change = ar9003_hw_fast_chan_change; diff --git a/package/kernel/mac80211/patches/ath9k/545-ath9k_ani_ws_detect.patch b/package/kernel/mac80211/patches/ath9k/545-ath9k_ani_ws_detect.patch index d3bf07ff92..6027741cd8 100644 --- a/package/kernel/mac80211/patches/ath9k/545-ath9k_ani_ws_detect.patch +++ b/package/kernel/mac80211/patches/ath9k/545-ath9k_ani_ws_detect.patch @@ -79,7 +79,7 @@ static const u8 ofdm2pwr[] = { ALL_TARGET_LEGACY_6_24, ALL_TARGET_LEGACY_6_24, -@@ -1068,11 +1054,6 @@ static bool ar9003_hw_ani_control(struct +@@ -1065,11 +1051,6 @@ static bool ar9003_hw_ani_control(struct struct ath_common *common = ath9k_hw_common(ah); struct ath9k_channel *chan = ah->curchan; struct ar5416AniState *aniState = &ah->ani; @@ -91,7 +91,7 @@ s32 value, value2; switch (cmd & ah->ani_function) { -@@ -1086,61 +1067,6 @@ static bool ar9003_hw_ani_control(struct +@@ -1083,61 +1064,6 @@ static bool ar9003_hw_ani_control(struct */ u32 on = param ? 1 : 0; diff --git a/package/kernel/mac80211/patches/ath9k/549-ath9k_enable_gpio_buttons.patch b/package/kernel/mac80211/patches/ath9k/549-ath9k_enable_gpio_buttons.patch index 83076b8ae4..0b2acf8af1 100644 --- a/package/kernel/mac80211/patches/ath9k/549-ath9k_enable_gpio_buttons.patch +++ b/package/kernel/mac80211/patches/ath9k/549-ath9k_enable_gpio_buttons.patch @@ -128,16 +128,3 @@ Signed-off-by: Felix Fietkau if (pdata && pdata->leds && pdata->num_leds) for (i = 0; i < pdata->num_leds; i++) { ---- a/include/linux/ath9k_platform.h -+++ b/include/linux/ath9k_platform.h -@@ -49,6 +49,10 @@ struct ath9k_platform_data { - - int num_leds; - const struct gpio_led *leds; -+ -+ unsigned num_btns; -+ const struct gpio_keys_button *btns; -+ unsigned btn_poll_interval; - }; - - #endif /* _LINUX_ATH9K_PLATFORM_H */ diff --git a/package/kernel/mac80211/patches/ath9k/551-ath9k_ubnt_uap_plus_hsr.patch b/package/kernel/mac80211/patches/ath9k/551-ath9k_ubnt_uap_plus_hsr.patch index efd2932446..4e4cab986b 100644 --- a/package/kernel/mac80211/patches/ath9k/551-ath9k_ubnt_uap_plus_hsr.patch +++ b/package/kernel/mac80211/patches/ath9k/551-ath9k_ubnt_uap_plus_hsr.patch @@ -339,7 +339,7 @@ static void ath9k_flush(struct ieee80211_hw *hw, struct ieee80211_vif *vif, u32 queues, bool drop); -@@ -659,6 +660,7 @@ void ath_reset_work(struct work_struct * +@@ -658,6 +659,7 @@ void ath_reset_work(struct work_struct * static int ath9k_start(struct ieee80211_hw *hw) { struct ath_softc *sc = hw->priv; @@ -347,7 +347,7 @@ struct ath_hw *ah = sc->sc_ah; struct ath_common *common = ath9k_hw_common(ah); struct ieee80211_channel *curchan = sc->cur_chan->chandef.chan; -@@ -737,6 +739,11 @@ static int ath9k_start(struct ieee80211_ +@@ -736,6 +738,11 @@ static int ath9k_start(struct ieee80211_ AR_GPIO_OUTPUT_MUX_AS_OUTPUT); } @@ -371,7 +371,7 @@ --- a/local-symbols +++ b/local-symbols -@@ -128,6 +128,7 @@ ATH9K_WOW= +@@ -121,6 +121,7 @@ ATH9K_WOW= ATH9K_RFKILL= ATH9K_CHANNEL_CONTEXT= ATH9K_PCOEM= @@ -400,4 +400,4 @@ + config ATH9K_DEBUGFS bool "Atheros ath9k debugging" - depends on ATH9K && DEBUG_FS + depends on ATH9K && DEBUG_FS && MAC80211_DEBUGFS diff --git a/package/kernel/mac80211/patches/ath9k/552-ath9k-ahb_of.patch b/package/kernel/mac80211/patches/ath9k/552-ath9k-ahb_of.patch index 29e66c070c..a4efdcd1bc 100644 --- a/package/kernel/mac80211/patches/ath9k/552-ath9k-ahb_of.patch +++ b/package/kernel/mac80211/patches/ath9k/552-ath9k-ahb_of.patch @@ -209,7 +209,7 @@ static int ath_ahb_probe(struct platform_device *pdev) { void __iomem *mem; -@@ -80,6 +318,17 @@ static int ath_ahb_probe(struct platform +@@ -80,6 +274,17 @@ static int ath_ahb_probe(struct platform int ret = 0; struct ath_hw *ah; char hw_name[64]; @@ -227,7 +227,7 @@ if (!dev_get_platdata(&pdev->dev)) { dev_err(&pdev->dev, "no platform data specified\n"); -@@ -118,13 +367,16 @@ static int ath_ahb_probe(struct platform +@@ -118,17 +323,23 @@ static int ath_ahb_probe(struct platform sc->mem = mem; sc->irq = irq; @@ -245,18 +245,15 @@ if (ret) { dev_err(&pdev->dev, "failed to initialize device\n"); goto err_irq; -@@ -155,6 +407,9 @@ static int ath_ahb_remove(struct platfor - free_irq(sc->irq, sc); - ieee80211_free_hw(sc->hw); } +#ifdef CONFIG_OF + pdev->dev.platform_data = NULL; +#endif - return 0; - } -@@ -164,6 +419,9 @@ static struct platform_driver ath_ahb_dr - .remove = ath_ahb_remove, + ah = sc->sc_ah; + ath9k_hw_name(ah, hw_name, sizeof(hw_name)); +@@ -162,6 +373,9 @@ static struct platform_driver ath_ahb_dr + .remove_new = ath_ahb_remove, .driver = { .name = "ath9k", +#ifdef CONFIG_OF diff --git a/package/kernel/mac80211/patches/brcm/810-b43-gpio-mask-module-option.patch b/package/kernel/mac80211/patches/brcm/810-b43-gpio-mask-module-option.patch index 09ef50526f..295a4cca73 100644 --- a/package/kernel/mac80211/patches/brcm/810-b43-gpio-mask-module-option.patch +++ b/package/kernel/mac80211/patches/brcm/810-b43-gpio-mask-module-option.patch @@ -22,7 +22,7 @@ static int modparam_bad_frames_preempt; module_param_named(bad_frames_preempt, modparam_bad_frames_preempt, int, 0444); MODULE_PARM_DESC(bad_frames_preempt, -@@ -2869,10 +2874,10 @@ static int b43_gpio_init(struct b43_wlde +@@ -2870,10 +2875,10 @@ static int b43_gpio_init(struct b43_wlde u32 mask, set; b43_maskset32(dev, B43_MMIO_MACCTL, ~B43_MACCTL_GPOUTSMSK, 0); diff --git a/package/kernel/mac80211/patches/brcm/812-b43-add-antenna-control.patch b/package/kernel/mac80211/patches/brcm/812-b43-add-antenna-control.patch index 22b67c49d8..e9f915d2d9 100644 --- a/package/kernel/mac80211/patches/brcm/812-b43-add-antenna-control.patch +++ b/package/kernel/mac80211/patches/brcm/812-b43-add-antenna-control.patch @@ -9,7 +9,7 @@ antenna = b43_antenna_to_phyctl(antenna); ctl = b43_shm_read16(dev, B43_SHM_SHARED, B43_SHM_SH_BEACPHYCTL); /* We can't send beacons with short preamble. Would get PHY errors. */ -@@ -3284,8 +3284,8 @@ static int b43_chip_init(struct b43_wlde +@@ -3285,8 +3285,8 @@ static int b43_chip_init(struct b43_wlde /* Select the antennae */ if (phy->ops->set_rx_antenna) @@ -20,7 +20,7 @@ if (phy->type == B43_PHYTYPE_B) { value16 = b43_read16(dev, 0x005E); -@@ -3986,7 +3986,6 @@ static int b43_op_config(struct ieee8021 +@@ -3988,7 +3988,6 @@ static int b43_op_config(struct ieee8021 struct b43_wldev *dev = wl->current_dev; struct b43_phy *phy = &dev->phy; struct ieee80211_conf *conf = &hw->conf; @@ -28,7 +28,7 @@ int err = 0; mutex_lock(&wl->mutex); -@@ -4029,11 +4028,9 @@ static int b43_op_config(struct ieee8021 +@@ -4031,11 +4030,9 @@ static int b43_op_config(struct ieee8021 } /* Antennas for RX and management frame TX. */ @@ -42,7 +42,7 @@ if (wl->radio_enabled != phy->radio_on) { if (wl->radio_enabled) { -@@ -5176,6 +5173,47 @@ static int b43_op_get_survey(struct ieee +@@ -5178,6 +5175,47 @@ static int b43_op_get_survey(struct ieee return 0; } @@ -88,9 +88,9 @@ +} + static const struct ieee80211_ops b43_hw_ops = { - .tx = b43_op_tx, - .wake_tx_queue = ieee80211_handle_wake_tx_queue, -@@ -5198,6 +5236,8 @@ static const struct ieee80211_ops b43_hw + .add_chanctx = ieee80211_emulate_add_chanctx, + .remove_chanctx = ieee80211_emulate_remove_chanctx, +@@ -5204,6 +5242,8 @@ static const struct ieee80211_ops b43_hw .sw_scan_complete = b43_op_sw_scan_complete_notifier, .get_survey = b43_op_get_survey, .rfkill_poll = b43_rfkill_poll, @@ -99,7 +99,7 @@ }; /* Hard-reset the chip. Do not call this directly. -@@ -5499,6 +5539,8 @@ static int b43_one_core_attach(struct b4 +@@ -5505,6 +5545,8 @@ static int b43_one_core_attach(struct b4 if (!wldev) goto out; @@ -108,7 +108,7 @@ wldev->use_pio = b43_modparam_pio; wldev->dev = dev; wldev->wl = wl; -@@ -5590,6 +5632,9 @@ static struct b43_wl *b43_wireless_init( +@@ -5596,6 +5638,9 @@ static struct b43_wl *b43_wireless_init( wiphy_ext_feature_set(hw->wiphy, NL80211_EXT_FEATURE_CQM_RSSI_LIST); diff --git a/package/kernel/mac80211/patches/brcm/814-b43-only-use-gpio-0-1-for-led.patch b/package/kernel/mac80211/patches/brcm/814-b43-only-use-gpio-0-1-for-led.patch index 9cb0a32fd4..f7aa413208 100644 --- a/package/kernel/mac80211/patches/brcm/814-b43-only-use-gpio-0-1-for-led.patch +++ b/package/kernel/mac80211/patches/brcm/814-b43-only-use-gpio-0-1-for-led.patch @@ -1,6 +1,6 @@ --- a/drivers/net/wireless/broadcom/b43/main.c +++ b/drivers/net/wireless/broadcom/b43/main.c -@@ -2886,6 +2886,14 @@ static int b43_gpio_init(struct b43_wlde +@@ -2887,6 +2887,14 @@ static int b43_gpio_init(struct b43_wlde } else if (dev->dev->chip_id == 0x5354) { /* Don't allow overtaking buttons GPIOs */ set &= 0x2; /* 0x2 is LED GPIO on BCM5354 */ diff --git a/package/kernel/mac80211/patches/brcm/861-brcmfmac-workaround-bug-with-some-inconsistent-BSSes.patch b/package/kernel/mac80211/patches/brcm/861-brcmfmac-workaround-bug-with-some-inconsistent-BSSes.patch index b06172ec0e..84b989d858 100644 --- a/package/kernel/mac80211/patches/brcm/861-brcmfmac-workaround-bug-with-some-inconsistent-BSSes.patch +++ b/package/kernel/mac80211/patches/brcm/861-brcmfmac-workaround-bug-with-some-inconsistent-BSSes.patch @@ -10,7 +10,7 @@ Signed-off-by: Rafał Miłecki --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c -@@ -979,8 +979,36 @@ static struct wireless_dev *brcmf_cfg802 +@@ -980,8 +980,36 @@ static struct wireless_dev *brcmf_cfg802 struct brcmf_cfg80211_info *cfg = wiphy_to_cfg(wiphy); struct brcmf_pub *drvr = cfg->pub; struct wireless_dev *wdev; diff --git a/package/kernel/mac80211/patches/brcm/862-brcmfmac-Disable-power-management.patch b/package/kernel/mac80211/patches/brcm/862-brcmfmac-Disable-power-management.patch index 92e647816b..9f91b29c40 100644 --- a/package/kernel/mac80211/patches/brcm/862-brcmfmac-Disable-power-management.patch +++ b/package/kernel/mac80211/patches/brcm/862-brcmfmac-Disable-power-management.patch @@ -14,7 +14,7 @@ Signed-off-by: Phil Elwell --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c -@@ -3327,6 +3327,10 @@ brcmf_cfg80211_set_power_mgmt(struct wip +@@ -3313,6 +3313,10 @@ brcmf_cfg80211_set_power_mgmt(struct wip * preference in cfg struct to apply this to * FW later while initializing the dongle */ diff --git a/package/kernel/mac80211/patches/brcm/865-brcmfmac-disable-dump_survey-on-bcm2835.patch b/package/kernel/mac80211/patches/brcm/865-brcmfmac-disable-dump_survey-on-bcm2835.patch index bb87c69ff3..975647444f 100644 --- a/package/kernel/mac80211/patches/brcm/865-brcmfmac-disable-dump_survey-on-bcm2835.patch +++ b/package/kernel/mac80211/patches/brcm/865-brcmfmac-disable-dump_survey-on-bcm2835.patch @@ -9,7 +9,7 @@ Signed-off-by: Álvaro Fernández Rojas --- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c +++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/cfg80211.c -@@ -7987,6 +7987,7 @@ static s32 brcmf_translate_country_code( +@@ -7979,6 +7979,7 @@ static s32 brcmf_translate_country_code( return 0; } @@ -17,7 +17,7 @@ Signed-off-by: Álvaro Fernández Rojas static int brcmf_parse_dump_obss(char *buf, struct brcmf_dump_survey *survey) { -@@ -8209,6 +8210,7 @@ exit: +@@ -8201,6 +8202,7 @@ exit: brcmf_set_mpc(ifp, 1); return err; } @@ -25,7 +25,7 @@ Signed-off-by: Álvaro Fernández Rojas static void brcmf_cfg80211_reg_notifier(struct wiphy *wiphy, struct regulatory_request *req) -@@ -8361,8 +8363,10 @@ struct brcmf_cfg80211_info *brcmf_cfg802 +@@ -8353,8 +8355,10 @@ struct brcmf_cfg80211_info *brcmf_cfg802 if (brcmf_feat_is_enabled(ifp, BRCMF_FEAT_WOWL_GTK)) ops->set_rekey_data = brcmf_cfg80211_set_rekey_data; #endif diff --git a/package/kernel/mac80211/patches/build/001-fix_build.patch b/package/kernel/mac80211/patches/build/001-fix_build.patch index 8f63d36e2e..085eae3cd3 100644 --- a/package/kernel/mac80211/patches/build/001-fix_build.patch +++ b/package/kernel/mac80211/patches/build/001-fix_build.patch @@ -27,7 +27,7 @@ @set -e ; test -f local-symbols || ( \ echo "/--------------" ;\ echo "| You shouldn't run make in the backports tree, but only in" ;\ -@@ -60,58 +62,62 @@ mrproper: +@@ -60,57 +62,62 @@ mrproper: echo "| (that isn't currently running.)" ;\ echo "\\--" ;\ false) @@ -56,13 +56,12 @@ - done \ - ) > Kconfig.kernel ;\ - kver=$$($(MAKE) --no-print-directory -C $(KLIB_BUILD) M=$(BACKPORT_DIR) \ -- kernelversion | sed 's/^\(\([3-5]\|2\.6\)\.[0-9]\+\).*/\1/;t;d');\ +- kernelversion | sed 's/^\(\([3-6]\|2\.6\)\.[0-9]\+\).*/\1/;t;d');\ - test "$$kver" != "" || echo "Kernel version parse failed!" ;\ - test "$$kver" != "" ;\ -- kvers="$$(seq 14 39 | sed 's/^/2.6./')" ;\ -- kvers="$$kvers $$(seq 0 19 | sed 's/^/3./')" ;\ - kvers="$$kvers $$(seq 0 20 | sed 's/^/4./')" ;\ -- kvers="$$kvers $$(seq 0 99 | sed 's/^/5./')" ;\ +- kvers="$$kvers $$(seq 0 19 | sed 's/^/5./')" ;\ +- kvers="$$kvers $$(seq 0 20 | sed 's/^/6./')" ;\ - print=0 ;\ - for v in $$kvers ; do \ - if [ "$$print" = "1" ] ; then \ @@ -112,14 +111,13 @@ + @echo " done." + +Kconfig.versions: Kconfig.kernel -+ @kver=$$($(MAKE) --no-print-directory -C $(KLIB_BUILD) M=$(BACKPORT_DIR) \ -+ kernelversion | sed 's/^\(\([3-5]\|2\.6\)\.[0-9]\+\).*/\1/;t;d');\ ++ @kver=$$($(MAKE) --no-print-directory -C $(KLIB_BUILD) M=$(BACKPORT_DIR) \ ++ kernelversion | sed 's/^\(\([3-6]\|2\.6\)\.[0-9]\+\).*/\1/;t;d');\ + test "$$kver" != "" || echo "Kernel version parse failed!" ;\ + test "$$kver" != "" ;\ -+ kvers="$$(seq 14 39 | sed 's/^/2.6./')" ;\ -+ kvers="$$kvers $$(seq 0 19 | sed 's/^/3./')" ;\ + kvers="$$kvers $$(seq 0 20 | sed 's/^/4./')" ;\ -+ kvers="$$kvers $$(seq 0 99 | sed 's/^/5./')" ;\ ++ kvers="$$kvers $$(seq 0 19 | sed 's/^/5./')" ;\ ++ kvers="$$kvers $$(seq 0 20 | sed 's/^/6./')" ;\ + print=0 ;\ + for v in $$kvers ; do \ + if [ "$$print" = "1" ] ; then \ @@ -127,8 +125,9 @@ + echo " def_bool y" ;\ + fi ;\ + if [ "$$v" = "$$kver" ] ; then print=1 ; fi ;\ -+ done > $@ -+ @RHEL_MAJOR=$$(grep '^RHEL_MAJOR' $(KERNEL_MAKEFILE) | \ ++ done > Kconfig.versions ;\ ++ # RHEL as well, sadly we need to grep for it ;\ ++ RHEL_MAJOR=$$(grep '^RHEL_MAJOR' $(KERNEL_MAKEFILE) | \ + sed 's/.*=\s*\([0-9]*\)/\1/;t;d') ;\ + RHEL_MINOR=$$(grep '^RHEL_MINOR' $(KERNEL_MAKEFILE) | \ + sed 's/.*=\s*\([0-9]*\)/\1/;t;d') ;\ diff --git a/package/kernel/mac80211/patches/build/060-no_local_ssb_bcma.patch b/package/kernel/mac80211/patches/build/060-no_local_ssb_bcma.patch index 2a0f9ede42..0dad745b4f 100644 --- a/package/kernel/mac80211/patches/build/060-no_local_ssb_bcma.patch +++ b/package/kernel/mac80211/patches/build/060-no_local_ssb_bcma.patch @@ -1,6 +1,6 @@ --- a/local-symbols +++ b/local-symbols -@@ -493,43 +493,6 @@ USB_VL600= +@@ -471,43 +471,6 @@ USB_VL600= USB_NET_CH9200= USB_NET_AQC111= USB_RTL8153_ECM= @@ -90,7 +90,7 @@ config B43_PHY_G --- a/drivers/net/wireless/broadcom/b43/main.c +++ b/drivers/net/wireless/broadcom/b43/main.c -@@ -2853,7 +2853,7 @@ static struct ssb_device *b43_ssb_gpio_d +@@ -2854,7 +2854,7 @@ static struct ssb_device *b43_ssb_gpio_d { struct ssb_bus *bus = dev->dev->sdev->bus; @@ -99,7 +99,7 @@ return (bus->chipco.dev ? bus->chipco.dev : bus->pcicore.dev); #else return bus->chipco.dev; -@@ -4871,7 +4871,7 @@ static int b43_wireless_core_init(struct +@@ -4873,7 +4873,7 @@ static int b43_wireless_core_init(struct } if (sprom->boardflags_lo & B43_BFL_XTAL_NOSLOW) hf |= B43_HF_DSCRQ; /* Disable slowclock requests from ucode. */ @@ -171,7 +171,7 @@ depends on CORDIC --- a/Kconfig.local +++ b/Kconfig.local -@@ -1483,117 +1483,6 @@ config BACKPORTED_USB_NET_AQC111 +@@ -1417,117 +1417,6 @@ config BACKPORTED_USB_NET_AQC111 config BACKPORTED_USB_RTL8153_ECM tristate default USB_RTL8153_ECM @@ -303,7 +303,7 @@ source "$BACKPORT_DIR/drivers/staging/Kconfig" --- a/Makefile.kernel +++ b/Makefile.kernel -@@ -43,8 +43,6 @@ obj-$(CPTCFG_QRTR) += net/qrtr/ +@@ -42,8 +42,6 @@ obj-$(CPTCFG_QRTR) += net/qrtr/ obj-$(CPTCFG_QCOM_QMI_HELPERS) += drivers/soc/qcom/ obj-$(CPTCFG_MHI_BUS) += drivers/bus/mhi/ obj-$(CPTCFG_WLAN) += drivers/net/wireless/ diff --git a/package/kernel/mac80211/patches/build/080-resv_start_op.patch b/package/kernel/mac80211/patches/build/080-resv_start_op.patch deleted file mode 100644 index bbd9018bdf..0000000000 --- a/package/kernel/mac80211/patches/build/080-resv_start_op.patch +++ /dev/null @@ -1,24 +0,0 @@ ---- a/drivers/net/wireless/virtual/mac80211_hwsim.c -+++ b/drivers/net/wireless/virtual/mac80211_hwsim.c -@@ -6179,7 +6179,9 @@ static struct genl_family hwsim_genl_fam - .module = THIS_MODULE, - .small_ops = hwsim_ops, - .n_small_ops = ARRAY_SIZE(hwsim_ops), -+#if LINUX_VERSION_IS_GEQ(6,1,0) - .resv_start_op = HWSIM_CMD_REPORT_PMSR + 1, // match with __HWSIM_CMD_MAX -+#endif - .mcgrps = hwsim_mcgrps, - .n_mcgrps = ARRAY_SIZE(hwsim_mcgrps), - }; ---- a/net/wireless/nl80211.c -+++ b/net/wireless/nl80211.c -@@ -17551,7 +17551,9 @@ static struct genl_family nl80211_fam __ - .n_ops = ARRAY_SIZE(nl80211_ops), - .small_ops = nl80211_small_ops, - .n_small_ops = ARRAY_SIZE(nl80211_small_ops), -+#if LINUX_VERSION_IS_GEQ(6,1,0) - .resv_start_op = NL80211_CMD_REMOVE_LINK_STA + 1, -+#endif - .mcgrps = nl80211_mcgrps, - .n_mcgrps = ARRAY_SIZE(nl80211_mcgrps), - .parallel_ops = true, diff --git a/package/kernel/mac80211/patches/build/100-backports-drop-QRTR-and-MHI.patch b/package/kernel/mac80211/patches/build/100-backports-drop-QRTR-and-MHI.patch index b017a0ce14..a3a65c2d2a 100644 --- a/package/kernel/mac80211/patches/build/100-backports-drop-QRTR-and-MHI.patch +++ b/package/kernel/mac80211/patches/build/100-backports-drop-QRTR-and-MHI.patch @@ -32,7 +32,7 @@ Signed-off-by: Robert Marko source "$BACKPORT_DIR/drivers/net/usb/Kconfig" --- a/Makefile.kernel +++ b/Makefile.kernel -@@ -39,9 +39,7 @@ obj-y += compat/ +@@ -38,9 +38,7 @@ obj-y += compat/ obj-$(CPTCFG_CFG80211) += net/wireless/ obj-$(CPTCFG_MAC80211) += net/mac80211/ @@ -59,7 +59,7 @@ Signed-off-by: Robert Marko --- a/local-symbols +++ b/local-symbols -@@ -65,14 +65,6 @@ MAC80211_MESH_PS_DEBUG= +@@ -59,14 +59,6 @@ MAC80211_MESH_PS_DEBUG= MAC80211_TDLS_DEBUG= MAC80211_DEBUG_COUNTERS= MAC80211_STA_HASH_MAX_SIZE= @@ -73,4 +73,4 @@ Signed-off-by: Robert Marko -MHI_BUS_EP= QCOM_AOSS_QMP= QCOM_COMMAND_DB= - QCOM_CPR= + QCOM_GENI_SE= diff --git a/package/kernel/mac80211/patches/build/120-headers_version_fix.patch b/package/kernel/mac80211/patches/build/120-headers_version_fix.patch index 9a8c4749b2..21cf0b3134 100644 --- a/package/kernel/mac80211/patches/build/120-headers_version_fix.patch +++ b/package/kernel/mac80211/patches/build/120-headers_version_fix.patch @@ -1,6 +1,6 @@ --- a/backport-include/linux/random.h +++ b/backport-include/linux/random.h -@@ -23,7 +23,7 @@ static inline u16 get_random_u16(void) +@@ -15,7 +15,7 @@ static inline u16 get_random_u16(void) } #endif diff --git a/package/kernel/mac80211/patches/build/200-Revert-wifi-iwlwifi-Use-generic-thermal_zone_get_tri.patch b/package/kernel/mac80211/patches/build/200-Revert-wifi-iwlwifi-Use-generic-thermal_zone_get_tri.patch deleted file mode 100644 index 3a5285d2f3..0000000000 --- a/package/kernel/mac80211/patches/build/200-Revert-wifi-iwlwifi-Use-generic-thermal_zone_get_tri.patch +++ /dev/null @@ -1,159 +0,0 @@ -From: Felix Fietkau -Date: Mon, 17 Apr 2023 19:42:38 +0200 -Subject: [PATCH] Revert "wifi: iwlwifi: Use generic thermal_zone_get_trip() - function" - -This reverts commit 3d2f20ad46f83b333025f5e8e4afc34be8f13c4c. ---- - ---- a/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h -+++ b/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h -@@ -531,7 +531,7 @@ struct iwl_mvm_tt_mgmt { - * @tzone: thermal zone device data - */ - struct iwl_mvm_thermal_device { -- struct thermal_trip trips[IWL_MAX_DTS_TRIPS]; -+ s16 temp_trips[IWL_MAX_DTS_TRIPS]; - u8 fw_trips_index[IWL_MAX_DTS_TRIPS]; - struct thermal_zone_device *tzone; - }; ---- a/drivers/net/wireless/intel/iwlwifi/mvm/tt.c -+++ b/drivers/net/wireless/intel/iwlwifi/mvm/tt.c -@@ -573,11 +573,11 @@ int iwl_mvm_send_temp_report_ths_cmd(str - * and uncompressed, the FW should get it compressed and sorted - */ - -- /* compress trips to cmd array, remove uninitialized values*/ -+ /* compress temp_trips to cmd array, remove uninitialized values*/ - for (i = 0; i < IWL_MAX_DTS_TRIPS; i++) { -- if (mvm->tz_device.trips[i].temperature != INT_MIN) { -+ if (mvm->tz_device.temp_trips[i] != S16_MIN) { - cmd.thresholds[idx++] = -- cpu_to_le16((s16)(mvm->tz_device.trips[i].temperature / 1000)); -+ cpu_to_le16(mvm->tz_device.temp_trips[i]); - } - } - cmd.num_temps = cpu_to_le32(idx); -@@ -593,8 +593,8 @@ int iwl_mvm_send_temp_report_ths_cmd(str - */ - for (i = 0; i < idx; i++) { - for (j = 0; j < IWL_MAX_DTS_TRIPS; j++) { -- if ((int)(le16_to_cpu(cmd.thresholds[i]) * 1000) == -- mvm->tz_device.trips[j].temperature) -+ if (le16_to_cpu(cmd.thresholds[i]) == -+ mvm->tz_device.temp_trips[j]) - mvm->tz_device.fw_trips_index[i] = j; - } - } -@@ -638,12 +638,37 @@ out: - return ret; - } - -+static int iwl_mvm_tzone_get_trip_temp(struct thermal_zone_device *device, -+ int trip, int *temp) -+{ -+ struct iwl_mvm *mvm = (struct iwl_mvm *)device->devdata; -+ -+ if (trip < 0 || trip >= IWL_MAX_DTS_TRIPS) -+ return -EINVAL; -+ -+ *temp = mvm->tz_device.temp_trips[trip] * 1000; -+ -+ return 0; -+} -+ -+static int iwl_mvm_tzone_get_trip_type(struct thermal_zone_device *device, -+ int trip, enum thermal_trip_type *type) -+{ -+ if (trip < 0 || trip >= IWL_MAX_DTS_TRIPS) -+ return -EINVAL; -+ -+ *type = THERMAL_TRIP_PASSIVE; -+ -+ return 0; -+} -+ - static int iwl_mvm_tzone_set_trip_temp(struct thermal_zone_device *device, - int trip, int temp) - { - struct iwl_mvm *mvm = thermal_zone_device_priv(device); - struct iwl_mvm_thermal_device *tzone; -- int ret; -+ int i, ret; -+ s16 temperature; - - mutex_lock(&mvm->mutex); - -@@ -653,17 +678,40 @@ static int iwl_mvm_tzone_set_trip_temp(s - goto out; - } - -+ if (trip < 0 || trip >= IWL_MAX_DTS_TRIPS) { -+ ret = -EINVAL; -+ goto out; -+ } -+ - if ((temp / 1000) > S16_MAX) { - ret = -EINVAL; - goto out; - } - -+ temperature = (s16)(temp / 1000); - tzone = &mvm->tz_device; -+ - if (!tzone) { - ret = -EIO; - goto out; - } - -+ /* no updates*/ -+ if (tzone->temp_trips[trip] == temperature) { -+ ret = 0; -+ goto out; -+ } -+ -+ /* already existing temperature */ -+ for (i = 0; i < IWL_MAX_DTS_TRIPS; i++) { -+ if (tzone->temp_trips[i] == temperature) { -+ ret = -EINVAL; -+ goto out; -+ } -+ } -+ -+ tzone->temp_trips[trip] = temperature; -+ - ret = iwl_mvm_send_temp_report_ths_cmd(mvm); - out: - mutex_unlock(&mvm->mutex); -@@ -672,6 +720,8 @@ out: - - static struct thermal_zone_device_ops tzone_ops = { - .get_temp = iwl_mvm_tzone_get_temp, -+ .get_trip_temp = iwl_mvm_tzone_get_trip_temp, -+ .get_trip_type = iwl_mvm_tzone_get_trip_type, - .set_trip_temp = iwl_mvm_tzone_set_trip_temp, - }; - -@@ -693,8 +743,7 @@ static void iwl_mvm_thermal_zone_registe - BUILD_BUG_ON(ARRAY_SIZE(name) >= THERMAL_NAME_LENGTH); - - sprintf(name, "iwlwifi_%u", atomic_inc_return(&counter) & 0xFF); -- mvm->tz_device.tzone = thermal_zone_device_register_with_trips(name, -- mvm->tz_device.trips, -+ mvm->tz_device.tzone = thermal_zone_device_register(name, - IWL_MAX_DTS_TRIPS, - IWL_WRITABLE_TRIPS_MSK, - mvm, &tzone_ops, -@@ -717,10 +766,8 @@ static void iwl_mvm_thermal_zone_registe - /* 0 is a valid temperature, - * so initialize the array with S16_MIN which invalid temperature - */ -- for (i = 0 ; i < IWL_MAX_DTS_TRIPS; i++) { -- mvm->tz_device.trips[i].temperature = INT_MIN; -- mvm->tz_device.trips[i].type = THERMAL_TRIP_PASSIVE; -- } -+ for (i = 0 ; i < IWL_MAX_DTS_TRIPS; i++) -+ mvm->tz_device.temp_trips[i] = S16_MIN; - } - - static int iwl_mvm_tcool_get_max_state(struct thermal_cooling_device *cdev, diff --git a/package/kernel/mac80211/patches/build/200-iwlwifi_thermal_backport.patch b/package/kernel/mac80211/patches/build/200-iwlwifi_thermal_backport.patch new file mode 100644 index 0000000000..ad398d4d9d --- /dev/null +++ b/package/kernel/mac80211/patches/build/200-iwlwifi_thermal_backport.patch @@ -0,0 +1,26 @@ +--- a/drivers/net/wireless/intel/iwlwifi/mvm/tt.c ++++ b/drivers/net/wireless/intel/iwlwifi/mvm/tt.c +@@ -689,13 +689,23 @@ static void iwl_mvm_thermal_zone_registe + for (i = 0 ; i < IWL_MAX_DTS_TRIPS; i++) { + mvm->tz_device.trips[i].temperature = THERMAL_TEMP_INVALID; + mvm->tz_device.trips[i].type = THERMAL_TRIP_PASSIVE; ++#if LINUX_VERSION_IS_GEQ(6,9,0) + mvm->tz_device.trips[i].flags = THERMAL_TRIP_FLAG_RW_TEMP; ++#endif + } ++#if LINUX_VERSION_IS_GEQ(6,9,0) + mvm->tz_device.tzone = thermal_zone_device_register_with_trips(name, + mvm->tz_device.trips, + IWL_MAX_DTS_TRIPS, + mvm, &tzone_ops, + NULL, 0, 0); ++#else ++ mvm->tz_device.tzone = thermal_zone_device_register_with_trips(name, ++ mvm->tz_device.trips, ++ IWL_MAX_DTS_TRIPS, 0, ++ mvm, &tzone_ops, ++ NULL, 0, 0); ++#endif + if (IS_ERR(mvm->tz_device.tzone)) { + IWL_DEBUG_TEMP(mvm, + "Failed to register to thermal zone (err = %ld)\n", diff --git a/package/kernel/mac80211/patches/build/240-backport_genl_split_ops.patch b/package/kernel/mac80211/patches/build/210-backport_genl_split_ops.patch similarity index 55% rename from package/kernel/mac80211/patches/build/240-backport_genl_split_ops.patch rename to package/kernel/mac80211/patches/build/210-backport_genl_split_ops.patch index b22804cf92..d9d6b8a75b 100644 --- a/package/kernel/mac80211/patches/build/240-backport_genl_split_ops.patch +++ b/package/kernel/mac80211/patches/build/210-backport_genl_split_ops.patch @@ -1,31 +1,31 @@ --- a/net/wireless/nl80211.c +++ b/net/wireless/nl80211.c -@@ -16442,8 +16442,14 @@ static u32 nl80211_internal_flags[] = { +@@ -16383,9 +16383,14 @@ static u32 nl80211_internal_flags[] = { #undef SELECTOR }; +#if LINUX_VERSION_IS_LESS(6,2,0) - static int nl80211_pre_doit(const struct genl_ops *ops, struct sk_buff *skb, - struct genl_info *info) -+#else -+static int nl80211_pre_doit(const struct genl_split_ops *ops, -+ struct sk_buff *skb, ++static int nl80211_pre_doit(const struct genl_ops *ops, struct sk_buff *skb, + struct genl_info *info) ++#else + static int nl80211_pre_doit(const struct genl_split_ops *ops, + struct sk_buff *skb, + struct genl_info *info) +#endif { struct cfg80211_registered_device *rdev = NULL; struct wireless_dev *wdev = NULL; -@@ -16543,8 +16549,14 @@ out_unlock: +@@ -16485,9 +16490,14 @@ out_unlock: return err; } +#if LINUX_VERSION_IS_LESS(6,2,0) - static void nl80211_post_doit(const struct genl_ops *ops, struct sk_buff *skb, - struct genl_info *info) -+#else -+static void nl80211_post_doit(const struct genl_split_ops *ops, -+ struct sk_buff *skb, ++static void nl80211_post_doit(const struct genl_ops *ops, struct sk_buff *skb, + struct genl_info *info) ++#else + static void nl80211_post_doit(const struct genl_split_ops *ops, + struct sk_buff *skb, + struct genl_info *info) +#endif { u32 internal_flags = nl80211_internal_flags[ops->internal_flags]; diff --git a/package/kernel/mac80211/patches/build/210-revert-split-op.patch b/package/kernel/mac80211/patches/build/210-revert-split-op.patch deleted file mode 100644 index 4f1f8a7795..0000000000 --- a/package/kernel/mac80211/patches/build/210-revert-split-op.patch +++ /dev/null @@ -1,22 +0,0 @@ ---- a/net/wireless/nl80211.c -+++ b/net/wireless/nl80211.c -@@ -16442,8 +16442,7 @@ static u32 nl80211_internal_flags[] = { - #undef SELECTOR - }; - --static int nl80211_pre_doit(const struct genl_split_ops *ops, -- struct sk_buff *skb, -+static int nl80211_pre_doit(const struct genl_ops *ops, struct sk_buff *skb, - struct genl_info *info) - { - struct cfg80211_registered_device *rdev = NULL; -@@ -16544,8 +16543,7 @@ out_unlock: - return err; - } - --static void nl80211_post_doit(const struct genl_split_ops *ops, -- struct sk_buff *skb, -+static void nl80211_post_doit(const struct genl_ops *ops, struct sk_buff *skb, - struct genl_info *info) - { - u32 internal_flags = nl80211_internal_flags[ops->internal_flags]; diff --git a/package/kernel/mac80211/patches/build/230-backport_genl_info_userhdr.patch b/package/kernel/mac80211/patches/build/230-backport_genl_info_userhdr.patch deleted file mode 100644 index 38f86dc37a..0000000000 --- a/package/kernel/mac80211/patches/build/230-backport_genl_info_userhdr.patch +++ /dev/null @@ -1,32 +0,0 @@ ---- a/backport-include/net/genetlink.h -+++ b/backport-include/net/genetlink.h -@@ -3,6 +3,7 @@ - #include_next - #include - -+#if LINUX_VERSION_IS_LESS(4,12,0) - static inline void __bp_genl_info_userhdr_set(struct genl_info *info, - void *userhdr) - { -@@ -14,7 +15,6 @@ static inline void *__bp_genl_info_userh - return info->userhdr; - } - --#if LINUX_VERSION_IS_LESS(4,12,0) - #define GENL_SET_ERR_MSG(info, msg) NL_SET_ERR_MSG(genl_info_extack(info), msg) - - static inline int genl_err_attr(struct genl_info *info, int err, -@@ -44,11 +44,13 @@ static inline struct netlink_ext_ack *ge - #endif - } - -+#if LINUX_VERSION_IS_LESS(6,6,0) - /* this gets put in place of info->userhdr, since we use that above */ - static inline void *genl_info_userhdr(struct genl_info *info) - { - return (u8 *)info->genlhdr + GENL_HDRLEN; - } -+#endif - - #if LINUX_VERSION_IS_LESS(4,10,0) - #define __genl_ro_after_init diff --git a/package/kernel/mac80211/patches/build/230-brcmfmac_usb_driver_backport.patch b/package/kernel/mac80211/patches/build/230-brcmfmac_usb_driver_backport.patch new file mode 100644 index 0000000000..daeea38372 --- /dev/null +++ b/package/kernel/mac80211/patches/build/230-brcmfmac_usb_driver_backport.patch @@ -0,0 +1,14 @@ +--- a/drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c ++++ b/drivers/net/wireless/broadcom/brcm80211/brcmfmac/usb.c +@@ -1581,7 +1581,11 @@ static int brcmf_usb_reset_device(struct + + void brcmf_usb_exit(void) + { ++#if LINUX_VERSION_IS_GEQ(6,8,0) + struct device_driver *drv = &brcmf_usbdrvr.driver; ++#else ++ struct device_driver *drv = &brcmf_usbdrvr.drvwrap.driver; ++#endif + int ret; + + brcmf_dbg(USB, "Enter\n"); diff --git a/package/kernel/mac80211/patches/build/250-backport_iwlwifi_thermal.patch b/package/kernel/mac80211/patches/build/250-backport_iwlwifi_thermal.patch deleted file mode 100644 index 631fdd710d..0000000000 --- a/package/kernel/mac80211/patches/build/250-backport_iwlwifi_thermal.patch +++ /dev/null @@ -1,160 +0,0 @@ ---- a/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h -+++ b/drivers/net/wireless/intel/iwlwifi/mvm/mvm.h -@@ -531,7 +531,11 @@ struct iwl_mvm_tt_mgmt { - * @tzone: thermal zone device data - */ - struct iwl_mvm_thermal_device { -+#if LINUX_VERSION_IS_LESS(6,6,0) - s16 temp_trips[IWL_MAX_DTS_TRIPS]; -+#else -+ struct thermal_trip trips[IWL_MAX_DTS_TRIPS]; -+#endif - u8 fw_trips_index[IWL_MAX_DTS_TRIPS]; - struct thermal_zone_device *tzone; - }; ---- a/drivers/net/wireless/intel/iwlwifi/mvm/tt.c -+++ b/drivers/net/wireless/intel/iwlwifi/mvm/tt.c -@@ -573,6 +573,7 @@ int iwl_mvm_send_temp_report_ths_cmd(str - * and uncompressed, the FW should get it compressed and sorted - */ - -+#if LINUX_VERSION_IS_LESS(6,6,0) - /* compress temp_trips to cmd array, remove uninitialized values*/ - for (i = 0; i < IWL_MAX_DTS_TRIPS; i++) { - if (mvm->tz_device.temp_trips[i] != S16_MIN) { -@@ -580,6 +581,15 @@ int iwl_mvm_send_temp_report_ths_cmd(str - cpu_to_le16(mvm->tz_device.temp_trips[i]); - } - } -+#else -+ /* compress trips to cmd array, remove uninitialized values*/ -+ for (i = 0; i < IWL_MAX_DTS_TRIPS; i++) { -+ if (mvm->tz_device.trips[i].temperature != INT_MIN) { -+ cmd.thresholds[idx++] = -+ cpu_to_le16((s16)(mvm->tz_device.trips[i].temperature / 1000)); -+ } -+ } -+#endif - cmd.num_temps = cpu_to_le32(idx); - - if (!idx) -@@ -593,8 +603,13 @@ int iwl_mvm_send_temp_report_ths_cmd(str - */ - for (i = 0; i < idx; i++) { - for (j = 0; j < IWL_MAX_DTS_TRIPS; j++) { -+#if LINUX_VERSION_IS_LESS(6,6,0) - if (le16_to_cpu(cmd.thresholds[i]) == - mvm->tz_device.temp_trips[j]) -+#else -+ if ((int)(le16_to_cpu(cmd.thresholds[i]) * 1000) == -+ mvm->tz_device.trips[j].temperature) -+#endif - mvm->tz_device.fw_trips_index[i] = j; - } - } -@@ -638,6 +653,7 @@ out: - return ret; - } - -+#if LINUX_VERSION_IS_LESS(6,6,0) - static int iwl_mvm_tzone_get_trip_temp(struct thermal_zone_device *device, - int trip, int *temp) - { -@@ -661,14 +677,19 @@ static int iwl_mvm_tzone_get_trip_type(s - - return 0; - } -+#endif - - static int iwl_mvm_tzone_set_trip_temp(struct thermal_zone_device *device, - int trip, int temp) - { - struct iwl_mvm *mvm = thermal_zone_device_priv(device); - struct iwl_mvm_thermal_device *tzone; -+#if LINUX_VERSION_IS_LESS(6,6,0) - int i, ret; - s16 temperature; -+#else -+ int ret; -+#endif - - mutex_lock(&mvm->mutex); - -@@ -678,17 +699,21 @@ static int iwl_mvm_tzone_set_trip_temp(s - goto out; - } - -+#if LINUX_VERSION_IS_LESS(6,6,0) - if (trip < 0 || trip >= IWL_MAX_DTS_TRIPS) { - ret = -EINVAL; - goto out; - } -+#endif - - if ((temp / 1000) > S16_MAX) { - ret = -EINVAL; - goto out; - } - -+#if LINUX_VERSION_IS_LESS(6,6,0) - temperature = (s16)(temp / 1000); -+#endif - tzone = &mvm->tz_device; - - if (!tzone) { -@@ -696,6 +721,7 @@ static int iwl_mvm_tzone_set_trip_temp(s - goto out; - } - -+#if LINUX_VERSION_IS_LESS(6,6,0) - /* no updates*/ - if (tzone->temp_trips[trip] == temperature) { - ret = 0; -@@ -711,6 +737,7 @@ static int iwl_mvm_tzone_set_trip_temp(s - } - - tzone->temp_trips[trip] = temperature; -+#endif - - ret = iwl_mvm_send_temp_report_ths_cmd(mvm); - out: -@@ -720,8 +747,10 @@ out: - - static struct thermal_zone_device_ops tzone_ops = { - .get_temp = iwl_mvm_tzone_get_temp, -+#if LINUX_VERSION_IS_LESS(6,6,0) - .get_trip_temp = iwl_mvm_tzone_get_trip_temp, - .get_trip_type = iwl_mvm_tzone_get_trip_type, -+#endif - .set_trip_temp = iwl_mvm_tzone_set_trip_temp, - }; - -@@ -743,7 +772,12 @@ static void iwl_mvm_thermal_zone_registe - BUILD_BUG_ON(ARRAY_SIZE(name) >= THERMAL_NAME_LENGTH); - - sprintf(name, "iwlwifi_%u", atomic_inc_return(&counter) & 0xFF); -+#if LINUX_VERSION_IS_LESS(6,6,0) - mvm->tz_device.tzone = thermal_zone_device_register(name, -+#else -+ mvm->tz_device.tzone = thermal_zone_device_register_with_trips(name, -+ mvm->tz_device.trips, -+#endif - IWL_MAX_DTS_TRIPS, - IWL_WRITABLE_TRIPS_MSK, - mvm, &tzone_ops, -@@ -766,8 +800,15 @@ static void iwl_mvm_thermal_zone_registe - /* 0 is a valid temperature, - * so initialize the array with S16_MIN which invalid temperature - */ -+#if LINUX_VERSION_IS_LESS(6,6,0) - for (i = 0 ; i < IWL_MAX_DTS_TRIPS; i++) - mvm->tz_device.temp_trips[i] = S16_MIN; -+#else -+ for (i = 0 ; i < IWL_MAX_DTS_TRIPS; i++) { -+ mvm->tz_device.trips[i].temperature = INT_MIN; -+ mvm->tz_device.trips[i].type = THERMAL_TRIP_PASSIVE; -+ } -+#endif - } - - static int iwl_mvm_tcool_get_max_state(struct thermal_cooling_device *cdev, diff --git a/package/kernel/mac80211/patches/mwl/700-mwl8k-missing-pci-id-for-WNR854T.patch b/package/kernel/mac80211/patches/mwl/700-mwl8k-missing-pci-id-for-WNR854T.patch index 11536651b5..fb774b5201 100644 --- a/package/kernel/mac80211/patches/mwl/700-mwl8k-missing-pci-id-for-WNR854T.patch +++ b/package/kernel/mac80211/patches/mwl/700-mwl8k-missing-pci-id-for-WNR854T.patch @@ -1,6 +1,6 @@ --- a/drivers/net/wireless/marvell/mwl8k.c +++ b/drivers/net/wireless/marvell/mwl8k.c -@@ -5703,6 +5703,7 @@ MODULE_FIRMWARE("mwl8k/fmimage_8366.fw") +@@ -5707,6 +5707,7 @@ MODULE_FIRMWARE("mwl8k/fmimage_8366.fw") MODULE_FIRMWARE(MWL8K_8366_AP_FW(MWL8K_8366_AP_FW_API)); static const struct pci_device_id mwl8k_pci_id_table[] = { diff --git a/package/kernel/mac80211/patches/mwl/940-mwl8k_init_devices_synchronously.patch b/package/kernel/mac80211/patches/mwl/940-mwl8k_init_devices_synchronously.patch index c8d24283aa..06edc441ec 100644 --- a/package/kernel/mac80211/patches/mwl/940-mwl8k_init_devices_synchronously.patch +++ b/package/kernel/mac80211/patches/mwl/940-mwl8k_init_devices_synchronously.patch @@ -1,6 +1,6 @@ --- a/drivers/net/wireless/marvell/mwl8k.c +++ b/drivers/net/wireless/marvell/mwl8k.c -@@ -6289,6 +6289,8 @@ static int mwl8k_probe(struct pci_dev *p +@@ -6293,6 +6293,8 @@ static int mwl8k_probe(struct pci_dev *p priv->running_bsses = 0; @@ -9,7 +9,7 @@ return rc; err_stop_firmware: -@@ -6322,8 +6324,6 @@ static void mwl8k_remove(struct pci_dev +@@ -6326,8 +6328,6 @@ static void mwl8k_remove(struct pci_dev return; priv = hw->priv; diff --git a/package/kernel/mac80211/patches/mwl/950-mwifiex-Print-stringified-name-of-command-in-error-l.patch b/package/kernel/mac80211/patches/mwl/950-mwifiex-Print-stringified-name-of-command-in-error-l.patch index f4d97eeee2..a7ecabde82 100644 --- a/package/kernel/mac80211/patches/mwl/950-mwifiex-Print-stringified-name-of-command-in-error-l.patch +++ b/package/kernel/mac80211/patches/mwl/950-mwifiex-Print-stringified-name-of-command-in-error-l.patch @@ -139,7 +139,7 @@ Signed-off-by: Pali Rohár mwifiex_init_fw_complete(adapter); return -1; } else if (adapter->last_init_cmd == cmdresp_no) -@@ -1273,8 +1353,8 @@ mwifiex_process_sleep_confirm_resp(struc +@@ -1265,8 +1345,8 @@ mwifiex_process_sleep_confirm_resp(struc if (command != HostCmd_CMD_802_11_PS_MODE_ENH) { mwifiex_dbg(adapter, ERROR, @@ -152,7 +152,7 @@ Signed-off-by: Pali Rohár --- a/drivers/net/wireless/marvell/mwifiex/main.h +++ b/drivers/net/wireless/marvell/mwifiex/main.h -@@ -1086,6 +1086,8 @@ void mwifiex_cancel_all_pending_cmd(stru +@@ -1084,6 +1084,8 @@ void mwifiex_cancel_all_pending_cmd(stru void mwifiex_cancel_pending_scan_cmd(struct mwifiex_adapter *adapter); void mwifiex_cancel_scan(struct mwifiex_adapter *adapter); diff --git a/package/kernel/mac80211/patches/rt2x00/002-v6.7-wifi-rt2x00-fix-MT7620-low-RSSI-issue.patch b/package/kernel/mac80211/patches/rt2x00/002-v6.7-wifi-rt2x00-fix-MT7620-low-RSSI-issue.patch deleted file mode 100644 index ffb66559d1..0000000000 --- a/package/kernel/mac80211/patches/rt2x00/002-v6.7-wifi-rt2x00-fix-MT7620-low-RSSI-issue.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 2ecfe6f07e8e6257cad3d3290c5aec2102120041 Mon Sep 17 00:00:00 2001 -From: Shiji Yang -Date: Sat, 23 Sep 2023 09:01:01 +0800 -Subject: wifi: rt2x00: fix MT7620 low RSSI issue - -On Mediatek vendor driver[1], MT7620 (RT6352) uses different RSSI -base value '-2' compared to the other RT2x00 chips. This patch -introduces the SoC specific base value to fix the low RSSI value -reports on MT7620. - -[1] Found on MT76x2E_MT7620_LinuxAP_V3.0.4.0_P3 ConvertToRssi(). - -Signed-off-by: Shiji Yang -Acked-by: Stanislaw Gruszka -Signed-off-by: Kalle Valo -Link: https://lore.kernel.org/r/TYAP286MB031571CDB146C414A908A66DBCFEA@TYAP286MB0315.JPNP286.PROD.OUTLOOK.COM ---- - drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 7 ++++--- - 1 file changed, 4 insertions(+), 3 deletions(-) - ---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c -@@ -856,6 +856,7 @@ static int rt2800_agc_to_rssi(struct rt2 - s8 rssi0 = rt2x00_get_field32(rxwi_w2, RXWI_W2_RSSI0); - s8 rssi1 = rt2x00_get_field32(rxwi_w2, RXWI_W2_RSSI1); - s8 rssi2 = rt2x00_get_field32(rxwi_w2, RXWI_W2_RSSI2); -+ s8 base_val = rt2x00_rt(rt2x00dev, RT6352) ? -2 : -12; - u16 eeprom; - u8 offset0; - u8 offset1; -@@ -880,9 +881,9 @@ static int rt2800_agc_to_rssi(struct rt2 - * If the value in the descriptor is 0, it is considered invalid - * and the default (extremely low) rssi value is assumed - */ -- rssi0 = (rssi0) ? (-12 - offset0 - rt2x00dev->lna_gain - rssi0) : -128; -- rssi1 = (rssi1) ? (-12 - offset1 - rt2x00dev->lna_gain - rssi1) : -128; -- rssi2 = (rssi2) ? (-12 - offset2 - rt2x00dev->lna_gain - rssi2) : -128; -+ rssi0 = (rssi0) ? (base_val - offset0 - rt2x00dev->lna_gain - rssi0) : -128; -+ rssi1 = (rssi1) ? (base_val - offset1 - rt2x00dev->lna_gain - rssi1) : -128; -+ rssi2 = (rssi2) ? (base_val - offset2 - rt2x00dev->lna_gain - rssi2) : -128; - - /* - * mac80211 only accepts a single RSSI value. Calculating the diff --git a/package/kernel/mac80211/patches/rt2x00/003-v6.7-wifi-rt2x00-fix-rt2800-watchdog-function.patch b/package/kernel/mac80211/patches/rt2x00/003-v6.7-wifi-rt2x00-fix-rt2800-watchdog-function.patch deleted file mode 100644 index f253dacf2b..0000000000 --- a/package/kernel/mac80211/patches/rt2x00/003-v6.7-wifi-rt2x00-fix-rt2800-watchdog-function.patch +++ /dev/null @@ -1,78 +0,0 @@ -From 69708fbb2c698f262e03360d064c7066e0679953 Mon Sep 17 00:00:00 2001 -From: Shiji Yang -Date: Sat, 14 Oct 2023 14:55:01 +0800 -Subject: wifi: rt2x00: fix rt2800 watchdog function - -The watchdog function is broken on rt2800 series SoCs. This patch -fixes the incorrect watchdog logic to make it work again. - -1. Update current wdt queue index if it's not equal to the previous - index. Watchdog compares the current and previous queue index to - judge if the queue hung. -2. Make sure hung_{rx,tx} 'true' status won't be override by the - normal queue. Any queue hangs should trigger a reset action. -3. Clear the watchdog counter of all queues before resetting the - hardware. This change may help to avoid the reset loop. -4. Change hang check function return type to bool as we only need - to return two status, yes or no. - -Signed-off-by: Shiji Yang -Acked-by: Stanislaw Gruszka -Signed-off-by: Kalle Valo -Link: https://lore.kernel.org/r/TYAP286MB0315BC1D83D31154924F0D39BCD1A@TYAP286MB0315.JPNP286.PROD.OUTLOOK.COM ---- - drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 17 +++++++++++------ - 1 file changed, 11 insertions(+), 6 deletions(-) - ---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c -@@ -1237,13 +1237,14 @@ void rt2800_txdone_nostatus(struct rt2x0 - } - EXPORT_SYMBOL_GPL(rt2800_txdone_nostatus); - --static int rt2800_check_hung(struct data_queue *queue) -+static bool rt2800_check_hung(struct data_queue *queue) - { - unsigned int cur_idx = rt2800_drv_get_dma_done(queue); - -- if (queue->wd_idx != cur_idx) -+ if (queue->wd_idx != cur_idx) { -+ queue->wd_idx = cur_idx; - queue->wd_count = 0; -- else -+ } else - queue->wd_count++; - - return queue->wd_count > 16; -@@ -1280,7 +1281,7 @@ void rt2800_watchdog(struct rt2x00_dev * - case QID_MGMT: - if (rt2x00queue_empty(queue)) - continue; -- hung_tx = rt2800_check_hung(queue); -+ hung_tx = hung_tx || rt2800_check_hung(queue); - break; - case QID_RX: - /* For station mode we should reactive at least -@@ -1289,7 +1290,7 @@ void rt2800_watchdog(struct rt2x00_dev * - */ - if (rt2x00dev->intf_sta_count == 0) - continue; -- hung_rx = rt2800_check_hung(queue); -+ hung_rx = hung_rx || rt2800_check_hung(queue); - break; - default: - break; -@@ -1302,8 +1303,12 @@ void rt2800_watchdog(struct rt2x00_dev * - if (hung_rx) - rt2x00_warn(rt2x00dev, "Watchdog RX hung detected\n"); - -- if (hung_tx || hung_rx) -+ if (hung_tx || hung_rx) { -+ queue_for_each(rt2x00dev, queue) -+ queue->wd_count = 0; -+ - ieee80211_restart_hw(rt2x00dev->hw); -+ } - } - EXPORT_SYMBOL_GPL(rt2800_watchdog); - diff --git a/package/kernel/mac80211/patches/rt2x00/004-1-v6.7-wifi-rt2x00-improve-MT7620-register-initialization.patch b/package/kernel/mac80211/patches/rt2x00/004-1-v6.7-wifi-rt2x00-improve-MT7620-register-initialization.patch deleted file mode 100644 index 9f4dbb8346..0000000000 --- a/package/kernel/mac80211/patches/rt2x00/004-1-v6.7-wifi-rt2x00-improve-MT7620-register-initialization.patch +++ /dev/null @@ -1,124 +0,0 @@ -From 1ffe76d5ae78553948d67a978acd9945c2f0a175 Mon Sep 17 00:00:00 2001 -From: Shiji Yang -Date: Thu, 19 Oct 2023 19:58:56 +0800 -Subject: wifi: rt2x00: improve MT7620 register initialization - -1. Do not hard reset the BBP. We can use soft reset instead. This - change has some help to the calibration failure issue. -2. Enable falling back to legacy rate from the HT/RTS rate by - setting the HT_FBK_TO_LEGACY register. -3. Implement MCS rate specific maximum PSDU size. It can improve - the transmission quality under the low RSSI condition. -4. Set BBP_84 register value to 0x19. This is used for extension - channel overlapping IOT. - -Signed-off-by: Shiji Yang -Acked-by: Stanislaw Gruszka -Signed-off-by: Kalle Valo -Link: https://lore.kernel.org/r/TYAP286MB031553CCD4B7A3B89C85935DBCD4A@TYAP286MB0315.JPNP286.PROD.OUTLOOK.COM ---- - drivers/net/wireless/ralink/rt2x00/rt2800.h | 18 ++++++++++++++++++ - drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 24 ++++++++++++++++++++++++ - drivers/net/wireless/ralink/rt2x00/rt2800mmio.c | 3 +++ - 3 files changed, 45 insertions(+) - ---- a/drivers/net/wireless/ralink/rt2x00/rt2800.h -+++ b/drivers/net/wireless/ralink/rt2x00/rt2800.h -@@ -871,6 +871,18 @@ - #define LED_CFG_LED_POLAR FIELD32(0x40000000) - - /* -+ * AMPDU_MAX_LEN_20M1S: Per MCS max A-MPDU length, 20 MHz, MCS 0-7 -+ * AMPDU_MAX_LEN_20M2S: Per MCS max A-MPDU length, 20 MHz, MCS 8-15 -+ * AMPDU_MAX_LEN_40M1S: Per MCS max A-MPDU length, 40 MHz, MCS 0-7 -+ * AMPDU_MAX_LEN_40M2S: Per MCS max A-MPDU length, 40 MHz, MCS 8-15 -+ * Maximum A-MPDU length = 2^(AMPDU_MAX - 5) kilobytes -+ */ -+#define AMPDU_MAX_LEN_20M1S 0x1030 -+#define AMPDU_MAX_LEN_20M2S 0x1034 -+#define AMPDU_MAX_LEN_40M1S 0x1038 -+#define AMPDU_MAX_LEN_40M2S 0x103C -+ -+/* - * AMPDU_BA_WINSIZE: Force BlockAck window size - * FORCE_WINSIZE_ENABLE: - * 0: Disable forcing of BlockAck window size -@@ -1545,6 +1557,12 @@ - */ - #define EXP_ACK_TIME 0x1380 - -+/* -+ * HT_FBK_TO_LEGACY: Enable/Disable HT/RTS fallback to OFDM/CCK rate -+ * Not available for legacy SoCs -+ */ -+#define HT_FBK_TO_LEGACY 0x1384 -+ - /* TX_PWR_CFG_5 */ - #define TX_PWR_CFG_5 0x1384 - #define TX_PWR_CFG_5_MCS16_CH0 FIELD32(0x0000000f) ---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c -@@ -5851,6 +5851,7 @@ static int rt2800_init_registers(struct - struct rt2800_drv_data *drv_data = rt2x00dev->drv_data; - u32 reg; - u16 eeprom; -+ u8 bbp; - unsigned int i; - int ret; - -@@ -5860,6 +5861,19 @@ static int rt2800_init_registers(struct - if (ret) - return ret; - -+ if (rt2x00_rt(rt2x00dev, RT6352)) { -+ rt2800_register_write(rt2x00dev, MAC_SYS_CTRL, 0x01); -+ -+ bbp = rt2800_bbp_read(rt2x00dev, 21); -+ bbp |= 0x01; -+ rt2800_bbp_write(rt2x00dev, 21, bbp); -+ bbp = rt2800_bbp_read(rt2x00dev, 21); -+ bbp &= (~0x01); -+ rt2800_bbp_write(rt2x00dev, 21, bbp); -+ -+ rt2800_register_write(rt2x00dev, MAC_SYS_CTRL, 0x00); -+ } -+ - rt2800_register_write(rt2x00dev, LEGACY_BASIC_RATE, 0x0000013f); - rt2800_register_write(rt2x00dev, HT_BASIC_RATE, 0x00008003); - -@@ -6013,6 +6027,14 @@ static int rt2800_init_registers(struct - reg = rt2800_register_read(rt2x00dev, TX_ALC_CFG_1); - rt2x00_set_field32(®, TX_ALC_CFG_1_ROS_BUSY_EN, 0); - rt2800_register_write(rt2x00dev, TX_ALC_CFG_1, reg); -+ -+ rt2800_register_write(rt2x00dev, AMPDU_MAX_LEN_20M1S, 0x77754433); -+ rt2800_register_write(rt2x00dev, AMPDU_MAX_LEN_20M2S, 0x77765543); -+ rt2800_register_write(rt2x00dev, AMPDU_MAX_LEN_40M1S, 0x77765544); -+ rt2800_register_write(rt2x00dev, AMPDU_MAX_LEN_40M2S, 0x77765544); -+ -+ rt2800_register_write(rt2x00dev, HT_FBK_TO_LEGACY, 0x1010); -+ - } else { - rt2800_register_write(rt2x00dev, TX_SW_CFG0, 0x00000000); - rt2800_register_write(rt2x00dev, TX_SW_CFG1, 0x00080606); -@@ -7231,6 +7253,8 @@ static void rt2800_init_bbp_6352(struct - rt2800_bbp_dcoc_write(rt2x00dev, 159, 0x64); - - rt2800_bbp4_mac_if_ctrl(rt2x00dev); -+ -+ rt2800_bbp_write(rt2x00dev, 84, 0x19); - } - - static void rt2800_init_bbp(struct rt2x00_dev *rt2x00dev) ---- a/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c -+++ b/drivers/net/wireless/ralink/rt2x00/rt2800mmio.c -@@ -760,6 +760,9 @@ int rt2800mmio_init_registers(struct rt2 - - rt2x00mmio_register_write(rt2x00dev, PWR_PIN_CFG, 0x00000003); - -+ if (rt2x00_rt(rt2x00dev, RT6352)) -+ return 0; -+ - reg = 0; - rt2x00_set_field32(®, MAC_SYS_CTRL_RESET_CSR, 1); - rt2x00_set_field32(®, MAC_SYS_CTRL_RESET_BBP, 1); diff --git a/package/kernel/mac80211/patches/rt2x00/004-2-v6.7-wifi-rt2x00-rework-MT7620-channel-config-function.patch b/package/kernel/mac80211/patches/rt2x00/004-2-v6.7-wifi-rt2x00-rework-MT7620-channel-config-function.patch deleted file mode 100644 index 1aec73d762..0000000000 --- a/package/kernel/mac80211/patches/rt2x00/004-2-v6.7-wifi-rt2x00-rework-MT7620-channel-config-function.patch +++ /dev/null @@ -1,146 +0,0 @@ -From a28533c6be1711584bf3ec978309d5c590029821 Mon Sep 17 00:00:00 2001 -From: Shiji Yang -Date: Thu, 19 Oct 2023 19:58:57 +0800 -Subject: wifi: rt2x00: rework MT7620 channel config function - -1. Move the channel configuration code from rt2800_vco_calibration() - to the rt2800_config_channel(). -2. Use MT7620 SoC specific AGC initial LNA value instead of the - RT5592's value. -3. BBP{195,196} pairing write has been replaced with - rt2800_bbp_glrt_write() to reduce redundant code. - -Signed-off-by: Shiji Yang -Acked-by: Stanislaw Gruszka -Signed-off-by: Kalle Valo -Link: https://lore.kernel.org/r/TYAP286MB0315622A4340BFFA530B1B86BCD4A@TYAP286MB0315.JPNP286.PROD.OUTLOOK.COM ---- - drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 91 ++++++++++---------------- - 1 file changed, 35 insertions(+), 56 deletions(-) - ---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c -@@ -3861,14 +3861,6 @@ static void rt2800_config_channel_rf7620 - rfcsr |= tx_agc_fc; - rt2800_rfcsr_write_bank(rt2x00dev, 7, 59, rfcsr); - } -- -- if (conf_is_ht40(conf)) { -- rt2800_bbp_glrt_write(rt2x00dev, 141, 0x10); -- rt2800_bbp_glrt_write(rt2x00dev, 157, 0x2f); -- } else { -- rt2800_bbp_glrt_write(rt2x00dev, 141, 0x1a); -- rt2800_bbp_glrt_write(rt2x00dev, 157, 0x40); -- } - } - - static void rt2800_config_alc_rt6352(struct rt2x00_dev *rt2x00dev, -@@ -4437,32 +4429,46 @@ static void rt2800_config_channel(struct - usleep_range(1000, 1500); - } - -- if (rt2x00_rt(rt2x00dev, RT5592) || rt2x00_rt(rt2x00dev, RT6352)) { -- reg = 0x10; -- if (!conf_is_ht40(conf)) { -- if (rt2x00_rt(rt2x00dev, RT6352) && -- rt2x00_has_cap_external_lna_bg(rt2x00dev)) { -- reg |= 0x5; -- } else { -- reg |= 0xa; -- } -- } -- rt2800_bbp_write(rt2x00dev, 195, 141); -- rt2800_bbp_write(rt2x00dev, 196, reg); -+ if (rt2x00_rt(rt2x00dev, RT5592)) { -+ bbp = conf_is_ht40(conf) ? 0x10 : 0x1a; -+ rt2800_bbp_glrt_write(rt2x00dev, 141, bbp); - -- /* AGC init. -- * Despite the vendor driver using different values here for -- * RT6352 chip, we use 0x1c for now. This may have to be changed -- * once TSSI got implemented. -- */ -- reg = (rf->channel <= 14 ? 0x1c : 0x24) + 2*rt2x00dev->lna_gain; -- rt2800_bbp_write_with_rx_chain(rt2x00dev, 66, reg); -+ bbp = (rf->channel <= 14 ? 0x1c : 0x24) + 2 * rt2x00dev->lna_gain; -+ rt2800_bbp_write_with_rx_chain(rt2x00dev, 66, bbp); - -- if (rt2x00_rt(rt2x00dev, RT5592)) -- rt2800_iq_calibrate(rt2x00dev, rf->channel); -+ rt2800_iq_calibrate(rt2x00dev, rf->channel); - } - - if (rt2x00_rt(rt2x00dev, RT6352)) { -+ /* BBP for GLRT BW */ -+ bbp = conf_is_ht40(conf) ? -+ 0x10 : rt2x00_has_cap_external_lna_bg(rt2x00dev) ? -+ 0x15 : 0x1a; -+ rt2800_bbp_glrt_write(rt2x00dev, 141, bbp); -+ -+ bbp = conf_is_ht40(conf) ? 0x2f : 0x40; -+ rt2800_bbp_glrt_write(rt2x00dev, 157, bbp); -+ -+ if (rt2x00dev->default_ant.rx_chain_num == 1) { -+ rt2800_bbp_write(rt2x00dev, 91, 0x07); -+ rt2800_bbp_write(rt2x00dev, 95, 0x1a); -+ rt2800_bbp_glrt_write(rt2x00dev, 128, 0xa0); -+ rt2800_bbp_glrt_write(rt2x00dev, 170, 0x12); -+ rt2800_bbp_glrt_write(rt2x00dev, 171, 0x10); -+ } else { -+ rt2800_bbp_write(rt2x00dev, 91, 0x06); -+ rt2800_bbp_write(rt2x00dev, 95, 0x9a); -+ rt2800_bbp_glrt_write(rt2x00dev, 128, 0xe0); -+ rt2800_bbp_glrt_write(rt2x00dev, 170, 0x30); -+ rt2800_bbp_glrt_write(rt2x00dev, 171, 0x30); -+ } -+ -+ /* AGC init */ -+ bbp = rf->channel <= 14 ? 0x04 + 2 * rt2x00dev->lna_gain : 0; -+ rt2800_bbp_write_with_rx_chain(rt2x00dev, 66, bbp); -+ -+ usleep_range(1000, 1500); -+ - if (test_bit(CAPABILITY_EXTERNAL_PA_TX0, - &rt2x00dev->cap_flags)) { - reg = rt2800_register_read(rt2x00dev, RF_CONTROL3); -@@ -5608,26 +5614,6 @@ void rt2800_vco_calibration(struct rt2x0 - rt2800_register_write(rt2x00dev, TX_PIN_CFG, tx_pin); - - if (rt2x00_rt(rt2x00dev, RT6352)) { -- if (rt2x00dev->default_ant.rx_chain_num == 1) { -- rt2800_bbp_write(rt2x00dev, 91, 0x07); -- rt2800_bbp_write(rt2x00dev, 95, 0x1A); -- rt2800_bbp_write(rt2x00dev, 195, 128); -- rt2800_bbp_write(rt2x00dev, 196, 0xA0); -- rt2800_bbp_write(rt2x00dev, 195, 170); -- rt2800_bbp_write(rt2x00dev, 196, 0x12); -- rt2800_bbp_write(rt2x00dev, 195, 171); -- rt2800_bbp_write(rt2x00dev, 196, 0x10); -- } else { -- rt2800_bbp_write(rt2x00dev, 91, 0x06); -- rt2800_bbp_write(rt2x00dev, 95, 0x9A); -- rt2800_bbp_write(rt2x00dev, 195, 128); -- rt2800_bbp_write(rt2x00dev, 196, 0xE0); -- rt2800_bbp_write(rt2x00dev, 195, 170); -- rt2800_bbp_write(rt2x00dev, 196, 0x30); -- rt2800_bbp_write(rt2x00dev, 195, 171); -- rt2800_bbp_write(rt2x00dev, 196, 0x30); -- } -- - if (rt2x00_has_cap_external_lna_bg(rt2x00dev)) { - rt2800_bbp_write(rt2x00dev, 75, 0x68); - rt2800_bbp_write(rt2x00dev, 76, 0x4C); -@@ -5635,13 +5621,6 @@ void rt2800_vco_calibration(struct rt2x0 - rt2800_bbp_write(rt2x00dev, 80, 0x0C); - rt2800_bbp_write(rt2x00dev, 82, 0xB6); - } -- -- /* On 11A, We should delay and wait RF/BBP to be stable -- * and the appropriate time should be 1000 micro seconds -- * 2005/06/05 - On 11G, we also need this delay time. -- * Otherwise it's difficult to pass the WHQL. -- */ -- usleep_range(1000, 1500); - } - } - EXPORT_SYMBOL_GPL(rt2800_vco_calibration); diff --git a/package/kernel/mac80211/patches/rt2x00/004-3-v6.7-wifi-rt2x00-rework-MT7620-PA-LNA-RF-calibration.patch b/package/kernel/mac80211/patches/rt2x00/004-3-v6.7-wifi-rt2x00-rework-MT7620-PA-LNA-RF-calibration.patch deleted file mode 100644 index 64cd599c02..0000000000 --- a/package/kernel/mac80211/patches/rt2x00/004-3-v6.7-wifi-rt2x00-rework-MT7620-PA-LNA-RF-calibration.patch +++ /dev/null @@ -1,241 +0,0 @@ -From cca74bed37af1c8217bcd8282d9b384efdbf73bd Mon Sep 17 00:00:00 2001 -From: Shiji Yang -Date: Thu, 19 Oct 2023 19:58:58 +0800 -Subject: wifi: rt2x00: rework MT7620 PA/LNA RF calibration - -1. Move MT7620 PA/LNA calibration code to dedicated functions. -2. For external PA/LNA devices, restore RF and BBP registers before - R-Calibration. -3. Do Rx DCOC calibration again before RXIQ calibration. -4. Add some missing LNA related registers' initialization. - -Signed-off-by: Shiji Yang -Acked-by: Stanislaw Gruszka -Signed-off-by: Kalle Valo -Link: https://lore.kernel.org/r/TYAP286MB0315979F92DC563019B8F238BCD4A@TYAP286MB0315.JPNP286.PROD.OUTLOOK.COM ---- - drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 176 +++++++++++++++++-------- - drivers/net/wireless/ralink/rt2x00/rt2x00.h | 6 + - 2 files changed, 130 insertions(+), 52 deletions(-) - ---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c -@@ -4468,41 +4468,6 @@ static void rt2800_config_channel(struct - rt2800_bbp_write_with_rx_chain(rt2x00dev, 66, bbp); - - usleep_range(1000, 1500); -- -- if (test_bit(CAPABILITY_EXTERNAL_PA_TX0, -- &rt2x00dev->cap_flags)) { -- reg = rt2800_register_read(rt2x00dev, RF_CONTROL3); -- reg |= 0x00000101; -- rt2800_register_write(rt2x00dev, RF_CONTROL3, reg); -- -- reg = rt2800_register_read(rt2x00dev, RF_BYPASS3); -- reg |= 0x00000101; -- rt2800_register_write(rt2x00dev, RF_BYPASS3, reg); -- -- rt2800_rfcsr_write_chanreg(rt2x00dev, 43, 0x73); -- rt2800_rfcsr_write_chanreg(rt2x00dev, 44, 0x73); -- rt2800_rfcsr_write_chanreg(rt2x00dev, 45, 0x73); -- rt2800_rfcsr_write_chanreg(rt2x00dev, 46, 0x27); -- rt2800_rfcsr_write_chanreg(rt2x00dev, 47, 0xC8); -- rt2800_rfcsr_write_chanreg(rt2x00dev, 48, 0xA4); -- rt2800_rfcsr_write_chanreg(rt2x00dev, 49, 0x05); -- rt2800_rfcsr_write_chanreg(rt2x00dev, 54, 0x27); -- rt2800_rfcsr_write_chanreg(rt2x00dev, 55, 0xC8); -- rt2800_rfcsr_write_chanreg(rt2x00dev, 56, 0xA4); -- rt2800_rfcsr_write_chanreg(rt2x00dev, 57, 0x05); -- rt2800_rfcsr_write_chanreg(rt2x00dev, 58, 0x27); -- rt2800_rfcsr_write_chanreg(rt2x00dev, 59, 0xC8); -- rt2800_rfcsr_write_chanreg(rt2x00dev, 60, 0xA4); -- rt2800_rfcsr_write_chanreg(rt2x00dev, 61, 0x05); -- rt2800_rfcsr_write_dccal(rt2x00dev, 05, 0x00); -- -- rt2800_register_write(rt2x00dev, TX0_RF_GAIN_CORRECT, -- 0x36303636); -- rt2800_register_write(rt2x00dev, TX0_RF_GAIN_ATTEN, -- 0x6C6C6B6C); -- rt2800_register_write(rt2x00dev, TX1_RF_GAIN_ATTEN, -- 0x6C6C6B6C); -- } - } - - bbp = rt2800_bbp_read(rt2x00dev, 4); -@@ -5612,16 +5577,6 @@ void rt2800_vco_calibration(struct rt2x0 - } - } - rt2800_register_write(rt2x00dev, TX_PIN_CFG, tx_pin); -- -- if (rt2x00_rt(rt2x00dev, RT6352)) { -- if (rt2x00_has_cap_external_lna_bg(rt2x00dev)) { -- rt2800_bbp_write(rt2x00dev, 75, 0x68); -- rt2800_bbp_write(rt2x00dev, 76, 0x4C); -- rt2800_bbp_write(rt2x00dev, 79, 0x1C); -- rt2800_bbp_write(rt2x00dev, 80, 0x0C); -- rt2800_bbp_write(rt2x00dev, 82, 0xB6); -- } -- } - } - EXPORT_SYMBOL_GPL(rt2800_vco_calibration); - -@@ -10348,6 +10303,128 @@ do_cal: - rt2800_register_write(rt2x00dev, RF_BYPASS0, MAC_RF_BYPASS0); - } - -+static void rt2800_restore_rf_bbp_rt6352(struct rt2x00_dev *rt2x00dev) -+{ -+ if (rt2x00_has_cap_external_pa(rt2x00dev)) { -+ rt2800_register_write(rt2x00dev, RF_CONTROL3, 0x0); -+ rt2800_register_write(rt2x00dev, RF_BYPASS3, 0x0); -+ } -+ -+ if (rt2x00_has_cap_external_lna_bg(rt2x00dev)) { -+ rt2800_rfcsr_write_chanreg(rt2x00dev, 14, 0x16); -+ rt2800_rfcsr_write_chanreg(rt2x00dev, 17, 0x23); -+ rt2800_rfcsr_write_chanreg(rt2x00dev, 18, 0x02); -+ } -+ -+ if (rt2x00_has_cap_external_pa(rt2x00dev)) { -+ rt2800_rfcsr_write_chanreg(rt2x00dev, 43, 0xd3); -+ rt2800_rfcsr_write_chanreg(rt2x00dev, 44, 0xb3); -+ rt2800_rfcsr_write_chanreg(rt2x00dev, 45, 0xd5); -+ rt2800_rfcsr_write_chanreg(rt2x00dev, 46, 0x27); -+ rt2800_rfcsr_write_chanreg(rt2x00dev, 47, 0x6c); -+ rt2800_rfcsr_write_chanreg(rt2x00dev, 48, 0xfc); -+ rt2800_rfcsr_write_chanreg(rt2x00dev, 49, 0x1f); -+ rt2800_rfcsr_write_chanreg(rt2x00dev, 54, 0x27); -+ rt2800_rfcsr_write_chanreg(rt2x00dev, 55, 0x66); -+ rt2800_rfcsr_write_chanreg(rt2x00dev, 56, 0xff); -+ rt2800_rfcsr_write_chanreg(rt2x00dev, 57, 0x1c); -+ rt2800_rfcsr_write_chanreg(rt2x00dev, 58, 0x20); -+ rt2800_rfcsr_write_chanreg(rt2x00dev, 59, 0x6b); -+ rt2800_rfcsr_write_chanreg(rt2x00dev, 60, 0xf7); -+ rt2800_rfcsr_write_chanreg(rt2x00dev, 61, 0x09); -+ } -+ -+ if (rt2x00_has_cap_external_lna_bg(rt2x00dev)) { -+ rt2800_bbp_write(rt2x00dev, 75, 0x60); -+ rt2800_bbp_write(rt2x00dev, 76, 0x44); -+ rt2800_bbp_write(rt2x00dev, 79, 0x1c); -+ rt2800_bbp_write(rt2x00dev, 80, 0x0c); -+ rt2800_bbp_write(rt2x00dev, 82, 0xB6); -+ } -+ -+ if (rt2x00_has_cap_external_pa(rt2x00dev)) { -+ rt2800_register_write(rt2x00dev, TX0_RF_GAIN_CORRECT, 0x3630363a); -+ rt2800_register_write(rt2x00dev, TX0_RF_GAIN_ATTEN, 0x6c6c666c); -+ rt2800_register_write(rt2x00dev, TX1_RF_GAIN_ATTEN, 0x6c6c666c); -+ } -+} -+ -+static void rt2800_calibration_rt6352(struct rt2x00_dev *rt2x00dev) -+{ -+ u32 reg; -+ -+ if (rt2x00_has_cap_external_pa(rt2x00dev) || -+ rt2x00_has_cap_external_lna_bg(rt2x00dev)) -+ rt2800_restore_rf_bbp_rt6352(rt2x00dev); -+ -+ rt2800_r_calibration(rt2x00dev); -+ rt2800_rf_self_txdc_cal(rt2x00dev); -+ rt2800_rxdcoc_calibration(rt2x00dev); -+ rt2800_bw_filter_calibration(rt2x00dev, true); -+ rt2800_bw_filter_calibration(rt2x00dev, false); -+ rt2800_loft_iq_calibration(rt2x00dev); -+ -+ /* missing DPD calibration for internal PA devices */ -+ -+ rt2800_rxdcoc_calibration(rt2x00dev); -+ rt2800_rxiq_calibration(rt2x00dev); -+ -+ if (!rt2x00_has_cap_external_pa(rt2x00dev) && -+ !rt2x00_has_cap_external_lna_bg(rt2x00dev)) -+ return; -+ -+ if (rt2x00_has_cap_external_pa(rt2x00dev)) { -+ reg = rt2800_register_read(rt2x00dev, RF_CONTROL3); -+ reg |= 0x00000101; -+ rt2800_register_write(rt2x00dev, RF_CONTROL3, reg); -+ -+ reg = rt2800_register_read(rt2x00dev, RF_BYPASS3); -+ reg |= 0x00000101; -+ rt2800_register_write(rt2x00dev, RF_BYPASS3, reg); -+ } -+ -+ if (rt2x00_has_cap_external_lna_bg(rt2x00dev)) { -+ rt2800_rfcsr_write_chanreg(rt2x00dev, 14, 0x66); -+ rt2800_rfcsr_write_chanreg(rt2x00dev, 17, 0x20); -+ rt2800_rfcsr_write_chanreg(rt2x00dev, 18, 0x42); -+ } -+ -+ if (rt2x00_has_cap_external_pa(rt2x00dev)) { -+ rt2800_rfcsr_write_chanreg(rt2x00dev, 43, 0x73); -+ rt2800_rfcsr_write_chanreg(rt2x00dev, 44, 0x73); -+ rt2800_rfcsr_write_chanreg(rt2x00dev, 45, 0x73); -+ rt2800_rfcsr_write_chanreg(rt2x00dev, 46, 0x27); -+ rt2800_rfcsr_write_chanreg(rt2x00dev, 47, 0xc8); -+ rt2800_rfcsr_write_chanreg(rt2x00dev, 48, 0xa4); -+ rt2800_rfcsr_write_chanreg(rt2x00dev, 49, 0x05); -+ rt2800_rfcsr_write_chanreg(rt2x00dev, 54, 0x27); -+ rt2800_rfcsr_write_chanreg(rt2x00dev, 55, 0xc8); -+ rt2800_rfcsr_write_chanreg(rt2x00dev, 56, 0xa4); -+ rt2800_rfcsr_write_chanreg(rt2x00dev, 57, 0x05); -+ rt2800_rfcsr_write_chanreg(rt2x00dev, 58, 0x27); -+ rt2800_rfcsr_write_chanreg(rt2x00dev, 59, 0xc8); -+ rt2800_rfcsr_write_chanreg(rt2x00dev, 60, 0xa4); -+ rt2800_rfcsr_write_chanreg(rt2x00dev, 61, 0x05); -+ } -+ -+ if (rt2x00_has_cap_external_pa(rt2x00dev)) -+ rt2800_rfcsr_write_dccal(rt2x00dev, 05, 0x00); -+ -+ if (rt2x00_has_cap_external_lna_bg(rt2x00dev)) { -+ rt2800_bbp_write(rt2x00dev, 75, 0x68); -+ rt2800_bbp_write(rt2x00dev, 76, 0x4c); -+ rt2800_bbp_write(rt2x00dev, 79, 0x1c); -+ rt2800_bbp_write(rt2x00dev, 80, 0x0c); -+ rt2800_bbp_write(rt2x00dev, 82, 0xb6); -+ } -+ -+ if (rt2x00_has_cap_external_pa(rt2x00dev)) { -+ rt2800_register_write(rt2x00dev, TX0_RF_GAIN_CORRECT, 0x36303636); -+ rt2800_register_write(rt2x00dev, TX0_RF_GAIN_ATTEN, 0x6c6c6b6c); -+ rt2800_register_write(rt2x00dev, TX1_RF_GAIN_ATTEN, 0x6c6c6b6c); -+ } -+} -+ - static void rt2800_init_rfcsr_6352(struct rt2x00_dev *rt2x00dev) - { - /* Initialize RF central register to default value */ -@@ -10612,13 +10689,8 @@ static void rt2800_init_rfcsr_6352(struc - rt2800_rfcsr_write_dccal(rt2x00dev, 5, 0x00); - rt2800_rfcsr_write_dccal(rt2x00dev, 17, 0x7C); - -- rt2800_r_calibration(rt2x00dev); -- rt2800_rf_self_txdc_cal(rt2x00dev); -- rt2800_rxdcoc_calibration(rt2x00dev); -- rt2800_bw_filter_calibration(rt2x00dev, true); -- rt2800_bw_filter_calibration(rt2x00dev, false); -- rt2800_loft_iq_calibration(rt2x00dev); -- rt2800_rxiq_calibration(rt2x00dev); -+ /* Do calibration and init PA/LNA */ -+ rt2800_calibration_rt6352(rt2x00dev); - } - - static void rt2800_init_rfcsr(struct rt2x00_dev *rt2x00dev) ---- a/drivers/net/wireless/ralink/rt2x00/rt2x00.h -+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00.h -@@ -1263,6 +1263,12 @@ rt2x00_has_cap_external_lna_bg(struct rt - } - - static inline bool -+rt2x00_has_cap_external_pa(struct rt2x00_dev *rt2x00dev) -+{ -+ return rt2x00_has_cap_flag(rt2x00dev, CAPABILITY_EXTERNAL_PA_TX0); -+} -+ -+static inline bool - rt2x00_has_cap_double_antenna(struct rt2x00_dev *rt2x00dev) - { - return rt2x00_has_cap_flag(rt2x00dev, CAPABILITY_DOUBLE_ANTENNA); diff --git a/package/kernel/mac80211/patches/rt2x00/005-1-v6.8-wifi-rt2x00-introduce-DMA-busy-check-watchdog-for-rt.patch b/package/kernel/mac80211/patches/rt2x00/005-1-v6.8-wifi-rt2x00-introduce-DMA-busy-check-watchdog-for-rt.patch deleted file mode 100644 index c1c3225733..0000000000 --- a/package/kernel/mac80211/patches/rt2x00/005-1-v6.8-wifi-rt2x00-introduce-DMA-busy-check-watchdog-for-rt.patch +++ /dev/null @@ -1,177 +0,0 @@ -From b1275cdd7456ef811747dfb4f3c46310ddd300cd Mon Sep 17 00:00:00 2001 -From: Shiji Yang -Date: Sat, 4 Nov 2023 16:57:58 +0800 -Subject: wifi: rt2x00: introduce DMA busy check watchdog for rt2800 - -When I tried to fix the watchdog of rt2800, I found that sometimes -the watchdog can not reset the hung device. This is because the -queue is not completely stuck, it just becomes very slow. The MTK -vendor driver for the new chip MT7603/MT7612 has a DMA busy watchdog -to detect device hangs by checking DMA busy status. This watchdog -implementation is something similar to it. To reduce unnecessary -reset, we can check the INT_SOURCE_CSR register together as I found -that when the radio hung, the RX/TX coherent interrupt will always -stuck at triggered state. - -The 'watchdog' module parameter has been extended to control all -watchdogs(0=disabled, 1=hang watchdog, 2=DMA watchdog, 3=both). This -new watchdog function is a slight schedule and it won't affect the -transmission speed. So we can turn on it by default. Due to the -INT_SOURCE_CSR register is invalid on rt2800 USB NICs, the DMA busy -watchdog will be automatically disabled for them. - -Tested on MT7620 and RT5350. - -Signed-off-by: Shiji Yang -Acked-by: Stanislaw Gruszka -Signed-off-by: Kalle Valo -Link: https://lore.kernel.org/r/TYAP286MB0315D7462CE08A119A99DE34BCA4A@TYAP286MB0315.JPNP286.PROD.OUTLOOK.COM ---- - drivers/net/wireless/ralink/rt2x00/rt2800.h | 4 ++ - drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 77 ++++++++++++++++++++++---- - drivers/net/wireless/ralink/rt2x00/rt2x00.h | 3 + - 3 files changed, 73 insertions(+), 11 deletions(-) - ---- a/drivers/net/wireless/ralink/rt2x00/rt2800.h -+++ b/drivers/net/wireless/ralink/rt2x00/rt2800.h -@@ -3194,4 +3194,8 @@ enum rt2800_eeprom_word { - */ - #define BCN_TBTT_OFFSET 64 - -+/* Watchdog type mask */ -+#define RT2800_WATCHDOG_HANG BIT(0) -+#define RT2800_WATCHDOG_DMA_BUSY BIT(1) -+ - #endif /* RT2800_H */ ---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c -@@ -30,9 +30,10 @@ - #include "rt2800lib.h" - #include "rt2800.h" - --static bool modparam_watchdog; --module_param_named(watchdog, modparam_watchdog, bool, S_IRUGO); --MODULE_PARM_DESC(watchdog, "Enable watchdog to detect tx/rx hangs and reset hardware if detected"); -+static unsigned int modparam_watchdog = RT2800_WATCHDOG_DMA_BUSY; -+module_param_named(watchdog, modparam_watchdog, uint, 0444); -+MODULE_PARM_DESC(watchdog, "Enable watchdog to recover tx/rx hangs.\n" -+ "\t\t(0=disabled, 1=hang watchdog, 2=DMA watchdog(default), 3=both)"); - - /* - * Register access. -@@ -1261,15 +1262,12 @@ static void rt2800_update_survey(struct - chan_survey->time_ext_busy += rt2800_register_read(rt2x00dev, CH_BUSY_STA_SEC); - } - --void rt2800_watchdog(struct rt2x00_dev *rt2x00dev) -+static bool rt2800_watchdog_hung(struct rt2x00_dev *rt2x00dev) - { - struct data_queue *queue; - bool hung_tx = false; - bool hung_rx = false; - -- if (test_bit(DEVICE_STATE_SCANNING, &rt2x00dev->flags)) -- return; -- - rt2800_update_survey(rt2x00dev); - - queue_for_each(rt2x00dev, queue) { -@@ -1297,18 +1295,72 @@ void rt2800_watchdog(struct rt2x00_dev * - } - } - -+ if (!hung_tx && !hung_rx) -+ return false; -+ - if (hung_tx) - rt2x00_warn(rt2x00dev, "Watchdog TX hung detected\n"); - - if (hung_rx) - rt2x00_warn(rt2x00dev, "Watchdog RX hung detected\n"); - -- if (hung_tx || hung_rx) { -- queue_for_each(rt2x00dev, queue) -- queue->wd_count = 0; -+ queue_for_each(rt2x00dev, queue) -+ queue->wd_count = 0; -+ -+ return true; -+} -+ -+static bool rt2800_watchdog_dma_busy(struct rt2x00_dev *rt2x00dev) -+{ -+ bool busy_rx, busy_tx; -+ u32 reg_cfg = rt2800_register_read(rt2x00dev, WPDMA_GLO_CFG); -+ u32 reg_int = rt2800_register_read(rt2x00dev, INT_SOURCE_CSR); -+ -+ if (rt2x00_get_field32(reg_cfg, WPDMA_GLO_CFG_RX_DMA_BUSY) && -+ rt2x00_get_field32(reg_int, INT_SOURCE_CSR_RX_COHERENT)) -+ rt2x00dev->rxdma_busy++; -+ else -+ rt2x00dev->rxdma_busy = 0; - -+ if (rt2x00_get_field32(reg_cfg, WPDMA_GLO_CFG_TX_DMA_BUSY) && -+ rt2x00_get_field32(reg_int, INT_SOURCE_CSR_TX_COHERENT)) -+ rt2x00dev->txdma_busy++; -+ else -+ rt2x00dev->txdma_busy = 0; -+ -+ busy_rx = rt2x00dev->rxdma_busy > 30 ? true : false; -+ busy_tx = rt2x00dev->txdma_busy > 30 ? true : false; -+ -+ if (!busy_rx && !busy_tx) -+ return false; -+ -+ if (busy_rx) -+ rt2x00_warn(rt2x00dev, "Watchdog RX DMA busy detected\n"); -+ -+ if (busy_tx) -+ rt2x00_warn(rt2x00dev, "Watchdog TX DMA busy detected\n"); -+ -+ rt2x00dev->rxdma_busy = 0; -+ rt2x00dev->txdma_busy = 0; -+ -+ return true; -+} -+ -+void rt2800_watchdog(struct rt2x00_dev *rt2x00dev) -+{ -+ bool reset = false; -+ -+ if (test_bit(DEVICE_STATE_SCANNING, &rt2x00dev->flags)) -+ return; -+ -+ if (modparam_watchdog & RT2800_WATCHDOG_DMA_BUSY) -+ reset = rt2800_watchdog_dma_busy(rt2x00dev); -+ -+ if (modparam_watchdog & RT2800_WATCHDOG_HANG) -+ reset = rt2800_watchdog_hung(rt2x00dev) || reset; -+ -+ if (reset) - ieee80211_restart_hw(rt2x00dev->hw); -- } - } - EXPORT_SYMBOL_GPL(rt2800_watchdog); - -@@ -12016,6 +12068,9 @@ int rt2800_probe_hw(struct rt2x00_dev *r - __set_bit(REQUIRE_TASKLET_CONTEXT, &rt2x00dev->cap_flags); - } - -+ /* USB NICs don't support DMA watchdog as INT_SOURCE_CSR is invalid */ -+ if (rt2x00_is_usb(rt2x00dev)) -+ modparam_watchdog &= ~RT2800_WATCHDOG_DMA_BUSY; - if (modparam_watchdog) { - __set_bit(CAPABILITY_RESTART_HW, &rt2x00dev->cap_flags); - rt2x00dev->link.watchdog_interval = msecs_to_jiffies(100); ---- a/drivers/net/wireless/ralink/rt2x00/rt2x00.h -+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00.h -@@ -926,6 +926,9 @@ struct rt2x00_dev { - */ - u16 beacon_int; - -+ /* Rx/Tx DMA busy watchdog counter */ -+ u16 rxdma_busy, txdma_busy; -+ - /** - * Timestamp of last received beacon - */ diff --git a/package/kernel/mac80211/patches/rt2x00/005-2-v6.8-wifi-rt2x00-disable-RTS-threshold-for-rt2800-by-defa.patch b/package/kernel/mac80211/patches/rt2x00/005-2-v6.8-wifi-rt2x00-disable-RTS-threshold-for-rt2800-by-defa.patch deleted file mode 100644 index b3e95da5a6..0000000000 --- a/package/kernel/mac80211/patches/rt2x00/005-2-v6.8-wifi-rt2x00-disable-RTS-threshold-for-rt2800-by-defa.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 570beb6285fd355904b22625da20809f477096c5 Mon Sep 17 00:00:00 2001 -From: Shiji Yang -Date: Sat, 4 Nov 2023 16:57:59 +0800 -Subject: wifi: rt2x00: disable RTS threshold for rt2800 by default - -rt2800 has a lot of registers to control the RTS enable/disable -status for different rates. And the driver control them via -rt2800_set_rts_threshold(). When RTS was disabled in user -interface, this function won't be called at all. This means that -the RTS is still 'on' for CCK and OFDM rates. So we'd better to -disable them by default because it should be like this. The RTS -for HT20 and HT40 is already default off so we don't need to -touch them. If we toggle the RTS status, these register bits -will be enable/disable again by rt2800_set_rts_threshold(). - -Signed-off-by: Shiji Yang -Acked-by: Stanislaw Gruszka -Signed-off-by: Kalle Valo -Link: https://lore.kernel.org/r/TYAP286MB03155DDB953155B7A2DE849ABCA4A@TYAP286MB0315.JPNP286.PROD.OUTLOOK.COM ---- - drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c -@@ -6100,7 +6100,7 @@ static int rt2800_init_registers(struct - rt2x00_set_field32(®, CCK_PROT_CFG_TX_OP_ALLOW_MM40, 0); - rt2x00_set_field32(®, CCK_PROT_CFG_TX_OP_ALLOW_GF20, 1); - rt2x00_set_field32(®, CCK_PROT_CFG_TX_OP_ALLOW_GF40, 0); -- rt2x00_set_field32(®, CCK_PROT_CFG_RTS_TH_EN, 1); -+ rt2x00_set_field32(®, CCK_PROT_CFG_RTS_TH_EN, 0); - rt2800_register_write(rt2x00dev, CCK_PROT_CFG, reg); - - reg = rt2800_register_read(rt2x00dev, OFDM_PROT_CFG); -@@ -6113,7 +6113,7 @@ static int rt2800_init_registers(struct - rt2x00_set_field32(®, OFDM_PROT_CFG_TX_OP_ALLOW_MM40, 0); - rt2x00_set_field32(®, OFDM_PROT_CFG_TX_OP_ALLOW_GF20, 1); - rt2x00_set_field32(®, OFDM_PROT_CFG_TX_OP_ALLOW_GF40, 0); -- rt2x00_set_field32(®, OFDM_PROT_CFG_RTS_TH_EN, 1); -+ rt2x00_set_field32(®, OFDM_PROT_CFG_RTS_TH_EN, 0); - rt2800_register_write(rt2x00dev, OFDM_PROT_CFG, reg); - - reg = rt2800_register_read(rt2x00dev, MM20_PROT_CFG); diff --git a/package/kernel/mac80211/patches/rt2x00/005-3-v6.8-wifi-rt2x00-restart-beacon-queue-when-hardware-reset.patch b/package/kernel/mac80211/patches/rt2x00/005-3-v6.8-wifi-rt2x00-restart-beacon-queue-when-hardware-reset.patch deleted file mode 100644 index 1fa7b8b0fb..0000000000 --- a/package/kernel/mac80211/patches/rt2x00/005-3-v6.8-wifi-rt2x00-restart-beacon-queue-when-hardware-reset.patch +++ /dev/null @@ -1,67 +0,0 @@ -From a11d965a218f0cd95b13fe44d0bcd8a20ce134a8 Mon Sep 17 00:00:00 2001 -From: Shiji Yang -Date: Sat, 4 Nov 2023 16:58:00 +0800 -Subject: wifi: rt2x00: restart beacon queue when hardware reset - -When a hardware reset is triggered, all registers are reset, so all -queues are forced to stop in hardware interface. However, mac80211 -will not automatically stop the queue. If we don't manually stop the -beacon queue, the queue will be deadlocked and unable to start again. -This patch fixes the issue where Apple devices cannot connect to the -AP after calling ieee80211_restart_hw(). - -Signed-off-by: Shiji Yang -Acked-by: Stanislaw Gruszka -Signed-off-by: Kalle Valo -Link: https://lore.kernel.org/r/TYAP286MB031530EB6D98DCE4DF20766CBCA4A@TYAP286MB0315.JPNP286.PROD.OUTLOOK.COM ---- - drivers/net/wireless/ralink/rt2x00/rt2x00dev.c | 3 +++ - drivers/net/wireless/ralink/rt2x00/rt2x00mac.c | 11 +++++++++++ - 2 files changed, 14 insertions(+) - ---- a/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c -+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00dev.c -@@ -101,6 +101,7 @@ void rt2x00lib_disable_radio(struct rt2x - rt2x00link_stop_tuner(rt2x00dev); - rt2x00queue_stop_queues(rt2x00dev); - rt2x00queue_flush_queues(rt2x00dev, true); -+ rt2x00queue_stop_queue(rt2x00dev->bcn); - - /* - * Disable radio. -@@ -1286,6 +1287,7 @@ int rt2x00lib_start(struct rt2x00_dev *r - rt2x00dev->intf_ap_count = 0; - rt2x00dev->intf_sta_count = 0; - rt2x00dev->intf_associated = 0; -+ rt2x00dev->intf_beaconing = 0; - - /* Enable the radio */ - retval = rt2x00lib_enable_radio(rt2x00dev); -@@ -1312,6 +1314,7 @@ void rt2x00lib_stop(struct rt2x00_dev *r - rt2x00dev->intf_ap_count = 0; - rt2x00dev->intf_sta_count = 0; - rt2x00dev->intf_associated = 0; -+ rt2x00dev->intf_beaconing = 0; - } - - static inline void rt2x00lib_set_if_combinations(struct rt2x00_dev *rt2x00dev) ---- a/drivers/net/wireless/ralink/rt2x00/rt2x00mac.c -+++ b/drivers/net/wireless/ralink/rt2x00/rt2x00mac.c -@@ -598,6 +598,17 @@ void rt2x00mac_bss_info_changed(struct i - */ - if (changes & BSS_CHANGED_BEACON_ENABLED) { - mutex_lock(&intf->beacon_skb_mutex); -+ -+ /* -+ * Clear the 'enable_beacon' flag and clear beacon because -+ * the beacon queue has been stopped after hardware reset. -+ */ -+ if (test_bit(DEVICE_STATE_RESET, &rt2x00dev->flags) && -+ intf->enable_beacon) { -+ intf->enable_beacon = false; -+ rt2x00queue_clear_beacon(rt2x00dev, vif); -+ } -+ - if (!bss_conf->enable_beacon && intf->enable_beacon) { - rt2x00dev->intf_beaconing--; - intf->enable_beacon = false; diff --git a/package/kernel/mac80211/patches/rt2x00/101-wifi-rt2x00-correct-wrong-BBP-register-in-RxDCOC-cal.patch b/package/kernel/mac80211/patches/rt2x00/101-wifi-rt2x00-correct-wrong-BBP-register-in-RxDCOC-cal.patch index 253d1d9c19..91ed123c01 100644 --- a/package/kernel/mac80211/patches/rt2x00/101-wifi-rt2x00-correct-wrong-BBP-register-in-RxDCOC-cal.patch +++ b/package/kernel/mac80211/patches/rt2x00/101-wifi-rt2x00-correct-wrong-BBP-register-in-RxDCOC-cal.patch @@ -15,12 +15,12 @@ Signed-off-by: Shiji Yang --- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c +++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c -@@ -8711,7 +8711,7 @@ static void rt2800_rxdcoc_calibration(st - rt2800_rfcsr_write_bank(rt2x00dev, 5, 4, saverfb5r4); - rt2800_rfcsr_write_bank(rt2x00dev, 7, 4, saverfb7r4); +@@ -8692,7 +8692,7 @@ static void rt2800_rxdcoc_calibration(st + rfvalue |= 0x03; + rt2800_rfcsr_write_bank(rt2x00dev, 0, 2, rfvalue); - rt2800_bbp_write(rt2x00dev, 158, 141); + rt2800_bbp_write(rt2x00dev, 158, 140); bbpreg = rt2800_bbp_read(rt2x00dev, 159); - bbpreg = bbpreg & (~0x40); + bbpreg |= 0x10; rt2800_bbp_write(rt2x00dev, 159, bbpreg); diff --git a/package/kernel/mac80211/patches/rt2x00/602-01-wifi-rt2x00-Add-support-for-loading-EEPROM-from-user.patch b/package/kernel/mac80211/patches/rt2x00/602-01-wifi-rt2x00-Add-support-for-loading-EEPROM-from-user.patch index 8b04473dbe..f90e109a88 100644 --- a/package/kernel/mac80211/patches/rt2x00/602-01-wifi-rt2x00-Add-support-for-loading-EEPROM-from-user.patch +++ b/package/kernel/mac80211/patches/rt2x00/602-01-wifi-rt2x00-Add-support-for-loading-EEPROM-from-user.patch @@ -21,7 +21,7 @@ Signed-off-by: Christian Marangi --- a/local-symbols +++ b/local-symbols -@@ -352,6 +352,7 @@ RT2X00_LIB_FIRMWARE= +@@ -334,6 +334,7 @@ RT2X00_LIB_FIRMWARE= RT2X00_LIB_CRYPTO= RT2X00_LIB_LEDS= RT2X00_LIB_DEBUGFS= @@ -89,7 +89,7 @@ Signed-off-by: Christian Marangi /* Firmware functions */ static char *rt2800soc_get_firmware_name(struct rt2x00_dev *rt2x00dev) { -@@ -168,7 +155,7 @@ static const struct rt2800_ops rt2800soc +@@ -172,7 +159,7 @@ static const struct rt2800_ops rt2800soc .register_multiread = rt2x00mmio_register_multiread, .register_multiwrite = rt2x00mmio_register_multiwrite, .regbusy_read = rt2x00mmio_regbusy_read, diff --git a/package/kernel/mac80211/patches/rt2x00/609-rt2x00-make-wmac-loadable-via-OF-on-rt288x-305x-SoC.patch b/package/kernel/mac80211/patches/rt2x00/609-rt2x00-make-wmac-loadable-via-OF-on-rt288x-305x-SoC.patch index c06ed07030..de2cf2dca7 100644 --- a/package/kernel/mac80211/patches/rt2x00/609-rt2x00-make-wmac-loadable-via-OF-on-rt288x-305x-SoC.patch +++ b/package/kernel/mac80211/patches/rt2x00/609-rt2x00-make-wmac-loadable-via-OF-on-rt288x-305x-SoC.patch @@ -13,7 +13,7 @@ Signed-off-by: John Crispin --- a/drivers/net/wireless/ralink/rt2x00/rt2800soc.c +++ b/drivers/net/wireless/ralink/rt2x00/rt2800soc.c -@@ -226,10 +226,17 @@ static int rt2800soc_probe(struct platfo +@@ -230,10 +230,17 @@ static int rt2800soc_probe(struct platfo return rt2x00soc_probe(pdev, &rt2800soc_ops); } diff --git a/package/kernel/mac80211/patches/rt2x00/610-rt2x00-change-led-polarity-from-OF.patch b/package/kernel/mac80211/patches/rt2x00/610-rt2x00-change-led-polarity-from-OF.patch index 8ee4e6cafa..4a819039da 100644 --- a/package/kernel/mac80211/patches/rt2x00/610-rt2x00-change-led-polarity-from-OF.patch +++ b/package/kernel/mac80211/patches/rt2x00/610-rt2x00-change-led-polarity-from-OF.patch @@ -8,7 +8,7 @@ #include "rt2x00.h" #include "rt2800lib.h" -@@ -11285,6 +11286,17 @@ static int rt2800_init_eeprom(struct rt2 +@@ -11282,6 +11283,17 @@ static int rt2800_init_eeprom(struct rt2 rt2800_init_led(rt2x00dev, &rt2x00dev->led_assoc, LED_TYPE_ASSOC); rt2800_init_led(rt2x00dev, &rt2x00dev->led_qual, LED_TYPE_QUALITY); diff --git a/package/kernel/mac80211/patches/rt2x00/994-rt2x00-import-support-for-external-LNA-on-MT7620.patch b/package/kernel/mac80211/patches/rt2x00/994-rt2x00-import-support-for-external-LNA-on-MT7620.patch index 3e48eab5d2..5b950539b9 100644 --- a/package/kernel/mac80211/patches/rt2x00/994-rt2x00-import-support-for-external-LNA-on-MT7620.patch +++ b/package/kernel/mac80211/patches/rt2x00/994-rt2x00-import-support-for-external-LNA-on-MT7620.patch @@ -52,7 +52,7 @@ Signed-off-by: Daniel Golle static const unsigned int rt2800_eeprom_map[EEPROM_WORD_COUNT] = { [EEPROM_CHIP_ID] = 0x0000, [EEPROM_VERSION] = 0x0001, -@@ -10407,8 +10425,10 @@ static void rt2800_calibration_rt6352(st +@@ -10404,8 +10422,10 @@ static void rt2800_calibration_rt6352(st u32 reg; if (rt2x00_has_cap_external_pa(rt2x00dev) || @@ -64,7 +64,7 @@ Signed-off-by: Daniel Golle rt2800_r_calibration(rt2x00dev); rt2800_rf_self_txdc_cal(rt2x00dev); -@@ -10426,6 +10446,8 @@ static void rt2800_calibration_rt6352(st +@@ -10423,6 +10443,8 @@ static void rt2800_calibration_rt6352(st !rt2x00_has_cap_external_lna_bg(rt2x00dev)) return; diff --git a/package/kernel/mac80211/patches/rt2x00/995-rt2x00-mt7620-introduce-accessors-for-CHIP_VER-register.patch b/package/kernel/mac80211/patches/rt2x00/995-rt2x00-mt7620-introduce-accessors-for-CHIP_VER-register.patch index 19f1edc928..b3828052e9 100644 --- a/package/kernel/mac80211/patches/rt2x00/995-rt2x00-mt7620-introduce-accessors-for-CHIP_VER-register.patch +++ b/package/kernel/mac80211/patches/rt2x00/995-rt2x00-mt7620-introduce-accessors-for-CHIP_VER-register.patch @@ -49,9 +49,9 @@ +static int rt2800pci_get_chipeco(void) { return 0; } + static const struct ieee80211_ops rt2800pci_mac80211_ops = { - .tx = rt2x00mac_tx, - .wake_tx_queue = ieee80211_handle_wake_tx_queue, -@@ -329,6 +333,9 @@ static const struct rt2800_ops rt2800pci + .add_chanctx = ieee80211_emulate_add_chanctx, + .remove_chanctx = ieee80211_emulate_remove_chanctx, +@@ -333,6 +337,9 @@ static const struct rt2800_ops rt2800pci .drv_init_registers = rt2800mmio_init_registers, .drv_get_txwi = rt2800mmio_get_txwi, .drv_get_dma_done = rt2800mmio_get_dma_done, @@ -102,9 +102,9 @@ +#endif + static const struct ieee80211_ops rt2800soc_mac80211_ops = { - .tx = rt2x00mac_tx, - .wake_tx_queue = ieee80211_handle_wake_tx_queue, -@@ -161,6 +188,9 @@ static const struct rt2800_ops rt2800soc + .add_chanctx = ieee80211_emulate_add_chanctx, + .remove_chanctx = ieee80211_emulate_remove_chanctx, +@@ -165,6 +192,9 @@ static const struct rt2800_ops rt2800soc .drv_init_registers = rt2800mmio_init_registers, .drv_get_txwi = rt2800mmio_get_txwi, .drv_get_dma_done = rt2800mmio_get_dma_done, @@ -125,9 +125,9 @@ +static int rt2800usb_get_chipeco(void) { return 0; } + static const struct ieee80211_ops rt2800usb_mac80211_ops = { - .tx = rt2x00mac_tx, - .wake_tx_queue = ieee80211_handle_wake_tx_queue, -@@ -672,6 +676,9 @@ static const struct rt2800_ops rt2800usb + .add_chanctx = ieee80211_emulate_add_chanctx, + .remove_chanctx = ieee80211_emulate_remove_chanctx, +@@ -676,6 +680,9 @@ static const struct rt2800_ops rt2800usb .drv_init_registers = rt2800usb_init_registers, .drv_get_txwi = rt2800usb_get_txwi, .drv_get_dma_done = rt2800usb_get_dma_done, diff --git a/package/kernel/mac80211/patches/rt2x00/996-rt2x00-mt7620-differentiate-based-on-SoC-CHIP_VER.patch b/package/kernel/mac80211/patches/rt2x00/996-rt2x00-mt7620-differentiate-based-on-SoC-CHIP_VER.patch index 0f699f5e18..4c07a10590 100644 --- a/package/kernel/mac80211/patches/rt2x00/996-rt2x00-mt7620-differentiate-based-on-SoC-CHIP_VER.patch +++ b/package/kernel/mac80211/patches/rt2x00/996-rt2x00-mt7620-differentiate-based-on-SoC-CHIP_VER.patch @@ -202,7 +202,7 @@ /* BBP for G band GLRT function (BBP_128 ~ BBP_221) */ rt2800_bbp_glrt_write(rt2x00dev, 0, 0x00); -@@ -10381,6 +10410,9 @@ static void rt2800_restore_rf_bbp_rt6352 +@@ -10378,6 +10407,9 @@ static void rt2800_restore_rf_bbp_rt6352 rt2800_register_write(rt2x00dev, RF_BYPASS3, 0x0); } @@ -212,7 +212,7 @@ if (rt2x00_has_cap_external_lna_bg(rt2x00dev)) { rt2800_rfcsr_write_chanreg(rt2x00dev, 14, 0x16); rt2800_rfcsr_write_chanreg(rt2x00dev, 17, 0x23); -@@ -10458,6 +10490,9 @@ static void rt2800_calibration_rt6352(st +@@ -10455,6 +10487,9 @@ static void rt2800_calibration_rt6352(st rt2800_register_write(rt2x00dev, RF_BYPASS3, reg); } @@ -222,7 +222,7 @@ if (rt2x00_has_cap_external_lna_bg(rt2x00dev)) { rt2800_rfcsr_write_chanreg(rt2x00dev, 14, 0x66); rt2800_rfcsr_write_chanreg(rt2x00dev, 17, 0x20); -@@ -10548,31 +10583,36 @@ static void rt2800_init_rfcsr_6352(struc +@@ -10545,31 +10580,36 @@ static void rt2800_init_rfcsr_6352(struc rt2800_rfcsr_write(rt2x00dev, 42, 0x5B); rt2800_rfcsr_write(rt2x00dev, 43, 0x00); @@ -284,7 +284,7 @@ /* Initialize RF channel register to default value */ rt2800_rfcsr_write_chanreg(rt2x00dev, 0, 0x03); -@@ -10638,63 +10678,71 @@ static void rt2800_init_rfcsr_6352(struc +@@ -10635,63 +10675,71 @@ static void rt2800_init_rfcsr_6352(struc rt2800_rfcsr_write_bank(rt2x00dev, 6, 45, 0xC5); @@ -411,7 +411,7 @@ /* Initialize RF DC calibration register to default value */ rt2800_rfcsr_write_dccal(rt2x00dev, 0, 0x47); -@@ -10757,12 +10805,17 @@ static void rt2800_init_rfcsr_6352(struc +@@ -10754,12 +10802,17 @@ static void rt2800_init_rfcsr_6352(struc rt2800_rfcsr_write_dccal(rt2x00dev, 62, 0x00); rt2800_rfcsr_write_dccal(rt2x00dev, 63, 0x00); diff --git a/package/kernel/mac80211/patches/rtl/001-01-v6.9-wifi-rtl8xxxu-remove-assignment-of-priv-vif-in-rtl8x.patch b/package/kernel/mac80211/patches/rtl/001-01-v6.9-wifi-rtl8xxxu-remove-assignment-of-priv-vif-in-rtl8x.patch deleted file mode 100644 index e0a01a8120..0000000000 --- a/package/kernel/mac80211/patches/rtl/001-01-v6.9-wifi-rtl8xxxu-remove-assignment-of-priv-vif-in-rtl8x.patch +++ /dev/null @@ -1,27 +0,0 @@ -From d55cb6d8a99441aff55cb9ce663a07f7f1667e83 Mon Sep 17 00:00:00 2001 -From: Martin Kaistra -Date: Fri, 22 Dec 2023 11:14:22 +0100 -Subject: [PATCH 01/21] wifi: rtl8xxxu: remove assignment of priv->vif in - rtl8xxxu_bss_info_changed() - -priv->vif gets already set in rtl8xxxu_add_interface, there is no need -to set it also in rtl8xxxu_bss_info_changed(). - -Signed-off-by: Martin Kaistra -Reviewed-by: Ping-Ke Shih -Signed-off-by: Kalle Valo -Link: https://msgid.link/20231222101442.626837-2-martin.kaistra@linutronix.de ---- - drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 1 - - 1 file changed, 1 deletion(-) - ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -@@ -5004,7 +5004,6 @@ rtl8xxxu_bss_info_changed(struct ieee802 - - rtl8xxxu_update_ra_report(rarpt, highest_rate, sgi, bw); - -- priv->vif = vif; - priv->rssi_level = RTL8XXXU_RATR_STA_INIT; - - priv->fops->update_rate_mask(priv, ramask, 0, sgi, diff --git a/package/kernel/mac80211/patches/rtl/001-02-v6.9-wifi-rtl8xxxu-prepare-supporting-two-virtual-interfa.patch b/package/kernel/mac80211/patches/rtl/001-02-v6.9-wifi-rtl8xxxu-prepare-supporting-two-virtual-interfa.patch deleted file mode 100644 index b1948bb7c2..0000000000 --- a/package/kernel/mac80211/patches/rtl/001-02-v6.9-wifi-rtl8xxxu-prepare-supporting-two-virtual-interfa.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 2bbd7d584046038ce655e476628bb15e1460fac6 Mon Sep 17 00:00:00 2001 -From: Martin Kaistra -Date: Fri, 22 Dec 2023 11:14:23 +0100 -Subject: [PATCH 02/21] wifi: rtl8xxxu: prepare supporting two virtual - interfaces - -To prepare for concurrent mode, add an array ("vifs") to rtl8xxxu_priv -to keep track of both interfaces. - -Keep the old priv->vif as long there are still users of it and let -priv->vifs[0] point to the same location. - -Signed-off-by: Martin Kaistra -Reviewed-by: Ping-Ke Shih -Signed-off-by: Kalle Valo -Link: https://msgid.link/20231222101442.626837-3-martin.kaistra@linutronix.de ---- - drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h | 2 ++ - drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 10 +++++++--- - 2 files changed, 9 insertions(+), 3 deletions(-) - ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h -@@ -1897,6 +1897,8 @@ struct rtl8xxxu_priv { - * is supported and no iface_combinations are provided. - */ - struct ieee80211_vif *vif; -+ -+ struct ieee80211_vif *vifs[2]; - struct delayed_work ra_watchdog; - struct work_struct c2hcmd_work; - struct sk_buff_head c2hcmd_queue; ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -@@ -6569,10 +6569,12 @@ static int rtl8xxxu_add_interface(struct - int ret; - u8 val8; - -- if (!priv->vif) -+ if (!priv->vif) { - priv->vif = vif; -- else -+ priv->vifs[0] = vif; -+ } else { - return -EOPNOTSUPP; -+ } - - switch (vif->type) { - case NL80211_IFTYPE_STATION: -@@ -6622,8 +6624,10 @@ static void rtl8xxxu_remove_interface(st - - dev_dbg(&priv->udev->dev, "%s\n", __func__); - -- if (priv->vif) -+ if (priv->vif) { - priv->vif = NULL; -+ priv->vifs[0] = NULL; -+ } - } - - static int rtl8xxxu_config(struct ieee80211_hw *hw, u32 changed) diff --git a/package/kernel/mac80211/patches/rtl/001-03-v6.9-wifi-rtl8xxxu-support-setting-linktype-for-both-inte.patch b/package/kernel/mac80211/patches/rtl/001-03-v6.9-wifi-rtl8xxxu-support-setting-linktype-for-both-inte.patch deleted file mode 100644 index f473fad118..0000000000 --- a/package/kernel/mac80211/patches/rtl/001-03-v6.9-wifi-rtl8xxxu-support-setting-linktype-for-both-inte.patch +++ /dev/null @@ -1,102 +0,0 @@ -From 7f444692cde83c1455682c2d0d2c9a666422b867 Mon Sep 17 00:00:00 2001 -From: Martin Kaistra -Date: Fri, 22 Dec 2023 11:14:24 +0100 -Subject: [PATCH 03/21] wifi: rtl8xxxu: support setting linktype for both - interfaces - -To prepare for concurrent mode, enhance the set_linktype function to be -able to set the linktype in the MSR register for both hardware ports. - -Until the users of set_linktype can handle multiple interfaces, use -port_num = 0. - -Signed-off-by: Martin Kaistra -Reviewed-by: Ping-Ke Shih -Signed-off-by: Kalle Valo -Link: https://msgid.link/20231222101442.626837-4-martin.kaistra@linutronix.de ---- - .../wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 37 +++++++++++-------- - 1 file changed, 22 insertions(+), 15 deletions(-) - ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -@@ -1633,33 +1633,41 @@ rtl8xxxu_gen1_set_tx_power(struct rtl8xx - } - - static void rtl8xxxu_set_linktype(struct rtl8xxxu_priv *priv, -- enum nl80211_iftype linktype) -+ enum nl80211_iftype linktype, int port_num) - { -- u8 val8; -- -- val8 = rtl8xxxu_read8(priv, REG_MSR); -- val8 &= ~MSR_LINKTYPE_MASK; -+ u8 val8, type; - - switch (linktype) { - case NL80211_IFTYPE_UNSPECIFIED: -- val8 |= MSR_LINKTYPE_NONE; -+ type = MSR_LINKTYPE_NONE; - break; - case NL80211_IFTYPE_ADHOC: -- val8 |= MSR_LINKTYPE_ADHOC; -+ type = MSR_LINKTYPE_ADHOC; - break; - case NL80211_IFTYPE_STATION: -- val8 |= MSR_LINKTYPE_STATION; -+ type = MSR_LINKTYPE_STATION; - break; - case NL80211_IFTYPE_AP: -- val8 |= MSR_LINKTYPE_AP; -+ type = MSR_LINKTYPE_AP; - break; - default: -- goto out; -+ return; -+ } -+ -+ switch (port_num) { -+ case 0: -+ val8 = rtl8xxxu_read8(priv, REG_MSR) & 0x0c; -+ val8 |= type; -+ break; -+ case 1: -+ val8 = rtl8xxxu_read8(priv, REG_MSR) & 0x03; -+ val8 |= type << 2; -+ break; -+ default: -+ return; - } - - rtl8xxxu_write8(priv, REG_MSR, val8); --out: -- return; - } - - static void -@@ -4236,7 +4244,6 @@ static int rtl8xxxu_init_device(struct i - } - - rtl8xxxu_set_mac(priv); -- rtl8xxxu_set_linktype(priv, NL80211_IFTYPE_STATION); - - /* - * Configure initial WMAC settings -@@ -4964,7 +4971,7 @@ rtl8xxxu_bss_info_changed(struct ieee802 - if (changed & BSS_CHANGED_ASSOC) { - dev_dbg(dev, "Changed ASSOC: %i!\n", vif->cfg.assoc); - -- rtl8xxxu_set_linktype(priv, vif->type); -+ rtl8xxxu_set_linktype(priv, vif->type, 0); - - if (vif->cfg.assoc) { - u32 ramask; -@@ -6610,7 +6617,7 @@ static int rtl8xxxu_add_interface(struct - ret = -EOPNOTSUPP; - } - -- rtl8xxxu_set_linktype(priv, vif->type); -+ rtl8xxxu_set_linktype(priv, vif->type, 0); - ether_addr_copy(priv->mac_addr, vif->addr); - rtl8xxxu_set_mac(priv); - diff --git a/package/kernel/mac80211/patches/rtl/001-04-v6.9-wifi-rtl8xxxu-8188e-convert-usage-of-priv-vif-to-pri.patch b/package/kernel/mac80211/patches/rtl/001-04-v6.9-wifi-rtl8xxxu-8188e-convert-usage-of-priv-vif-to-pri.patch deleted file mode 100644 index 160a71adc7..0000000000 --- a/package/kernel/mac80211/patches/rtl/001-04-v6.9-wifi-rtl8xxxu-8188e-convert-usage-of-priv-vif-to-pri.patch +++ /dev/null @@ -1,28 +0,0 @@ -From a047e46a7b98de384a158b25a05dc09aa7d70c5f Mon Sep 17 00:00:00 2001 -From: Martin Kaistra -Date: Fri, 22 Dec 2023 11:14:25 +0100 -Subject: [PATCH 04/21] wifi: rtl8xxxu: 8188e: convert usage of priv->vif to - priv->vifs[0] - -The driver currently does not support AP or concurrent mode for 8188e, -so just use priv->vifs[0] instead of priv->vif for now. - -Signed-off-by: Martin Kaistra -Reviewed-by: Ping-Ke Shih -Signed-off-by: Kalle Valo -Link: https://msgid.link/20231222101442.626837-5-martin.kaistra@linutronix.de ---- - drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8188e.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8188e.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8188e.c -@@ -1699,7 +1699,7 @@ void rtl8188e_handle_ra_tx_report2(struc - /* We only use macid 0, so only the first item is relevant. - * AP mode will use more of them if it's ever implemented. - */ -- if (!priv->vif || priv->vif->type == NL80211_IFTYPE_STATION) -+ if (!priv->vifs[0] || priv->vifs[0]->type == NL80211_IFTYPE_STATION) - items = 1; - - for (macid = 0; macid < items; macid++) { diff --git a/package/kernel/mac80211/patches/rtl/001-05-v6.9-wifi-rtl8xxxu-support-setting-mac-address-register-f.patch b/package/kernel/mac80211/patches/rtl/001-05-v6.9-wifi-rtl8xxxu-support-setting-mac-address-register-f.patch deleted file mode 100644 index c3e3fea450..0000000000 --- a/package/kernel/mac80211/patches/rtl/001-05-v6.9-wifi-rtl8xxxu-support-setting-mac-address-register-f.patch +++ /dev/null @@ -1,72 +0,0 @@ -From 00add60cad3c9690ac0f9d4f6685f96ccd607670 Mon Sep 17 00:00:00 2001 -From: Martin Kaistra -Date: Fri, 22 Dec 2023 11:14:26 +0100 -Subject: [PATCH 05/21] wifi: rtl8xxxu: support setting mac address register - for both interfaces - -To prepare for concurrent mode, enhance rtl8xxxu_set_mac() to write the -mac address of the respective interface to REG_MACID or REG_MACID1. - -Remove the call to rtl8xxxu_set_mac() from the init function as we set -it in rtl8xxxu_add_interface() later anyway. - -Until rtl8xxxu_add_interface() can handle both interfaces, call -rtl8xxxu_set_mac() with port_num = 0. - -Signed-off-by: Martin Kaistra -Reviewed-by: Ping-Ke Shih -Signed-off-by: Kalle Valo -Link: https://msgid.link/20231222101442.626837-6-martin.kaistra@linutronix.de ---- - .../wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 20 +++++++++++++------ - 1 file changed, 14 insertions(+), 6 deletions(-) - ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -@@ -3580,15 +3580,25 @@ void rtl8723a_phy_lc_calibrate(struct rt - rtl8xxxu_write8(priv, REG_TXPAUSE, 0x00); - } - --static int rtl8xxxu_set_mac(struct rtl8xxxu_priv *priv) -+static int rtl8xxxu_set_mac(struct rtl8xxxu_priv *priv, int port_num) - { - int i; - u16 reg; - -- reg = REG_MACID; -+ switch (port_num) { -+ case 0: -+ reg = REG_MACID; -+ break; -+ case 1: -+ reg = REG_MACID1; -+ break; -+ default: -+ WARN_ONCE("%s: invalid port_num\n", __func__); -+ return -EINVAL; -+ } - - for (i = 0; i < ETH_ALEN; i++) -- rtl8xxxu_write8(priv, reg + i, priv->mac_addr[i]); -+ rtl8xxxu_write8(priv, reg + i, priv->vifs[port_num]->addr[i]); - - return 0; - } -@@ -4243,8 +4253,6 @@ static int rtl8xxxu_init_device(struct i - rtl8xxxu_write32(priv, REG_HIMR, 0xffffffff); - } - -- rtl8xxxu_set_mac(priv); -- - /* - * Configure initial WMAC settings - */ -@@ -6619,7 +6627,7 @@ static int rtl8xxxu_add_interface(struct - - rtl8xxxu_set_linktype(priv, vif->type, 0); - ether_addr_copy(priv->mac_addr, vif->addr); -- rtl8xxxu_set_mac(priv); -+ rtl8xxxu_set_mac(priv, 0); - - return ret; - } diff --git a/package/kernel/mac80211/patches/rtl/001-06-v6.9-wifi-rtl8xxxu-extend-wifi-connected-check-to-both-in.patch b/package/kernel/mac80211/patches/rtl/001-06-v6.9-wifi-rtl8xxxu-extend-wifi-connected-check-to-both-in.patch deleted file mode 100644 index 70879f861f..0000000000 --- a/package/kernel/mac80211/patches/rtl/001-06-v6.9-wifi-rtl8xxxu-extend-wifi-connected-check-to-both-in.patch +++ /dev/null @@ -1,75 +0,0 @@ -From 9aa776209ca31695bead52674ad943848ccc97d5 Mon Sep 17 00:00:00 2001 -From: Martin Kaistra -Date: Fri, 22 Dec 2023 11:14:27 +0100 -Subject: [PATCH 06/21] wifi: rtl8xxxu: extend wifi connected check to both - interfaces - -There are multiple places in the code where the current connection -status of wifi is checked. The driver will support two interfaces soon -and either one of them (or both) could be connected. - -Convert all uses of (vif && vif->cfg.assoc) to a new helper -function rtl8xxxu_is_assoc() which checks both interfaces. - -Signed-off-by: Martin Kaistra -Reviewed-by: Ping-Ke Shih -Signed-off-by: Kalle Valo -Link: https://msgid.link/20231222101442.626837-7-martin.kaistra@linutronix.de ---- - .../wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 20 +++++++++---------- - 1 file changed, 9 insertions(+), 11 deletions(-) - ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -@@ -6043,18 +6043,20 @@ void rtl8723bu_update_bt_link_info(struc - btcoex->bt_busy = false; - } - -+static inline bool rtl8xxxu_is_assoc(struct rtl8xxxu_priv *priv) -+{ -+ return (priv->vifs[0] && priv->vifs[0]->cfg.assoc) || -+ (priv->vifs[1] && priv->vifs[1]->cfg.assoc); -+} -+ - static - void rtl8723bu_handle_bt_inquiry(struct rtl8xxxu_priv *priv) - { -- struct ieee80211_vif *vif; - struct rtl8xxxu_btcoex *btcoex; -- bool wifi_connected; - -- vif = priv->vif; - btcoex = &priv->bt_coex; -- wifi_connected = (vif && vif->cfg.assoc); - -- if (!wifi_connected) { -+ if (!rtl8xxxu_is_assoc(priv)) { - rtl8723bu_set_ps_tdma(priv, 0x8, 0x0, 0x0, 0x0, 0x0); - rtl8723bu_set_coex_with_type(priv, 0); - } else if (btcoex->has_sco || btcoex->has_hid || btcoex->has_a2dp) { -@@ -6072,15 +6074,11 @@ void rtl8723bu_handle_bt_inquiry(struct - static - void rtl8723bu_handle_bt_info(struct rtl8xxxu_priv *priv) - { -- struct ieee80211_vif *vif; - struct rtl8xxxu_btcoex *btcoex; -- bool wifi_connected; - -- vif = priv->vif; - btcoex = &priv->bt_coex; -- wifi_connected = (vif && vif->cfg.assoc); - -- if (wifi_connected) { -+ if (rtl8xxxu_is_assoc(priv)) { - u32 val32 = 0; - u32 high_prio_tx = 0, high_prio_rx = 0; - -@@ -7103,7 +7101,7 @@ static void rtl8xxxu_track_cfo(struct rt - int cfo_khz_a, cfo_khz_b, cfo_average; - int crystal_cap; - -- if (!priv->vif || !priv->vif->cfg.assoc) { -+ if (!rtl8xxxu_is_assoc(priv)) { - /* Reset */ - cfo->adjust = true; - diff --git a/package/kernel/mac80211/patches/rtl/001-07-v6.9-wifi-rtl8xxxu-extend-check-for-matching-bssid-to-bot.patch b/package/kernel/mac80211/patches/rtl/001-07-v6.9-wifi-rtl8xxxu-extend-check-for-matching-bssid-to-bot.patch deleted file mode 100644 index 2c53aded28..0000000000 --- a/package/kernel/mac80211/patches/rtl/001-07-v6.9-wifi-rtl8xxxu-extend-check-for-matching-bssid-to-bot.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 80fd8687db41b1e04f78c37137d090f2165cca6e Mon Sep 17 00:00:00 2001 -From: Martin Kaistra -Date: Fri, 22 Dec 2023 11:14:28 +0100 -Subject: [PATCH 07/21] wifi: rtl8xxxu: extend check for matching bssid to both - interfaces - -The driver will support two interfaces soon, which both can be in -station mode, so extend the check, whether cfo information should be -parsed, to cover both interfaces. - -For better code readability put the lines with priv->vifs[port_num] in a -separate function. - -Signed-off-by: Martin Kaistra -Reviewed-by: Ping-Ke Shih -Signed-off-by: Kalle Valo -Link: https://msgid.link/20231222101442.626837-8-martin.kaistra@linutronix.de ---- - .../wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 22 ++++++++++++------- - 1 file changed, 14 insertions(+), 8 deletions(-) - ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -@@ -5706,6 +5706,16 @@ static void rtl8xxxu_update_beacon_work_ - rtl8xxxu_send_beacon_frame(hw, vif); - } - -+static inline bool rtl8xxxu_is_packet_match_bssid(struct rtl8xxxu_priv *priv, -+ struct ieee80211_hdr *hdr, -+ int port_num) -+{ -+ return priv->vifs[port_num] && -+ priv->vifs[port_num]->type == NL80211_IFTYPE_STATION && -+ priv->vifs[port_num]->cfg.assoc && -+ ether_addr_equal(priv->vifs[port_num]->bss_conf.bssid, hdr->addr2); -+} -+ - void rtl8723au_rx_parse_phystats(struct rtl8xxxu_priv *priv, - struct ieee80211_rx_status *rx_status, - struct rtl8723au_phy_stats *phy_stats, -@@ -5722,12 +5732,10 @@ void rtl8723au_rx_parse_phystats(struct - rx_status->signal = priv->fops->cck_rssi(priv, phy_stats); - } else { - bool parse_cfo = priv->fops->set_crystal_cap && -- priv->vif && -- priv->vif->type == NL80211_IFTYPE_STATION && -- priv->vif->cfg.assoc && - !crc_icv_err && - !ieee80211_is_ctl(hdr->frame_control) && -- ether_addr_equal(priv->vif->bss_conf.bssid, hdr->addr2); -+ (rtl8xxxu_is_packet_match_bssid(priv, hdr, 0) || -+ rtl8xxxu_is_packet_match_bssid(priv, hdr, 1)); - - if (parse_cfo) { - priv->cfo_tracking.cfo_tail[0] = phy_stats->path_cfotail[0]; -@@ -5762,12 +5770,10 @@ static void jaguar2_rx_parse_phystats_ty - bool crc_icv_err) - { - bool parse_cfo = priv->fops->set_crystal_cap && -- priv->vif && -- priv->vif->type == NL80211_IFTYPE_STATION && -- priv->vif->cfg.assoc && - !crc_icv_err && - !ieee80211_is_ctl(hdr->frame_control) && -- ether_addr_equal(priv->vif->bss_conf.bssid, hdr->addr2); -+ (rtl8xxxu_is_packet_match_bssid(priv, hdr, 0) || -+ rtl8xxxu_is_packet_match_bssid(priv, hdr, 1)); - u8 pwdb_max = 0; - int rx_path; - diff --git a/package/kernel/mac80211/patches/rtl/001-08-v6.9-wifi-rtl8xxxu-don-t-parse-CFO-if-both-interfaces-are.patch b/package/kernel/mac80211/patches/rtl/001-08-v6.9-wifi-rtl8xxxu-don-t-parse-CFO-if-both-interfaces-are.patch deleted file mode 100644 index bad1c3cb27..0000000000 --- a/package/kernel/mac80211/patches/rtl/001-08-v6.9-wifi-rtl8xxxu-don-t-parse-CFO-if-both-interfaces-are.patch +++ /dev/null @@ -1,51 +0,0 @@ -From f86dd8eaf8da84ee5b803d90b8c311d7e2725d0b Mon Sep 17 00:00:00 2001 -From: Martin Kaistra -Date: Fri, 22 Dec 2023 11:14:29 +0100 -Subject: [PATCH 08/21] wifi: rtl8xxxu: don't parse CFO, if both interfaces are - connected in STA mode - -If both interfaces are in STATION mode and both are connected to an AP, -there might be conflicting CFO values for the two connections. Ignore -the CFO information in this case. - -Signed-off-by: Martin Kaistra -Reviewed-by: Ping-Ke Shih -Signed-off-by: Kalle Valo -Link: https://msgid.link/20231222101442.626837-9-martin.kaistra@linutronix.de ---- - drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 10 ++++++++++ - 1 file changed, 10 insertions(+) - ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -@@ -5716,6 +5716,14 @@ static inline bool rtl8xxxu_is_packet_ma - ether_addr_equal(priv->vifs[port_num]->bss_conf.bssid, hdr->addr2); - } - -+static inline bool rtl8xxxu_is_sta_sta(struct rtl8xxxu_priv *priv) -+{ -+ return (priv->vifs[0] && priv->vifs[0]->cfg.assoc && -+ priv->vifs[0]->type == NL80211_IFTYPE_STATION) && -+ (priv->vifs[1] && priv->vifs[1]->cfg.assoc && -+ priv->vifs[1]->type == NL80211_IFTYPE_STATION); -+} -+ - void rtl8723au_rx_parse_phystats(struct rtl8xxxu_priv *priv, - struct ieee80211_rx_status *rx_status, - struct rtl8723au_phy_stats *phy_stats, -@@ -5734,6 +5742,7 @@ void rtl8723au_rx_parse_phystats(struct - bool parse_cfo = priv->fops->set_crystal_cap && - !crc_icv_err && - !ieee80211_is_ctl(hdr->frame_control) && -+ !rtl8xxxu_is_sta_sta(priv) && - (rtl8xxxu_is_packet_match_bssid(priv, hdr, 0) || - rtl8xxxu_is_packet_match_bssid(priv, hdr, 1)); - -@@ -5772,6 +5781,7 @@ static void jaguar2_rx_parse_phystats_ty - bool parse_cfo = priv->fops->set_crystal_cap && - !crc_icv_err && - !ieee80211_is_ctl(hdr->frame_control) && -+ !rtl8xxxu_is_sta_sta(priv) && - (rtl8xxxu_is_packet_match_bssid(priv, hdr, 0) || - rtl8xxxu_is_packet_match_bssid(priv, hdr, 1)); - u8 pwdb_max = 0; diff --git a/package/kernel/mac80211/patches/rtl/001-09-v6.9-wifi-rtl8xxxu-support-setting-bssid-register-for-mul.patch b/package/kernel/mac80211/patches/rtl/001-09-v6.9-wifi-rtl8xxxu-support-setting-bssid-register-for-mul.patch deleted file mode 100644 index def70343b0..0000000000 --- a/package/kernel/mac80211/patches/rtl/001-09-v6.9-wifi-rtl8xxxu-support-setting-bssid-register-for-mul.patch +++ /dev/null @@ -1,67 +0,0 @@ -From 3ff7a05996f901a7a10068b42e9dc8435f908a4c Mon Sep 17 00:00:00 2001 -From: Martin Kaistra -Date: Fri, 22 Dec 2023 11:14:30 +0100 -Subject: [PATCH 09/21] wifi: rtl8xxxu: support setting bssid register for - multiple interfaces - -To prepare for concurrent mode, enhance rtl8xxxu_set_bssid() to write the -BSSID of the respective interface to REG_BSSID or REG_BSSID1. - -Like done with rtl8xxxu_set_mac(), call rtl8xxxu_set_bssid() with -port_num = 0, until the callers also support multiple interfaces. - -Signed-off-by: Martin Kaistra -Reviewed-by: Ping-Ke Shih -Signed-off-by: Kalle Valo -Link: https://msgid.link/20231222101442.626837-10-martin.kaistra@linutronix.de ---- - .../wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 18 ++++++++++++++---- - 1 file changed, 14 insertions(+), 4 deletions(-) - ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -@@ -3603,14 +3603,24 @@ static int rtl8xxxu_set_mac(struct rtl8x - return 0; - } - --static int rtl8xxxu_set_bssid(struct rtl8xxxu_priv *priv, const u8 *bssid) -+static int rtl8xxxu_set_bssid(struct rtl8xxxu_priv *priv, const u8 *bssid, int port_num) - { - int i; - u16 reg; - - dev_dbg(&priv->udev->dev, "%s: (%pM)\n", __func__, bssid); - -- reg = REG_BSSID; -+ switch (port_num) { -+ case 0: -+ reg = REG_BSSID; -+ break; -+ case 1: -+ reg = REG_BSSID1; -+ break; -+ default: -+ WARN_ONCE("%s: invalid port_num\n", __func__); -+ return -EINVAL; -+ } - - for (i = 0; i < ETH_ALEN; i++) - rtl8xxxu_write8(priv, reg + i, bssid[i]); -@@ -5068,7 +5078,7 @@ rtl8xxxu_bss_info_changed(struct ieee802 - - if (changed & BSS_CHANGED_BSSID) { - dev_dbg(dev, "Changed BSSID!\n"); -- rtl8xxxu_set_bssid(priv, bss_conf->bssid); -+ rtl8xxxu_set_bssid(priv, bss_conf->bssid, 0); - } - - if (changed & BSS_CHANGED_BASIC_RATES) { -@@ -5097,7 +5107,7 @@ static int rtl8xxxu_start_ap(struct ieee - struct device *dev = &priv->udev->dev; - - dev_dbg(dev, "Start AP mode\n"); -- rtl8xxxu_set_bssid(priv, vif->bss_conf.bssid); -+ rtl8xxxu_set_bssid(priv, vif->bss_conf.bssid, 0); - rtl8xxxu_write16(priv, REG_BCN_INTERVAL, vif->bss_conf.beacon_int); - priv->fops->report_connect(priv, RTL8XXXU_BC_MC_MACID, 0, true); - diff --git a/package/kernel/mac80211/patches/rtl/001-10-v6.9-wifi-rtl8xxxu-support-multiple-interfaces-in-set_aif.patch b/package/kernel/mac80211/patches/rtl/001-10-v6.9-wifi-rtl8xxxu-support-multiple-interfaces-in-set_aif.patch deleted file mode 100644 index b8cb66dd92..0000000000 --- a/package/kernel/mac80211/patches/rtl/001-10-v6.9-wifi-rtl8xxxu-support-multiple-interfaces-in-set_aif.patch +++ /dev/null @@ -1,44 +0,0 @@ -From 43532c050f8eec4056a21978fdb5b958e1477553 Mon Sep 17 00:00:00 2001 -From: Martin Kaistra -Date: Fri, 22 Dec 2023 11:14:31 +0100 -Subject: [PATCH 10/21] wifi: rtl8xxxu: support multiple interfaces in - set_aifs() - -In concurrent mode supported by this driver, both interfaces will use -the same channel and same wireless mode. -It is therefore possible to get the wireless mode by checking the first -connected interface. - -Signed-off-by: Martin Kaistra -Reviewed-by: Ping-Ke Shih -Signed-off-by: Kalle Valo -Link: https://msgid.link/20231222101442.626837-11-martin.kaistra@linutronix.de ---- - drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 10 ++++++++-- - 1 file changed, 8 insertions(+), 2 deletions(-) - ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -@@ -4913,14 +4913,20 @@ static void rtl8xxxu_set_aifs(struct rtl - u8 aifs, aifsn, sifs; - int i; - -- if (priv->vif) { -+ for (i = 0; i < ARRAY_SIZE(priv->vifs); i++) { -+ if (!priv->vifs[i]) -+ continue; -+ - struct ieee80211_sta *sta; - - rcu_read_lock(); -- sta = ieee80211_find_sta(priv->vif, priv->vif->bss_conf.bssid); -+ sta = ieee80211_find_sta(priv->vifs[i], priv->vifs[i]->bss_conf.bssid); - if (sta) - wireless_mode = rtl8xxxu_wireless_mode(priv->hw, sta); - rcu_read_unlock(); -+ -+ if (wireless_mode) -+ break; - } - - if (priv->hw->conf.chandef.chan->band == NL80211_BAND_5GHZ || diff --git a/package/kernel/mac80211/patches/rtl/001-11-v6.9-wifi-rtl8xxxu-support-multiple-interfaces-in-update_.patch b/package/kernel/mac80211/patches/rtl/001-11-v6.9-wifi-rtl8xxxu-support-multiple-interfaces-in-update_.patch deleted file mode 100644 index 63960e7ae7..0000000000 --- a/package/kernel/mac80211/patches/rtl/001-11-v6.9-wifi-rtl8xxxu-support-multiple-interfaces-in-update_.patch +++ /dev/null @@ -1,28 +0,0 @@ -From 05b22e9b7d84253f765cde01cb09d144094b61c9 Mon Sep 17 00:00:00 2001 -From: Martin Kaistra -Date: Fri, 22 Dec 2023 11:14:32 +0100 -Subject: [PATCH 11/21] wifi: rtl8xxxu: support multiple interfaces in - update_beacon_work_callback() - -As we only want to support AP mode/sending beacons on port 0, it is -enough to replace priv->vif with priv->vifs[0]. - -Signed-off-by: Martin Kaistra -Reviewed-by: Ping-Ke Shih -Signed-off-by: Kalle Valo -Link: https://msgid.link/20231222101442.626837-12-martin.kaistra@linutronix.de ---- - drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -@@ -5712,7 +5712,7 @@ static void rtl8xxxu_update_beacon_work_ - struct rtl8xxxu_priv *priv = - container_of(work, struct rtl8xxxu_priv, update_beacon_work); - struct ieee80211_hw *hw = priv->hw; -- struct ieee80211_vif *vif = priv->vif; -+ struct ieee80211_vif *vif = priv->vifs[0]; - - if (!vif) { - WARN_ONCE(true, "no vif to update beacon\n"); diff --git a/package/kernel/mac80211/patches/rtl/001-12-v6.9-wifi-rtl8xxxu-support-multiple-interfaces-in-configu.patch b/package/kernel/mac80211/patches/rtl/001-12-v6.9-wifi-rtl8xxxu-support-multiple-interfaces-in-configu.patch deleted file mode 100644 index 707236b7dc..0000000000 --- a/package/kernel/mac80211/patches/rtl/001-12-v6.9-wifi-rtl8xxxu-support-multiple-interfaces-in-configu.patch +++ /dev/null @@ -1,33 +0,0 @@ -From 6b76638287055791e74b32c401a39ea1b91e7158 Mon Sep 17 00:00:00 2001 -From: Martin Kaistra -Date: Fri, 22 Dec 2023 11:14:33 +0100 -Subject: [PATCH 12/21] wifi: rtl8xxxu: support multiple interfaces in - configure_filter() - -As we only want to support AP mode/sending beacons on port 0, change -from priv->vif to priv->vifs[0] in the check for AP mode. -Additionally, if we are in AP mode, don't filter RX beacon and probe -response frames to still allow working STATION mode on the other -interface. - -Signed-off-by: Martin Kaistra -Reviewed-by: Ping-Ke Shih -Signed-off-by: Kalle Valo -Link: https://msgid.link/20231222101442.626837-13-martin.kaistra@linutronix.de ---- - drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -@@ -6794,8 +6794,8 @@ static void rtl8xxxu_configure_filter(st - else - rcr |= RCR_CHECK_BSSID_BEACON | RCR_CHECK_BSSID_MATCH; - -- if (priv->vif && priv->vif->type == NL80211_IFTYPE_AP) -- rcr &= ~RCR_CHECK_BSSID_MATCH; -+ if (priv->vifs[0] && priv->vifs[0]->type == NL80211_IFTYPE_AP) -+ rcr &= ~(RCR_CHECK_BSSID_MATCH | RCR_CHECK_BSSID_BEACON); - - if (*total_flags & FIF_CONTROL) - rcr |= RCR_ACCEPT_CTRL_FRAME; diff --git a/package/kernel/mac80211/patches/rtl/001-13-v6.9-wifi-rtl8xxxu-support-multiple-interfaces-in-watchdo.patch b/package/kernel/mac80211/patches/rtl/001-13-v6.9-wifi-rtl8xxxu-support-multiple-interfaces-in-watchdo.patch deleted file mode 100644 index b174b704d7..0000000000 --- a/package/kernel/mac80211/patches/rtl/001-13-v6.9-wifi-rtl8xxxu-support-multiple-interfaces-in-watchdo.patch +++ /dev/null @@ -1,66 +0,0 @@ -From 3f9baa99f8429ea6f56e7cc8d881c027518e9573 Mon Sep 17 00:00:00 2001 -From: Martin Kaistra -Date: Fri, 22 Dec 2023 11:14:34 +0100 -Subject: [PATCH 13/21] wifi: rtl8xxxu: support multiple interfaces in - watchdog_callback() - -Check first whether priv->vifs[0] exists and is of type STATION, then go -to priv->vifs[1]. Make sure to call refresh_rate_mask for both -interfaces. - -Signed-off-by: Martin Kaistra -Reviewed-by: Ping-Ke Shih -Signed-off-by: Kalle Valo -Link: https://msgid.link/20231222101442.626837-14-martin.kaistra@linutronix.de ---- - .../wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 19 +++++++++++-------- - 1 file changed, 11 insertions(+), 8 deletions(-) - ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -@@ -7200,11 +7200,15 @@ static void rtl8xxxu_watchdog_callback(s - { - struct ieee80211_vif *vif; - struct rtl8xxxu_priv *priv; -+ int i; - - priv = container_of(work, struct rtl8xxxu_priv, ra_watchdog.work); -- vif = priv->vif; -+ for (i = 0; i < ARRAY_SIZE(priv->vifs); i++) { -+ vif = priv->vifs[i]; -+ -+ if (!vif || vif->type != NL80211_IFTYPE_STATION) -+ continue; - -- if (vif && vif->type == NL80211_IFTYPE_STATION) { - int signal; - struct ieee80211_sta *sta; - -@@ -7215,22 +7219,21 @@ static void rtl8xxxu_watchdog_callback(s - - dev_dbg(dev, "%s: no sta found\n", __func__); - rcu_read_unlock(); -- goto out; -+ continue; - } - rcu_read_unlock(); - - signal = ieee80211_ave_rssi(vif); - -- priv->fops->report_rssi(priv, 0, -+ priv->fops->report_rssi(priv, rtl8xxxu_get_macid(priv, sta), - rtl8xxxu_signal_to_snr(signal)); - -- if (priv->fops->set_crystal_cap) -- rtl8xxxu_track_cfo(priv); -- - rtl8xxxu_refresh_rate_mask(priv, signal, sta, false); - } - --out: -+ if (priv->fops->set_crystal_cap) -+ rtl8xxxu_track_cfo(priv); -+ - schedule_delayed_work(&priv->ra_watchdog, 2 * HZ); - } - diff --git a/package/kernel/mac80211/patches/rtl/001-14-v6.9-wifi-rtl8xxxu-support-multiple-interfaces-in-add-rem.patch b/package/kernel/mac80211/patches/rtl/001-14-v6.9-wifi-rtl8xxxu-support-multiple-interfaces-in-add-rem.patch deleted file mode 100644 index 7fcbb02afe..0000000000 --- a/package/kernel/mac80211/patches/rtl/001-14-v6.9-wifi-rtl8xxxu-support-multiple-interfaces-in-add-rem.patch +++ /dev/null @@ -1,137 +0,0 @@ -From eef55f1545c92c7181d5083453dee1296298ad3e Mon Sep 17 00:00:00 2001 -From: Martin Kaistra -Date: Fri, 22 Dec 2023 11:14:35 +0100 -Subject: [PATCH 14/21] wifi: rtl8xxxu: support multiple interfaces in - {add,remove}_interface() - -Add a custom struct to store in vif->drv_priv with a reference to -port_num and fill it when a new interface is added. Choose a free -port_num for the newly added interface. - -As we only want to support AP mode/sending beacons on port 0, only change -the beacon settings if a new interface is actually assigned to port 0. - -Call set_linktype() and set_mac() with the appropriate port_num. - -Signed-off-by: Martin Kaistra -Reviewed-by: Ping-Ke Shih -Signed-off-by: Kalle Valo -Link: https://msgid.link/20231222101442.626837-15-martin.kaistra@linutronix.de ---- - .../net/wireless/realtek/rtl8xxxu/rtl8xxxu.h | 4 ++ - .../wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 52 +++++++++++-------- - 2 files changed, 34 insertions(+), 22 deletions(-) - ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h -@@ -1921,6 +1921,10 @@ struct rtl8xxxu_sta_info { - u8 macid; - }; - -+struct rtl8xxxu_vif { -+ int port_num; -+}; -+ - struct rtl8xxxu_rx_urb { - struct urb urb; - struct ieee80211_hw *hw; ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -@@ -6610,28 +6610,33 @@ error: - static int rtl8xxxu_add_interface(struct ieee80211_hw *hw, - struct ieee80211_vif *vif) - { -+ struct rtl8xxxu_vif *rtlvif = (struct rtl8xxxu_vif *)vif->drv_priv; - struct rtl8xxxu_priv *priv = hw->priv; -- int ret; -+ int port_num; - u8 val8; - -- if (!priv->vif) { -- priv->vif = vif; -- priv->vifs[0] = vif; -- } else { -+ if (!priv->vifs[0]) -+ port_num = 0; -+ else if (!priv->vifs[1]) -+ port_num = 1; -+ else - return -EOPNOTSUPP; -- } - - switch (vif->type) { - case NL80211_IFTYPE_STATION: -- rtl8xxxu_stop_tx_beacon(priv); -+ if (port_num == 0) { -+ rtl8xxxu_stop_tx_beacon(priv); - -- val8 = rtl8xxxu_read8(priv, REG_BEACON_CTRL); -- val8 |= BEACON_ATIM | BEACON_FUNCTION_ENABLE | -- BEACON_DISABLE_TSF_UPDATE; -- rtl8xxxu_write8(priv, REG_BEACON_CTRL, val8); -- ret = 0; -+ val8 = rtl8xxxu_read8(priv, REG_BEACON_CTRL); -+ val8 |= BEACON_ATIM | BEACON_FUNCTION_ENABLE | -+ BEACON_DISABLE_TSF_UPDATE; -+ rtl8xxxu_write8(priv, REG_BEACON_CTRL, val8); -+ } - break; - case NL80211_IFTYPE_AP: -+ if (port_num == 1) -+ return -EOPNOTSUPP; -+ - rtl8xxxu_write8(priv, REG_BEACON_CTRL, - BEACON_DISABLE_TSF_UPDATE | BEACON_CTRL_MBSSID); - rtl8xxxu_write8(priv, REG_ATIMWND, 0x0c); /* 12ms */ -@@ -6648,31 +6653,32 @@ static int rtl8xxxu_add_interface(struct - val8 = rtl8xxxu_read8(priv, REG_CCK_CHECK); - val8 &= ~BIT_BCN_PORT_SEL; - rtl8xxxu_write8(priv, REG_CCK_CHECK, val8); -- -- ret = 0; - break; - default: -- ret = -EOPNOTSUPP; -+ return -EOPNOTSUPP; - } - -- rtl8xxxu_set_linktype(priv, vif->type, 0); -+ priv->vifs[port_num] = vif; -+ priv->vif = vif; -+ rtlvif->port_num = port_num; -+ -+ rtl8xxxu_set_linktype(priv, vif->type, port_num); - ether_addr_copy(priv->mac_addr, vif->addr); -- rtl8xxxu_set_mac(priv, 0); -+ rtl8xxxu_set_mac(priv, port_num); - -- return ret; -+ return 0; - } - - static void rtl8xxxu_remove_interface(struct ieee80211_hw *hw, - struct ieee80211_vif *vif) - { -+ struct rtl8xxxu_vif *rtlvif = (struct rtl8xxxu_vif *)vif->drv_priv; - struct rtl8xxxu_priv *priv = hw->priv; - - dev_dbg(&priv->udev->dev, "%s\n", __func__); - -- if (priv->vif) { -- priv->vif = NULL; -- priv->vifs[0] = NULL; -- } -+ priv->vif = NULL; -+ priv->vifs[rtlvif->port_num] = NULL; - } - - static int rtl8xxxu_config(struct ieee80211_hw *hw, u32 changed) -@@ -7661,6 +7667,8 @@ static int rtl8xxxu_probe(struct usb_int - if (ret) - goto err_set_intfdata; - -+ hw->vif_data_size = sizeof(struct rtl8xxxu_vif); -+ - hw->wiphy->max_scan_ssids = 1; - hw->wiphy->max_scan_ie_len = IEEE80211_MAX_DATA_LEN; - if (priv->fops->max_macid_num) diff --git a/package/kernel/mac80211/patches/rtl/001-15-v6.9-wifi-rtl8xxxu-support-multiple-interfaces-in-bss_inf.patch b/package/kernel/mac80211/patches/rtl/001-15-v6.9-wifi-rtl8xxxu-support-multiple-interfaces-in-bss_inf.patch deleted file mode 100644 index 5c5c1948d3..0000000000 --- a/package/kernel/mac80211/patches/rtl/001-15-v6.9-wifi-rtl8xxxu-support-multiple-interfaces-in-bss_inf.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 073401c3b6b9eaea027240baf07f2b84dd2d2d26 Mon Sep 17 00:00:00 2001 -From: Martin Kaistra -Date: Fri, 22 Dec 2023 11:14:36 +0100 -Subject: [PATCH 15/21] wifi: rtl8xxxu: support multiple interfaces in - bss_info_changed() - -Call set_linktype and set_bssid now with correct port_num. Call -stop_tx_beacon only for port 0, as we don't support beacons on port 1. -Explicit changes to BEACON will only happen for AP type interfaces, so -we don't need an additional check there. - -Signed-off-by: Martin Kaistra -Reviewed-by: Ping-Ke Shih -Signed-off-by: Kalle Valo -Link: https://msgid.link/20231222101442.626837-16-martin.kaistra@linutronix.de ---- - drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 8 +++++--- - 1 file changed, 5 insertions(+), 3 deletions(-) - ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -@@ -4983,6 +4983,7 @@ static void - rtl8xxxu_bss_info_changed(struct ieee80211_hw *hw, struct ieee80211_vif *vif, - struct ieee80211_bss_conf *bss_conf, u64 changed) - { -+ struct rtl8xxxu_vif *rtlvif = (struct rtl8xxxu_vif *)vif->drv_priv; - struct rtl8xxxu_priv *priv = hw->priv; - struct device *dev = &priv->udev->dev; - struct ieee80211_sta *sta; -@@ -4995,7 +4996,7 @@ rtl8xxxu_bss_info_changed(struct ieee802 - if (changed & BSS_CHANGED_ASSOC) { - dev_dbg(dev, "Changed ASSOC: %i!\n", vif->cfg.assoc); - -- rtl8xxxu_set_linktype(priv, vif->type, 0); -+ rtl8xxxu_set_linktype(priv, vif->type, rtlvif->port_num); - - if (vif->cfg.assoc) { - u32 ramask; -@@ -5042,7 +5043,8 @@ rtl8xxxu_bss_info_changed(struct ieee802 - - rtl8xxxu_write8(priv, REG_BCN_MAX_ERR, 0xff); - -- rtl8xxxu_stop_tx_beacon(priv); -+ if (rtlvif->port_num == 0) -+ rtl8xxxu_stop_tx_beacon(priv); - - /* joinbss sequence */ - rtl8xxxu_write16(priv, REG_BCN_PSR_RPT, -@@ -5084,7 +5086,7 @@ rtl8xxxu_bss_info_changed(struct ieee802 - - if (changed & BSS_CHANGED_BSSID) { - dev_dbg(dev, "Changed BSSID!\n"); -- rtl8xxxu_set_bssid(priv, bss_conf->bssid, 0); -+ rtl8xxxu_set_bssid(priv, bss_conf->bssid, rtlvif->port_num); - } - - if (changed & BSS_CHANGED_BASIC_RATES) { diff --git a/package/kernel/mac80211/patches/rtl/001-16-v6.9-wifi-rtl8xxxu-support-multiple-interface-in-start_ap.patch b/package/kernel/mac80211/patches/rtl/001-16-v6.9-wifi-rtl8xxxu-support-multiple-interface-in-start_ap.patch deleted file mode 100644 index 25d0238461..0000000000 --- a/package/kernel/mac80211/patches/rtl/001-16-v6.9-wifi-rtl8xxxu-support-multiple-interface-in-start_ap.patch +++ /dev/null @@ -1,32 +0,0 @@ -From 61fdbd9e2a9d74c716bf4d9684653de5efdee691 Mon Sep 17 00:00:00 2001 -From: Martin Kaistra -Date: Fri, 22 Dec 2023 11:14:37 +0100 -Subject: [PATCH 16/21] wifi: rtl8xxxu: support multiple interface in - start_ap() - -Call set_bssid() with the correct port_num now. - -Signed-off-by: Martin Kaistra -Reviewed-by: Ping-Ke Shih -Signed-off-by: Kalle Valo -Link: https://msgid.link/20231222101442.626837-17-martin.kaistra@linutronix.de ---- - drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -@@ -5111,11 +5111,12 @@ error: - static int rtl8xxxu_start_ap(struct ieee80211_hw *hw, struct ieee80211_vif *vif, - struct ieee80211_bss_conf *link_conf) - { -+ struct rtl8xxxu_vif *rtlvif = (struct rtl8xxxu_vif *)vif->drv_priv; - struct rtl8xxxu_priv *priv = hw->priv; - struct device *dev = &priv->udev->dev; - - dev_dbg(dev, "Start AP mode\n"); -- rtl8xxxu_set_bssid(priv, vif->bss_conf.bssid, 0); -+ rtl8xxxu_set_bssid(priv, vif->bss_conf.bssid, rtlvif->port_num); - rtl8xxxu_write16(priv, REG_BCN_INTERVAL, vif->bss_conf.beacon_int); - priv->fops->report_connect(priv, RTL8XXXU_BC_MC_MACID, 0, true); - diff --git a/package/kernel/mac80211/patches/rtl/001-17-v6.9-wifi-rtl8xxxu-add-macids-for-STA-mode.patch b/package/kernel/mac80211/patches/rtl/001-17-v6.9-wifi-rtl8xxxu-add-macids-for-STA-mode.patch deleted file mode 100644 index 9f8d0a3aaf..0000000000 --- a/package/kernel/mac80211/patches/rtl/001-17-v6.9-wifi-rtl8xxxu-add-macids-for-STA-mode.patch +++ /dev/null @@ -1,82 +0,0 @@ -From 5ce0d7e8aee03e73b35f0fe1f1ebbdd4e45776f3 Mon Sep 17 00:00:00 2001 -From: Martin Kaistra -Date: Fri, 22 Dec 2023 11:14:38 +0100 -Subject: [PATCH 17/21] wifi: rtl8xxxu: add macids for STA mode - -Until now, the driver only assigned a dedicated macid for connections -made in AP mode, in STA mode the return value of rtl8xxxu_get_macid() -was simply 0. -To differentiate between port 0 and 1, when both are in STA mode, -allocate a second macid (with value 1) and set sta_info->macid according -to the used port_num in rtl8xxxu_sta_add(). - -Signed-off-by: Martin Kaistra -Reviewed-by: Ping-Ke Shih -Signed-off-by: Kalle Valo -Link: https://msgid.link/20231222101442.626837-18-martin.kaistra@linutronix.de ---- - .../net/wireless/realtek/rtl8xxxu/rtl8xxxu.h | 1 + - .../wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 18 +++++++++++++++++- - 2 files changed, 18 insertions(+), 1 deletion(-) - ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h -@@ -1774,6 +1774,7 @@ struct rtl8xxxu_cfo_tracking { - #define RTL8XXXU_HW_LED_CONTROL 2 - #define RTL8XXXU_MAX_MAC_ID_NUM 128 - #define RTL8XXXU_BC_MC_MACID 0 -+#define RTL8XXXU_BC_MC_MACID1 1 - - struct rtl8xxxu_priv { - struct ieee80211_hw *hw; ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -@@ -4053,10 +4053,13 @@ static inline u8 rtl8xxxu_get_macid(stru - { - struct rtl8xxxu_sta_info *sta_info; - -- if (!priv->vif || priv->vif->type == NL80211_IFTYPE_STATION || !sta) -+ if (!sta) - return 0; - - sta_info = (struct rtl8xxxu_sta_info *)sta->drv_priv; -+ if (!sta_info) -+ return 0; -+ - return sta_info->macid; - } - -@@ -4536,6 +4539,7 @@ static int rtl8xxxu_init_device(struct i - rtl8188e_ra_info_init_all(&priv->ra_info); - - set_bit(RTL8XXXU_BC_MC_MACID, priv->mac_id_map); -+ set_bit(RTL8XXXU_BC_MC_MACID1, priv->mac_id_map); - - exit: - return ret; -@@ -7375,6 +7379,7 @@ static int rtl8xxxu_sta_add(struct ieee8 - struct ieee80211_sta *sta) - { - struct rtl8xxxu_sta_info *sta_info = (struct rtl8xxxu_sta_info *)sta->drv_priv; -+ struct rtl8xxxu_vif *rtlvif = (struct rtl8xxxu_vif *)vif->drv_priv; - struct rtl8xxxu_priv *priv = hw->priv; - - if (vif->type == NL80211_IFTYPE_AP) { -@@ -7384,6 +7389,17 @@ static int rtl8xxxu_sta_add(struct ieee8 - - rtl8xxxu_refresh_rate_mask(priv, 0, sta, true); - priv->fops->report_connect(priv, sta_info->macid, H2C_MACID_ROLE_STA, true); -+ } else { -+ switch (rtlvif->port_num) { -+ case 0: -+ sta_info->macid = RTL8XXXU_BC_MC_MACID; -+ break; -+ case 1: -+ sta_info->macid = RTL8XXXU_BC_MC_MACID1; -+ break; -+ default: -+ break; -+ } - } - - return 0; diff --git a/package/kernel/mac80211/patches/rtl/001-18-v6.9-wifi-rtl8xxxu-remove-obsolete-priv-vif.patch b/package/kernel/mac80211/patches/rtl/001-18-v6.9-wifi-rtl8xxxu-remove-obsolete-priv-vif.patch deleted file mode 100644 index 5cf65eb519..0000000000 --- a/package/kernel/mac80211/patches/rtl/001-18-v6.9-wifi-rtl8xxxu-remove-obsolete-priv-vif.patch +++ /dev/null @@ -1,49 +0,0 @@ -From f232e9d91bb84817c60c051a3e3b56dd2721a7b3 Mon Sep 17 00:00:00 2001 -From: Martin Kaistra -Date: Fri, 22 Dec 2023 11:14:39 +0100 -Subject: [PATCH 18/21] wifi: rtl8xxxu: remove obsolete priv->vif - -Now that all uses of priv->vif have been converted to priv->vifs[] -remove the old attribute. - -Signed-off-by: Martin Kaistra -Reviewed-by: Ping-Ke Shih -Signed-off-by: Kalle Valo -Link: https://msgid.link/20231222101442.626837-19-martin.kaistra@linutronix.de ---- - drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h | 5 ----- - drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 2 -- - 2 files changed, 7 deletions(-) - ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h -@@ -1893,11 +1893,6 @@ struct rtl8xxxu_priv { - u8 rssi_level; - DECLARE_BITMAP(tx_aggr_started, IEEE80211_NUM_TIDS); - DECLARE_BITMAP(tid_tx_operational, IEEE80211_NUM_TIDS); -- /* -- * Only one virtual interface permitted because only STA mode -- * is supported and no iface_combinations are provided. -- */ -- struct ieee80211_vif *vif; - - struct ieee80211_vif *vifs[2]; - struct delayed_work ra_watchdog; ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -@@ -6666,7 +6666,6 @@ static int rtl8xxxu_add_interface(struct - } - - priv->vifs[port_num] = vif; -- priv->vif = vif; - rtlvif->port_num = port_num; - - rtl8xxxu_set_linktype(priv, vif->type, port_num); -@@ -6684,7 +6683,6 @@ static void rtl8xxxu_remove_interface(st - - dev_dbg(&priv->udev->dev, "%s\n", __func__); - -- priv->vif = NULL; - priv->vifs[rtlvif->port_num] = NULL; - } - diff --git a/package/kernel/mac80211/patches/rtl/001-19-v6.9-wifi-rtl8xxxu-add-hw-crypto-support-for-AP-mode.patch b/package/kernel/mac80211/patches/rtl/001-19-v6.9-wifi-rtl8xxxu-add-hw-crypto-support-for-AP-mode.patch deleted file mode 100644 index b5f9307496..0000000000 --- a/package/kernel/mac80211/patches/rtl/001-19-v6.9-wifi-rtl8xxxu-add-hw-crypto-support-for-AP-mode.patch +++ /dev/null @@ -1,226 +0,0 @@ -From b837f78fbffa5f8e7e7c59879db54793abf161ec Mon Sep 17 00:00:00 2001 -From: Martin Kaistra -Date: Fri, 22 Dec 2023 11:14:40 +0100 -Subject: [PATCH 19/21] wifi: rtl8xxxu: add hw crypto support for AP mode - -Add a custom function for allocating entries in the sec cam. This allows -us to store multiple keys with the same keyidx. - -The maximum number of sec cam entries for 8188f is 16 according to the -vendor driver. Add the number to rtl8xxxu_fileops, so that other chips -which might support more entries, can set a different number there. - -Set the bssid as mac address for group keys instead of just using the -ethernet broadcast address and use BIT(6) in the sec cam ctrl entry -for differentiating them from pairwise keys like in the vendor driver. - -Add the TXDESC_EN_DESC_ID bit and the hw_key_idx to tx -broadcast/multicast packets in AP mode. - -Finally, allow the usage of rtl8xxxu_set_key() for AP mode. - -Signed-off-by: Martin Kaistra -Reviewed-by: Ping-Ke Shih -Signed-off-by: Kalle Valo -Link: https://msgid.link/20231222101442.626837-20-martin.kaistra@linutronix.de ---- - .../net/wireless/realtek/rtl8xxxu/rtl8xxxu.h | 5 ++ - .../realtek/rtl8xxxu/rtl8xxxu_8188f.c | 1 + - .../wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 48 +++++++++++++++---- - 3 files changed, 44 insertions(+), 10 deletions(-) - ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h -@@ -498,6 +498,7 @@ struct rtl8xxxu_txdesc40 { - #define DESC_RATE_ID_SHIFT 16 - #define DESC_RATE_ID_MASK 0xf - #define TXDESC_NAVUSEHDR BIT(20) -+#define TXDESC_EN_DESC_ID BIT(21) - #define TXDESC_SEC_RC4 0x00400000 - #define TXDESC_SEC_AES 0x00c00000 - #define TXDESC_PKT_OFFSET_SHIFT 26 -@@ -1775,6 +1776,7 @@ struct rtl8xxxu_cfo_tracking { - #define RTL8XXXU_MAX_MAC_ID_NUM 128 - #define RTL8XXXU_BC_MC_MACID 0 - #define RTL8XXXU_BC_MC_MACID1 1 -+#define RTL8XXXU_MAX_SEC_CAM_NUM 64 - - struct rtl8xxxu_priv { - struct ieee80211_hw *hw; -@@ -1908,6 +1910,7 @@ struct rtl8xxxu_priv { - char led_name[32]; - struct led_classdev led_cdev; - DECLARE_BITMAP(mac_id_map, RTL8XXXU_MAX_MAC_ID_NUM); -+ DECLARE_BITMAP(cam_map, RTL8XXXU_MAX_SEC_CAM_NUM); - }; - - struct rtl8xxxu_sta_info { -@@ -1919,6 +1922,7 @@ struct rtl8xxxu_sta_info { - - struct rtl8xxxu_vif { - int port_num; -+ u8 hw_key_idx; - }; - - struct rtl8xxxu_rx_urb { -@@ -1993,6 +1997,7 @@ struct rtl8xxxu_fileops { - u16 max_aggr_num; - u8 supports_ap:1; - u16 max_macid_num; -+ u16 max_sec_cam_num; - u32 adda_1t_init; - u32 adda_1t_path_on; - u32 adda_2t_path_on_a; ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8188f.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8188f.c -@@ -1751,6 +1751,7 @@ struct rtl8xxxu_fileops rtl8188fu_fops = - .max_aggr_num = 0x0c14, - .supports_ap = 1, - .max_macid_num = 16, -+ .max_sec_cam_num = 16, - .adda_1t_init = 0x03c00014, - .adda_1t_path_on = 0x03c00014, - .trxff_boundary = 0x3f7f, ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -@@ -4559,8 +4559,10 @@ static void rtl8xxxu_cam_write(struct rt - * This is a bit of a hack - the lower bits of the cipher - * suite selector happens to match the cipher index in the CAM - */ -- addr = key->keyidx << CAM_CMD_KEY_SHIFT; -+ addr = key->hw_key_idx << CAM_CMD_KEY_SHIFT; - ctrl = (key->cipher & 0x0f) << 2 | key->keyidx | CAM_WRITE_VALID; -+ if (!(key->flags & IEEE80211_KEY_FLAG_PAIRWISE)) -+ ctrl |= BIT(6); - - for (j = 5; j >= 0; j--) { - switch (j) { -@@ -5546,13 +5548,14 @@ static void rtl8xxxu_tx(struct ieee80211 - struct rtl8xxxu_tx_urb *tx_urb; - struct ieee80211_sta *sta = NULL; - struct ieee80211_vif *vif = tx_info->control.vif; -+ struct rtl8xxxu_vif *rtlvif = (struct rtl8xxxu_vif *)vif->drv_priv; - struct device *dev = &priv->udev->dev; - u32 queue, rts_rate; - u16 pktlen = skb->len; - int tx_desc_size = priv->fops->tx_desc_size; - u8 macid; - int ret; -- bool ampdu_enable, sgi = false, short_preamble = false; -+ bool ampdu_enable, sgi = false, short_preamble = false, bmc = false; - - if (skb_headroom(skb) < tx_desc_size) { - dev_warn(dev, -@@ -5594,10 +5597,14 @@ static void rtl8xxxu_tx(struct ieee80211 - tx_desc->txdw0 = - TXDESC_OWN | TXDESC_FIRST_SEGMENT | TXDESC_LAST_SEGMENT; - if (is_multicast_ether_addr(ieee80211_get_DA(hdr)) || -- is_broadcast_ether_addr(ieee80211_get_DA(hdr))) -+ is_broadcast_ether_addr(ieee80211_get_DA(hdr))) { - tx_desc->txdw0 |= TXDESC_BROADMULTICAST; -+ bmc = true; -+ } -+ - - tx_desc->txdw1 = cpu_to_le32(queue << TXDESC_QUEUE_SHIFT); -+ macid = rtl8xxxu_get_macid(priv, sta); - - if (tx_info->control.hw_key) { - switch (tx_info->control.hw_key->cipher) { -@@ -5612,6 +5619,10 @@ static void rtl8xxxu_tx(struct ieee80211 - default: - break; - } -+ if (bmc && rtlvif->hw_key_idx != 0xff) { -+ tx_desc->txdw1 |= TXDESC_EN_DESC_ID; -+ macid = rtlvif->hw_key_idx; -+ } - } - - /* (tx_info->flags & IEEE80211_TX_CTL_AMPDU) && */ -@@ -5655,7 +5666,6 @@ static void rtl8xxxu_tx(struct ieee80211 - else - rts_rate = 0; - -- macid = rtl8xxxu_get_macid(priv, sta); - priv->fops->fill_txdesc(hw, hdr, tx_info, tx_desc, sgi, short_preamble, - ampdu_enable, rts_rate, macid); - -@@ -6667,6 +6677,7 @@ static int rtl8xxxu_add_interface(struct - - priv->vifs[port_num] = vif; - rtlvif->port_num = port_num; -+ rtlvif->hw_key_idx = 0xff; - - rtl8xxxu_set_linktype(priv, vif->type, port_num); - ether_addr_copy(priv->mac_addr, vif->addr); -@@ -6843,11 +6854,19 @@ static int rtl8xxxu_set_rts_threshold(st - return 0; - } - -+static int rtl8xxxu_get_free_sec_cam(struct ieee80211_hw *hw) -+{ -+ struct rtl8xxxu_priv *priv = hw->priv; -+ -+ return find_first_zero_bit(priv->cam_map, priv->fops->max_sec_cam_num); -+} -+ - static int rtl8xxxu_set_key(struct ieee80211_hw *hw, enum set_key_cmd cmd, - struct ieee80211_vif *vif, - struct ieee80211_sta *sta, - struct ieee80211_key_conf *key) - { -+ struct rtl8xxxu_vif *rtlvif = (struct rtl8xxxu_vif *)vif->drv_priv; - struct rtl8xxxu_priv *priv = hw->priv; - struct device *dev = &priv->udev->dev; - u8 mac_addr[ETH_ALEN]; -@@ -6859,9 +6878,6 @@ static int rtl8xxxu_set_key(struct ieee8 - dev_dbg(dev, "%s: cmd %02x, cipher %08x, index %i\n", - __func__, cmd, key->cipher, key->keyidx); - -- if (vif->type != NL80211_IFTYPE_STATION) -- return -EOPNOTSUPP; -- - if (key->keyidx > 3) - return -EOPNOTSUPP; - -@@ -6885,7 +6901,7 @@ static int rtl8xxxu_set_key(struct ieee8 - ether_addr_copy(mac_addr, sta->addr); - } else { - dev_dbg(dev, "%s: group key\n", __func__); -- eth_broadcast_addr(mac_addr); -+ ether_addr_copy(mac_addr, vif->bss_conf.bssid); - } - - val16 = rtl8xxxu_read16(priv, REG_CR); -@@ -6899,16 +6915,28 @@ static int rtl8xxxu_set_key(struct ieee8 - - switch (cmd) { - case SET_KEY: -- key->hw_key_idx = key->keyidx; -+ -+ retval = rtl8xxxu_get_free_sec_cam(hw); -+ if (retval < 0) -+ return -EOPNOTSUPP; -+ -+ key->hw_key_idx = retval; -+ -+ if (vif->type == NL80211_IFTYPE_AP && !(key->flags & IEEE80211_KEY_FLAG_PAIRWISE)) -+ rtlvif->hw_key_idx = key->hw_key_idx; -+ - key->flags |= IEEE80211_KEY_FLAG_GENERATE_IV; - rtl8xxxu_cam_write(priv, key, mac_addr); -+ set_bit(key->hw_key_idx, priv->cam_map); - retval = 0; - break; - case DISABLE_KEY: - rtl8xxxu_write32(priv, REG_CAM_WRITE, 0x00000000); - val32 = CAM_CMD_POLLING | CAM_CMD_WRITE | -- key->keyidx << CAM_CMD_KEY_SHIFT; -+ key->hw_key_idx << CAM_CMD_KEY_SHIFT; - rtl8xxxu_write32(priv, REG_CAM_CMD, val32); -+ rtlvif->hw_key_idx = 0xff; -+ clear_bit(key->hw_key_idx, priv->cam_map); - retval = 0; - break; - default: diff --git a/package/kernel/mac80211/patches/rtl/001-20-v6.9-wifi-rtl8xxxu-make-supporting-AP-mode-only-on-port-0.patch b/package/kernel/mac80211/patches/rtl/001-20-v6.9-wifi-rtl8xxxu-make-supporting-AP-mode-only-on-port-0.patch deleted file mode 100644 index 4b55b0ede7..0000000000 --- a/package/kernel/mac80211/patches/rtl/001-20-v6.9-wifi-rtl8xxxu-make-supporting-AP-mode-only-on-port-0.patch +++ /dev/null @@ -1,130 +0,0 @@ -From 69abad618efd17e50bc6f880332ab36b660b0b34 Mon Sep 17 00:00:00 2001 -From: Martin Kaistra -Date: Fri, 22 Dec 2023 11:14:41 +0100 -Subject: [PATCH 20/21] wifi: rtl8xxxu: make supporting AP mode only on port 0 - transparent - -When the driver is used for concurrent mode, both virtual interfaces can -be set to station or AP mode, though only one can be in AP mode at the -same time. - -In order to keep the code simple, use only hw port 0 for AP mode. When -an interface is added in AP mode which would be assigned to port 1, use -a switch_port function to transparently swap the mapping between virtual -interface and hw port. - -Signed-off-by: Martin Kaistra -Reviewed-by: Ping-Ke Shih -Signed-off-by: Kalle Valo -Link: https://msgid.link/20231222101442.626837-21-martin.kaistra@linutronix.de ---- - .../wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 91 ++++++++++++++++++- - 1 file changed, 89 insertions(+), 2 deletions(-) - ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -@@ -6624,6 +6624,91 @@ error: - return ret; - } - -+static void rtl8xxxu_switch_ports(struct rtl8xxxu_priv *priv) -+{ -+ u8 macid[ETH_ALEN], bssid[ETH_ALEN], macid_1[ETH_ALEN], bssid_1[ETH_ALEN]; -+ u8 msr, bcn_ctrl, bcn_ctrl_1, atimwnd[2], atimwnd_1[2]; -+ struct rtl8xxxu_vif *rtlvif; -+ struct ieee80211_vif *vif; -+ u8 tsftr[8], tsftr_1[8]; -+ int i; -+ -+ msr = rtl8xxxu_read8(priv, REG_MSR); -+ bcn_ctrl = rtl8xxxu_read8(priv, REG_BEACON_CTRL); -+ bcn_ctrl_1 = rtl8xxxu_read8(priv, REG_BEACON_CTRL_1); -+ -+ for (i = 0; i < ARRAY_SIZE(atimwnd); i++) -+ atimwnd[i] = rtl8xxxu_read8(priv, REG_ATIMWND + i); -+ for (i = 0; i < ARRAY_SIZE(atimwnd_1); i++) -+ atimwnd_1[i] = rtl8xxxu_read8(priv, REG_ATIMWND_1 + i); -+ -+ for (i = 0; i < ARRAY_SIZE(tsftr); i++) -+ tsftr[i] = rtl8xxxu_read8(priv, REG_TSFTR + i); -+ for (i = 0; i < ARRAY_SIZE(tsftr); i++) -+ tsftr_1[i] = rtl8xxxu_read8(priv, REG_TSFTR1 + i); -+ -+ for (i = 0; i < ARRAY_SIZE(macid); i++) -+ macid[i] = rtl8xxxu_read8(priv, REG_MACID + i); -+ -+ for (i = 0; i < ARRAY_SIZE(bssid); i++) -+ bssid[i] = rtl8xxxu_read8(priv, REG_BSSID + i); -+ -+ for (i = 0; i < ARRAY_SIZE(macid_1); i++) -+ macid_1[i] = rtl8xxxu_read8(priv, REG_MACID1 + i); -+ -+ for (i = 0; i < ARRAY_SIZE(bssid_1); i++) -+ bssid_1[i] = rtl8xxxu_read8(priv, REG_BSSID1 + i); -+ -+ /* disable bcn function, disable update TSF */ -+ rtl8xxxu_write8(priv, REG_BEACON_CTRL, (bcn_ctrl & -+ (~BEACON_FUNCTION_ENABLE)) | BEACON_DISABLE_TSF_UPDATE); -+ rtl8xxxu_write8(priv, REG_BEACON_CTRL_1, (bcn_ctrl_1 & -+ (~BEACON_FUNCTION_ENABLE)) | BEACON_DISABLE_TSF_UPDATE); -+ -+ /* switch msr */ -+ msr = (msr & 0xf0) | ((msr & 0x03) << 2) | ((msr & 0x0c) >> 2); -+ rtl8xxxu_write8(priv, REG_MSR, msr); -+ -+ /* write port0 */ -+ rtl8xxxu_write8(priv, REG_BEACON_CTRL, bcn_ctrl_1 & ~BEACON_FUNCTION_ENABLE); -+ for (i = 0; i < ARRAY_SIZE(atimwnd_1); i++) -+ rtl8xxxu_write8(priv, REG_ATIMWND + i, atimwnd_1[i]); -+ for (i = 0; i < ARRAY_SIZE(tsftr_1); i++) -+ rtl8xxxu_write8(priv, REG_TSFTR + i, tsftr_1[i]); -+ for (i = 0; i < ARRAY_SIZE(macid_1); i++) -+ rtl8xxxu_write8(priv, REG_MACID + i, macid_1[i]); -+ for (i = 0; i < ARRAY_SIZE(bssid_1); i++) -+ rtl8xxxu_write8(priv, REG_BSSID + i, bssid_1[i]); -+ -+ /* write port1 */ -+ rtl8xxxu_write8(priv, REG_BEACON_CTRL_1, bcn_ctrl & ~BEACON_FUNCTION_ENABLE); -+ for (i = 0; i < ARRAY_SIZE(atimwnd); i++) -+ rtl8xxxu_write8(priv, REG_ATIMWND_1 + i, atimwnd[i]); -+ for (i = 0; i < ARRAY_SIZE(tsftr); i++) -+ rtl8xxxu_write8(priv, REG_TSFTR1 + i, tsftr[i]); -+ for (i = 0; i < ARRAY_SIZE(macid); i++) -+ rtl8xxxu_write8(priv, REG_MACID1 + i, macid[i]); -+ for (i = 0; i < ARRAY_SIZE(bssid); i++) -+ rtl8xxxu_write8(priv, REG_BSSID1 + i, bssid[i]); -+ -+ /* write bcn ctl */ -+ rtl8xxxu_write8(priv, REG_BEACON_CTRL, bcn_ctrl_1); -+ rtl8xxxu_write8(priv, REG_BEACON_CTRL_1, bcn_ctrl); -+ -+ vif = priv->vifs[0]; -+ priv->vifs[0] = priv->vifs[1]; -+ priv->vifs[1] = vif; -+ -+ /* priv->vifs[0] is NULL here, based on how this function is currently -+ * called from rtl8xxxu_add_interface(). -+ * When this function will be used in the future for a different -+ * scenario, please check whether vifs[0] or vifs[1] can be NULL and if -+ * necessary add code to set port_num = 1. -+ */ -+ rtlvif = (struct rtl8xxxu_vif *)priv->vifs[1]->drv_priv; -+ rtlvif->port_num = 1; -+} -+ - static int rtl8xxxu_add_interface(struct ieee80211_hw *hw, - struct ieee80211_vif *vif) - { -@@ -6651,8 +6736,10 @@ static int rtl8xxxu_add_interface(struct - } - break; - case NL80211_IFTYPE_AP: -- if (port_num == 1) -- return -EOPNOTSUPP; -+ if (port_num == 1) { -+ rtl8xxxu_switch_ports(priv); -+ port_num = 0; -+ } - - rtl8xxxu_write8(priv, REG_BEACON_CTRL, - BEACON_DISABLE_TSF_UPDATE | BEACON_CTRL_MBSSID); diff --git a/package/kernel/mac80211/patches/rtl/001-21-v6.9-wifi-rtl8xxxu-declare-concurrent-mode-support-for-81.patch b/package/kernel/mac80211/patches/rtl/001-21-v6.9-wifi-rtl8xxxu-declare-concurrent-mode-support-for-81.patch deleted file mode 100644 index 6322541434..0000000000 --- a/package/kernel/mac80211/patches/rtl/001-21-v6.9-wifi-rtl8xxxu-declare-concurrent-mode-support-for-81.patch +++ /dev/null @@ -1,76 +0,0 @@ -From 1cd165adf314f6bf25cde58f02f4ff51d01730b0 Mon Sep 17 00:00:00 2001 -From: Martin Kaistra -Date: Fri, 22 Dec 2023 11:14:42 +0100 -Subject: [PATCH 21/21] wifi: rtl8xxxu: declare concurrent mode support for - 8188f - -Everything is in place now for concurrent mode, we can tell the system -that we support it. -We will allow a maximum of 2 virtual interfaces, one of them can be in -AP mode. - -Signed-off-by: Martin Kaistra -Reviewed-by: Ping-Ke Shih -Signed-off-by: Kalle Valo -Link: https://msgid.link/20231222101442.626837-22-martin.kaistra@linutronix.de ---- - .../net/wireless/realtek/rtl8xxxu/rtl8xxxu.h | 1 + - .../realtek/rtl8xxxu/rtl8xxxu_8188f.c | 1 + - .../wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 19 +++++++++++++++++++ - 3 files changed, 21 insertions(+) - ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h -@@ -1992,6 +1992,7 @@ struct rtl8xxxu_fileops { - u8 init_reg_rxfltmap:1; - u8 init_reg_pkt_life_time:1; - u8 init_reg_hmtfr:1; -+ u8 supports_concurrent:1; - u8 ampdu_max_time; - u8 ustime_tsf_edca; - u16 max_aggr_num; ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8188f.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8188f.c -@@ -1752,6 +1752,7 @@ struct rtl8xxxu_fileops rtl8188fu_fops = - .supports_ap = 1, - .max_macid_num = 16, - .max_sec_cam_num = 16, -+ .supports_concurrent = 1, - .adda_1t_init = 0x03c00014, - .adda_1t_path_on = 0x03c00014, - .trxff_boundary = 0x3f7f, ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -@@ -7665,6 +7665,20 @@ static void rtl8xxxu_deinit_led(struct r - led_classdev_unregister(led); - } - -+struct ieee80211_iface_limit rtl8xxxu_limits[] = { -+ { .max = 2, .types = BIT(NL80211_IFTYPE_STATION), }, -+ { .max = 1, .types = BIT(NL80211_IFTYPE_AP), }, -+}; -+ -+struct ieee80211_iface_combination rtl8xxxu_combinations[] = { -+ { -+ .limits = rtl8xxxu_limits, -+ .n_limits = ARRAY_SIZE(rtl8xxxu_limits), -+ .max_interfaces = 2, -+ .num_different_channels = 1, -+ }, -+}; -+ - static int rtl8xxxu_probe(struct usb_interface *interface, - const struct usb_device_id *id) - { -@@ -7810,6 +7824,11 @@ static int rtl8xxxu_probe(struct usb_int - hw->wiphy->interface_modes |= BIT(NL80211_IFTYPE_AP); - hw->queues = 4; - -+ if (priv->fops->supports_concurrent) { -+ hw->wiphy->iface_combinations = rtl8xxxu_combinations; -+ hw->wiphy->n_iface_combinations = ARRAY_SIZE(rtl8xxxu_combinations); -+ } -+ - sband = &rtl8xxxu_supported_band; - sband->ht_cap.ht_supported = true; - sband->ht_cap.ampdu_factor = IEEE80211_HT_MAX_AMPDU_64K; diff --git a/package/kernel/mac80211/patches/rtl/002-01-v6.9-wifi-rtl8xxxu-Fix-LED-control-code-of-RTL8192FU.patch b/package/kernel/mac80211/patches/rtl/002-01-v6.9-wifi-rtl8xxxu-Fix-LED-control-code-of-RTL8192FU.patch deleted file mode 100644 index d1a480d53f..0000000000 --- a/package/kernel/mac80211/patches/rtl/002-01-v6.9-wifi-rtl8xxxu-Fix-LED-control-code-of-RTL8192FU.patch +++ /dev/null @@ -1,98 +0,0 @@ -From 9475cc7ac31503521af95e38151e9d856e8ff30b Mon Sep 17 00:00:00 2001 -From: Bitterblue Smith -Date: Sun, 31 Dec 2023 00:45:54 +0200 -Subject: [PATCH 1/2] wifi: rtl8xxxu: Fix LED control code of RTL8192FU - -Some devices, like the Comfast CF-826F, use LED1, which already works. -Others, like Asus USB-N13 C1, use LED0, which doesn't work correctly. - -Write the right values to the LED control registers to make LED0 work -as well. - -This is unfortunately tested only with the Comfast CF-826F. - -Signed-off-by: Bitterblue Smith -Reviewed-by: Ping-Ke Shih -Signed-off-by: Kalle Valo -Link: https://msgid.link/7a2c3158-3a45-4466-b11e-fc09802b20e2@gmail.com ---- - .../realtek/rtl8xxxu/rtl8xxxu_8192f.c | 32 +++++++++++++------ - .../wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h | 15 +++++++++ - 2 files changed, 38 insertions(+), 9 deletions(-) - ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192f.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192f.c -@@ -2014,26 +2014,40 @@ static int rtl8192fu_led_brightness_set( - struct rtl8xxxu_priv *priv = container_of(led_cdev, - struct rtl8xxxu_priv, - led_cdev); -- u16 ledcfg; -+ u32 ledcfg; - - /* Values obtained by observing the USB traffic from the Windows driver. */ - rtl8xxxu_write32(priv, REG_SW_GPIO_SHARE_CTRL_0, 0x20080); - rtl8xxxu_write32(priv, REG_SW_GPIO_SHARE_CTRL_1, 0x1b0000); - -- ledcfg = rtl8xxxu_read16(priv, REG_LEDCFG0); -+ ledcfg = rtl8xxxu_read32(priv, REG_LEDCFG0); -+ -+ /* Comfast CF-826F uses LED1. Asus USB-N13 C1 uses LED0. Set both. */ -+ -+ u32p_replace_bits(&ledcfg, LED_GPIO_ENABLE, LEDCFG0_LED2EN); -+ u32p_replace_bits(&ledcfg, LED_IO_MODE_OUTPUT, LEDCFG0_LED0_IO_MODE); -+ u32p_replace_bits(&ledcfg, LED_IO_MODE_OUTPUT, LEDCFG0_LED1_IO_MODE); - - if (brightness == LED_OFF) { -- /* Value obtained like above. */ -- ledcfg = BIT(1) | BIT(7); -+ u32p_replace_bits(&ledcfg, LED_MODE_SW_CTRL, LEDCFG0_LED0CM); -+ u32p_replace_bits(&ledcfg, LED_SW_OFF, LEDCFG0_LED0SV); -+ u32p_replace_bits(&ledcfg, LED_MODE_SW_CTRL, LEDCFG0_LED1CM); -+ u32p_replace_bits(&ledcfg, LED_SW_OFF, LEDCFG0_LED1SV); - } else if (brightness == LED_ON) { -- /* Value obtained like above. */ -- ledcfg = BIT(1) | BIT(7) | BIT(11); -+ u32p_replace_bits(&ledcfg, LED_MODE_SW_CTRL, LEDCFG0_LED0CM); -+ u32p_replace_bits(&ledcfg, LED_SW_ON, LEDCFG0_LED0SV); -+ u32p_replace_bits(&ledcfg, LED_MODE_SW_CTRL, LEDCFG0_LED1CM); -+ u32p_replace_bits(&ledcfg, LED_SW_ON, LEDCFG0_LED1SV); - } else if (brightness == RTL8XXXU_HW_LED_CONTROL) { -- /* Value obtained by brute force. */ -- ledcfg = BIT(8) | BIT(9); -+ u32p_replace_bits(&ledcfg, LED_MODE_TX_OR_RX_EVENTS, -+ LEDCFG0_LED0CM); -+ u32p_replace_bits(&ledcfg, LED_SW_OFF, LEDCFG0_LED0SV); -+ u32p_replace_bits(&ledcfg, LED_MODE_TX_OR_RX_EVENTS, -+ LEDCFG0_LED1CM); -+ u32p_replace_bits(&ledcfg, LED_SW_OFF, LEDCFG0_LED1SV); - } - -- rtl8xxxu_write16(priv, REG_LEDCFG0, ledcfg); -+ rtl8xxxu_write32(priv, REG_LEDCFG0, ledcfg); - - return 0; - } ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_regs.h -@@ -146,6 +146,21 @@ - #define GPIO_INTM_EDGE_TRIG_IRQ BIT(9) - - #define REG_LEDCFG0 0x004c -+#define LEDCFG0_LED0CM GENMASK(2, 0) -+#define LEDCFG0_LED1CM GENMASK(10, 8) -+#define LED_MODE_SW_CTRL 0x0 -+#define LED_MODE_TX_OR_RX_EVENTS 0x3 -+#define LEDCFG0_LED0SV BIT(3) -+#define LEDCFG0_LED1SV BIT(11) -+#define LED_SW_OFF 0x0 -+#define LED_SW_ON 0x1 -+#define LEDCFG0_LED0_IO_MODE BIT(7) -+#define LEDCFG0_LED1_IO_MODE BIT(15) -+#define LED_IO_MODE_OUTPUT 0x0 -+#define LED_IO_MODE_INPUT 0x1 -+#define LEDCFG0_LED2EN BIT(21) -+#define LED_GPIO_DISABLE 0x0 -+#define LED_GPIO_ENABLE 0x1 - #define LEDCFG0_DPDT_SELECT BIT(23) - #define REG_LEDCFG1 0x004d - #define LEDCFG1_HW_LED_CONTROL BIT(1) diff --git a/package/kernel/mac80211/patches/rtl/002-02-v6.9-wifi-rtl8xxxu-Fix-off-by-one-initial-RTS-rate.patch b/package/kernel/mac80211/patches/rtl/002-02-v6.9-wifi-rtl8xxxu-Fix-off-by-one-initial-RTS-rate.patch deleted file mode 100644 index 7d1c67f2e0..0000000000 --- a/package/kernel/mac80211/patches/rtl/002-02-v6.9-wifi-rtl8xxxu-Fix-off-by-one-initial-RTS-rate.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 80850ca041f2c7ee28fa5e47c5c1b106415f099f Mon Sep 17 00:00:00 2001 -From: Bitterblue Smith -Date: Tue, 2 Jan 2024 21:33:07 +0200 -Subject: [PATCH 2/2] wifi: rtl8xxxu: Fix off by one initial RTS rate - -rtl8xxxu_set_basic_rates() sets the wrong initial RTS rate. It sets the -next higher rate than the one it should set, e.g. 36M instead of 24M. - -The while loop was supposed to find the index of the most significant -bit which is 1, but it was copied incorrectly from the vendor driver. -Use __fls() instead. - -Signed-off-by: Bitterblue Smith -Reviewed-by: Ping-Ke Shih -Signed-off-by: Kalle Valo -Link: https://msgid.link/761e6836-6cd6-4930-91b6-0446834655c5@gmail.com ---- - drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 7 +++---- - 1 file changed, 3 insertions(+), 4 deletions(-) - ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -@@ -4870,10 +4870,9 @@ static void rtl8xxxu_set_basic_rates(str - - dev_dbg(&priv->udev->dev, "%s: rates %08x\n", __func__, rate_cfg); - -- while (rate_cfg) { -- rate_cfg = (rate_cfg >> 1); -- rate_idx++; -- } -+ if (rate_cfg) -+ rate_idx = __fls(rate_cfg); -+ - rtl8xxxu_write8(priv, REG_INIRTS_RATE_SEL, rate_idx); - } - diff --git a/package/kernel/mac80211/patches/rtl/003-01-v6.9-wifi-rtl8xxxu-add-cancel_work_sync-for-c2hcmd_work.patch b/package/kernel/mac80211/patches/rtl/003-01-v6.9-wifi-rtl8xxxu-add-cancel_work_sync-for-c2hcmd_work.patch deleted file mode 100644 index 612b5f8738..0000000000 --- a/package/kernel/mac80211/patches/rtl/003-01-v6.9-wifi-rtl8xxxu-add-cancel_work_sync-for-c2hcmd_work.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 1213acb478a7181cd73eeaf00db430f1e45b1361 Mon Sep 17 00:00:00 2001 -From: Martin Kaistra -Date: Thu, 11 Jan 2024 17:36:27 +0100 -Subject: [PATCH 1/2] wifi: rtl8xxxu: add cancel_work_sync() for c2hcmd_work - -The workqueue might still be running, when the driver is stopped. To -avoid a use-after-free, call cancel_work_sync() in rtl8xxxu_stop(). - -Fixes: e542e66b7c2e ("rtl8xxxu: add bluetooth co-existence support for single antenna") -Signed-off-by: Martin Kaistra -Reviewed-by: Ping-Ke Shih -Signed-off-by: Kalle Valo -Link: https://msgid.link/20240111163628.320697-2-martin.kaistra@linutronix.de ---- - drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 1 + - 1 file changed, 1 insertion(+) - ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -@@ -7480,6 +7480,7 @@ static void rtl8xxxu_stop(struct ieee802 - if (priv->usb_interrupts) - rtl8xxxu_write32(priv, REG_USB_HIMR, 0); - -+ cancel_work_sync(&priv->c2hcmd_work); - cancel_delayed_work_sync(&priv->ra_watchdog); - - rtl8xxxu_free_rx_resources(priv); diff --git a/package/kernel/mac80211/patches/rtl/003-02-v6.9-wifi-rtl8xxxu-enable-channel-switch-support.patch b/package/kernel/mac80211/patches/rtl/003-02-v6.9-wifi-rtl8xxxu-enable-channel-switch-support.patch deleted file mode 100644 index 6c78d3901b..0000000000 --- a/package/kernel/mac80211/patches/rtl/003-02-v6.9-wifi-rtl8xxxu-enable-channel-switch-support.patch +++ /dev/null @@ -1,100 +0,0 @@ -From ece90a8622320bf5a24d3326da1f8e109891573c Mon Sep 17 00:00:00 2001 -From: Martin Kaistra -Date: Thu, 11 Jan 2024 17:36:28 +0100 -Subject: [PATCH 2/2] wifi: rtl8xxxu: enable channel switch support - -The CSA countdown in the beacon frames, which are sent out by firmware, -needs to get updated by the driver. To achieve this, convert -update_beacon_work to delayed_work and schedule it with the beacon -interval in case CSA is active and the countdown is not complete. - -Signed-off-by: Martin Kaistra -Reviewed-by: Ping-Ke Shih -Signed-off-by: Kalle Valo -Link: https://msgid.link/20240111163628.320697-3-martin.kaistra@linutronix.de ---- - .../net/wireless/realtek/rtl8xxxu/rtl8xxxu.h | 2 +- - .../wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 19 +++++++++++++++---- - 2 files changed, 16 insertions(+), 5 deletions(-) - ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h -@@ -1900,7 +1900,7 @@ struct rtl8xxxu_priv { - struct delayed_work ra_watchdog; - struct work_struct c2hcmd_work; - struct sk_buff_head c2hcmd_queue; -- struct work_struct update_beacon_work; -+ struct delayed_work update_beacon_work; - struct rtl8xxxu_btcoex bt_coex; - struct rtl8xxxu_ra_report ra_report; - struct rtl8xxxu_cfo_tracking cfo_tracking; ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -@@ -4605,7 +4605,7 @@ static int rtl8xxxu_set_tim(struct ieee8 - { - struct rtl8xxxu_priv *priv = hw->priv; - -- schedule_work(&priv->update_beacon_work); -+ schedule_delayed_work(&priv->update_beacon_work, 0); - - return 0; - } -@@ -5107,7 +5107,7 @@ rtl8xxxu_bss_info_changed(struct ieee802 - } - - if (changed & BSS_CHANGED_BEACON) -- schedule_work(&priv->update_beacon_work); -+ schedule_delayed_work(&priv->update_beacon_work, 0); - - error: - return; -@@ -5726,7 +5726,7 @@ static void rtl8xxxu_send_beacon_frame(s - static void rtl8xxxu_update_beacon_work_callback(struct work_struct *work) - { - struct rtl8xxxu_priv *priv = -- container_of(work, struct rtl8xxxu_priv, update_beacon_work); -+ container_of(work, struct rtl8xxxu_priv, update_beacon_work.work); - struct ieee80211_hw *hw = priv->hw; - struct ieee80211_vif *vif = priv->vifs[0]; - -@@ -5735,6 +5735,14 @@ static void rtl8xxxu_update_beacon_work_ - return; - } - -+ if (vif->bss_conf.csa_active) { -+ if (ieee80211_beacon_cntdwn_is_complete(vif)) { -+ ieee80211_csa_finish(vif); -+ return; -+ } -+ schedule_delayed_work(&priv->update_beacon_work, -+ msecs_to_jiffies(vif->bss_conf.beacon_int)); -+ } - rtl8xxxu_send_beacon_frame(hw, vif); - } - -@@ -7482,6 +7490,7 @@ static void rtl8xxxu_stop(struct ieee802 - - cancel_work_sync(&priv->c2hcmd_work); - cancel_delayed_work_sync(&priv->ra_watchdog); -+ cancel_delayed_work_sync(&priv->update_beacon_work); - - rtl8xxxu_free_rx_resources(priv); - rtl8xxxu_free_tx_resources(priv); -@@ -7763,7 +7772,7 @@ static int rtl8xxxu_probe(struct usb_int - spin_lock_init(&priv->rx_urb_lock); - INIT_WORK(&priv->rx_urb_wq, rtl8xxxu_rx_urb_work); - INIT_DELAYED_WORK(&priv->ra_watchdog, rtl8xxxu_watchdog_callback); -- INIT_WORK(&priv->update_beacon_work, rtl8xxxu_update_beacon_work_callback); -+ INIT_DELAYED_WORK(&priv->update_beacon_work, rtl8xxxu_update_beacon_work_callback); - skb_queue_head_init(&priv->c2hcmd_queue); - - usb_set_intfdata(interface, hw); -@@ -7824,6 +7833,8 @@ static int rtl8xxxu_probe(struct usb_int - hw->wiphy->interface_modes |= BIT(NL80211_IFTYPE_AP); - hw->queues = 4; - -+ hw->wiphy->flags |= WIPHY_FLAG_HAS_CHANNEL_SWITCH; -+ - if (priv->fops->supports_concurrent) { - hw->wiphy->iface_combinations = rtl8xxxu_combinations; - hw->wiphy->n_iface_combinations = ARRAY_SIZE(rtl8xxxu_combinations); diff --git a/package/kernel/mac80211/patches/rtl/004-01-v6.9-wifi-rtl8xxxu-convert-EN_DESC_ID-of-TX-descriptor-to.patch b/package/kernel/mac80211/patches/rtl/004-01-v6.9-wifi-rtl8xxxu-convert-EN_DESC_ID-of-TX-descriptor-to.patch deleted file mode 100644 index a88a52231d..0000000000 --- a/package/kernel/mac80211/patches/rtl/004-01-v6.9-wifi-rtl8xxxu-convert-EN_DESC_ID-of-TX-descriptor-to.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 426e7b4773921d07ab4ab8ba16fbad396d6c9971 Mon Sep 17 00:00:00 2001 -From: Ping-Ke Shih -Date: Tue, 16 Jan 2024 16:09:44 +0800 -Subject: [PATCH 1/2] wifi: rtl8xxxu: convert EN_DESC_ID of TX descriptor to - le32 type - -Fields of TX descriptor are little-endian order, so correct EN_DESC_ID -field to le32 type. - -Fixes: b837f78fbffa ("wifi: rtl8xxxu: add hw crypto support for AP mode") -Reported-by: kernel test robot -Closes: https://lore.kernel.org/oe-kbuild-all/202401161318.YtXoCkjU-lkp@intel.com/ -Cc: Martin Kaistra -Signed-off-by: Ping-Ke Shih -Signed-off-by: Kalle Valo -Link: https://msgid.link/20240116080945.20172-1-pkshih@realtek.com ---- - drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -@@ -5619,7 +5619,7 @@ static void rtl8xxxu_tx(struct ieee80211 - break; - } - if (bmc && rtlvif->hw_key_idx != 0xff) { -- tx_desc->txdw1 |= TXDESC_EN_DESC_ID; -+ tx_desc->txdw1 |= cpu_to_le32(TXDESC_EN_DESC_ID); - macid = rtlvif->hw_key_idx; - } - } diff --git a/package/kernel/mac80211/patches/rtl/004-02-v6.9-wifi-rtl8xxxu-make-instances-of-iface-limit-and-comb.patch b/package/kernel/mac80211/patches/rtl/004-02-v6.9-wifi-rtl8xxxu-make-instances-of-iface-limit-and-comb.patch deleted file mode 100644 index 68848e28e0..0000000000 --- a/package/kernel/mac80211/patches/rtl/004-02-v6.9-wifi-rtl8xxxu-make-instances-of-iface-limit-and-comb.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 92c7428f942da7dfcdc629b05b5114f80822d7a4 Mon Sep 17 00:00:00 2001 -From: Ping-Ke Shih -Date: Tue, 16 Jan 2024 16:09:45 +0800 -Subject: [PATCH 2/2] wifi: rtl8xxxu: make instances of iface limit and - combination to be static const - -rtl8xxxu_limits and rtl8xxxu_combinations can be static const, so add -modifiers as desire. Otherwise, Sparse reports warnings - -rtl8xxxu_core.c:7677:30: warning: symbol 'rtl8xxxu_limits' was not declared. Should it be static? -rtl8xxxu_core.c:7682:36: warning: symbol 'rtl8xxxu_combinations' was not declared. Should it be static? - -Signed-off-by: Ping-Ke Shih -Signed-off-by: Kalle Valo -Link: https://msgid.link/20240116080945.20172-2-pkshih@realtek.com ---- - drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -@@ -7674,12 +7674,12 @@ static void rtl8xxxu_deinit_led(struct r - led_classdev_unregister(led); - } - --struct ieee80211_iface_limit rtl8xxxu_limits[] = { -+static const struct ieee80211_iface_limit rtl8xxxu_limits[] = { - { .max = 2, .types = BIT(NL80211_IFTYPE_STATION), }, - { .max = 1, .types = BIT(NL80211_IFTYPE_AP), }, - }; - --struct ieee80211_iface_combination rtl8xxxu_combinations[] = { -+static const struct ieee80211_iface_combination rtl8xxxu_combinations[] = { - { - .limits = rtl8xxxu_limits, - .n_limits = ARRAY_SIZE(rtl8xxxu_limits), diff --git a/package/kernel/mac80211/patches/rtl/005-v6.9-wifi-rtl8xxxu-add-missing-number-of-sec-cam-entries-.patch b/package/kernel/mac80211/patches/rtl/005-v6.9-wifi-rtl8xxxu-add-missing-number-of-sec-cam-entries-.patch deleted file mode 100644 index 9fba6befef..0000000000 --- a/package/kernel/mac80211/patches/rtl/005-v6.9-wifi-rtl8xxxu-add-missing-number-of-sec-cam-entries-.patch +++ /dev/null @@ -1,100 +0,0 @@ -From 563d5025cf3b51c7bf20e6966af433ed5f838875 Mon Sep 17 00:00:00 2001 -From: Martin Kaistra -Date: Tue, 16 Jan 2024 10:50:01 +0100 -Subject: [PATCH] wifi: rtl8xxxu: add missing number of sec cam entries for all - variants - -Commit b837f78fbffa ("wifi: rtl8xxxu: add hw crypto support for AP -mode") introduced max_sec_cam_num as a member of rtl8xxxu_fileops. -It was missed to set this number for all variants except 8188f, which -caused rtl8xxxu_get_free_sec_cam() to always return 0 and therefore breaking -encrypted traffic. - -Fix it by adding the numbers for all variants. The values are taken from -the vendor drivers and rtlwifi. - -Link: https://lore.kernel.org/linux-wireless/20240111163603.2325-1-zenmchen@gmail.com/ -Fixes: b837f78fbffa ("wifi: rtl8xxxu: add hw crypto support for AP mode") -Signed-off-by: Martin Kaistra -Signed-off-by: Kalle Valo -Link: https://msgid.link/20240116095001.399500-1-martin.kaistra@linutronix.de ---- - drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8188e.c | 1 + - drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192c.c | 1 + - drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192e.c | 1 + - drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192f.c | 1 + - drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8710b.c | 1 + - drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723a.c | 1 + - drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723b.c | 1 + - 7 files changed, 7 insertions(+) - ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8188e.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8188e.c -@@ -1882,6 +1882,7 @@ struct rtl8xxxu_fileops rtl8188eu_fops = - .has_tx_report = 1, - .init_reg_pkt_life_time = 1, - .gen2_thermal_meter = 1, -+ .max_sec_cam_num = 32, - .adda_1t_init = 0x0b1b25a0, - .adda_1t_path_on = 0x0bdb25a0, - /* ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192c.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192c.c -@@ -613,6 +613,7 @@ struct rtl8xxxu_fileops rtl8192cu_fops = - .rx_agg_buf_size = 16000, - .tx_desc_size = sizeof(struct rtl8xxxu_txdesc32), - .rx_desc_size = sizeof(struct rtl8xxxu_rxdesc16), -+ .max_sec_cam_num = 32, - .adda_1t_init = 0x0b1b25a0, - .adda_1t_path_on = 0x0bdb25a0, - .adda_2t_path_on_a = 0x04db25a4, ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192e.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192e.c -@@ -1769,6 +1769,7 @@ struct rtl8xxxu_fileops rtl8192eu_fops = - .needs_full_init = 1, - .supports_ap = 1, - .max_macid_num = 128, -+ .max_sec_cam_num = 64, - .adda_1t_init = 0x0fc01616, - .adda_1t_path_on = 0x0fc01616, - .adda_2t_path_on_a = 0x0fc01616, ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192f.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8192f.c -@@ -2095,6 +2095,7 @@ struct rtl8xxxu_fileops rtl8192fu_fops = - .max_aggr_num = 0x1f1f, - .supports_ap = 1, - .max_macid_num = 128, -+ .max_sec_cam_num = 64, - .trxff_boundary = 0x3f3f, - .pbp_rx = PBP_PAGE_SIZE_256, - .pbp_tx = PBP_PAGE_SIZE_256, ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8710b.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8710b.c -@@ -1877,6 +1877,7 @@ struct rtl8xxxu_fileops rtl8710bu_fops = - .max_aggr_num = 0x0c14, - .supports_ap = 1, - .max_macid_num = 16, -+ .max_sec_cam_num = 32, - .adda_1t_init = 0x03c00016, - .adda_1t_path_on = 0x03c00016, - .trxff_boundary = 0x3f7f, ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723a.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723a.c -@@ -510,6 +510,7 @@ struct rtl8xxxu_fileops rtl8723au_fops = - .rx_agg_buf_size = 16000, - .tx_desc_size = sizeof(struct rtl8xxxu_txdesc32), - .rx_desc_size = sizeof(struct rtl8xxxu_rxdesc16), -+ .max_sec_cam_num = 32, - .adda_1t_init = 0x0b1b25a0, - .adda_1t_path_on = 0x0bdb25a0, - .adda_2t_path_on_a = 0x04db25a4, ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723b.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_8723b.c -@@ -1744,6 +1744,7 @@ struct rtl8xxxu_fileops rtl8723bu_fops = - .max_aggr_num = 0x0c14, - .supports_ap = 1, - .max_macid_num = 128, -+ .max_sec_cam_num = 64, - .adda_1t_init = 0x01c00014, - .adda_1t_path_on = 0x01c00014, - .adda_2t_path_on_a = 0x01c00014, diff --git a/package/kernel/mac80211/patches/rtl/006-v6.9-wifi-rtl8xxxu-fix-error-messages.patch b/package/kernel/mac80211/patches/rtl/006-v6.9-wifi-rtl8xxxu-fix-error-messages.patch deleted file mode 100644 index 961f613161..0000000000 --- a/package/kernel/mac80211/patches/rtl/006-v6.9-wifi-rtl8xxxu-fix-error-messages.patch +++ /dev/null @@ -1,37 +0,0 @@ -From 17903a283593c1dbf9da041f836004163ca30f7b Mon Sep 17 00:00:00 2001 -From: Dan Carpenter -Date: Wed, 31 Jan 2024 10:10:07 +0300 -Subject: [PATCH] wifi: rtl8xxxu: fix error messages - -The first parameter of WARN_ONCE() is a condition so this code will end -up printing the function name instead of the proper message. - -Fixes: 3ff7a05996f9 ("wifi: rtl8xxxu: support setting bssid register for multiple interfaces") -Signed-off-by: Dan Carpenter -Reviewed-by: Ping-Ke Shih -Signed-off-by: Kalle Valo -Link: https://msgid.link/7b144531-a8da-4725-8911-9b614a525a35@moroto.mountain ---- - drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -@@ -3593,7 +3593,7 @@ static int rtl8xxxu_set_mac(struct rtl8x - reg = REG_MACID1; - break; - default: -- WARN_ONCE("%s: invalid port_num\n", __func__); -+ WARN_ONCE(1, "%s: invalid port_num\n", __func__); - return -EINVAL; - } - -@@ -3618,7 +3618,7 @@ static int rtl8xxxu_set_bssid(struct rtl - reg = REG_BSSID1; - break; - default: -- WARN_ONCE("%s: invalid port_num\n", __func__); -+ WARN_ONCE(1, "%s: invalid port_num\n", __func__); - return -EINVAL; - } - diff --git a/package/kernel/mac80211/patches/rtl/007-v6.9-wifi-rtl8xxxu-Add-TP-Link-TL-WN823N-V2.patch b/package/kernel/mac80211/patches/rtl/007-v6.9-wifi-rtl8xxxu-Add-TP-Link-TL-WN823N-V2.patch deleted file mode 100644 index 7ccc08c28d..0000000000 --- a/package/kernel/mac80211/patches/rtl/007-v6.9-wifi-rtl8xxxu-Add-TP-Link-TL-WN823N-V2.patch +++ /dev/null @@ -1,36 +0,0 @@ -From 1209f487d452ff7e822dec30661fd6b5163fb8cf Mon Sep 17 00:00:00 2001 -From: Chun Qiu -Date: Mon, 29 Jan 2024 13:30:30 +0800 -Subject: [PATCH] wifi: rtl8xxxu: Add TP-Link TL-WN823N V2 - -TP-Link TL-WN823N V2 (2357:0135) is based on rtl8192fu and has been -tested to work with the rtl8xxxu driver. - -Signed-off-by: Chun Qiu -Signed-off-by: Kalle Valo -Link: https://msgid.link/20240129053030.16369-1-cqca@cock.lu ---- - drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -@@ -7733,7 +7733,7 @@ static int rtl8xxxu_probe(struct usb_int - untested = 0; - break; - case 0x2357: -- if (id->idProduct == 0x0109) -+ if (id->idProduct == 0x0109 || id->idProduct == 0x0135) - untested = 0; - break; - case 0x0b05: -@@ -8025,6 +8025,9 @@ static const struct usb_device_id dev_ta - .driver_info = (unsigned long)&rtl8192fu_fops}, - {USB_DEVICE_AND_INTERFACE_INFO(USB_VENDOR_ID_REALTEK, 0x318b, 0xff, 0xff, 0xff), - .driver_info = (unsigned long)&rtl8192fu_fops}, -+/* TP-Link TL-WN823N V2 */ -+{USB_DEVICE_AND_INTERFACE_INFO(0x2357, 0x0135, 0xff, 0xff, 0xff), -+ .driver_info = (unsigned long)&rtl8192fu_fops}, - #ifdef CPTCFG_RTL8XXXU_UNTESTED - /* Still supported by rtlwifi */ - {USB_DEVICE_AND_INTERFACE_INFO(USB_VENDOR_ID_REALTEK, 0x8176, 0xff, 0xff, 0xff), diff --git a/package/kernel/mac80211/patches/rtl/008-v6.9-wifi-rtl8xxxu-update-rate-mask-per-sta.patch b/package/kernel/mac80211/patches/rtl/008-v6.9-wifi-rtl8xxxu-update-rate-mask-per-sta.patch deleted file mode 100644 index 66cd70c6b1..0000000000 --- a/package/kernel/mac80211/patches/rtl/008-v6.9-wifi-rtl8xxxu-update-rate-mask-per-sta.patch +++ /dev/null @@ -1,411 +0,0 @@ -From 94dd7ce1885e530a7b10bbe50d5d68ba1bb99e6e Mon Sep 17 00:00:00 2001 -From: Martin Kaistra -Date: Mon, 5 Feb 2024 10:30:40 +0100 -Subject: [PATCH] wifi: rtl8xxxu: update rate mask per sta - -Until now, rtl8xxxu_watchdog_callback() only fetches RSSI and updates -the rate mask in station mode. This means, in AP mode only the default -rate mask is used. - -In order to have the rate mask reflect the actual connection quality, -extend rtl8xxxu_watchdog_callback() to iterate over every sta. Like in -the rtw88 driver, add a function to collect all currently present stas -and then iterate over a list of copies to ensure no RCU lock problems -for register access via USB. Remove the existing RCU lock in -rtl8xxxu_refresh_rate_mask(). - -Since the currently used ieee80211_ave_rssi() is only for 'vif', add -driver-level tracking of RSSI per sta. - -Signed-off-by: Martin Kaistra -Reviewed-by: Ping-Ke Shih -Signed-off-by: Kalle Valo -Link: https://msgid.link/20240205093040.1941140-1-martin.kaistra@linutronix.de ---- - .../net/wireless/realtek/rtl8xxxu/rtl8xxxu.h | 8 +- - .../wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 188 ++++++++++++++---- - 2 files changed, 158 insertions(+), 38 deletions(-) - ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu.h -@@ -6,6 +6,7 @@ - */ - - #include -+#include - - #define RTL8XXXU_DEBUG_REG_WRITE 0x01 - #define RTL8XXXU_DEBUG_REG_READ 0x02 -@@ -1858,6 +1859,8 @@ struct rtl8xxxu_priv { - int next_mbox; - int nr_out_eps; - -+ /* Ensure no added or deleted stas while iterating */ -+ struct mutex sta_mutex; - struct mutex h2c_mutex; - /* Protect the indirect register accesses of RTL8710BU. */ - struct mutex syson_indirect_access_mutex; -@@ -1892,7 +1895,6 @@ struct rtl8xxxu_priv { - u8 pi_enabled:1; - u8 no_pape:1; - u8 int_buf[USB_INTR_CONTENT_LENGTH]; -- u8 rssi_level; - DECLARE_BITMAP(tx_aggr_started, IEEE80211_NUM_TIDS); - DECLARE_BITMAP(tid_tx_operational, IEEE80211_NUM_TIDS); - -@@ -1913,11 +1915,15 @@ struct rtl8xxxu_priv { - DECLARE_BITMAP(cam_map, RTL8XXXU_MAX_SEC_CAM_NUM); - }; - -+DECLARE_EWMA(rssi, 10, 16); -+ - struct rtl8xxxu_sta_info { - struct ieee80211_sta *sta; - struct ieee80211_vif *vif; - - u8 macid; -+ struct ewma_rssi avg_rssi; -+ u8 rssi_level; - }; - - struct rtl8xxxu_vif { ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -@@ -4991,10 +4991,11 @@ rtl8xxxu_bss_info_changed(struct ieee802 - struct rtl8xxxu_vif *rtlvif = (struct rtl8xxxu_vif *)vif->drv_priv; - struct rtl8xxxu_priv *priv = hw->priv; - struct device *dev = &priv->udev->dev; -+ struct rtl8xxxu_sta_info *sta_info; - struct ieee80211_sta *sta; - struct rtl8xxxu_ra_report *rarpt; -+ u8 val8, macid; - u32 val32; -- u8 val8; - - rarpt = &priv->ra_report; - -@@ -5017,6 +5018,7 @@ rtl8xxxu_bss_info_changed(struct ieee802 - rcu_read_unlock(); - goto error; - } -+ macid = rtl8xxxu_get_macid(priv, sta); - - if (sta->deflink.ht_cap.ht_supported) - dev_info(dev, "%s: HT supported\n", __func__); -@@ -5037,14 +5039,15 @@ rtl8xxxu_bss_info_changed(struct ieee802 - bw = RATE_INFO_BW_40; - else - bw = RATE_INFO_BW_20; -+ -+ sta_info = (struct rtl8xxxu_sta_info *)sta->drv_priv; -+ sta_info->rssi_level = RTL8XXXU_RATR_STA_INIT; - rcu_read_unlock(); - - rtl8xxxu_update_ra_report(rarpt, highest_rate, sgi, bw); - -- priv->rssi_level = RTL8XXXU_RATR_STA_INIT; -- - priv->fops->update_rate_mask(priv, ramask, 0, sgi, -- bw == RATE_INFO_BW_40, 0); -+ bw == RATE_INFO_BW_40, macid); - - rtl8xxxu_write8(priv, REG_BCN_MAX_ERR, 0xff); - -@@ -6317,6 +6320,76 @@ static void rtl8188e_c2hcmd_callback(str - } - } - -+#define rtl8xxxu_iterate_vifs_atomic(priv, iterator, data) \ -+ ieee80211_iterate_active_interfaces_atomic((priv)->hw, \ -+ IEEE80211_IFACE_ITER_NORMAL, iterator, data) -+ -+struct rtl8xxxu_rx_update_rssi_data { -+ struct rtl8xxxu_priv *priv; -+ struct ieee80211_hdr *hdr; -+ struct ieee80211_rx_status *rx_status; -+ u8 *bssid; -+}; -+ -+static void rtl8xxxu_rx_update_rssi_iter(void *data, u8 *mac, -+ struct ieee80211_vif *vif) -+{ -+ struct rtl8xxxu_rx_update_rssi_data *iter_data = data; -+ struct ieee80211_sta *sta; -+ struct ieee80211_hdr *hdr = iter_data->hdr; -+ struct rtl8xxxu_priv *priv = iter_data->priv; -+ struct rtl8xxxu_sta_info *sta_info; -+ struct ieee80211_rx_status *rx_status = iter_data->rx_status; -+ u8 *bssid = iter_data->bssid; -+ -+ if (!ether_addr_equal(vif->bss_conf.bssid, bssid)) -+ return; -+ -+ if (!(ether_addr_equal(vif->addr, hdr->addr1) || -+ ieee80211_is_beacon(hdr->frame_control))) -+ return; -+ -+ sta = ieee80211_find_sta_by_ifaddr(priv->hw, hdr->addr2, -+ vif->addr); -+ if (!sta) -+ return; -+ -+ sta_info = (struct rtl8xxxu_sta_info *)sta->drv_priv; -+ ewma_rssi_add(&sta_info->avg_rssi, -rx_status->signal); -+} -+ -+static inline u8 *get_hdr_bssid(struct ieee80211_hdr *hdr) -+{ -+ __le16 fc = hdr->frame_control; -+ u8 *bssid; -+ -+ if (ieee80211_has_tods(fc)) -+ bssid = hdr->addr1; -+ else if (ieee80211_has_fromds(fc)) -+ bssid = hdr->addr2; -+ else -+ bssid = hdr->addr3; -+ -+ return bssid; -+} -+ -+static void rtl8xxxu_rx_update_rssi(struct rtl8xxxu_priv *priv, -+ struct ieee80211_rx_status *rx_status, -+ struct ieee80211_hdr *hdr) -+{ -+ struct rtl8xxxu_rx_update_rssi_data data = {}; -+ -+ if (ieee80211_is_ctl(hdr->frame_control)) -+ return; -+ -+ data.priv = priv; -+ data.hdr = hdr; -+ data.rx_status = rx_status; -+ data.bssid = get_hdr_bssid(hdr); -+ -+ rtl8xxxu_iterate_vifs_atomic(priv, rtl8xxxu_rx_update_rssi_iter, &data); -+} -+ - int rtl8xxxu_parse_rxdesc16(struct rtl8xxxu_priv *priv, struct sk_buff *skb) - { - struct ieee80211_hw *hw = priv->hw; -@@ -6376,18 +6449,26 @@ int rtl8xxxu_parse_rxdesc16(struct rtl8x - skb_queue_tail(&priv->c2hcmd_queue, skb); - schedule_work(&priv->c2hcmd_work); - } else { -+ struct ieee80211_hdr *hdr; -+ - phy_stats = (struct rtl8723au_phy_stats *)skb->data; - - skb_pull(skb, drvinfo_sz + desc_shift); - - skb_trim(skb, pkt_len); - -- if (rx_desc->phy_stats) -+ hdr = (struct ieee80211_hdr *)skb->data; -+ if (rx_desc->phy_stats) { - priv->fops->parse_phystats( - priv, rx_status, phy_stats, - rx_desc->rxmcs, -- (struct ieee80211_hdr *)skb->data, -+ hdr, - rx_desc->crc32 || rx_desc->icverr); -+ if (!rx_desc->crc32 && !rx_desc->icverr) -+ rtl8xxxu_rx_update_rssi(priv, -+ rx_status, -+ hdr); -+ } - - rx_status->mactime = rx_desc->tsfl; - rx_status->flag |= RX_FLAG_MACTIME_START; -@@ -6484,10 +6565,15 @@ int rtl8xxxu_parse_rxdesc24(struct rtl8x - } else { - struct ieee80211_hdr *hdr = (struct ieee80211_hdr *)skb->data; - -- if (rx_desc->phy_stats) -+ if (rx_desc->phy_stats) { - priv->fops->parse_phystats(priv, rx_status, phy_stats, - rx_desc->rxmcs, hdr, - rx_desc->crc32 || rx_desc->icverr); -+ if (!rx_desc->crc32 && !rx_desc->icverr) -+ rtl8xxxu_rx_update_rssi(priv, -+ rx_status, -+ hdr); -+ } - - rx_status->mactime = rx_desc->tsfl; - rx_status->flag |= RX_FLAG_MACTIME_START; -@@ -7111,6 +7197,7 @@ static void rtl8xxxu_refresh_rate_mask(s - int signal, struct ieee80211_sta *sta, - bool force) - { -+ struct rtl8xxxu_sta_info *sta_info = (struct rtl8xxxu_sta_info *)sta->drv_priv; - struct ieee80211_hw *hw = priv->hw; - u16 wireless_mode; - u8 rssi_level, ratr_idx; -@@ -7119,7 +7206,7 @@ static void rtl8xxxu_refresh_rate_mask(s - u8 go_up_gap = 5; - u8 macid = rtl8xxxu_get_macid(priv, sta); - -- rssi_level = priv->rssi_level; -+ rssi_level = sta_info->rssi_level; - snr = rtl8xxxu_signal_to_snr(signal); - snr_thresh_high = RTL8XXXU_SNR_THRESH_HIGH; - snr_thresh_low = RTL8XXXU_SNR_THRESH_LOW; -@@ -7144,18 +7231,16 @@ static void rtl8xxxu_refresh_rate_mask(s - else - rssi_level = RTL8XXXU_RATR_STA_LOW; - -- if (rssi_level != priv->rssi_level || force) { -+ if (rssi_level != sta_info->rssi_level || force) { - int sgi = 0; - u32 rate_bitmap = 0; - -- rcu_read_lock(); - rate_bitmap = (sta->deflink.supp_rates[0] & 0xfff) | - (sta->deflink.ht_cap.mcs.rx_mask[0] << 12) | - (sta->deflink.ht_cap.mcs.rx_mask[1] << 20); - if (sta->deflink.ht_cap.cap & - (IEEE80211_HT_CAP_SGI_40 | IEEE80211_HT_CAP_SGI_20)) - sgi = 1; -- rcu_read_unlock(); - - wireless_mode = rtl8xxxu_wireless_mode(hw, sta); - switch (wireless_mode) { -@@ -7236,7 +7321,7 @@ static void rtl8xxxu_refresh_rate_mask(s - break; - } - -- priv->rssi_level = rssi_level; -+ sta_info->rssi_level = rssi_level; - priv->fops->update_rate_mask(priv, rate_bitmap, ratr_idx, sgi, txbw_40mhz, macid); - } - } -@@ -7329,40 +7414,60 @@ static void rtl8xxxu_track_cfo(struct rt - rtl8xxxu_set_atc_status(priv, abs(cfo_average) >= CFO_TH_ATC); - } - --static void rtl8xxxu_watchdog_callback(struct work_struct *work) -+static void rtl8xxxu_ra_iter(void *data, struct ieee80211_sta *sta) - { -- struct ieee80211_vif *vif; -- struct rtl8xxxu_priv *priv; -- int i; -+ struct rtl8xxxu_sta_info *sta_info = (struct rtl8xxxu_sta_info *)sta->drv_priv; -+ struct rtl8xxxu_priv *priv = data; -+ int signal = -ewma_rssi_read(&sta_info->avg_rssi); - -- priv = container_of(work, struct rtl8xxxu_priv, ra_watchdog.work); -- for (i = 0; i < ARRAY_SIZE(priv->vifs); i++) { -- vif = priv->vifs[i]; -+ priv->fops->report_rssi(priv, rtl8xxxu_get_macid(priv, sta), -+ rtl8xxxu_signal_to_snr(signal)); -+ rtl8xxxu_refresh_rate_mask(priv, signal, sta, false); -+} -+ -+struct rtl8xxxu_stas_entry { -+ struct list_head list; -+ struct ieee80211_sta *sta; -+}; - -- if (!vif || vif->type != NL80211_IFTYPE_STATION) -- continue; -+struct rtl8xxxu_iter_stas_data { -+ struct rtl8xxxu_priv *priv; -+ struct list_head list; -+}; - -- int signal; -- struct ieee80211_sta *sta; -+static void rtl8xxxu_collect_sta_iter(void *data, struct ieee80211_sta *sta) -+{ -+ struct rtl8xxxu_iter_stas_data *iter_stas = data; -+ struct rtl8xxxu_stas_entry *stas_entry; - -- rcu_read_lock(); -- sta = ieee80211_find_sta(vif, vif->bss_conf.bssid); -- if (!sta) { -- struct device *dev = &priv->udev->dev; -+ stas_entry = kmalloc(sizeof(*stas_entry), GFP_ATOMIC); -+ if (!stas_entry) -+ return; - -- dev_dbg(dev, "%s: no sta found\n", __func__); -- rcu_read_unlock(); -- continue; -- } -- rcu_read_unlock(); -+ stas_entry->sta = sta; -+ list_add_tail(&stas_entry->list, &iter_stas->list); -+} - -- signal = ieee80211_ave_rssi(vif); -+static void rtl8xxxu_watchdog_callback(struct work_struct *work) -+{ - -- priv->fops->report_rssi(priv, rtl8xxxu_get_macid(priv, sta), -- rtl8xxxu_signal_to_snr(signal)); -+ struct rtl8xxxu_iter_stas_data iter_data; -+ struct rtl8xxxu_stas_entry *sta_entry, *tmp; -+ struct rtl8xxxu_priv *priv; - -- rtl8xxxu_refresh_rate_mask(priv, signal, sta, false); -+ priv = container_of(work, struct rtl8xxxu_priv, ra_watchdog.work); -+ iter_data.priv = priv; -+ INIT_LIST_HEAD(&iter_data.list); -+ -+ mutex_lock(&priv->sta_mutex); -+ ieee80211_iterate_stations_atomic(priv->hw, rtl8xxxu_collect_sta_iter, -+ &iter_data); -+ list_for_each_entry_safe(sta_entry, tmp, &iter_data.list, list) { -+ list_del_init(&sta_entry->list); -+ rtl8xxxu_ra_iter(priv, sta_entry->sta); -+ kfree(sta_entry); - } -+ mutex_unlock(&priv->sta_mutex); - - if (priv->fops->set_crystal_cap) - rtl8xxxu_track_cfo(priv); -@@ -7504,10 +7609,15 @@ static int rtl8xxxu_sta_add(struct ieee8 - struct rtl8xxxu_vif *rtlvif = (struct rtl8xxxu_vif *)vif->drv_priv; - struct rtl8xxxu_priv *priv = hw->priv; - -+ mutex_lock(&priv->sta_mutex); -+ ewma_rssi_init(&sta_info->avg_rssi); - if (vif->type == NL80211_IFTYPE_AP) { -+ sta_info->rssi_level = RTL8XXXU_RATR_STA_INIT; - sta_info->macid = rtl8xxxu_acquire_macid(priv); -- if (sta_info->macid >= RTL8XXXU_MAX_MAC_ID_NUM) -+ if (sta_info->macid >= RTL8XXXU_MAX_MAC_ID_NUM) { -+ mutex_unlock(&priv->sta_mutex); - return -ENOSPC; -+ } - - rtl8xxxu_refresh_rate_mask(priv, 0, sta, true); - priv->fops->report_connect(priv, sta_info->macid, H2C_MACID_ROLE_STA, true); -@@ -7523,6 +7633,7 @@ static int rtl8xxxu_sta_add(struct ieee8 - break; - } - } -+ mutex_unlock(&priv->sta_mutex); - - return 0; - } -@@ -7534,8 +7645,10 @@ static int rtl8xxxu_sta_remove(struct ie - struct rtl8xxxu_sta_info *sta_info = (struct rtl8xxxu_sta_info *)sta->drv_priv; - struct rtl8xxxu_priv *priv = hw->priv; - -+ mutex_lock(&priv->sta_mutex); - if (vif->type == NL80211_IFTYPE_AP) - rtl8xxxu_release_macid(priv, sta_info->macid); -+ mutex_unlock(&priv->sta_mutex); - - return 0; - } -@@ -7766,6 +7879,7 @@ static int rtl8xxxu_probe(struct usb_int - mutex_init(&priv->usb_buf_mutex); - mutex_init(&priv->syson_indirect_access_mutex); - mutex_init(&priv->h2c_mutex); -+ mutex_init(&priv->sta_mutex); - INIT_LIST_HEAD(&priv->tx_urb_free_list); - spin_lock_init(&priv->tx_urb_lock); - INIT_LIST_HEAD(&priv->rx_urb_pending_list); diff --git a/package/kernel/mac80211/patches/rtl/009-v6.9-wifi-rtl8xxxu-check-vif-before-using-in-rtl8xxxu_tx.patch b/package/kernel/mac80211/patches/rtl/009-v6.9-wifi-rtl8xxxu-check-vif-before-using-in-rtl8xxxu_tx.patch deleted file mode 100644 index 600f7c37df..0000000000 --- a/package/kernel/mac80211/patches/rtl/009-v6.9-wifi-rtl8xxxu-check-vif-before-using-in-rtl8xxxu_tx.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 513c559ca9f05394da79fbf20a8f89eec5f53dce Mon Sep 17 00:00:00 2001 -From: Ping-Ke Shih -Date: Fri, 16 Feb 2024 11:39:23 +0800 -Subject: [PATCH] wifi: rtl8xxxu: check vif before using in rtl8xxxu_tx() - -The 'vif' is from tx_info of SKB, and other codes check 'vif' before using, -which raises smatch warnings: - -drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c:5656 rtl8xxxu_tx() - warn: variable dereferenced before check 'vif' (see line 5553) - -Compile tested only. - -Signed-off-by: Ping-Ke Shih -Signed-off-by: Kalle Valo -Link: https://msgid.link/20240216033923.34683-1-pkshih@realtek.com ---- - drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -@@ -5550,7 +5550,7 @@ static void rtl8xxxu_tx(struct ieee80211 - struct rtl8xxxu_tx_urb *tx_urb; - struct ieee80211_sta *sta = NULL; - struct ieee80211_vif *vif = tx_info->control.vif; -- struct rtl8xxxu_vif *rtlvif = (struct rtl8xxxu_vif *)vif->drv_priv; -+ struct rtl8xxxu_vif *rtlvif = vif ? (struct rtl8xxxu_vif *)vif->drv_priv : NULL; - struct device *dev = &priv->udev->dev; - u32 queue, rts_rate; - u16 pktlen = skb->len; -@@ -5621,7 +5621,7 @@ static void rtl8xxxu_tx(struct ieee80211 - default: - break; - } -- if (bmc && rtlvif->hw_key_idx != 0xff) { -+ if (bmc && rtlvif && rtlvif->hw_key_idx != 0xff) { - tx_desc->txdw1 |= cpu_to_le32(TXDESC_EN_DESC_ID); - macid = rtlvif->hw_key_idx; - } diff --git a/package/kernel/mac80211/patches/rtl/010-v6.9-wifi-rtl8xxxu-fix-mixed-declarations-and-code-warnin.patch b/package/kernel/mac80211/patches/rtl/010-v6.9-wifi-rtl8xxxu-fix-mixed-declarations-and-code-warnin.patch deleted file mode 100644 index e1de784b09..0000000000 --- a/package/kernel/mac80211/patches/rtl/010-v6.9-wifi-rtl8xxxu-fix-mixed-declarations-and-code-warnin.patch +++ /dev/null @@ -1,34 +0,0 @@ -From a7e178259c5bc900da762b33d3a20b7ee1206f07 Mon Sep 17 00:00:00 2001 -From: Shiji Yang -Date: Fri, 23 Feb 2024 21:34:32 +0800 -Subject: [PATCH] wifi: rtl8xxxu: fix mixed declarations in rtl8xxxu_set_aifs() - -Moving struct ieee80211_sta *sta variable definition to the front -of the code to fix the ISO C90 forbids mixed declarations and code -warning. - -Fixes: 43532c050f8e ("wifi: rtl8xxxu: support multiple interfaces in set_aifs()") -Signed-off-by: Shiji Yang -Reviewed-by: Ping-Ke Shih -Signed-off-by: Kalle Valo -Link: https://msgid.link/TYAP286MB03157A408E0D69F2F6FBD88ABC552@TYAP286MB0315.JPNP286.PROD.OUTLOOK.COM ---- - drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - ---- a/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -+++ b/drivers/net/wireless/realtek/rtl8xxxu/rtl8xxxu_core.c -@@ -4919,11 +4919,11 @@ static void rtl8xxxu_set_aifs(struct rtl - int i; - - for (i = 0; i < ARRAY_SIZE(priv->vifs); i++) { -+ struct ieee80211_sta *sta; -+ - if (!priv->vifs[i]) - continue; - -- struct ieee80211_sta *sta; -- - rcu_read_lock(); - sta = ieee80211_find_sta(priv->vifs[i], priv->vifs[i]->bss_conf.bssid); - if (sta) diff --git a/package/kernel/mac80211/patches/subsys/100-v6.8-wifi-mac80211-rework-RX-timestamp-flags.patch b/package/kernel/mac80211/patches/subsys/100-v6.8-wifi-mac80211-rework-RX-timestamp-flags.patch deleted file mode 100644 index 5f88d697c3..0000000000 --- a/package/kernel/mac80211/patches/subsys/100-v6.8-wifi-mac80211-rework-RX-timestamp-flags.patch +++ /dev/null @@ -1,161 +0,0 @@ -From d5b6f6d595b446c1693fdaa6aeb4a65b94d5fc90 Mon Sep 17 00:00:00 2001 -From: Johannes Berg -Date: Wed, 20 Dec 2023 13:41:39 +0200 -Subject: [PATCH] wifi: mac80211: rework RX timestamp flags - -We only have a single flag free, and before using that for -another mactime flag, instead refactor the mactime flags -to use a 2-bit field. - -Signed-off-by: Johannes Berg -Reviewed-by: Gregory Greenman -Reviewed-by: Benjamin Berg -Signed-off-by: Miri Korenblit -Link: https://msgid.link/20231220133549.d0e664832d14.I20c8900106f9bf81316bed778b1e3ce145785274@changeid -Signed-off-by: Johannes Berg ---- - drivers/net/wireless/ath/ath10k/htt_rx.c | 2 +- - include/net/mac80211.h | 13 +++++++++---- - net/mac80211/ieee80211_i.h | 5 +---- - net/mac80211/util.c | 16 ++++++++++------ - 4 files changed, 21 insertions(+), 15 deletions(-) - ---- a/drivers/net/wireless/ath/ath10k/htt_rx.c -+++ b/drivers/net/wireless/ath/ath10k/htt_rx.c -@@ -1294,7 +1294,7 @@ static void ath10k_htt_rx_h_ppdu(struct - status->encoding = RX_ENC_LEGACY; - status->bw = RATE_INFO_BW_20; - -- status->flag &= ~RX_FLAG_MACTIME_END; -+ status->flag &= ~RX_FLAG_MACTIME; - status->flag |= RX_FLAG_NO_SIGNAL_VAL; - - status->flag &= ~(RX_FLAG_AMPDU_IS_LAST); ---- a/include/net/mac80211.h -+++ b/include/net/mac80211.h -@@ -1352,6 +1352,9 @@ ieee80211_tx_info_clear_status(struct ie - * the frame. - * @RX_FLAG_FAILED_PLCP_CRC: Set this flag if the PCLP check failed on - * the frame. -+ * @RX_FLAG_MACTIME: The timestamp passed in the RX status (@mactime -+ * field) is valid if this field is non-zero, and the position -+ * where the timestamp was sampled depends on the value. - * @RX_FLAG_MACTIME_START: The timestamp passed in the RX status (@mactime - * field) is valid and contains the time the first symbol of the MPDU - * was received. This is useful in monitor mode and for proper IBSS -@@ -1431,12 +1434,12 @@ ieee80211_tx_info_clear_status(struct ie - enum mac80211_rx_flags { - RX_FLAG_MMIC_ERROR = BIT(0), - RX_FLAG_DECRYPTED = BIT(1), -- RX_FLAG_MACTIME_PLCP_START = BIT(2), -+ RX_FLAG_ONLY_MONITOR = BIT(2), - RX_FLAG_MMIC_STRIPPED = BIT(3), - RX_FLAG_IV_STRIPPED = BIT(4), - RX_FLAG_FAILED_FCS_CRC = BIT(5), - RX_FLAG_FAILED_PLCP_CRC = BIT(6), -- RX_FLAG_MACTIME_START = BIT(7), -+ /* one free bit at 7 */ - RX_FLAG_NO_SIGNAL_VAL = BIT(8), - RX_FLAG_AMPDU_DETAILS = BIT(9), - RX_FLAG_PN_VALIDATED = BIT(10), -@@ -1445,8 +1448,10 @@ enum mac80211_rx_flags { - RX_FLAG_AMPDU_IS_LAST = BIT(13), - RX_FLAG_AMPDU_DELIM_CRC_ERROR = BIT(14), - RX_FLAG_AMPDU_DELIM_CRC_KNOWN = BIT(15), -- RX_FLAG_MACTIME_END = BIT(16), -- RX_FLAG_ONLY_MONITOR = BIT(17), -+ RX_FLAG_MACTIME = BIT(16) | BIT(17), -+ RX_FLAG_MACTIME_PLCP_START = 1 << 16, -+ RX_FLAG_MACTIME_START = 2 << 16, -+ RX_FLAG_MACTIME_END = 3 << 16, - RX_FLAG_SKIP_MONITOR = BIT(18), - RX_FLAG_AMSDU_MORE = BIT(19), - RX_FLAG_RADIOTAP_TLV_AT_END = BIT(20), ---- a/net/mac80211/ieee80211_i.h -+++ b/net/mac80211/ieee80211_i.h -@@ -1807,10 +1807,7 @@ static inline bool txq_has_queue(struct - static inline bool - ieee80211_have_rx_timestamp(struct ieee80211_rx_status *status) - { -- WARN_ON_ONCE(status->flag & RX_FLAG_MACTIME_START && -- status->flag & RX_FLAG_MACTIME_END); -- return !!(status->flag & (RX_FLAG_MACTIME_START | RX_FLAG_MACTIME_END | -- RX_FLAG_MACTIME_PLCP_START)); -+ return status->flag & RX_FLAG_MACTIME; - } - - void ieee80211_vif_inc_num_mcast(struct ieee80211_sub_if_data *sdata); ---- a/net/mac80211/util.c -+++ b/net/mac80211/util.c -@@ -4174,6 +4174,7 @@ u64 ieee80211_calculate_rx_timestamp(str - unsigned int mpdu_offset) - { - u64 ts = status->mactime; -+ bool mactime_plcp_start; - struct rate_info ri; - u16 rate; - u8 n_ltf; -@@ -4181,6 +4182,9 @@ u64 ieee80211_calculate_rx_timestamp(str - if (WARN_ON(!ieee80211_have_rx_timestamp(status))) - return 0; - -+ mactime_plcp_start = (status->flag & RX_FLAG_MACTIME) == -+ RX_FLAG_MACTIME_PLCP_START; -+ - memset(&ri, 0, sizeof(ri)); - - ri.bw = status->bw; -@@ -4195,7 +4199,7 @@ u64 ieee80211_calculate_rx_timestamp(str - if (status->enc_flags & RX_ENC_FLAG_SHORT_GI) - ri.flags |= RATE_INFO_FLAGS_SHORT_GI; - /* TODO/FIXME: is this right? handle other PPDUs */ -- if (status->flag & RX_FLAG_MACTIME_PLCP_START) { -+ if (mactime_plcp_start) { - mpdu_offset += 2; - ts += 36; - } -@@ -4212,7 +4216,7 @@ u64 ieee80211_calculate_rx_timestamp(str - * See P802.11ax_D6.0, section 27.3.4 for - * VHT PPDU format. - */ -- if (status->flag & RX_FLAG_MACTIME_PLCP_START) { -+ if (mactime_plcp_start) { - mpdu_offset += 2; - ts += 36; - -@@ -4236,7 +4240,7 @@ u64 ieee80211_calculate_rx_timestamp(str - * See P802.11REVmd_D3.0, section 19.3.2 for - * HT PPDU format. - */ -- if (status->flag & RX_FLAG_MACTIME_PLCP_START) { -+ if (mactime_plcp_start) { - mpdu_offset += 2; - if (status->enc_flags & RX_ENC_FLAG_HT_GF) - ts += 24; -@@ -4264,7 +4268,7 @@ u64 ieee80211_calculate_rx_timestamp(str - * See P802.11REVmd_D3.0, section 21.3.2 for - * VHT PPDU format. - */ -- if (status->flag & RX_FLAG_MACTIME_PLCP_START) { -+ if (mactime_plcp_start) { - mpdu_offset += 2; - ts += 36; - -@@ -4298,7 +4302,7 @@ u64 ieee80211_calculate_rx_timestamp(str - bitrate = sband->bitrates[status->rate_idx].bitrate; - ri.legacy = DIV_ROUND_UP(bitrate, (1 << shift)); - -- if (status->flag & RX_FLAG_MACTIME_PLCP_START) { -+ if (mactime_plcp_start) { - if (status->band == NL80211_BAND_5GHZ) { - ts += 20 << shift; - mpdu_offset += 2; -@@ -4320,7 +4324,7 @@ u64 ieee80211_calculate_rx_timestamp(str - return 0; - - /* rewind from end of MPDU */ -- if (status->flag & RX_FLAG_MACTIME_END) -+ if ((status->flag & RX_FLAG_MACTIME) == RX_FLAG_MACTIME_END) - ts -= mpdu_len * 8 * 10 / rate; - - ts += mpdu_offset * 8 * 10 / rate; diff --git a/package/kernel/mac80211/patches/subsys/101-v6.7-wifi-mac80211-Use-flexible-array-in-struct-ieee80211.patch b/package/kernel/mac80211/patches/subsys/101-v6.7-wifi-mac80211-Use-flexible-array-in-struct-ieee80211.patch deleted file mode 100644 index 3f04c93c0a..0000000000 --- a/package/kernel/mac80211/patches/subsys/101-v6.7-wifi-mac80211-Use-flexible-array-in-struct-ieee80211.patch +++ /dev/null @@ -1,58 +0,0 @@ -From 2ae5c9248e06dac2c2360be26b4e25f673238337 Mon Sep 17 00:00:00 2001 -From: Jeff Johnson -Date: Thu, 31 Aug 2023 11:22:58 -0700 -Subject: [PATCH] wifi: mac80211: Use flexible array in struct ieee80211_tim_ie - -Currently struct ieee80211_tim_ie defines: - u8 virtual_map[1]; - -Per the guidance in [1] change this to be a flexible array. - -Per the discussion in [2] wrap the virtual_map in a union with a u8 -item in order to preserve the existing expectation that the -virtual_map must contain at least one octet (at least when used in a -non-S1G PPDU). This means that no driver changes are required. - -[1] https://docs.kernel.org/process/deprecated.html#zero-length-and-one-element-arrays -[2] https://lore.kernel.org/linux-wireless/202308301529.AC90A9EF98@keescook/ - -Suggested-by: Kees Cook -Signed-off-by: Jeff Johnson -Reviewed-by: Kees Cook -Link: https://lore.kernel.org/r/20230831-ieee80211_tim_ie-v3-2-e10ff584ab5d@quicinc.com -[add wifi prefix] -Signed-off-by: Johannes Berg ---- - include/linux/ieee80211.h | 13 ++++++++++--- - 1 file changed, 10 insertions(+), 3 deletions(-) - ---- a/include/linux/ieee80211.h -+++ b/include/linux/ieee80211.h -@@ -951,17 +951,24 @@ struct ieee80211_wide_bw_chansw_ie { - * @dtim_count: DTIM Count - * @dtim_period: DTIM Period - * @bitmap_ctrl: Bitmap Control -+ * @required_octet: "Syntatic sugar" to force the struct size to the -+ * minimum valid size when carried in a non-S1G PPDU - * @virtual_map: Partial Virtual Bitmap - * - * This structure represents the payload of the "TIM element" as -- * described in IEEE Std 802.11-2020 section 9.4.2.5. -+ * described in IEEE Std 802.11-2020 section 9.4.2.5. Note that this -+ * definition is only applicable when the element is carried in a -+ * non-S1G PPDU. When the TIM is carried in an S1G PPDU, the Bitmap -+ * Control and Partial Virtual Bitmap may not be present. - */ - struct ieee80211_tim_ie { - u8 dtim_count; - u8 dtim_period; - u8 bitmap_ctrl; -- /* variable size: 1 - 251 bytes */ -- u8 virtual_map[1]; -+ union { -+ u8 required_octet; -+ DECLARE_FLEX_ARRAY(u8, virtual_map); -+ }; - } __packed; - - /** diff --git a/package/kernel/mac80211/patches/subsys/110-mac80211_keep_keys_on_stop_ap.patch b/package/kernel/mac80211/patches/subsys/110-mac80211_keep_keys_on_stop_ap.patch index 7bf99bec28..c71f1f2ffc 100644 --- a/package/kernel/mac80211/patches/subsys/110-mac80211_keep_keys_on_stop_ap.patch +++ b/package/kernel/mac80211/patches/subsys/110-mac80211_keep_keys_on_stop_ap.patch @@ -9,11 +9,16 @@ Used for AP+STA support in OpenWrt - preserve AP mode keys across STA reconnect --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c -@@ -1635,7 +1635,6 @@ static int ieee80211_stop_ap(struct wiph - link_conf->bssid_indicator = 0; +@@ -1647,12 +1647,6 @@ static int ieee80211_stop_ap(struct wiph - __sta_info_flush(sdata, true); -- ieee80211_free_keys(sdata, true); + __sta_info_flush(sdata, true, link_id); +- ieee80211_remove_link_keys(link, &keys); +- if (!list_empty(&keys)) { +- synchronize_net(); +- ieee80211_free_key_list(local, &keys); +- } +- link_conf->enable_beacon = false; sdata->beacon_rate_set = false; + sdata->vif.cfg.ssid_len = 0; diff --git a/package/kernel/mac80211/patches/subsys/130-disable_auto_vif.patch b/package/kernel/mac80211/patches/subsys/130-disable_auto_vif.patch index 43507f2985..d4341a1350 100644 --- a/package/kernel/mac80211/patches/subsys/130-disable_auto_vif.patch +++ b/package/kernel/mac80211/patches/subsys/130-disable_auto_vif.patch @@ -1,8 +1,8 @@ --- a/net/mac80211/main.c +++ b/net/mac80211/main.c -@@ -1393,24 +1393,6 @@ int ieee80211_register_hw(struct ieee802 - debugfs_hw_add(local); - rate_control_add_debugfs(local); +@@ -1564,24 +1564,6 @@ int ieee80211_register_hw(struct ieee802 + + ieee80211_check_wbrf_support(local); - rtnl_lock(); - wiphy_lock(hw->wiphy); diff --git a/package/kernel/mac80211/patches/subsys/210-ap_scan.patch b/package/kernel/mac80211/patches/subsys/210-ap_scan.patch index 1e9676fd0b..a1f96cb3a0 100644 --- a/package/kernel/mac80211/patches/subsys/210-ap_scan.patch +++ b/package/kernel/mac80211/patches/subsys/210-ap_scan.patch @@ -8,7 +8,7 @@ Subject: [PATCH] mac80211: allow scans in access point mode (for site survey) --- a/net/mac80211/cfg.c +++ b/net/mac80211/cfg.c -@@ -2847,6 +2847,8 @@ static int ieee80211_scan(struct wiphy * +@@ -2844,6 +2844,8 @@ static int ieee80211_scan(struct wiphy * */ fallthrough; case NL80211_IFTYPE_AP: diff --git a/package/kernel/mac80211/patches/subsys/301-mac80211-sta-randomize-BA-session-dialog-token-alloc.patch b/package/kernel/mac80211/patches/subsys/301-mac80211-sta-randomize-BA-session-dialog-token-alloc.patch index 1034e2c928..d576661bd2 100644 --- a/package/kernel/mac80211/patches/subsys/301-mac80211-sta-randomize-BA-session-dialog-token-alloc.patch +++ b/package/kernel/mac80211/patches/subsys/301-mac80211-sta-randomize-BA-session-dialog-token-alloc.patch @@ -28,10 +28,10 @@ Signed-off-by: Johannes Berg --- a/net/mac80211/sta_info.c +++ b/net/mac80211/sta_info.c -@@ -561,6 +561,11 @@ __sta_info_alloc(struct ieee80211_sub_if +@@ -565,6 +565,11 @@ __sta_info_alloc(struct ieee80211_sub_if + spin_lock_init(&sta->ps_lock); INIT_WORK(&sta->drv_deliver_wk, sta_deliver_ps_frames); - INIT_WORK(&sta->ampdu_mlme.work, ieee80211_ba_session_work); - mutex_init(&sta->ampdu_mlme.mtx); + wiphy_work_init(&sta->ampdu_mlme.work, ieee80211_ba_session_work); +#if LINUX_VERSION_IS_LESS(6,2,0) + sta->ampdu_mlme.dialog_token_allocator = prandom_u32_max(U8_MAX); +#else diff --git a/package/kernel/mac80211/patches/subsys/305-mac80211-increase-quantum-for-airtime-scheduler.patch b/package/kernel/mac80211/patches/subsys/305-mac80211-increase-quantum-for-airtime-scheduler.patch index e4575ca7ba..71ce340d31 100644 --- a/package/kernel/mac80211/patches/subsys/305-mac80211-increase-quantum-for-airtime-scheduler.patch +++ b/package/kernel/mac80211/patches/subsys/305-mac80211-increase-quantum-for-airtime-scheduler.patch @@ -12,9 +12,9 @@ Signed-off-by: Felix Fietkau --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h -@@ -92,6 +92,8 @@ extern const u8 ieee80211_ac_to_qos_mask - */ - #define AIRTIME_ACTIVE_DURATION (HZ / 10) +@@ -101,6 +101,8 @@ ieee80211_sta_keep_active(struct sta_inf + return time_before_eq(jiffies, sta->airtime[ac].last_active + HZ / 10); + } +#define AIRTIME_QUANTUM_SHIFT 3 + @@ -23,7 +23,7 @@ Signed-off-by: Felix Fietkau --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c -@@ -4060,7 +4060,7 @@ struct ieee80211_txq *ieee80211_next_txq +@@ -4082,7 +4082,7 @@ struct ieee80211_txq *ieee80211_next_txq if (deficit < 0) sta->airtime[txqi->txq.ac].deficit += @@ -32,7 +32,7 @@ Signed-off-by: Felix Fietkau if (deficit < 0 || !aql_check) { list_move_tail(&txqi->schedule_order, -@@ -4203,7 +4203,8 @@ bool ieee80211_txq_may_transmit(struct i +@@ -4225,7 +4225,8 @@ bool ieee80211_txq_may_transmit(struct i } sta = container_of(iter->txq.sta, struct sta_info, sta); if (ieee80211_sta_deficit(sta, ac) < 0) @@ -42,7 +42,7 @@ Signed-off-by: Felix Fietkau list_move_tail(&iter->schedule_order, &local->active_txqs[ac]); } -@@ -4211,7 +4212,7 @@ bool ieee80211_txq_may_transmit(struct i +@@ -4233,7 +4234,7 @@ bool ieee80211_txq_may_transmit(struct i if (sta->airtime[ac].deficit >= 0) goto out; diff --git a/package/kernel/mac80211/patches/subsys/306-wifi-mac80211-clear-vif-drv_priv-after-calling-remov.patch b/package/kernel/mac80211/patches/subsys/306-wifi-mac80211-clear-vif-drv_priv-after-calling-remov.patch index 46cae5bf4b..b0119988d3 100644 --- a/package/kernel/mac80211/patches/subsys/306-wifi-mac80211-clear-vif-drv_priv-after-calling-remov.patch +++ b/package/kernel/mac80211/patches/subsys/306-wifi-mac80211-clear-vif-drv_priv-after-calling-remov.patch @@ -12,7 +12,7 @@ Signed-off-by: Felix Fietkau --- a/net/mac80211/iface.c +++ b/net/mac80211/iface.c -@@ -684,8 +684,12 @@ static void ieee80211_do_stop(struct iee +@@ -693,8 +693,12 @@ static void ieee80211_do_stop(struct iee fallthrough; default: diff --git a/package/kernel/mac80211/patches/subsys/310-mac80211-split-mesh-fast-tx-cache-into-local-proxied.patch b/package/kernel/mac80211/patches/subsys/310-mac80211-split-mesh-fast-tx-cache-into-local-proxied.patch deleted file mode 100644 index e142cfa4fe..0000000000 --- a/package/kernel/mac80211/patches/subsys/310-mac80211-split-mesh-fast-tx-cache-into-local-proxied.patch +++ /dev/null @@ -1,224 +0,0 @@ -From: Felix Fietkau -Date: Fri, 30 Jun 2023 13:11:51 +0200 -Subject: [PATCH] mac80211: split mesh fast tx cache into - local/proxied/forwarded - -Depending on the origin of the packets (and their SA), 802.11 + mesh headers -could be filled in differently. In order to properly deal with that, add a -new field to the lookup key, indicating the type (local, proxied or -forwarded). This can fix spurious packet drop issues that depend on the order -in which nodes/hosts communicate with each other. - -Signed-off-by: Felix Fietkau ---- - ---- a/net/mac80211/mesh.c -+++ b/net/mac80211/mesh.c -@@ -765,6 +765,9 @@ bool ieee80211_mesh_xmit_fast(struct iee - struct sk_buff *skb, u32 ctrl_flags) - { - struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; -+ struct ieee80211_mesh_fast_tx_key key = { -+ .type = MESH_FAST_TX_TYPE_LOCAL -+ }; - struct ieee80211_mesh_fast_tx *entry; - struct ieee80211s_hdr *meshhdr; - u8 sa[ETH_ALEN] __aligned(2); -@@ -800,7 +803,10 @@ bool ieee80211_mesh_xmit_fast(struct iee - return false; - } - -- entry = mesh_fast_tx_get(sdata, skb->data); -+ ether_addr_copy(key.addr, skb->data); -+ if (!ether_addr_equal(skb->data + ETH_ALEN, sdata->vif.addr)) -+ key.type = MESH_FAST_TX_TYPE_PROXIED; -+ entry = mesh_fast_tx_get(sdata, &key); - if (!entry) - return false; - ---- a/net/mac80211/mesh.h -+++ b/net/mac80211/mesh.h -@@ -134,9 +134,38 @@ struct mesh_path { - #define MESH_FAST_TX_CACHE_TIMEOUT 8000 /* msecs */ - - /** -+ * enum ieee80211_mesh_fast_tx_type - cached mesh fast tx entry type -+ * -+ * @MESH_FAST_TX_TYPE_LOCAL: tx from the local vif address as SA -+ * @MESH_FAST_TX_TYPE_PROXIED: local tx with a different SA (e.g. bridged) -+ * @MESH_FAST_TX_TYPE_FORWARDED: forwarded from a different mesh point -+ * @NUM_MESH_FAST_TX_TYPE: number of entry types -+ */ -+enum ieee80211_mesh_fast_tx_type { -+ MESH_FAST_TX_TYPE_LOCAL, -+ MESH_FAST_TX_TYPE_PROXIED, -+ MESH_FAST_TX_TYPE_FORWARDED, -+ -+ /* must be last */ -+ NUM_MESH_FAST_TX_TYPE -+}; -+ -+ -+/** -+ * struct ieee80211_mesh_fast_tx_key - cached mesh fast tx entry key -+ * -+ * @addr: The Ethernet DA for this entry -+ * @type: cache entry type -+ */ -+struct ieee80211_mesh_fast_tx_key { -+ u8 addr[ETH_ALEN] __aligned(2); -+ u16 type; -+}; -+ -+/** - * struct ieee80211_mesh_fast_tx - cached mesh fast tx entry - * @rhash: rhashtable pointer -- * @addr_key: The Ethernet DA which is the key for this entry -+ * @key: the lookup key for this cache entry - * @fast_tx: base fast_tx data - * @hdr: cached mesh and rfc1042 headers - * @hdrlen: length of mesh + rfc1042 -@@ -147,7 +176,7 @@ struct mesh_path { - */ - struct ieee80211_mesh_fast_tx { - struct rhash_head rhash; -- u8 addr_key[ETH_ALEN] __aligned(2); -+ struct ieee80211_mesh_fast_tx_key key; - - struct ieee80211_fast_tx fast_tx; - u8 hdr[sizeof(struct ieee80211s_hdr) + sizeof(rfc1042_header)]; -@@ -333,7 +362,8 @@ void mesh_path_tx_root_frame(struct ieee - - bool mesh_action_is_path_sel(struct ieee80211_mgmt *mgmt); - struct ieee80211_mesh_fast_tx * --mesh_fast_tx_get(struct ieee80211_sub_if_data *sdata, const u8 *addr); -+mesh_fast_tx_get(struct ieee80211_sub_if_data *sdata, -+ struct ieee80211_mesh_fast_tx_key *key); - bool ieee80211_mesh_xmit_fast(struct ieee80211_sub_if_data *sdata, - struct sk_buff *skb, u32 ctrl_flags); - void mesh_fast_tx_cache(struct ieee80211_sub_if_data *sdata, ---- a/net/mac80211/mesh_pathtbl.c -+++ b/net/mac80211/mesh_pathtbl.c -@@ -36,8 +36,8 @@ static const struct rhashtable_params me - static const struct rhashtable_params fast_tx_rht_params = { - .nelem_hint = 10, - .automatic_shrinking = true, -- .key_len = ETH_ALEN, -- .key_offset = offsetof(struct ieee80211_mesh_fast_tx, addr_key), -+ .key_len = sizeof(struct ieee80211_mesh_fast_tx_key), -+ .key_offset = offsetof(struct ieee80211_mesh_fast_tx, key), - .head_offset = offsetof(struct ieee80211_mesh_fast_tx, rhash), - .hashfn = mesh_table_hash, - }; -@@ -426,20 +426,21 @@ static void mesh_fast_tx_entry_free(stru - } - - struct ieee80211_mesh_fast_tx * --mesh_fast_tx_get(struct ieee80211_sub_if_data *sdata, const u8 *addr) -+mesh_fast_tx_get(struct ieee80211_sub_if_data *sdata, -+ struct ieee80211_mesh_fast_tx_key *key) - { - struct ieee80211_mesh_fast_tx *entry; - struct mesh_tx_cache *cache; - - cache = &sdata->u.mesh.tx_cache; -- entry = rhashtable_lookup(&cache->rht, addr, fast_tx_rht_params); -+ entry = rhashtable_lookup(&cache->rht, key, fast_tx_rht_params); - if (!entry) - return NULL; - - if (!(entry->mpath->flags & MESH_PATH_ACTIVE) || - mpath_expired(entry->mpath)) { - spin_lock_bh(&cache->walk_lock); -- entry = rhashtable_lookup(&cache->rht, addr, fast_tx_rht_params); -+ entry = rhashtable_lookup(&cache->rht, key, fast_tx_rht_params); - if (entry) - mesh_fast_tx_entry_free(cache, entry); - spin_unlock_bh(&cache->walk_lock); -@@ -484,18 +485,24 @@ void mesh_fast_tx_cache(struct ieee80211 - if (!sta) - return; - -+ build.key.type = MESH_FAST_TX_TYPE_LOCAL; - if ((meshhdr->flags & MESH_FLAGS_AE) == MESH_FLAGS_AE_A5_A6) { - /* This is required to keep the mppath alive */ - mppath = mpp_path_lookup(sdata, meshhdr->eaddr1); - if (!mppath) - return; - build.mppath = mppath; -+ if (!ether_addr_equal(meshhdr->eaddr2, sdata->vif.addr)) -+ build.key.type = MESH_FAST_TX_TYPE_PROXIED; - } else if (ieee80211_has_a4(hdr->frame_control)) { - mppath = mpath; - } else { - return; - } - -+ if (!ether_addr_equal(hdr->addr4, sdata->vif.addr)) -+ build.key.type = MESH_FAST_TX_TYPE_FORWARDED; -+ - /* rate limit, in case fast xmit can't be enabled */ - if (mppath->fast_tx_check == jiffies) - return; -@@ -542,7 +549,7 @@ void mesh_fast_tx_cache(struct ieee80211 - } - } - -- memcpy(build.addr_key, mppath->dst, ETH_ALEN); -+ memcpy(build.key.addr, mppath->dst, ETH_ALEN); - build.timestamp = jiffies; - build.fast_tx.band = info->band; - build.fast_tx.da_offs = offsetof(struct ieee80211_hdr, addr3); -@@ -644,13 +651,19 @@ void mesh_fast_tx_flush_addr(struct ieee - const u8 *addr) - { - struct mesh_tx_cache *cache = &sdata->u.mesh.tx_cache; -+ struct ieee80211_mesh_fast_tx_key key = {}; - struct ieee80211_mesh_fast_tx *entry; -+ int i; - -+ ether_addr_copy(key.addr, addr); - cache = &sdata->u.mesh.tx_cache; - spin_lock_bh(&cache->walk_lock); -- entry = rhashtable_lookup_fast(&cache->rht, addr, fast_tx_rht_params); -- if (entry) -- mesh_fast_tx_entry_free(cache, entry); -+ for (i = 0; i < NUM_MESH_FAST_TX_TYPE; i++) { -+ key.type = i; -+ entry = rhashtable_lookup_fast(&cache->rht, &key, fast_tx_rht_params); -+ if (entry) -+ mesh_fast_tx_entry_free(cache, entry); -+ } - spin_unlock_bh(&cache->walk_lock); - } - ---- a/net/mac80211/rx.c -+++ b/net/mac80211/rx.c -@@ -2726,7 +2726,10 @@ ieee80211_rx_mesh_fast_forward(struct ie - struct sk_buff *skb, int hdrlen) - { - struct ieee80211_if_mesh *ifmsh = &sdata->u.mesh; -- struct ieee80211_mesh_fast_tx *entry = NULL; -+ struct ieee80211_mesh_fast_tx_key key = { -+ .type = MESH_FAST_TX_TYPE_FORWARDED -+ }; -+ struct ieee80211_mesh_fast_tx *entry; - struct ieee80211s_hdr *mesh_hdr; - struct tid_ampdu_tx *tid_tx; - struct sta_info *sta; -@@ -2735,9 +2738,13 @@ ieee80211_rx_mesh_fast_forward(struct ie - - mesh_hdr = (struct ieee80211s_hdr *)(skb->data + sizeof(eth)); - if ((mesh_hdr->flags & MESH_FLAGS_AE) == MESH_FLAGS_AE_A5_A6) -- entry = mesh_fast_tx_get(sdata, mesh_hdr->eaddr1); -+ ether_addr_copy(key.addr, mesh_hdr->eaddr1); - else if (!(mesh_hdr->flags & MESH_FLAGS_AE)) -- entry = mesh_fast_tx_get(sdata, skb->data); -+ ether_addr_copy(key.addr, skb->data); -+ else -+ return false; -+ -+ entry = mesh_fast_tx_get(sdata, &key); - if (!entry) - return false; - diff --git a/package/kernel/mac80211/patches/subsys/312-wifi-cfg80211-annotate-iftype_data-pointer-with-spar.patch b/package/kernel/mac80211/patches/subsys/312-wifi-cfg80211-annotate-iftype_data-pointer-with-spar.patch deleted file mode 100644 index 91ebfc6105..0000000000 --- a/package/kernel/mac80211/patches/subsys/312-wifi-cfg80211-annotate-iftype_data-pointer-with-spar.patch +++ /dev/null @@ -1,467 +0,0 @@ -From: Johannes Berg -Date: Mon, 28 Aug 2023 09:54:39 +0200 -Subject: [PATCH] wifi: cfg80211: annotate iftype_data pointer with sparse - -There were are a number of cases in mac80211 and iwlwifi (at -least) that used the sband->iftype_data pointer directly, -instead of using the accessors to find the right array entry -to use. - -Make sparse warn when such a thing is done. - -To not have a lot of casts, add two helper functions/macros - - - ieee80211_set_sband_iftype_data() - - for_each_sband_iftype_data() - -Signed-off-by: Johannes Berg ---- - ---- a/drivers/net/wireless/ath/ath11k/mac.c -+++ b/drivers/net/wireless/ath/ath11k/mac.c -@@ -5893,8 +5893,9 @@ static void ath11k_mac_setup_he_cap(stru - ar->mac.iftype[NL80211_BAND_2GHZ], - NL80211_BAND_2GHZ); - band = &ar->mac.sbands[NL80211_BAND_2GHZ]; -- band->iftype_data = ar->mac.iftype[NL80211_BAND_2GHZ]; -- band->n_iftype_data = count; -+ _ieee80211_set_sband_iftype_data(band, -+ ar->mac.iftype[NL80211_BAND_2GHZ], -+ count); - } - - if (cap->supported_bands & WMI_HOST_WLAN_5G_CAP) { -@@ -5902,8 +5903,9 @@ static void ath11k_mac_setup_he_cap(stru - ar->mac.iftype[NL80211_BAND_5GHZ], - NL80211_BAND_5GHZ); - band = &ar->mac.sbands[NL80211_BAND_5GHZ]; -- band->iftype_data = ar->mac.iftype[NL80211_BAND_5GHZ]; -- band->n_iftype_data = count; -+ _ieee80211_set_sband_iftype_data(band, -+ ar->mac.iftype[NL80211_BAND_5GHZ], -+ count); - } - - if (cap->supported_bands & WMI_HOST_WLAN_5G_CAP && -@@ -5912,8 +5914,9 @@ static void ath11k_mac_setup_he_cap(stru - ar->mac.iftype[NL80211_BAND_6GHZ], - NL80211_BAND_6GHZ); - band = &ar->mac.sbands[NL80211_BAND_6GHZ]; -- band->iftype_data = ar->mac.iftype[NL80211_BAND_6GHZ]; -- band->n_iftype_data = count; -+ _ieee80211_set_sband_iftype_data(band, -+ ar->mac.iftype[NL80211_BAND_6GHZ], -+ count); - } - } - ---- a/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c -+++ b/drivers/net/wireless/intel/iwlwifi/iwl-nvm-parse.c -@@ -1078,8 +1078,8 @@ static void iwl_init_he_hw_capab(struct - - memcpy(iftype_data, iwl_he_eht_capa, sizeof(iwl_he_eht_capa)); - -- sband->iftype_data = iftype_data; -- sband->n_iftype_data = ARRAY_SIZE(iwl_he_eht_capa); -+ _ieee80211_set_sband_iftype_data(sband, iftype_data, -+ ARRAY_SIZE(iwl_he_eht_capa)); - - for (i = 0; i < sband->n_iftype_data; i++) - iwl_nvm_fixup_sband_iftd(trans, data, sband, &iftype_data[i], ---- a/drivers/net/wireless/mediatek/mt76/mt7915/init.c -+++ b/drivers/net/wireless/mediatek/mt76/mt7915/init.c -@@ -1127,8 +1127,7 @@ void mt7915_set_stream_he_caps(struct mt - n = mt7915_init_he_caps(phy, NL80211_BAND_2GHZ, data); - - band = &phy->mt76->sband_2g.sband; -- band->iftype_data = data; -- band->n_iftype_data = n; -+ _ieee80211_set_sband_iftype_data(band, data, n); - } - - if (phy->mt76->cap.has_5ghz) { -@@ -1136,8 +1135,7 @@ void mt7915_set_stream_he_caps(struct mt - n = mt7915_init_he_caps(phy, NL80211_BAND_5GHZ, data); - - band = &phy->mt76->sband_5g.sband; -- band->iftype_data = data; -- band->n_iftype_data = n; -+ _ieee80211_set_sband_iftype_data(band, data, n); - } - - if (phy->mt76->cap.has_6ghz) { -@@ -1145,8 +1143,7 @@ void mt7915_set_stream_he_caps(struct mt - n = mt7915_init_he_caps(phy, NL80211_BAND_6GHZ, data); - - band = &phy->mt76->sband_6g.sband; -- band->iftype_data = data; -- band->n_iftype_data = n; -+ _ieee80211_set_sband_iftype_data(band, data, n); - } - } - ---- a/drivers/net/wireless/mediatek/mt76/mt7921/main.c -+++ b/drivers/net/wireless/mediatek/mt76/mt7921/main.c -@@ -196,8 +196,7 @@ void mt7921_set_stream_he_caps(struct mt - n = mt7921_init_he_caps(phy, NL80211_BAND_2GHZ, data); - - band = &phy->mt76->sband_2g.sband; -- band->iftype_data = data; -- band->n_iftype_data = n; -+ _ieee80211_set_sband_iftype_data(band, data, n); - } - - if (phy->mt76->cap.has_5ghz) { -@@ -205,16 +204,14 @@ void mt7921_set_stream_he_caps(struct mt - n = mt7921_init_he_caps(phy, NL80211_BAND_5GHZ, data); - - band = &phy->mt76->sband_5g.sband; -- band->iftype_data = data; -- band->n_iftype_data = n; -+ _ieee80211_set_sband_iftype_data(band, data, n); - - if (phy->mt76->cap.has_6ghz) { - data = phy->iftype[NL80211_BAND_6GHZ]; - n = mt7921_init_he_caps(phy, NL80211_BAND_6GHZ, data); - - band = &phy->mt76->sband_6g.sband; -- band->iftype_data = data; -- band->n_iftype_data = n; -+ _ieee80211_set_sband_iftype_data(band, data, n); - } - } - } ---- a/drivers/net/wireless/mediatek/mt76/mt7996/init.c -+++ b/drivers/net/wireless/mediatek/mt76/mt7996/init.c -@@ -828,8 +828,7 @@ __mt7996_set_stream_he_eht_caps(struct m - n++; - } - -- sband->iftype_data = data; -- sband->n_iftype_data = n; -+ _ieee80211_set_sband_iftype_data(sband, data, n); - } - - void mt7996_set_stream_he_eht_caps(struct mt7996_phy *phy) ---- a/drivers/net/wireless/quantenna/qtnfmac/commands.c -+++ b/drivers/net/wireless/quantenna/qtnfmac/commands.c -@@ -1335,7 +1335,7 @@ static int qtnf_cmd_band_fill_iftype(con - return -EINVAL; - } - -- kfree(band->iftype_data); -+ kfree((__force void *)band->iftype_data); - band->iftype_data = NULL; - band->n_iftype_data = tlv->n_iftype_data; - if (band->n_iftype_data == 0) -@@ -1347,7 +1347,8 @@ static int qtnf_cmd_band_fill_iftype(con - band->n_iftype_data = 0; - return -ENOMEM; - } -- band->iftype_data = iftype_data; -+ -+ _ieee80211_set_sband_iftype_data(band, iftype_data, tlv->n_iftype_data); - - for (i = 0; i < band->n_iftype_data; i++) - qtnf_cmd_conv_iftype(iftype_data++, &tlv->iftype_data[i]); ---- a/drivers/net/wireless/quantenna/qtnfmac/core.c -+++ b/drivers/net/wireless/quantenna/qtnfmac/core.c -@@ -549,7 +549,7 @@ static void qtnf_core_mac_detach(struct - if (!wiphy->bands[band]) - continue; - -- kfree(wiphy->bands[band]->iftype_data); -+ kfree((__force void *)wiphy->bands[band]->iftype_data); - wiphy->bands[band]->n_iftype_data = 0; - - kfree(wiphy->bands[band]->channels); ---- a/drivers/net/wireless/realtek/rtw89/core.c -+++ b/drivers/net/wireless/realtek/rtw89/core.c -@@ -3359,8 +3359,7 @@ static void rtw89_init_he_cap(struct rtw - idx++; - } - -- sband->iftype_data = iftype_data; -- sband->n_iftype_data = idx; -+ _ieee80211_set_sband_iftype_data(sband, iftype_data, idx); - } - - static int rtw89_core_set_supported_band(struct rtw89_dev *rtwdev) -@@ -3405,11 +3404,11 @@ err: - hw->wiphy->bands[NL80211_BAND_5GHZ] = NULL; - hw->wiphy->bands[NL80211_BAND_6GHZ] = NULL; - if (sband_2ghz) -- kfree(sband_2ghz->iftype_data); -+ kfree((__force void *)sband_2ghz->iftype_data); - if (sband_5ghz) -- kfree(sband_5ghz->iftype_data); -+ kfree((__force void *)sband_5ghz->iftype_data); - if (sband_6ghz) -- kfree(sband_6ghz->iftype_data); -+ kfree((__force void *)sband_6ghz->iftype_data); - kfree(sband_2ghz); - kfree(sband_5ghz); - kfree(sband_6ghz); -@@ -3421,11 +3420,11 @@ static void rtw89_core_clr_supported_ban - struct ieee80211_hw *hw = rtwdev->hw; - - if (hw->wiphy->bands[NL80211_BAND_2GHZ]) -- kfree(hw->wiphy->bands[NL80211_BAND_2GHZ]->iftype_data); -+ kfree((__force void *)hw->wiphy->bands[NL80211_BAND_2GHZ]->iftype_data); - if (hw->wiphy->bands[NL80211_BAND_5GHZ]) -- kfree(hw->wiphy->bands[NL80211_BAND_5GHZ]->iftype_data); -+ kfree((__force void *)hw->wiphy->bands[NL80211_BAND_5GHZ]->iftype_data); - if (hw->wiphy->bands[NL80211_BAND_6GHZ]) -- kfree(hw->wiphy->bands[NL80211_BAND_6GHZ]->iftype_data); -+ kfree((__force void *)hw->wiphy->bands[NL80211_BAND_6GHZ]->iftype_data); - kfree(hw->wiphy->bands[NL80211_BAND_2GHZ]); - kfree(hw->wiphy->bands[NL80211_BAND_5GHZ]); - kfree(hw->wiphy->bands[NL80211_BAND_6GHZ]); ---- a/drivers/net/wireless/realtek/rtw89/regd.c -+++ b/drivers/net/wireless/realtek/rtw89/regd.c -@@ -377,7 +377,7 @@ bottom: - return; - - wiphy->bands[NL80211_BAND_6GHZ] = NULL; -- kfree(sband->iftype_data); -+ kfree((__force void *)sband->iftype_data); - kfree(sband); - } - ---- a/drivers/net/wireless/virtual/mac80211_hwsim.c -+++ b/drivers/net/wireless/virtual/mac80211_hwsim.c -@@ -4899,25 +4899,19 @@ static const struct ieee80211_sband_ifty - - static void mac80211_hwsim_sband_capab(struct ieee80211_supported_band *sband) - { -- u16 n_iftype_data; -- -- if (sband->band == NL80211_BAND_2GHZ) { -- n_iftype_data = ARRAY_SIZE(sband_capa_2ghz); -- sband->iftype_data = -- (struct ieee80211_sband_iftype_data *)sband_capa_2ghz; -- } else if (sband->band == NL80211_BAND_5GHZ) { -- n_iftype_data = ARRAY_SIZE(sband_capa_5ghz); -- sband->iftype_data = -- (struct ieee80211_sband_iftype_data *)sband_capa_5ghz; -- } else if (sband->band == NL80211_BAND_6GHZ) { -- n_iftype_data = ARRAY_SIZE(sband_capa_6ghz); -- sband->iftype_data = -- (struct ieee80211_sband_iftype_data *)sband_capa_6ghz; -- } else { -- return; -+ switch (sband->band) { -+ case NL80211_BAND_2GHZ: -+ ieee80211_set_sband_iftype_data(sband, sband_capa_2ghz); -+ break; -+ case NL80211_BAND_5GHZ: -+ ieee80211_set_sband_iftype_data(sband, sband_capa_5ghz); -+ break; -+ case NL80211_BAND_6GHZ: -+ ieee80211_set_sband_iftype_data(sband, sband_capa_6ghz); -+ break; -+ default: -+ break; - } -- -- sband->n_iftype_data = n_iftype_data; - } - - #ifdef CPTCFG_MAC80211_MESH ---- a/include/net/cfg80211.h -+++ b/include/net/cfg80211.h -@@ -415,6 +415,19 @@ struct ieee80211_sta_eht_cap { - u8 eht_ppe_thres[IEEE80211_EHT_PPE_THRES_MAX_LEN]; - }; - -+/* sparse defines __CHECKER__; see Documentation/dev-tools/sparse.rst */ -+#ifdef __CHECKER__ -+/* -+ * This is used to mark the sband->iftype_data pointer which is supposed -+ * to be an array with special access semantics (per iftype), but a lot -+ * of code got it wrong in the past, so with this marking sparse will be -+ * noisy when the pointer is used directly. -+ */ -+# define __iftd __attribute__((noderef, address_space(__iftype_data))) -+#else -+# define __iftd -+#endif /* __CHECKER__ */ -+ - /** - * struct ieee80211_sband_iftype_data - sband data per interface type - * -@@ -548,10 +561,48 @@ struct ieee80211_supported_band { - struct ieee80211_sta_s1g_cap s1g_cap; - struct ieee80211_edmg edmg_cap; - u16 n_iftype_data; -- const struct ieee80211_sband_iftype_data *iftype_data; -+ const struct ieee80211_sband_iftype_data __iftd *iftype_data; - }; - - /** -+ * _ieee80211_set_sband_iftype_data - set sband iftype data array -+ * @sband: the sband to initialize -+ * @iftd: the iftype data array pointer -+ * @n_iftd: the length of the iftype data array -+ * -+ * Set the sband iftype data array; use this where the length cannot -+ * be derived from the ARRAY_SIZE() of the argument, but prefer -+ * ieee80211_set_sband_iftype_data() where it can be used. -+ */ -+static inline void -+_ieee80211_set_sband_iftype_data(struct ieee80211_supported_band *sband, -+ const struct ieee80211_sband_iftype_data *iftd, -+ u16 n_iftd) -+{ -+ sband->iftype_data = (const void __iftd __force *)iftd; -+ sband->n_iftype_data = n_iftd; -+} -+ -+/** -+ * ieee80211_set_sband_iftype_data - set sband iftype data array -+ * @sband: the sband to initialize -+ * @iftd: the iftype data array -+ */ -+#define ieee80211_set_sband_iftype_data(sband, iftd) \ -+ _ieee80211_set_sband_iftype_data(sband, iftd, ARRAY_SIZE(iftd)) -+ -+/** -+ * for_each_sband_iftype_data - iterate sband iftype data entries -+ * @sband: the sband whose iftype_data array to iterate -+ * @i: iterator counter -+ * @iftd: iftype data pointer to set -+ */ -+#define for_each_sband_iftype_data(sband, i, iftd) \ -+ for (i = 0, iftd = (const void __force *)&(sband)->iftype_data[i]; \ -+ i < (sband)->n_iftype_data; \ -+ i++, iftd = (const void __force *)&(sband)->iftype_data[i]) -+ -+/** - * ieee80211_get_sband_iftype_data - return sband data for a given iftype - * @sband: the sband to search for the STA on - * @iftype: enum nl80211_iftype -@@ -562,6 +613,7 @@ static inline const struct ieee80211_sba - ieee80211_get_sband_iftype_data(const struct ieee80211_supported_band *sband, - u8 iftype) - { -+ const struct ieee80211_sband_iftype_data *data; - int i; - - if (WARN_ON(iftype >= NL80211_IFTYPE_MAX)) -@@ -570,10 +622,7 @@ ieee80211_get_sband_iftype_data(const st - if (iftype == NL80211_IFTYPE_AP_VLAN) - iftype = NL80211_IFTYPE_AP; - -- for (i = 0; i < sband->n_iftype_data; i++) { -- const struct ieee80211_sband_iftype_data *data = -- &sband->iftype_data[i]; -- -+ for_each_sband_iftype_data(sband, i, data) { - if (data->types_mask & BIT(iftype)) - return data; - } ---- a/net/mac80211/main.c -+++ b/net/mac80211/main.c -@@ -1052,6 +1052,7 @@ int ieee80211_register_hw(struct ieee802 - supp_he = false; - supp_eht = false; - for (band = 0; band < NUM_NL80211_BANDS; band++) { -+ const struct ieee80211_sband_iftype_data *iftd; - struct ieee80211_supported_band *sband; - - sband = local->hw.wiphy->bands[band]; -@@ -1098,11 +1099,7 @@ int ieee80211_register_hw(struct ieee802 - supp_ht = supp_ht || sband->ht_cap.ht_supported; - supp_vht = supp_vht || sband->vht_cap.vht_supported; - -- for (i = 0; i < sband->n_iftype_data; i++) { -- const struct ieee80211_sband_iftype_data *iftd; -- -- iftd = &sband->iftype_data[i]; -- -+ for_each_sband_iftype_data(sband, i, iftd) { - supp_he = supp_he || iftd->he_cap.has_he; - supp_eht = supp_eht || iftd->eht_cap.has_eht; - } ---- a/net/wireless/chan.c -+++ b/net/wireless/chan.c -@@ -6,7 +6,7 @@ - * - * Copyright 2009 Johannes Berg - * Copyright 2013-2014 Intel Mobile Communications GmbH -- * Copyright 2018-2022 Intel Corporation -+ * Copyright 2018-2023 Intel Corporation - */ - - #include -@@ -1162,8 +1162,7 @@ bool cfg80211_chandef_usable(struct wiph - if (!sband) - return false; - -- for (i = 0; i < sband->n_iftype_data; i++) { -- iftd = &sband->iftype_data[i]; -+ for_each_sband_iftype_data(sband, i, iftd) { - if (!iftd->eht_cap.has_eht) - continue; - ---- a/net/wireless/core.c -+++ b/net/wireless/core.c -@@ -5,7 +5,7 @@ - * Copyright 2006-2010 Johannes Berg - * Copyright 2013-2014 Intel Mobile Communications GmbH - * Copyright 2015-2017 Intel Deutschland GmbH -- * Copyright (C) 2018-2022 Intel Corporation -+ * Copyright (C) 2018-2023 Intel Corporation - */ - - #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt -@@ -819,6 +819,7 @@ int wiphy_register(struct wiphy *wiphy) - - /* sanity check supported bands/channels */ - for (band = 0; band < NUM_NL80211_BANDS; band++) { -+ const struct ieee80211_sband_iftype_data *iftd; - u16 types = 0; - bool have_he = false; - -@@ -875,14 +876,11 @@ int wiphy_register(struct wiphy *wiphy) - return -EINVAL; - } - -- for (i = 0; i < sband->n_iftype_data; i++) { -- const struct ieee80211_sband_iftype_data *iftd; -+ for_each_sband_iftype_data(sband, i, iftd) { - bool has_ap, has_non_ap; - u32 ap_bits = BIT(NL80211_IFTYPE_AP) | - BIT(NL80211_IFTYPE_P2P_GO); - -- iftd = &sband->iftype_data[i]; -- - if (WARN_ON(!iftd->types_mask)) - return -EINVAL; - if (WARN_ON(types & iftd->types_mask)) ---- a/net/wireless/nl80211.c -+++ b/net/wireless/nl80211.c -@@ -1907,20 +1907,20 @@ static int nl80211_send_band_rateinfo(st - struct nlattr *nl_iftype_data = - nla_nest_start_noflag(msg, - NL80211_BAND_ATTR_IFTYPE_DATA); -+ const struct ieee80211_sband_iftype_data *iftd; - int err; - - if (!nl_iftype_data) - return -ENOBUFS; - -- for (i = 0; i < sband->n_iftype_data; i++) { -+ for_each_sband_iftype_data(sband, i, iftd) { - struct nlattr *iftdata; - - iftdata = nla_nest_start_noflag(msg, i + 1); - if (!iftdata) - return -ENOBUFS; - -- err = nl80211_send_iftype_data(msg, sband, -- &sband->iftype_data[i]); -+ err = nl80211_send_iftype_data(msg, sband, iftd); - if (err) - return err; - diff --git a/package/kernel/mac80211/patches/subsys/313-wifi-cfg80211-export-DFS-CAC-time-and-usable-state-h.patch b/package/kernel/mac80211/patches/subsys/313-wifi-cfg80211-export-DFS-CAC-time-and-usable-state-h.patch deleted file mode 100644 index a41a906c3c..0000000000 --- a/package/kernel/mac80211/patches/subsys/313-wifi-cfg80211-export-DFS-CAC-time-and-usable-state-h.patch +++ /dev/null @@ -1,111 +0,0 @@ -From 30ca8b0c4d6c9fb1d76e5894b1e8bf7c6a12224d Mon Sep 17 00:00:00 2001 -From: Aditya Kumar Singh -Date: Tue, 12 Sep 2023 10:48:55 +0530 -Subject: [PATCH] wifi: cfg80211: export DFS CAC time and usable state helper - functions - -cfg80211 has cfg80211_chandef_dfs_usable() function to know whether -at least one channel in the chandef is in usable state or not. Also, -cfg80211_chandef_dfs_cac_time() function is there which tells the CAC -time required for the given chandef. - -Make these two functions visible to drivers by exporting their symbol -to global list of kernel symbols. - -Lower level drivers can make use of these two functions to be aware -if CAC is required on the given chandef and for how long. For example -drivers which maintains the CAC state internally can make use of these. - -Signed-off-by: Aditya Kumar Singh -Reviewed-by: Jeff Johnson -Link: https://lore.kernel.org/r/20230912051857.2284-2-quic_adisi@quicinc.com -Signed-off-by: Johannes Berg ---- - include/net/cfg80211.h | 24 ++++++++++++++++++++++++ - net/wireless/chan.c | 2 ++ - net/wireless/core.h | 17 ----------------- - 3 files changed, 26 insertions(+), 17 deletions(-) - ---- a/include/net/cfg80211.h -+++ b/include/net/cfg80211.h -@@ -1008,6 +1008,30 @@ int cfg80211_chandef_dfs_required(struct - enum nl80211_iftype iftype); - - /** -+ * cfg80211_chandef_dfs_usable - checks if chandef is DFS usable and we -+ * can/need start CAC on such channel -+ * @wiphy: the wiphy to validate against -+ * @chandef: the channel definition to check -+ * -+ * Return: true if all channels available and at least -+ * one channel requires CAC (NL80211_DFS_USABLE) -+ */ -+bool cfg80211_chandef_dfs_usable(struct wiphy *wiphy, -+ const struct cfg80211_chan_def *chandef); -+ -+/** -+ * cfg80211_chandef_dfs_cac_time - get the DFS CAC time (in ms) for given -+ * channel definition -+ * @wiphy: the wiphy to validate against -+ * @chandef: the channel definition to check -+ * -+ * Returns: DFS CAC time (in ms) which applies for this channel definition -+ */ -+unsigned int -+cfg80211_chandef_dfs_cac_time(struct wiphy *wiphy, -+ const struct cfg80211_chan_def *chandef); -+ -+/** - * nl80211_send_chandef - sends the channel definition. - * @msg: the msg to send channel definition - * @chandef: the channel definition to check ---- a/net/wireless/chan.c -+++ b/net/wireless/chan.c -@@ -666,6 +666,7 @@ bool cfg80211_chandef_dfs_usable(struct - - return (r1 + r2 > 0); - } -+EXPORT_SYMBOL(cfg80211_chandef_dfs_usable); - - /* - * Checks if center frequency of chan falls with in the bandwidth -@@ -965,6 +966,7 @@ cfg80211_chandef_dfs_cac_time(struct wip - - return max(t1, t2); - } -+EXPORT_SYMBOL(cfg80211_chandef_dfs_cac_time); - - static bool cfg80211_secondary_chans_ok(struct wiphy *wiphy, - u32 center_freq, u32 bandwidth, ---- a/net/wireless/core.h -+++ b/net/wireless/core.h -@@ -476,29 +476,12 @@ int cfg80211_scan(struct cfg80211_regist - - extern struct work_struct cfg80211_disconnect_work; - --/** -- * cfg80211_chandef_dfs_usable - checks if chandef is DFS usable -- * @wiphy: the wiphy to validate against -- * @chandef: the channel definition to check -- * -- * Checks if chandef is usable and we can/need start CAC on such channel. -- * -- * Return: true if all channels available and at least -- * one channel requires CAC (NL80211_DFS_USABLE) -- */ --bool cfg80211_chandef_dfs_usable(struct wiphy *wiphy, -- const struct cfg80211_chan_def *chandef); -- - void cfg80211_set_dfs_state(struct wiphy *wiphy, - const struct cfg80211_chan_def *chandef, - enum nl80211_dfs_state dfs_state); - - void cfg80211_dfs_channels_update_work(struct work_struct *work); - --unsigned int --cfg80211_chandef_dfs_cac_time(struct wiphy *wiphy, -- const struct cfg80211_chan_def *chandef); -- - void cfg80211_sched_dfs_chan_update(struct cfg80211_registered_device *rdev); - - int diff --git a/package/kernel/mac80211/patches/subsys/314-wifi-mac80211-fix-race-condition-on-enabling-fast-xm.patch b/package/kernel/mac80211/patches/subsys/314-wifi-mac80211-fix-race-condition-on-enabling-fast-xm.patch deleted file mode 100644 index e7a7010c7f..0000000000 --- a/package/kernel/mac80211/patches/subsys/314-wifi-mac80211-fix-race-condition-on-enabling-fast-xm.patch +++ /dev/null @@ -1,34 +0,0 @@ -From: Felix Fietkau -Date: Wed, 3 Jan 2024 15:10:18 +0100 -Subject: [PATCH] wifi: mac80211: fix race condition on enabling fast-xmit - -fast-xmit must only be enabled after the sta has been uploaded to the driver, -otherwise it could end up passing the not-yet-uploaded sta via drv_tx calls -to the driver, leading to potential crashes because of uninitialized drv_priv -data. -Add a missing sta->uploaded check and re-check fast xmit after inserting a sta. - -Signed-off-by: Felix Fietkau ---- - ---- a/net/mac80211/sta_info.c -+++ b/net/mac80211/sta_info.c -@@ -918,6 +918,7 @@ static int sta_info_insert_finish(struct - - if (ieee80211_vif_is_mesh(&sdata->vif)) - mesh_accept_plinks_update(sdata); -+ ieee80211_check_fast_xmit(sta); - - return 0; - out_remove: ---- a/net/mac80211/tx.c -+++ b/net/mac80211/tx.c -@@ -3034,7 +3034,7 @@ void ieee80211_check_fast_xmit(struct st - sdata->vif.type == NL80211_IFTYPE_STATION) - goto out; - -- if (!test_sta_flag(sta, WLAN_STA_AUTHORIZED)) -+ if (!test_sta_flag(sta, WLAN_STA_AUTHORIZED) || !sta->uploaded) - goto out; - - if (test_sta_flag(sta, WLAN_STA_PS_STA) || diff --git a/package/kernel/mac80211/patches/subsys/320-cfg80211-allow-grace-period-for-DFS-available-after-.patch b/package/kernel/mac80211/patches/subsys/320-cfg80211-allow-grace-period-for-DFS-available-after-.patch index ec381303ce..39f23f7839 100644 --- a/package/kernel/mac80211/patches/subsys/320-cfg80211-allow-grace-period-for-DFS-available-after-.patch +++ b/package/kernel/mac80211/patches/subsys/320-cfg80211-allow-grace-period-for-DFS-available-after-.patch @@ -11,23 +11,23 @@ Signed-off-by: Felix Fietkau --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h -@@ -175,6 +175,8 @@ enum ieee80211_channel_flags { +@@ -189,6 +189,8 @@ enum ieee80211_channel_flags { * @dfs_state: current state of this channel. Only relevant if radar is required * on this channel. * @dfs_state_entered: timestamp (jiffies) when the dfs state was entered. + * @dfs_state_last_available: timestamp (jiffies) of the last time when the + * channel was available. * @dfs_cac_ms: DFS CAC time in milliseconds, this is valid for DFS channels. + * @psd: power spectral density (in dBm) */ - struct ieee80211_channel { -@@ -191,6 +193,7 @@ struct ieee80211_channel { +@@ -206,6 +208,7 @@ struct ieee80211_channel { int orig_mag, orig_mpwr; enum nl80211_dfs_state dfs_state; unsigned long dfs_state_entered; + unsigned long dfs_state_last_available; unsigned int dfs_cac_ms; + s8 psd; }; - --- a/net/wireless/ap.c +++ b/net/wireless/ap.c @@ -30,6 +30,9 @@ static int ___cfg80211_stop_ap(struct cf @@ -52,7 +52,7 @@ Signed-off-by: Felix Fietkau --- a/net/wireless/chan.c +++ b/net/wireless/chan.c -@@ -461,6 +461,8 @@ static void cfg80211_set_chans_dfs_state +@@ -560,6 +560,8 @@ static void cfg80211_set_chans_dfs_state c->dfs_state = dfs_state; c->dfs_state_entered = jiffies; @@ -61,7 +61,7 @@ Signed-off-by: Felix Fietkau } } -@@ -874,6 +876,49 @@ static bool cfg80211_get_chans_dfs_avail +@@ -1049,6 +1051,49 @@ static bool cfg80211_get_chans_dfs_avail return true; } @@ -113,7 +113,7 @@ Signed-off-by: Felix Fietkau { --- a/net/wireless/core.h +++ b/net/wireless/core.h -@@ -481,6 +481,8 @@ void cfg80211_set_dfs_state(struct wiphy +@@ -467,6 +467,8 @@ void cfg80211_set_dfs_state(struct wiphy enum nl80211_dfs_state dfs_state); void cfg80211_dfs_channels_update_work(struct work_struct *work); @@ -124,7 +124,7 @@ Signed-off-by: Felix Fietkau --- a/net/wireless/mlme.c +++ b/net/wireless/mlme.c -@@ -930,6 +930,8 @@ void cfg80211_dfs_channels_update_work(s +@@ -1037,6 +1037,8 @@ void cfg80211_dfs_channels_update_work(s if (c->dfs_state == NL80211_DFS_UNAVAILABLE) { time_dfs_update = IEEE80211_DFS_MIN_NOP_TIME_MS; radar_event = NL80211_RADAR_NOP_FINISHED; @@ -133,7 +133,7 @@ Signed-off-by: Felix Fietkau } else { if (regulatory_pre_cac_allowed(wiphy) || cfg80211_any_wiphy_oper_chan(wiphy, c)) -@@ -937,11 +939,10 @@ void cfg80211_dfs_channels_update_work(s +@@ -1044,11 +1046,10 @@ void cfg80211_dfs_channels_update_work(s time_dfs_update = REG_PRE_CAC_EXPIRY_GRACE_MS; radar_event = NL80211_RADAR_PRE_CAC_EXPIRED; diff --git a/package/kernel/mac80211/patches/subsys/330-mac80211-add-AQL-support-for-broadcast-packets.patch b/package/kernel/mac80211/patches/subsys/330-mac80211-add-AQL-support-for-broadcast-packets.patch index d53afcf591..d822e45357 100644 --- a/package/kernel/mac80211/patches/subsys/330-mac80211-add-AQL-support-for-broadcast-packets.patch +++ b/package/kernel/mac80211/patches/subsys/330-mac80211-add-AQL-support-for-broadcast-packets.patch @@ -12,7 +12,7 @@ Signed-off-by: Felix Fietkau --- a/include/net/cfg80211.h +++ b/include/net/cfg80211.h -@@ -3324,6 +3324,7 @@ enum wiphy_params_flags { +@@ -3416,6 +3416,7 @@ enum wiphy_params_flags { /* The per TXQ device queue limit in airtime */ #define IEEE80211_DEFAULT_AQL_TXQ_LIMIT_L 5000 #define IEEE80211_DEFAULT_AQL_TXQ_LIMIT_H 12000 @@ -70,7 +70,7 @@ Signed-off-by: Felix Fietkau --- a/net/mac80211/ieee80211_i.h +++ b/net/mac80211/ieee80211_i.h -@@ -1328,10 +1328,12 @@ struct ieee80211_local { +@@ -1338,10 +1338,12 @@ struct ieee80211_local { spinlock_t handle_wake_tx_queue_lock; u16 airtime_flags; @@ -85,7 +85,7 @@ Signed-off-by: Felix Fietkau const struct ieee80211_ops *ops; --- a/net/mac80211/main.c +++ b/net/mac80211/main.c -@@ -788,6 +788,7 @@ struct ieee80211_hw *ieee80211_alloc_hw_ +@@ -944,6 +944,7 @@ struct ieee80211_hw *ieee80211_alloc_hw_ spin_lock_init(&local->rx_path_lock); spin_lock_init(&local->queue_stop_reason_lock); @@ -95,7 +95,7 @@ Signed-off-by: Felix Fietkau spin_lock_init(&local->active_txq_lock[i]); --- a/net/mac80211/sta_info.c +++ b/net/mac80211/sta_info.c -@@ -2343,13 +2343,28 @@ EXPORT_SYMBOL(ieee80211_sta_recalc_aggre +@@ -2357,13 +2357,28 @@ EXPORT_SYMBOL(ieee80211_sta_recalc_aggre void ieee80211_sta_update_pending_airtime(struct ieee80211_local *local, struct sta_info *sta, u8 ac, @@ -127,7 +127,7 @@ Signed-off-by: Felix Fietkau atomic_add(tx_airtime, --- a/net/mac80211/tx.c +++ b/net/mac80211/tx.c -@@ -2536,7 +2536,7 @@ static u16 ieee80211_store_ack_skb(struc +@@ -2554,7 +2554,7 @@ static u16 ieee80211_store_ack_skb(struc spin_lock_irqsave(&local->ack_status_lock, flags); id = idr_alloc(&local->ack_status_frames, ack_skb, @@ -136,9 +136,9 @@ Signed-off-by: Felix Fietkau spin_unlock_irqrestore(&local->ack_status_lock, flags); if (id >= 0) { -@@ -3958,20 +3958,20 @@ begin: +@@ -3983,20 +3983,20 @@ begin: encap_out: - IEEE80211_SKB_CB(skb)->control.vif = vif; + info->control.vif = vif; - if (tx.sta && - wiphy_ext_feature_isset(local->hw.wiphy, NL80211_EXT_FEATURE_AQL)) { @@ -167,7 +167,7 @@ Signed-off-by: Felix Fietkau } return skb; -@@ -4026,6 +4026,7 @@ struct ieee80211_txq *ieee80211_next_txq +@@ -4048,6 +4048,7 @@ struct ieee80211_txq *ieee80211_next_txq struct ieee80211_txq *ret = NULL; struct txq_info *txqi = NULL, *head = NULL; bool found_eligible_txq = false; @@ -175,7 +175,7 @@ Signed-off-by: Felix Fietkau spin_lock_bh(&local->active_txq_lock[ac]); -@@ -4049,26 +4050,26 @@ struct ieee80211_txq *ieee80211_next_txq +@@ -4071,26 +4072,26 @@ struct ieee80211_txq *ieee80211_next_txq if (!head) head = txqi; @@ -214,7 +214,7 @@ Signed-off-by: Felix Fietkau if (txqi->schedule_round == local->schedule_round[ac]) goto out; -@@ -4133,7 +4134,8 @@ bool ieee80211_txq_airtime_check(struct +@@ -4155,7 +4156,8 @@ bool ieee80211_txq_airtime_check(struct return true; if (!txq->sta) @@ -224,7 +224,7 @@ Signed-off-by: Felix Fietkau if (unlikely(txq->tid == IEEE80211_NUM_TIDS)) return true; -@@ -4182,15 +4184,15 @@ bool ieee80211_txq_may_transmit(struct i +@@ -4204,15 +4206,15 @@ bool ieee80211_txq_may_transmit(struct i spin_lock_bh(&local->active_txq_lock[ac]); @@ -245,25 +245,16 @@ Signed-off-by: Felix Fietkau if (iter == txqi) --- a/include/net/mac80211.h +++ b/include/net/mac80211.h -@@ -1116,6 +1116,7 @@ ieee80211_rate_get_vht_nss(const struct - * link the frame will be transmitted on - * @hw_queue: HW queue to put the frame on, skb_get_queue_mapping() gives the AC - * @ack_frame_id: internal frame ID for TX status, used internally -+ * @tx_time_mc: TX time is for a multicast packet - * @tx_time_est: TX time estimate in units of 4us, used internally - * @control: union part for control data - * @control.rates: TX rates array to try -@@ -1155,8 +1156,9 @@ struct ieee80211_tx_info { - /* common information */ - u32 flags; - u32 band:3, -- ack_frame_id:13, -+ ack_frame_id:12, +@@ -1180,8 +1180,8 @@ struct ieee80211_tx_info { + status_data_idr:1, + status_data:13, hw_queue:4, + tx_time_mc:1, tx_time_est:10; - /* 2 free bits */ +- /* 1 free bit */ + union { + struct { --- a/net/mac80211/sta_info.h +++ b/net/mac80211/sta_info.h @@ -147,7 +147,8 @@ struct airtime_info { @@ -278,7 +269,7 @@ Signed-off-by: Felix Fietkau --- a/net/mac80211/status.c +++ b/net/mac80211/status.c -@@ -716,7 +716,7 @@ static void ieee80211_report_used_skb(st +@@ -717,7 +717,7 @@ static void ieee80211_report_used_skb(st ieee80211_sta_update_pending_airtime(local, sta, skb_get_queue_mapping(skb), tx_time_est, @@ -287,7 +278,7 @@ Signed-off-by: Felix Fietkau rcu_read_unlock(); } -@@ -1127,10 +1127,11 @@ void ieee80211_tx_status_ext(struct ieee +@@ -1138,10 +1138,11 @@ void ieee80211_tx_status_ext(struct ieee /* Do this here to avoid the expensive lookup of the sta * in ieee80211_report_used_skb(). */ diff --git a/package/kernel/mac80211/patches/subsys/333-wifi-mac80211-extend-IEEE80211_KEY_FLAG_GENERATE_MMI.patch b/package/kernel/mac80211/patches/subsys/331-wifi-mac80211-extend-IEEE80211_KEY_FLAG_GENERATE_MMI.patch similarity index 81% rename from package/kernel/mac80211/patches/subsys/333-wifi-mac80211-extend-IEEE80211_KEY_FLAG_GENERATE_MMI.patch rename to package/kernel/mac80211/patches/subsys/331-wifi-mac80211-extend-IEEE80211_KEY_FLAG_GENERATE_MMI.patch index b2b4346a95..5c202c26c2 100644 --- a/package/kernel/mac80211/patches/subsys/333-wifi-mac80211-extend-IEEE80211_KEY_FLAG_GENERATE_MMI.patch +++ b/package/kernel/mac80211/patches/subsys/331-wifi-mac80211-extend-IEEE80211_KEY_FLAG_GENERATE_MMI.patch @@ -15,7 +15,7 @@ Signed-off-by: Johannes Berg --- a/include/net/mac80211.h +++ b/include/net/mac80211.h -@@ -2037,8 +2037,8 @@ static inline bool lockdep_vif_mutex_hel +@@ -2123,8 +2123,8 @@ static inline bool lockdep_vif_wiphy_mut * @IEEE80211_KEY_FLAG_GENERATE_MMIC on the same key. * @IEEE80211_KEY_FLAG_NO_AUTO_TX: Key needs explicit Tx activation. * @IEEE80211_KEY_FLAG_GENERATE_MMIE: This flag should be set by the driver @@ -23,12 +23,12 @@ Signed-off-by: Johannes Berg - * generation only + * for a AES_CMAC or a AES_GMAC key to indicate that it requires sequence + * number generation only + * @IEEE80211_KEY_FLAG_SPP_AMSDU: SPP A-MSDUs can be used with this key + * (set by mac80211 from the sta->spp_amsdu flag) */ - enum ieee80211_key_flags { - IEEE80211_KEY_FLAG_GENERATE_IV_MGMT = BIT(0), --- a/net/mac80211/wpa.c +++ b/net/mac80211/wpa.c -@@ -882,7 +882,8 @@ ieee80211_crypto_aes_cmac_256_encrypt(st +@@ -895,7 +895,8 @@ ieee80211_crypto_aes_cmac_256_encrypt(st info = IEEE80211_SKB_CB(skb); @@ -38,7 +38,7 @@ Signed-off-by: Johannes Berg return TX_CONTINUE; if (WARN_ON(skb_tailroom(skb) < sizeof(*mmie))) -@@ -898,6 +899,9 @@ ieee80211_crypto_aes_cmac_256_encrypt(st +@@ -911,6 +912,9 @@ ieee80211_crypto_aes_cmac_256_encrypt(st bip_ipn_set64(mmie->sequence_number, pn64); @@ -48,7 +48,7 @@ Signed-off-by: Johannes Berg bip_aad(skb, aad); /* MIC = AES-256-CMAC(IGTK, AAD || Management Frame Body || MMIE, 128) -@@ -1027,7 +1031,8 @@ ieee80211_crypto_aes_gmac_encrypt(struct +@@ -1040,7 +1044,8 @@ ieee80211_crypto_aes_gmac_encrypt(struct info = IEEE80211_SKB_CB(skb); @@ -58,7 +58,7 @@ Signed-off-by: Johannes Berg return TX_CONTINUE; if (WARN_ON(skb_tailroom(skb) < sizeof(*mmie))) -@@ -1043,6 +1048,9 @@ ieee80211_crypto_aes_gmac_encrypt(struct +@@ -1056,6 +1061,9 @@ ieee80211_crypto_aes_gmac_encrypt(struct bip_ipn_set64(mmie->sequence_number, pn64); diff --git a/package/kernel/mac80211/patches/subsys/331-wifi-mac80211-only-call-drv_sta_rc_update-for-upload.patch b/package/kernel/mac80211/patches/subsys/331-wifi-mac80211-only-call-drv_sta_rc_update-for-upload.patch deleted file mode 100644 index 167b9e3f77..0000000000 --- a/package/kernel/mac80211/patches/subsys/331-wifi-mac80211-only-call-drv_sta_rc_update-for-upload.patch +++ /dev/null @@ -1,25 +0,0 @@ -From: Felix Fietkau -Date: Wed, 21 Feb 2024 14:41:40 +0100 -Subject: [PATCH] wifi: mac80211: only call drv_sta_rc_update for uploaded - stations - -When a station has not been uploaded yet, receiving SMPS or channel width -notification action frames can lead to rate_control_rate_update calling -drv_sta_rc_update with uninitialized driver private data. -Fix this by adding a missing check for sta->uploaded. - -Signed-off-by: Felix Fietkau ---- - ---- a/net/mac80211/rate.c -+++ b/net/mac80211/rate.c -@@ -119,7 +119,8 @@ void rate_control_rate_update(struct iee - rcu_read_unlock(); - } - -- drv_sta_rc_update(local, sta->sdata, &sta->sta, changed); -+ if (sta->uploaded) -+ drv_sta_rc_update(local, sta->sdata, &sta->sta, changed); - } - - int ieee80211_rate_control_register(const struct rate_control_ops *ops) diff --git a/package/kernel/mac80211/patches/subsys/332-wifi-mac80211-check-clear-fast-rx-for-non-4addr-sta-.patch b/package/kernel/mac80211/patches/subsys/332-wifi-mac80211-check-clear-fast-rx-for-non-4addr-sta-.patch deleted file mode 100644 index 02b4345f21..0000000000 --- a/package/kernel/mac80211/patches/subsys/332-wifi-mac80211-check-clear-fast-rx-for-non-4addr-sta-.patch +++ /dev/null @@ -1,35 +0,0 @@ -From: Felix Fietkau -Date: Sat, 16 Mar 2024 08:37:21 +0100 -Subject: [PATCH] wifi: mac80211: check/clear fast rx for non-4addr sta VLAN - changes - -When moving a station out of a VLAN and deleting the VLAN afterwards, the -fast_rx entry still holds a pointer to the VLAN's netdev, which can cause -use-after-free bugs. Fix this by immediately calling ieee80211_check_fast_rx -after the VLAN change. - -Cc: stable@vger.kernel.org -Reported-by: ranygh@riseup.net -Signed-off-by: Felix Fietkau ---- - ---- a/net/mac80211/cfg.c -+++ b/net/mac80211/cfg.c -@@ -2184,15 +2184,14 @@ static int ieee80211_change_station(stru - } - - if (sta->sdata->vif.type == NL80211_IFTYPE_AP_VLAN && -- sta->sdata->u.vlan.sta) { -- ieee80211_clear_fast_rx(sta); -+ sta->sdata->u.vlan.sta) - RCU_INIT_POINTER(sta->sdata->u.vlan.sta, NULL); -- } - - if (test_sta_flag(sta, WLAN_STA_AUTHORIZED)) - ieee80211_vif_dec_num_mcast(sta->sdata); - - sta->sdata = vlansdata; -+ ieee80211_check_fast_rx(sta); - ieee80211_check_fast_xmit(sta); - - if (test_sta_flag(sta, WLAN_STA_AUTHORIZED)) { diff --git a/package/kernel/mac80211/patches/subsys/340-wifi-nl80211-split-helper-function-from-nl80211_put_.patch b/package/kernel/mac80211/patches/subsys/340-wifi-nl80211-split-helper-function-from-nl80211_put_.patch new file mode 100644 index 0000000000..40757e3777 --- /dev/null +++ b/package/kernel/mac80211/patches/subsys/340-wifi-nl80211-split-helper-function-from-nl80211_put_.patch @@ -0,0 +1,145 @@ +From: Felix Fietkau +Date: Tue, 4 Jun 2024 14:31:09 +0200 +Subject: [PATCH] wifi: nl80211: split helper function from + nl80211_put_iface_combinations + +Create a helper function that puts the data from struct +ieee80211_iface_combination to a nl80211 message. +This will be used for adding per-radio interface combination data. + +Signed-off-by: Felix Fietkau +--- + +--- a/net/wireless/nl80211.c ++++ b/net/wireless/nl80211.c +@@ -1620,71 +1620,78 @@ nla_put_failure: + return -ENOBUFS; + } + +-static int nl80211_put_iface_combinations(struct wiphy *wiphy, +- struct sk_buff *msg, +- bool large) ++static int nl80211_put_ifcomb_data(struct sk_buff *msg, bool large, int idx, ++ const struct ieee80211_iface_combination *c) + { +- struct nlattr *nl_combis; +- int i, j; ++ struct nlattr *nl_combi, *nl_limits; ++ int i; + +- nl_combis = nla_nest_start_noflag(msg, +- NL80211_ATTR_INTERFACE_COMBINATIONS); +- if (!nl_combis) ++ nl_combi = nla_nest_start_noflag(msg, idx); ++ if (!nl_combi) + goto nla_put_failure; + +- for (i = 0; i < wiphy->n_iface_combinations; i++) { +- const struct ieee80211_iface_combination *c; +- struct nlattr *nl_combi, *nl_limits; ++ nl_limits = nla_nest_start_noflag(msg, NL80211_IFACE_COMB_LIMITS); ++ if (!nl_limits) ++ goto nla_put_failure; + +- c = &wiphy->iface_combinations[i]; ++ for (i = 0; i < c->n_limits; i++) { ++ struct nlattr *nl_limit; + +- nl_combi = nla_nest_start_noflag(msg, i + 1); +- if (!nl_combi) ++ nl_limit = nla_nest_start_noflag(msg, i + 1); ++ if (!nl_limit) + goto nla_put_failure; +- +- nl_limits = nla_nest_start_noflag(msg, +- NL80211_IFACE_COMB_LIMITS); +- if (!nl_limits) ++ if (nla_put_u32(msg, NL80211_IFACE_LIMIT_MAX, c->limits[i].max)) + goto nla_put_failure; ++ if (nl80211_put_iftypes(msg, NL80211_IFACE_LIMIT_TYPES, ++ c->limits[i].types)) ++ goto nla_put_failure; ++ nla_nest_end(msg, nl_limit); ++ } + +- for (j = 0; j < c->n_limits; j++) { +- struct nlattr *nl_limit; ++ nla_nest_end(msg, nl_limits); + +- nl_limit = nla_nest_start_noflag(msg, j + 1); +- if (!nl_limit) +- goto nla_put_failure; +- if (nla_put_u32(msg, NL80211_IFACE_LIMIT_MAX, +- c->limits[j].max)) +- goto nla_put_failure; +- if (nl80211_put_iftypes(msg, NL80211_IFACE_LIMIT_TYPES, +- c->limits[j].types)) +- goto nla_put_failure; +- nla_nest_end(msg, nl_limit); +- } ++ if (c->beacon_int_infra_match && ++ nla_put_flag(msg, NL80211_IFACE_COMB_STA_AP_BI_MATCH)) ++ goto nla_put_failure; ++ if (nla_put_u32(msg, NL80211_IFACE_COMB_NUM_CHANNELS, ++ c->num_different_channels) || ++ nla_put_u32(msg, NL80211_IFACE_COMB_MAXNUM, ++ c->max_interfaces)) ++ goto nla_put_failure; ++ if (large && ++ (nla_put_u32(msg, NL80211_IFACE_COMB_RADAR_DETECT_WIDTHS, ++ c->radar_detect_widths) || ++ nla_put_u32(msg, NL80211_IFACE_COMB_RADAR_DETECT_REGIONS, ++ c->radar_detect_regions))) ++ goto nla_put_failure; ++ if (c->beacon_int_min_gcd && ++ nla_put_u32(msg, NL80211_IFACE_COMB_BI_MIN_GCD, ++ c->beacon_int_min_gcd)) ++ goto nla_put_failure; + +- nla_nest_end(msg, nl_limits); ++ nla_nest_end(msg, nl_combi); + +- if (c->beacon_int_infra_match && +- nla_put_flag(msg, NL80211_IFACE_COMB_STA_AP_BI_MATCH)) +- goto nla_put_failure; +- if (nla_put_u32(msg, NL80211_IFACE_COMB_NUM_CHANNELS, +- c->num_different_channels) || +- nla_put_u32(msg, NL80211_IFACE_COMB_MAXNUM, +- c->max_interfaces)) +- goto nla_put_failure; +- if (large && +- (nla_put_u32(msg, NL80211_IFACE_COMB_RADAR_DETECT_WIDTHS, +- c->radar_detect_widths) || +- nla_put_u32(msg, NL80211_IFACE_COMB_RADAR_DETECT_REGIONS, +- c->radar_detect_regions))) +- goto nla_put_failure; +- if (c->beacon_int_min_gcd && +- nla_put_u32(msg, NL80211_IFACE_COMB_BI_MIN_GCD, +- c->beacon_int_min_gcd)) +- goto nla_put_failure; ++ return 0; ++nla_put_failure: ++ return -ENOBUFS; ++} + +- nla_nest_end(msg, nl_combi); +- } ++static int nl80211_put_iface_combinations(struct wiphy *wiphy, ++ struct sk_buff *msg, ++ bool large) ++{ ++ struct nlattr *nl_combis; ++ int i; ++ ++ nl_combis = nla_nest_start_noflag(msg, ++ NL80211_ATTR_INTERFACE_COMBINATIONS); ++ if (!nl_combis) ++ goto nla_put_failure; ++ ++ for (i = 0; i < wiphy->n_iface_combinations; i++) ++ if (nl80211_put_ifcomb_data(msg, large, i + 1, ++ &wiphy->iface_combinations[i])) ++ goto nla_put_failure; + + nla_nest_end(msg, nl_combis); + diff --git a/package/kernel/mac80211/patches/subsys/341-wifi-cfg80211-add-support-for-advertising-multiple-r.patch b/package/kernel/mac80211/patches/subsys/341-wifi-cfg80211-add-support-for-advertising-multiple-r.patch new file mode 100644 index 0000000000..45349891b6 --- /dev/null +++ b/package/kernel/mac80211/patches/subsys/341-wifi-cfg80211-add-support-for-advertising-multiple-r.patch @@ -0,0 +1,348 @@ +From: Felix Fietkau +Date: Wed, 22 May 2024 11:42:57 +0200 +Subject: [PATCH] wifi: cfg80211: add support for advertising multiple + radios belonging to a wiphy + +The prerequisite for MLO support in cfg80211/mac80211 is that all the links +participating in MLO must be from the same wiphy/ieee80211_hw. To meet this +expectation, some drivers may need to group multiple discrete hardware each +acting as a link in MLO under single wiphy. + +With this change, supported frequencies and interface combinations of each +individual radio are reported to user space. This allows user space to figure +out the limitations of what combination of channels can be used concurrently. + +Even for non-MLO devices, this improves support for devices capable of +running on multiple channels at the same time. + +Signed-off-by: Felix Fietkau +--- + +--- a/include/net/cfg80211.h ++++ b/include/net/cfg80211.h +@@ -5045,7 +5045,9 @@ struct ieee80211_iface_limit { + * struct ieee80211_iface_combination - possible interface combination + * + * With this structure the driver can describe which interface +- * combinations it supports concurrently. ++ * combinations it supports concurrently. When set in a struct wiphy_radio, ++ * the combinations refer to combinations of interfaces currently active on ++ * that radio. + * + * Examples: + * +@@ -5403,6 +5405,38 @@ struct wiphy_iftype_akm_suites { + int n_akm_suites; + }; + ++/** ++ * struct wiphy_radio_freq_range - wiphy frequency range ++ * @start_freq: start range edge frequency (kHz) ++ * @end_freq: end range edge frequency (kHz) ++ */ ++struct wiphy_radio_freq_range { ++ u32 start_freq; ++ u32 end_freq; ++}; ++ ++ ++/** ++ * struct wiphy_radio - physical radio of a wiphy ++ * This structure describes a physical radio belonging to a wiphy. ++ * It is used to describe concurrent-channel capabilities. Only one channel ++ * can be active on the radio described by struct wiphy_radio. ++ * ++ * @freq_range: frequency range that the radio can operate on. ++ * @n_freq_range: number of elements in @freq_range ++ * ++ * @iface_combinations: Valid interface combinations array, should not ++ * list single interface types. ++ * @n_iface_combinations: number of entries in @iface_combinations array. ++ */ ++struct wiphy_radio { ++ const struct wiphy_radio_freq_range *freq_range; ++ int n_freq_range; ++ ++ const struct ieee80211_iface_combination *iface_combinations; ++ int n_iface_combinations; ++}; ++ + #define CFG80211_HW_TIMESTAMP_ALL_PEERS 0xffff + + /** +@@ -5621,6 +5655,9 @@ struct wiphy_iftype_akm_suites { + * A value of %CFG80211_HW_TIMESTAMP_ALL_PEERS indicates the driver + * supports enabling HW timestamping for all peers (i.e. no need to + * specify a mac address). ++ * ++ * @radio: radios belonging to this wiphy ++ * @n_radio: number of radios + */ + struct wiphy { + struct mutex mtx; +@@ -5771,6 +5808,9 @@ struct wiphy { + + u16 hw_timestamp_max_peers; + ++ int n_radio; ++ const struct wiphy_radio *radio; ++ + char priv[] __aligned(NETDEV_ALIGN); + }; + +--- a/include/uapi/linux/nl80211.h ++++ b/include/uapi/linux/nl80211.h +@@ -2061,6 +2061,10 @@ enum nl80211_commands { + * @NL80211_ATTR_INTERFACE_COMBINATIONS: Nested attribute listing the supported + * interface combinations. In each nested item, it contains attributes + * defined in &enum nl80211_if_combination_attrs. ++ * If the wiphy uses multiple radios (@NL80211_ATTR_WIPHY_RADIOS is set), ++ * this attribute contains the interface combinations of the first radio. ++ * See @NL80211_ATTR_WIPHY_INTERFACE_COMBINATIONS for the global wiphy ++ * combinations for the sum of all radios. + * @NL80211_ATTR_SOFTWARE_IFTYPES: Nested attribute (just like + * %NL80211_ATTR_SUPPORTED_IFTYPES) containing the interface types that + * are managed in software: interfaces of these types aren't subject to +@@ -2856,6 +2860,14 @@ enum nl80211_commands { + * %NL80211_CMD_ASSOCIATE indicating the SPP A-MSDUs + * are used on this connection + * ++ * @NL80211_ATTR_WIPHY_RADIOS: Nested attribute describing physical radios ++ * belonging to this wiphy. See &enum nl80211_wiphy_radio_attrs. ++ * ++ * @NL80211_ATTR_WIPHY_INTERFACE_COMBINATIONS: Nested attribute listing the ++ * supported interface combinations for all radios combined. In each ++ * nested item, it contains attributes defined in ++ * &enum nl80211_if_combination_attrs. ++ * + * @NUM_NL80211_ATTR: total number of nl80211_attrs available + * @NL80211_ATTR_MAX: highest attribute number currently defined + * @__NL80211_ATTR_AFTER_LAST: internal use +@@ -3401,6 +3413,9 @@ enum nl80211_attrs { + + NL80211_ATTR_ASSOC_SPP_AMSDU, + ++ NL80211_ATTR_WIPHY_RADIOS, ++ NL80211_ATTR_WIPHY_INTERFACE_COMBINATIONS, ++ + /* add attributes here, update the policy in nl80211.c */ + + __NL80211_ATTR_AFTER_LAST, +@@ -7987,4 +8002,54 @@ enum nl80211_ap_settings_flags { + NL80211_AP_SETTINGS_SA_QUERY_OFFLOAD_SUPPORT = 1 << 1, + }; + ++/** ++ * enum nl80211_wiphy_radio_attrs - wiphy radio attributes ++ * ++ * @__NL80211_WIPHY_RADIO_ATTR_INVALID: Invalid ++ * ++ * @NL80211_WIPHY_RADIO_ATTR_INDEX: Index of this radio (u32) ++ * @NL80211_WIPHY_RADIO_ATTR_FREQ_RANGE: Frequency range supported by this ++ * radio. Attribute may be present multiple times. ++ * @NL80211_WIPHY_RADIO_ATTR_INTERFACE_COMBINATION: Supported interface ++ * combination for this radio. Attribute may be present multiple times ++ * and contains attributes defined in &enum nl80211_if_combination_attrs. ++ * ++ * @__NL80211_WIPHY_RADIO_ATTR_LAST: Internal ++ * @NL80211_WIPHY_RADIO_ATTR_MAX: Highest attribute ++ */ ++enum nl80211_wiphy_radio_attrs { ++ __NL80211_WIPHY_RADIO_ATTR_INVALID, ++ ++ NL80211_WIPHY_RADIO_ATTR_INDEX, ++ NL80211_WIPHY_RADIO_ATTR_FREQ_RANGE, ++ NL80211_WIPHY_RADIO_ATTR_INTERFACE_COMBINATION, ++ ++ /* keep last */ ++ __NL80211_WIPHY_RADIO_ATTR_LAST, ++ NL80211_WIPHY_RADIO_ATTR_MAX = __NL80211_WIPHY_RADIO_ATTR_LAST - 1, ++}; ++ ++/** ++ * enum nl80211_wiphy_radio_freq_range - wiphy radio frequency range ++ * ++ * @__NL80211_WIPHY_RADIO_FREQ_ATTR_INVALID: Invalid ++ * ++ * @NL80211_WIPHY_RADIO_FREQ_ATTR_START: Frequency range start (u32). ++ * The unit is kHz. ++ * @NL80211_WIPHY_RADIO_FREQ_ATTR_END: Frequency range end (u32). ++ * The unit is kHz. ++ * ++ * @__NL80211_WIPHY_RADIO_FREQ_ATTR_LAST: Internal ++ * @NL80211_WIPHY_RADIO_FREQ_ATTR_MAX: Highest attribute ++ */ ++enum nl80211_wiphy_radio_freq_range { ++ __NL80211_WIPHY_RADIO_FREQ_ATTR_INVALID, ++ ++ NL80211_WIPHY_RADIO_FREQ_ATTR_START, ++ NL80211_WIPHY_RADIO_FREQ_ATTR_END, ++ ++ __NL80211_WIPHY_RADIO_FREQ_ATTR_LAST, ++ NL80211_WIPHY_RADIO_FREQ_ATTR_MAX = __NL80211_WIPHY_RADIO_FREQ_ATTR_LAST - 1, ++}; ++ + #endif /* __LINUX_NL80211_H */ +--- a/net/wireless/nl80211.c ++++ b/net/wireless/nl80211.c +@@ -1621,16 +1621,18 @@ nla_put_failure: + } + + static int nl80211_put_ifcomb_data(struct sk_buff *msg, bool large, int idx, +- const struct ieee80211_iface_combination *c) ++ const struct ieee80211_iface_combination *c, ++ u16 nested) + { + struct nlattr *nl_combi, *nl_limits; + int i; + +- nl_combi = nla_nest_start_noflag(msg, idx); ++ nl_combi = nla_nest_start_noflag(msg, idx | nested); + if (!nl_combi) + goto nla_put_failure; + +- nl_limits = nla_nest_start_noflag(msg, NL80211_IFACE_COMB_LIMITS); ++ nl_limits = nla_nest_start_noflag(msg, NL80211_IFACE_COMB_LIMITS | ++ nested); + if (!nl_limits) + goto nla_put_failure; + +@@ -1678,19 +1680,26 @@ nla_put_failure: + + static int nl80211_put_iface_combinations(struct wiphy *wiphy, + struct sk_buff *msg, +- bool large) ++ int attr, int radio, ++ bool large, u16 nested) + { ++ const struct ieee80211_iface_combination *c; + struct nlattr *nl_combis; +- int i; ++ int i, n; + +- nl_combis = nla_nest_start_noflag(msg, +- NL80211_ATTR_INTERFACE_COMBINATIONS); ++ nl_combis = nla_nest_start_noflag(msg, attr | nested); + if (!nl_combis) + goto nla_put_failure; + +- for (i = 0; i < wiphy->n_iface_combinations; i++) +- if (nl80211_put_ifcomb_data(msg, large, i + 1, +- &wiphy->iface_combinations[i])) ++ if (radio >= 0) { ++ c = wiphy->radio[0].iface_combinations; ++ n = wiphy->radio[0].n_iface_combinations; ++ } else { ++ c = wiphy->iface_combinations; ++ n = wiphy->n_iface_combinations; ++ } ++ for (i = 0; i < n; i++) ++ if (nl80211_put_ifcomb_data(msg, large, i + 1, &c[i], nested)) + goto nla_put_failure; + + nla_nest_end(msg, nl_combis); +@@ -2397,6 +2406,80 @@ fail: + return -ENOBUFS; + } + ++static int nl80211_put_radio(struct wiphy *wiphy, struct sk_buff *msg, int idx) ++{ ++ const struct wiphy_radio *r = &wiphy->radio[idx]; ++ struct nlattr *radio, *freq; ++ int i; ++ ++ radio = nla_nest_start(msg, idx); ++ if (!radio) ++ return -ENOBUFS; ++ ++ if (nla_put_u32(msg, NL80211_WIPHY_RADIO_ATTR_INDEX, idx)) ++ goto nla_put_failure; ++ ++ for (i = 0; i < r->n_freq_range; i++) { ++ const struct wiphy_radio_freq_range *range = &r->freq_range[i]; ++ ++ freq = nla_nest_start(msg, NL80211_WIPHY_RADIO_ATTR_FREQ_RANGE); ++ if (!freq) ++ goto nla_put_failure; ++ ++ if (nla_put_u32(msg, NL80211_WIPHY_RADIO_FREQ_ATTR_START, ++ range->start_freq) || ++ nla_put_u32(msg, NL80211_WIPHY_RADIO_FREQ_ATTR_END, ++ range->end_freq)) ++ goto nla_put_failure; ++ ++ nla_nest_end(msg, freq); ++ } ++ ++ for (i = 0; i < r->n_iface_combinations; i++) ++ if (nl80211_put_ifcomb_data(msg, true, ++ NL80211_WIPHY_RADIO_ATTR_INTERFACE_COMBINATION, ++ &r->iface_combinations[i], ++ NLA_F_NESTED)) ++ goto nla_put_failure; ++ ++ nla_nest_end(msg, radio); ++ ++ return 0; ++ ++nla_put_failure: ++ return -ENOBUFS; ++} ++ ++static int nl80211_put_radios(struct wiphy *wiphy, struct sk_buff *msg) ++{ ++ struct nlattr *radios; ++ int i; ++ ++ if (!wiphy->n_radio) ++ return 0; ++ ++ radios = nla_nest_start(msg, NL80211_ATTR_WIPHY_RADIOS); ++ if (!radios) ++ return -ENOBUFS; ++ ++ for (i = 0; i < wiphy->n_radio; i++) ++ if (nl80211_put_radio(wiphy, msg, i)) ++ goto fail; ++ ++ nla_nest_end(msg, radios); ++ ++ if (nl80211_put_iface_combinations(wiphy, msg, ++ NL80211_ATTR_WIPHY_INTERFACE_COMBINATIONS, ++ -1, true, NLA_F_NESTED)) ++ return -ENOBUFS; ++ ++ return 0; ++ ++fail: ++ nla_nest_cancel(msg, radios); ++ return -ENOBUFS; ++} ++ + struct nl80211_dump_wiphy_state { + s64 filter_wiphy; + long start; +@@ -2692,7 +2775,9 @@ static int nl80211_send_wiphy(struct cfg + goto nla_put_failure; + + if (nl80211_put_iface_combinations(&rdev->wiphy, msg, +- state->split)) ++ NL80211_ATTR_INTERFACE_COMBINATIONS, ++ rdev->wiphy.n_radio ? 0 : -1, ++ state->split, 0)) + goto nla_put_failure; + + state->split_start++; +@@ -3006,6 +3091,12 @@ static int nl80211_send_wiphy(struct cfg + rdev->wiphy.hw_timestamp_max_peers)) + goto nla_put_failure; + ++ state->split_start++; ++ break; ++ case 17: ++ if (nl80211_put_radios(&rdev->wiphy, msg)) ++ goto nla_put_failure; ++ + /* done */ + state->split_start = 0; + break; diff --git a/package/kernel/mac80211/patches/subsys/342-wifi-cfg80211-extend-interface-combination-check-for.patch b/package/kernel/mac80211/patches/subsys/342-wifi-cfg80211-extend-interface-combination-check-for.patch new file mode 100644 index 0000000000..0ba97a2c0f --- /dev/null +++ b/package/kernel/mac80211/patches/subsys/342-wifi-cfg80211-extend-interface-combination-check-for.patch @@ -0,0 +1,172 @@ +From: Felix Fietkau +Date: Tue, 4 Jun 2024 21:01:50 +0200 +Subject: [PATCH] wifi: cfg80211: extend interface combination check for + multi-radio + +Add a field in struct iface_combination_params to check per-radio +interface combinations instead of per-wiphy ones. + +Signed-off-by: Felix Fietkau +--- + +--- a/include/net/cfg80211.h ++++ b/include/net/cfg80211.h +@@ -1598,6 +1598,7 @@ struct cfg80211_color_change_settings { + * + * Used to pass interface combination parameters + * ++ * @radio_idx: wiphy radio index or -1 for global + * @num_different_channels: the number of different channels we want + * to use for verification + * @radar_detect: a bitmap where each bit corresponds to a channel +@@ -1611,6 +1612,7 @@ struct cfg80211_color_change_settings { + * the verification + */ + struct iface_combination_params { ++ int radio_idx; + int num_different_channels; + u8 radar_detect; + int iftype_num[NUM_NL80211_IFTYPES]; +@@ -4579,6 +4581,8 @@ struct mgmt_frame_regs { + * + * @set_hw_timestamp: Enable/disable HW timestamping of TM/FTM frames. + * @set_ttlm: set the TID to link mapping. ++ * @get_radio_mask: get bitmask of radios in use. ++ * (invoked with the wiphy mutex held) + */ + struct cfg80211_ops { + int (*suspend)(struct wiphy *wiphy, struct cfg80211_wowlan *wow); +@@ -4940,6 +4944,7 @@ struct cfg80211_ops { + struct cfg80211_set_hw_timestamp *hwts); + int (*set_ttlm)(struct wiphy *wiphy, struct net_device *dev, + struct cfg80211_ttlm_params *params); ++ u32 (*get_radio_mask)(struct wiphy *wiphy, struct net_device *dev); + }; + + /* +--- a/net/mac80211/util.c ++++ b/net/mac80211/util.c +@@ -3930,6 +3930,7 @@ int ieee80211_check_combinations(struct + int total = 1; + struct iface_combination_params params = { + .radar_detect = radar_detect, ++ .radio_idx = -1, + }; + + lockdep_assert_wiphy(local->hw.wiphy); +@@ -4020,7 +4021,9 @@ int ieee80211_max_num_channels(struct ie + struct ieee80211_chanctx *ctx; + u32 max_num_different_channels = 1; + int err; +- struct iface_combination_params params = {0}; ++ struct iface_combination_params params = { ++ .radio_idx = -1, ++ }; + + lockdep_assert_wiphy(local->hw.wiphy); + +--- a/net/wireless/rdev-ops.h ++++ b/net/wireless/rdev-ops.h +@@ -1542,4 +1542,16 @@ rdev_set_ttlm(struct cfg80211_registered + + return ret; + } ++ ++static inline u32 ++rdev_get_radio_mask(struct cfg80211_registered_device *rdev, ++ struct net_device *dev) ++{ ++ struct wiphy *wiphy = &rdev->wiphy; ++ ++ if (!rdev->ops->get_radio_mask) ++ return 0; ++ ++ return rdev->ops->get_radio_mask(wiphy, dev); ++} + #endif /* __CFG80211_RDEV_OPS */ +--- a/net/wireless/util.c ++++ b/net/wireless/util.c +@@ -2305,13 +2305,16 @@ static int cfg80211_wdev_bi(struct wirel + + static void cfg80211_calculate_bi_data(struct wiphy *wiphy, u32 new_beacon_int, + u32 *beacon_int_gcd, +- bool *beacon_int_different) ++ bool *beacon_int_different, ++ int radio_idx) + { ++ struct cfg80211_registered_device *rdev; + struct wireless_dev *wdev; + + *beacon_int_gcd = 0; + *beacon_int_different = false; + ++ rdev = wiphy_to_rdev(wiphy); + list_for_each_entry(wdev, &wiphy->wdev_list, list) { + int wdev_bi; + +@@ -2319,6 +2322,11 @@ static void cfg80211_calculate_bi_data(s + if (wdev->valid_links) + continue; + ++ /* skip wdevs not active on the given wiphy radio */ ++ if (radio_idx >= 0 && ++ !(rdev_get_radio_mask(rdev, wdev->netdev) & BIT(radio_idx))) ++ continue; ++ + wdev_bi = cfg80211_wdev_bi(wdev); + + if (!wdev_bi) +@@ -2366,14 +2374,19 @@ int cfg80211_iter_combinations(struct wi + void *data), + void *data) + { ++ const struct wiphy_radio *radio = NULL; ++ const struct ieee80211_iface_combination *c, *cs; + const struct ieee80211_regdomain *regdom; + enum nl80211_dfs_regions region = 0; +- int i, j, iftype; ++ int i, j, n, iftype; + int num_interfaces = 0; + u32 used_iftypes = 0; + u32 beacon_int_gcd; + bool beacon_int_different; + ++ if (params->radio_idx >= 0) ++ radio = &wiphy->radio[params->radio_idx]; ++ + /* + * This is a bit strange, since the iteration used to rely only on + * the data given by the driver, but here it now relies on context, +@@ -2385,7 +2398,8 @@ int cfg80211_iter_combinations(struct wi + * interfaces (while being brought up) and channel/radar data. + */ + cfg80211_calculate_bi_data(wiphy, params->new_beacon_int, +- &beacon_int_gcd, &beacon_int_different); ++ &beacon_int_gcd, &beacon_int_different, ++ params->radio_idx); + + if (params->radar_detect) { + rcu_read_lock(); +@@ -2402,13 +2416,18 @@ int cfg80211_iter_combinations(struct wi + used_iftypes |= BIT(iftype); + } + +- for (i = 0; i < wiphy->n_iface_combinations; i++) { +- const struct ieee80211_iface_combination *c; ++ if (radio) { ++ cs = radio->iface_combinations; ++ n = radio->n_iface_combinations; ++ } else { ++ cs = wiphy->iface_combinations; ++ n = wiphy->n_iface_combinations; ++ } ++ for (i = 0; i < n; i++) { + struct ieee80211_iface_limit *limits; + u32 all_iftypes = 0; + +- c = &wiphy->iface_combinations[i]; +- ++ c = &cs[i]; + if (num_interfaces > c->max_interfaces) + continue; + if (params->num_different_channels > c->num_different_channels) diff --git a/package/kernel/mac80211/patches/subsys/343-wifi-cfg80211-add-helper-for-checking-if-a-chandef-i.patch b/package/kernel/mac80211/patches/subsys/343-wifi-cfg80211-add-helper-for-checking-if-a-chandef-i.patch new file mode 100644 index 0000000000..d115dd2e54 --- /dev/null +++ b/package/kernel/mac80211/patches/subsys/343-wifi-cfg80211-add-helper-for-checking-if-a-chandef-i.patch @@ -0,0 +1,69 @@ +From: Felix Fietkau +Date: Fri, 7 Jun 2024 17:58:54 +0200 +Subject: [PATCH] wifi: cfg80211: add helper for checking if a chandef is + valid on a radio + +Check if the full channel width is in the radio's frequency range. + +Signed-off-by: Felix Fietkau +--- + +--- a/include/net/cfg80211.h ++++ b/include/net/cfg80211.h +@@ -6485,6 +6485,15 @@ static inline bool cfg80211_channel_is_p + } + + /** ++ * cfg80211_radio_chandef_valid - Check if the radio supports the chandef ++ * ++ * @radio: wiphy radio ++ * @chandef: chandef for current channel ++ */ ++bool cfg80211_radio_chandef_valid(const struct wiphy_radio *radio, ++ const struct cfg80211_chan_def *chandef); ++ ++/** + * ieee80211_get_response_rate - get basic rate for a given rate + * + * @sband: the band to look for rates in +--- a/net/wireless/util.c ++++ b/net/wireless/util.c +@@ -2884,3 +2884,38 @@ cfg80211_get_iftype_ext_capa(struct wiph + return NULL; + } + EXPORT_SYMBOL(cfg80211_get_iftype_ext_capa); ++ ++static bool ++ieee80211_radio_freq_range_valid(const struct wiphy_radio *radio, ++ u32 freq, u32 width) ++{ ++ const struct wiphy_radio_freq_range *r; ++ int i; ++ ++ for (i = 0; i < radio->n_freq_range; i++) { ++ r = &radio->freq_range[i]; ++ if (freq - width / 2 >= r->start_freq && ++ freq + width / 2 <= r->end_freq) ++ return true; ++ } ++ ++ return false; ++} ++ ++bool cfg80211_radio_chandef_valid(const struct wiphy_radio *radio, ++ const struct cfg80211_chan_def *chandef) ++{ ++ u32 freq, width; ++ ++ freq = ieee80211_chandef_to_khz(chandef); ++ width = nl80211_chan_width_to_mhz(chandef->width); ++ if (!ieee80211_radio_freq_range_valid(radio, freq, width)) ++ return false; ++ ++ freq = MHZ_TO_KHZ(chandef->center_freq2); ++ if (freq && !ieee80211_radio_freq_range_valid(radio, freq, width)) ++ return false; ++ ++ return true; ++} ++EXPORT_SYMBOL(cfg80211_radio_chandef_valid); diff --git a/package/kernel/mac80211/patches/subsys/344-wifi-mac80211-add-support-for-DFS-with-multiple-radi.patch b/package/kernel/mac80211/patches/subsys/344-wifi-mac80211-add-support-for-DFS-with-multiple-radi.patch new file mode 100644 index 0000000000..18634fe146 --- /dev/null +++ b/package/kernel/mac80211/patches/subsys/344-wifi-mac80211-add-support-for-DFS-with-multiple-radi.patch @@ -0,0 +1,88 @@ +From: Felix Fietkau +Date: Thu, 6 Jun 2024 12:19:08 +0200 +Subject: [PATCH] wifi: mac80211: add support for DFS with multiple + radios + +DFS can be supported with multi-channel combinations, as long as each DFS +capable radio only supports one channel. + +Signed-off-by: Felix Fietkau +--- + +--- a/net/mac80211/main.c ++++ b/net/mac80211/main.c +@@ -1084,6 +1084,27 @@ static int ieee80211_init_cipher_suites( + return 0; + } + ++static bool ++ieee80211_ifcomb_check(const struct ieee80211_iface_combination *c, int n_comb) ++{ ++ int i, j; ++ ++ for (i = 0; i < n_comb; i++, c++) { ++ /* DFS is not supported with multi-channel combinations yet */ ++ if (c->radar_detect_widths && ++ c->num_different_channels > 1) ++ return false; ++ ++ /* mac80211 doesn't support more than one IBSS interface */ ++ for (j = 0; j < c->n_limits; j++) ++ if ((c->limits[j].types & BIT(NL80211_IFTYPE_ADHOC)) && ++ c->limits[j].max > 1) ++ return false; ++ } ++ ++ return true; ++} ++ + int ieee80211_register_hw(struct ieee80211_hw *hw) + { + struct ieee80211_local *local = hw_to_local(hw); +@@ -1173,17 +1194,20 @@ int ieee80211_register_hw(struct ieee802 + if (comb->num_different_channels > 1) + return -EINVAL; + } +- } else { +- /* DFS is not supported with multi-channel combinations yet */ +- for (i = 0; i < local->hw.wiphy->n_iface_combinations; i++) { +- const struct ieee80211_iface_combination *comb; ++ } + +- comb = &local->hw.wiphy->iface_combinations[i]; ++ if (hw->wiphy->n_radio) { ++ for (i = 0; i < hw->wiphy->n_radio; i++) { ++ const struct wiphy_radio *radio = &hw->wiphy->radio[i]; + +- if (comb->radar_detect_widths && +- comb->num_different_channels > 1) ++ if (!ieee80211_ifcomb_check(radio->iface_combinations, ++ radio->n_iface_combinations)) + return -EINVAL; + } ++ } else { ++ if (!ieee80211_ifcomb_check(hw->wiphy->iface_combinations, ++ hw->wiphy->n_iface_combinations)) ++ return -EINVAL; + } + + /* Only HW csum features are currently compatible with mac80211 */ +@@ -1313,18 +1337,6 @@ int ieee80211_register_hw(struct ieee802 + hw->wiphy->interface_modes |= BIT(NL80211_IFTYPE_MONITOR); + hw->wiphy->software_iftypes |= BIT(NL80211_IFTYPE_MONITOR); + +- /* mac80211 doesn't support more than one IBSS interface right now */ +- for (i = 0; i < hw->wiphy->n_iface_combinations; i++) { +- const struct ieee80211_iface_combination *c; +- int j; +- +- c = &hw->wiphy->iface_combinations[i]; +- +- for (j = 0; j < c->n_limits; j++) +- if ((c->limits[j].types & BIT(NL80211_IFTYPE_ADHOC)) && +- c->limits[j].max > 1) +- return -EINVAL; +- } + + local->int_scan_req = kzalloc(sizeof(*local->int_scan_req) + + sizeof(void *) * channels, GFP_KERNEL); diff --git a/package/kernel/mac80211/patches/subsys/345-wifi-mac80211-add-radio-index-to-ieee80211_chanctx_c.patch b/package/kernel/mac80211/patches/subsys/345-wifi-mac80211-add-radio-index-to-ieee80211_chanctx_c.patch new file mode 100644 index 0000000000..b832a2a124 --- /dev/null +++ b/package/kernel/mac80211/patches/subsys/345-wifi-mac80211-add-radio-index-to-ieee80211_chanctx_c.patch @@ -0,0 +1,66 @@ +From: Felix Fietkau +Date: Wed, 5 Jun 2024 10:41:34 +0200 +Subject: [PATCH] wifi: mac80211: add radio index to + ieee80211_chanctx_conf + +Will be used to explicitly assign a channel context to a wiphy radio. + +Signed-off-by: Felix Fietkau +--- + +--- a/include/net/mac80211.h ++++ b/include/net/mac80211.h +@@ -250,6 +250,7 @@ struct ieee80211_chan_req { + * @min_def: the minimum channel definition currently required. + * @ap: the channel definition the AP actually is operating as, + * for use with (wider bandwidth) OFDMA ++ * @radio_idx: index of the wiphy radio used used for this channel + * @rx_chains_static: The number of RX chains that must always be + * active on the channel to receive MIMO transmissions + * @rx_chains_dynamic: The number of RX chains that must be enabled +@@ -264,6 +265,7 @@ struct ieee80211_chanctx_conf { + struct cfg80211_chan_def min_def; + struct cfg80211_chan_def ap; + ++ int radio_idx; + u8 rx_chains_static, rx_chains_dynamic; + + bool radar_enabled; +--- a/net/mac80211/chan.c ++++ b/net/mac80211/chan.c +@@ -623,7 +623,8 @@ ieee80211_chanctx_radar_required(struct + static struct ieee80211_chanctx * + ieee80211_alloc_chanctx(struct ieee80211_local *local, + const struct ieee80211_chan_req *chanreq, +- enum ieee80211_chanctx_mode mode) ++ enum ieee80211_chanctx_mode mode, ++ int radio_idx) + { + struct ieee80211_chanctx *ctx; + +@@ -641,6 +642,7 @@ ieee80211_alloc_chanctx(struct ieee80211 + ctx->conf.rx_chains_dynamic = 1; + ctx->mode = mode; + ctx->conf.radar_enabled = false; ++ ctx->conf.radio_idx = radio_idx; + _ieee80211_recalc_chanctx_min_def(local, ctx, NULL); + + return ctx; +@@ -680,7 +682,7 @@ ieee80211_new_chanctx(struct ieee80211_l + + lockdep_assert_wiphy(local->hw.wiphy); + +- ctx = ieee80211_alloc_chanctx(local, chanreq, mode); ++ ctx = ieee80211_alloc_chanctx(local, chanreq, mode, -1); + if (!ctx) + return ERR_PTR(-ENOMEM); + +@@ -1098,7 +1100,7 @@ int ieee80211_link_reserve_chanctx(struc + !list_empty(&curr_ctx->reserved_links)) + return -EBUSY; + +- new_ctx = ieee80211_alloc_chanctx(local, chanreq, mode); ++ new_ctx = ieee80211_alloc_chanctx(local, chanreq, mode, -1); + if (!new_ctx) + return -ENOMEM; + diff --git a/package/kernel/mac80211/patches/subsys/346-wifi-mac80211-extend-ifcomb-check-functions-for-mult.patch b/package/kernel/mac80211/patches/subsys/346-wifi-mac80211-extend-ifcomb-check-functions-for-mult.patch new file mode 100644 index 0000000000..168cf6fad0 --- /dev/null +++ b/package/kernel/mac80211/patches/subsys/346-wifi-mac80211-extend-ifcomb-check-functions-for-mult.patch @@ -0,0 +1,322 @@ +From: Felix Fietkau +Date: Tue, 4 Jun 2024 21:48:48 +0200 +Subject: [PATCH] wifi: mac80211: extend ifcomb check functions for + multi-radio + +Add support for counting global and per-radio max/current number of +channels, as well as checking radio-specific interface combinations. + +Signed-off-by: Felix Fietkau +--- + +--- a/net/mac80211/cfg.c ++++ b/net/mac80211/cfg.c +@@ -263,7 +263,7 @@ static int ieee80211_start_p2p_device(st + + lockdep_assert_wiphy(sdata->local->hw.wiphy); + +- ret = ieee80211_check_combinations(sdata, NULL, 0, 0); ++ ret = ieee80211_check_combinations(sdata, NULL, 0, 0, -1); + if (ret < 0) + return ret; + +@@ -285,7 +285,7 @@ static int ieee80211_start_nan(struct wi + + lockdep_assert_wiphy(sdata->local->hw.wiphy); + +- ret = ieee80211_check_combinations(sdata, NULL, 0, 0); ++ ret = ieee80211_check_combinations(sdata, NULL, 0, 0, -1); + if (ret < 0) + return ret; + +@@ -3992,7 +3992,7 @@ __ieee80211_channel_switch(struct wiphy + goto out; + + /* if reservation is invalid then this will fail */ +- err = ieee80211_check_combinations(sdata, NULL, chanctx->mode, 0); ++ err = ieee80211_check_combinations(sdata, NULL, chanctx->mode, 0, -1); + if (err) { + ieee80211_link_unreserve_chanctx(link_data); + goto out; +@@ -5161,4 +5161,5 @@ const struct cfg80211_ops mac80211_confi + .del_link_station = ieee80211_del_link_station, + .set_hw_timestamp = ieee80211_set_hw_timestamp, + .set_ttlm = ieee80211_set_ttlm, ++ .get_radio_mask = ieee80211_get_radio_mask, + }; +--- a/net/mac80211/chan.c ++++ b/net/mac80211/chan.c +@@ -47,24 +47,29 @@ int ieee80211_chanctx_refcount(struct ie + ieee80211_chanctx_num_reserved(local, ctx); + } + +-static int ieee80211_num_chanctx(struct ieee80211_local *local) ++static int ieee80211_num_chanctx(struct ieee80211_local *local, int radio_idx) + { + struct ieee80211_chanctx *ctx; + int num = 0; + + lockdep_assert_wiphy(local->hw.wiphy); + +- list_for_each_entry(ctx, &local->chanctx_list, list) ++ list_for_each_entry(ctx, &local->chanctx_list, list) { ++ if (radio_idx >= 0 && ctx->conf.radio_idx != radio_idx) ++ continue; + num++; ++ } + + return num; + } + +-static bool ieee80211_can_create_new_chanctx(struct ieee80211_local *local) ++static bool ieee80211_can_create_new_chanctx(struct ieee80211_local *local, ++ int radio_idx) + { + lockdep_assert_wiphy(local->hw.wiphy); + +- return ieee80211_num_chanctx(local) < ieee80211_max_num_channels(local); ++ return ieee80211_num_chanctx(local, radio_idx) < ++ ieee80211_max_num_channels(local, radio_idx); + } + + static struct ieee80211_chanctx * +@@ -1045,7 +1050,7 @@ int ieee80211_link_reserve_chanctx(struc + + new_ctx = ieee80211_find_reservation_chanctx(local, chanreq, mode); + if (!new_ctx) { +- if (ieee80211_can_create_new_chanctx(local)) { ++ if (ieee80211_can_create_new_chanctx(local, -1)) { + new_ctx = ieee80211_new_chanctx(local, chanreq, mode); + if (IS_ERR(new_ctx)) + return PTR_ERR(new_ctx); +@@ -1736,7 +1741,7 @@ int ieee80211_link_use_channel(struct ie + link->radar_required = ret; + + ret = ieee80211_check_combinations(sdata, &chanreq->oper, mode, +- radar_detect_width); ++ radar_detect_width, -1); + if (ret < 0) + goto out; + +--- a/net/mac80211/ibss.c ++++ b/net/mac80211/ibss.c +@@ -1745,7 +1745,7 @@ int ieee80211_ibss_join(struct ieee80211 + IEEE80211_CHANCTX_SHARED : IEEE80211_CHANCTX_EXCLUSIVE; + + ret = ieee80211_check_combinations(sdata, ¶ms->chandef, chanmode, +- radar_detect_width); ++ radar_detect_width, -1); + if (ret < 0) + return ret; + +--- a/net/mac80211/ieee80211_i.h ++++ b/net/mac80211/ieee80211_i.h +@@ -2596,8 +2596,9 @@ void ieee80211_recalc_dtim(struct ieee80 + int ieee80211_check_combinations(struct ieee80211_sub_if_data *sdata, + const struct cfg80211_chan_def *chandef, + enum ieee80211_chanctx_mode chanmode, +- u8 radar_detect); +-int ieee80211_max_num_channels(struct ieee80211_local *local); ++ u8 radar_detect, int radio_idx); ++int ieee80211_max_num_channels(struct ieee80211_local *local, int radio_idx); ++u32 ieee80211_get_radio_mask(struct wiphy *wiphy, struct net_device *dev); + void ieee80211_recalc_chanctx_chantype(struct ieee80211_local *local, + struct ieee80211_chanctx *ctx); + +--- a/net/mac80211/iface.c ++++ b/net/mac80211/iface.c +@@ -397,7 +397,7 @@ static int ieee80211_check_concurrent_if + } + } + +- return ieee80211_check_combinations(sdata, NULL, 0, 0); ++ return ieee80211_check_combinations(sdata, NULL, 0, 0, -1); + } + + static int ieee80211_check_queues(struct ieee80211_sub_if_data *sdata, +--- a/net/mac80211/util.c ++++ b/net/mac80211/util.c +@@ -3918,20 +3918,103 @@ static u8 ieee80211_chanctx_radar_detect + return radar_detect; + } + ++static u32 ++__ieee80211_get_radio_mask(struct ieee80211_sub_if_data *sdata) ++{ ++ struct ieee80211_bss_conf *link_conf; ++ struct ieee80211_chanctx_conf *conf; ++ unsigned int link_id; ++ u32 mask = 0; ++ ++ for_each_vif_active_link(&sdata->vif, link_conf, link_id) { ++ conf = sdata_dereference(link_conf->chanctx_conf, sdata); ++ if (!conf || conf->radio_idx < 0) ++ continue; ++ ++ mask |= BIT(conf->radio_idx); ++ } ++ ++ return mask; ++} ++ ++u32 ieee80211_get_radio_mask(struct wiphy *wiphy, struct net_device *dev) ++{ ++ struct ieee80211_sub_if_data *sdata = IEEE80211_DEV_TO_SUB_IF(dev); ++ ++ return __ieee80211_get_radio_mask(sdata); ++} ++ ++static bool ++ieee80211_sdata_uses_radio(struct ieee80211_sub_if_data *sdata, int radio_idx) ++{ ++ if (radio_idx < 0) ++ return true; ++ ++ return __ieee80211_get_radio_mask(sdata) & BIT(radio_idx); ++} ++ ++static int ++ieee80211_fill_ifcomb_params(struct ieee80211_local *local, ++ struct iface_combination_params *params, ++ const struct cfg80211_chan_def *chandef, ++ struct ieee80211_sub_if_data *sdata) ++{ ++ struct ieee80211_sub_if_data *sdata_iter; ++ struct ieee80211_chanctx *ctx; ++ int total = !!sdata; ++ ++ list_for_each_entry(ctx, &local->chanctx_list, list) { ++ if (ctx->replace_state == IEEE80211_CHANCTX_WILL_BE_REPLACED) ++ continue; ++ ++ if (params->radio_idx >= 0 && ++ ctx->conf.radio_idx != params->radio_idx) ++ continue; ++ ++ params->radar_detect |= ++ ieee80211_chanctx_radar_detect(local, ctx); ++ ++ if (chandef && ctx->mode != IEEE80211_CHANCTX_EXCLUSIVE && ++ cfg80211_chandef_compatible(chandef, &ctx->conf.def)) ++ continue; ++ ++ params->num_different_channels++; ++ } ++ ++ list_for_each_entry(sdata_iter, &local->interfaces, list) { ++ struct wireless_dev *wdev_iter; ++ ++ wdev_iter = &sdata_iter->wdev; ++ ++ if (sdata_iter == sdata || ++ !ieee80211_sdata_running(sdata_iter) || ++ cfg80211_iftype_allowed(local->hw.wiphy, ++ wdev_iter->iftype, 0, 1)) ++ continue; ++ ++ if (!ieee80211_sdata_uses_radio(sdata_iter, params->radio_idx)) ++ continue; ++ ++ params->iftype_num[wdev_iter->iftype]++; ++ total++; ++ } ++ ++ return total; ++} ++ + int ieee80211_check_combinations(struct ieee80211_sub_if_data *sdata, + const struct cfg80211_chan_def *chandef, + enum ieee80211_chanctx_mode chanmode, +- u8 radar_detect) ++ u8 radar_detect, int radio_idx) + { ++ bool shared = chanmode == IEEE80211_CHANCTX_SHARED; + struct ieee80211_local *local = sdata->local; +- struct ieee80211_sub_if_data *sdata_iter; + enum nl80211_iftype iftype = sdata->wdev.iftype; +- struct ieee80211_chanctx *ctx; +- int total = 1; + struct iface_combination_params params = { + .radar_detect = radar_detect, +- .radio_idx = -1, ++ .radio_idx = radio_idx, + }; ++ int total; + + lockdep_assert_wiphy(local->hw.wiphy); + +@@ -3968,37 +4051,9 @@ int ieee80211_check_combinations(struct + if (iftype != NL80211_IFTYPE_UNSPECIFIED) + params.iftype_num[iftype] = 1; + +- list_for_each_entry(ctx, &local->chanctx_list, list) { +- if (ctx->replace_state == IEEE80211_CHANCTX_WILL_BE_REPLACED) +- continue; +- params.radar_detect |= +- ieee80211_chanctx_radar_detect(local, ctx); +- if (ctx->mode == IEEE80211_CHANCTX_EXCLUSIVE) { +- params.num_different_channels++; +- continue; +- } +- if (chandef && chanmode == IEEE80211_CHANCTX_SHARED && +- cfg80211_chandef_compatible(chandef, +- &ctx->conf.def)) +- continue; +- params.num_different_channels++; +- } +- +- list_for_each_entry_rcu(sdata_iter, &local->interfaces, list) { +- struct wireless_dev *wdev_iter; +- +- wdev_iter = &sdata_iter->wdev; +- +- if (sdata_iter == sdata || +- !ieee80211_sdata_running(sdata_iter) || +- cfg80211_iftype_allowed(local->hw.wiphy, +- wdev_iter->iftype, 0, 1)) +- continue; +- +- params.iftype_num[wdev_iter->iftype]++; +- total++; +- } +- ++ total = ieee80211_fill_ifcomb_params(local, ¶ms, ++ shared ? chandef : NULL, ++ sdata); + if (total == 1 && !params.radar_detect) + return 0; + +@@ -4015,30 +4070,17 @@ ieee80211_iter_max_chans(const struct ie + c->num_different_channels); + } + +-int ieee80211_max_num_channels(struct ieee80211_local *local) ++int ieee80211_max_num_channels(struct ieee80211_local *local, int radio_idx) + { +- struct ieee80211_sub_if_data *sdata; +- struct ieee80211_chanctx *ctx; + u32 max_num_different_channels = 1; + int err; + struct iface_combination_params params = { +- .radio_idx = -1, ++ .radio_idx = radio_idx, + }; + + lockdep_assert_wiphy(local->hw.wiphy); + +- list_for_each_entry(ctx, &local->chanctx_list, list) { +- if (ctx->replace_state == IEEE80211_CHANCTX_WILL_BE_REPLACED) +- continue; +- +- params.num_different_channels++; +- +- params.radar_detect |= +- ieee80211_chanctx_radar_detect(local, ctx); +- } +- +- list_for_each_entry_rcu(sdata, &local->interfaces, list) +- params.iftype_num[sdata->wdev.iftype]++; ++ ieee80211_fill_ifcomb_params(local, ¶ms, NULL, NULL); + + err = cfg80211_iter_combinations(local->hw.wiphy, ¶ms, + ieee80211_iter_max_chans, diff --git a/package/kernel/mac80211/patches/subsys/347-wifi-mac80211-move-code-in-ieee80211_link_reserve_ch.patch b/package/kernel/mac80211/patches/subsys/347-wifi-mac80211-move-code-in-ieee80211_link_reserve_ch.patch new file mode 100644 index 0000000000..9a85067602 --- /dev/null +++ b/package/kernel/mac80211/patches/subsys/347-wifi-mac80211-move-code-in-ieee80211_link_reserve_ch.patch @@ -0,0 +1,175 @@ +From: Felix Fietkau +Date: Wed, 5 Jun 2024 10:49:22 +0200 +Subject: [PATCH] wifi: mac80211: move code in + ieee80211_link_reserve_chanctx to a helper + +Reduces indentation in preparation for further changes + +Signed-off-by: Felix Fietkau +--- + +--- a/net/mac80211/chan.c ++++ b/net/mac80211/chan.c +@@ -1033,6 +1033,71 @@ int ieee80211_link_unreserve_chanctx(str + return 0; + } + ++static struct ieee80211_chanctx * ++ieee80211_replace_chanctx(struct ieee80211_local *local, ++ const struct ieee80211_chan_req *chanreq, ++ enum ieee80211_chanctx_mode mode, ++ struct ieee80211_chanctx *curr_ctx) ++{ ++ struct ieee80211_chanctx *new_ctx, *ctx; ++ ++ if (!curr_ctx || (curr_ctx->replace_state == ++ IEEE80211_CHANCTX_WILL_BE_REPLACED) || ++ !list_empty(&curr_ctx->reserved_links)) { ++ /* ++ * Another link already requested this context for a ++ * reservation. Find another one hoping all links assigned ++ * to it will also switch soon enough. ++ * ++ * TODO: This needs a little more work as some cases ++ * (more than 2 chanctx capable devices) may fail which could ++ * otherwise succeed provided some channel context juggling was ++ * performed. ++ * ++ * Consider ctx1..3, link1..6, each ctx has 2 links. link1 and ++ * link2 from ctx1 request new different chandefs starting 2 ++ * in-place reserations with ctx4 and ctx5 replacing ctx1 and ++ * ctx2 respectively. Next link5 and link6 from ctx3 reserve ++ * ctx4. If link3 and link4 remain on ctx2 as they are then this ++ * fails unless `replace_ctx` from ctx5 is replaced with ctx3. ++ */ ++ list_for_each_entry(ctx, &local->chanctx_list, list) { ++ if (ctx->replace_state != ++ IEEE80211_CHANCTX_REPLACE_NONE) ++ continue; ++ ++ if (!list_empty(&ctx->reserved_links)) ++ continue; ++ ++ curr_ctx = ctx; ++ break; ++ } ++ } ++ ++ /* ++ * If that's true then all available contexts already have reservations ++ * and cannot be used. ++ */ ++ if (!curr_ctx || (curr_ctx->replace_state == ++ IEEE80211_CHANCTX_WILL_BE_REPLACED) || ++ !list_empty(&curr_ctx->reserved_links)) ++ return ERR_PTR(-EBUSY); ++ ++ new_ctx = ieee80211_alloc_chanctx(local, chanreq, mode, -1); ++ if (!new_ctx) ++ return ERR_PTR(-ENOMEM); ++ ++ new_ctx->replace_ctx = curr_ctx; ++ new_ctx->replace_state = IEEE80211_CHANCTX_REPLACES_OTHER; ++ ++ curr_ctx->replace_ctx = new_ctx; ++ curr_ctx->replace_state = IEEE80211_CHANCTX_WILL_BE_REPLACED; ++ ++ list_add_rcu(&new_ctx->list, &local->chanctx_list); ++ ++ return new_ctx; ++} ++ + int ieee80211_link_reserve_chanctx(struct ieee80211_link_data *link, + const struct ieee80211_chan_req *chanreq, + enum ieee80211_chanctx_mode mode, +@@ -1040,7 +1105,7 @@ int ieee80211_link_reserve_chanctx(struc + { + struct ieee80211_sub_if_data *sdata = link->sdata; + struct ieee80211_local *local = sdata->local; +- struct ieee80211_chanctx *new_ctx, *curr_ctx, *ctx; ++ struct ieee80211_chanctx *new_ctx, *curr_ctx; + + lockdep_assert_wiphy(local->hw.wiphy); + +@@ -1050,75 +1115,13 @@ int ieee80211_link_reserve_chanctx(struc + + new_ctx = ieee80211_find_reservation_chanctx(local, chanreq, mode); + if (!new_ctx) { +- if (ieee80211_can_create_new_chanctx(local, -1)) { ++ if (ieee80211_can_create_new_chanctx(local, -1)) + new_ctx = ieee80211_new_chanctx(local, chanreq, mode); +- if (IS_ERR(new_ctx)) +- return PTR_ERR(new_ctx); +- } else { +- if (!curr_ctx || +- (curr_ctx->replace_state == +- IEEE80211_CHANCTX_WILL_BE_REPLACED) || +- !list_empty(&curr_ctx->reserved_links)) { +- /* +- * Another link already requested this context +- * for a reservation. Find another one hoping +- * all links assigned to it will also switch +- * soon enough. +- * +- * TODO: This needs a little more work as some +- * cases (more than 2 chanctx capable devices) +- * may fail which could otherwise succeed +- * provided some channel context juggling was +- * performed. +- * +- * Consider ctx1..3, link1..6, each ctx has 2 +- * links. link1 and link2 from ctx1 request new +- * different chandefs starting 2 in-place +- * reserations with ctx4 and ctx5 replacing +- * ctx1 and ctx2 respectively. Next link5 and +- * link6 from ctx3 reserve ctx4. If link3 and +- * link4 remain on ctx2 as they are then this +- * fails unless `replace_ctx` from ctx5 is +- * replaced with ctx3. +- */ +- list_for_each_entry(ctx, &local->chanctx_list, +- list) { +- if (ctx->replace_state != +- IEEE80211_CHANCTX_REPLACE_NONE) +- continue; +- +- if (!list_empty(&ctx->reserved_links)) +- continue; +- +- curr_ctx = ctx; +- break; +- } +- } +- +- /* +- * If that's true then all available contexts already +- * have reservations and cannot be used. +- */ +- if (!curr_ctx || +- (curr_ctx->replace_state == +- IEEE80211_CHANCTX_WILL_BE_REPLACED) || +- !list_empty(&curr_ctx->reserved_links)) +- return -EBUSY; +- +- new_ctx = ieee80211_alloc_chanctx(local, chanreq, mode, -1); +- if (!new_ctx) +- return -ENOMEM; +- +- new_ctx->replace_ctx = curr_ctx; +- new_ctx->replace_state = +- IEEE80211_CHANCTX_REPLACES_OTHER; +- +- curr_ctx->replace_ctx = new_ctx; +- curr_ctx->replace_state = +- IEEE80211_CHANCTX_WILL_BE_REPLACED; +- +- list_add_rcu(&new_ctx->list, &local->chanctx_list); +- } ++ else ++ new_ctx = ieee80211_replace_chanctx(local, chanreq, ++ mode, curr_ctx); ++ if (IS_ERR(new_ctx)) ++ return PTR_ERR(new_ctx); + } + + list_add(&link->reserved_chanctx_list, &new_ctx->reserved_links); diff --git a/package/kernel/mac80211/patches/subsys/348-wifi-mac80211-add-wiphy-radio-assignment-and-validat.patch b/package/kernel/mac80211/patches/subsys/348-wifi-mac80211-add-wiphy-radio-assignment-and-validat.patch new file mode 100644 index 0000000000..c559f070e8 --- /dev/null +++ b/package/kernel/mac80211/patches/subsys/348-wifi-mac80211-add-wiphy-radio-assignment-and-validat.patch @@ -0,0 +1,132 @@ +From: Felix Fietkau +Date: Wed, 5 Jun 2024 18:39:55 +0200 +Subject: [PATCH] wifi: mac80211: add wiphy radio assignment and + validation + +Validate number of channels and interface combinations per radio. +Assign each channel context to a radio. + +Signed-off-by: Felix Fietkau +--- + +--- a/net/mac80211/chan.c ++++ b/net/mac80211/chan.c +@@ -680,14 +680,15 @@ static int ieee80211_add_chanctx(struct + static struct ieee80211_chanctx * + ieee80211_new_chanctx(struct ieee80211_local *local, + const struct ieee80211_chan_req *chanreq, +- enum ieee80211_chanctx_mode mode) ++ enum ieee80211_chanctx_mode mode, ++ int radio_idx) + { + struct ieee80211_chanctx *ctx; + int err; + + lockdep_assert_wiphy(local->hw.wiphy); + +- ctx = ieee80211_alloc_chanctx(local, chanreq, mode, -1); ++ ctx = ieee80211_alloc_chanctx(local, chanreq, mode, radio_idx); + if (!ctx) + return ERR_PTR(-ENOMEM); + +@@ -1040,6 +1041,8 @@ ieee80211_replace_chanctx(struct ieee802 + struct ieee80211_chanctx *curr_ctx) + { + struct ieee80211_chanctx *new_ctx, *ctx; ++ struct wiphy *wiphy = local->hw.wiphy; ++ const struct wiphy_radio *radio; + + if (!curr_ctx || (curr_ctx->replace_state == + IEEE80211_CHANCTX_WILL_BE_REPLACED) || +@@ -1069,6 +1072,12 @@ ieee80211_replace_chanctx(struct ieee802 + if (!list_empty(&ctx->reserved_links)) + continue; + ++ if (ctx->conf.radio_idx >= 0) { ++ radio = &wiphy->radio[ctx->conf.radio_idx]; ++ if (!cfg80211_radio_chandef_valid(radio, &chanreq->oper)) ++ continue; ++ } ++ + curr_ctx = ctx; + break; + } +@@ -1098,6 +1107,34 @@ ieee80211_replace_chanctx(struct ieee802 + return new_ctx; + } + ++static bool ++ieee80211_find_available_radio(struct ieee80211_local *local, ++ const struct ieee80211_chan_req *chanreq, ++ int *radio_idx) ++{ ++ struct wiphy *wiphy = local->hw.wiphy; ++ const struct wiphy_radio *radio; ++ int i; ++ ++ *radio_idx = -1; ++ if (!wiphy->n_radio) ++ return true; ++ ++ for (i = 0; i < wiphy->n_radio; i++) { ++ radio = &wiphy->radio[i]; ++ if (!cfg80211_radio_chandef_valid(radio, &chanreq->oper)) ++ continue; ++ ++ if (!ieee80211_can_create_new_chanctx(local, i)) ++ continue; ++ ++ *radio_idx = i; ++ return true; ++ } ++ ++ return false; ++} ++ + int ieee80211_link_reserve_chanctx(struct ieee80211_link_data *link, + const struct ieee80211_chan_req *chanreq, + enum ieee80211_chanctx_mode mode, +@@ -1106,6 +1143,7 @@ int ieee80211_link_reserve_chanctx(struc + struct ieee80211_sub_if_data *sdata = link->sdata; + struct ieee80211_local *local = sdata->local; + struct ieee80211_chanctx *new_ctx, *curr_ctx; ++ int radio_idx; + + lockdep_assert_wiphy(local->hw.wiphy); + +@@ -1115,8 +1153,10 @@ int ieee80211_link_reserve_chanctx(struc + + new_ctx = ieee80211_find_reservation_chanctx(local, chanreq, mode); + if (!new_ctx) { +- if (ieee80211_can_create_new_chanctx(local, -1)) +- new_ctx = ieee80211_new_chanctx(local, chanreq, mode); ++ if (ieee80211_can_create_new_chanctx(local, -1) && ++ ieee80211_find_available_radio(local, chanreq, &radio_idx)) ++ new_ctx = ieee80211_new_chanctx(local, chanreq, mode, ++ radio_idx); + else + new_ctx = ieee80211_replace_chanctx(local, chanreq, + mode, curr_ctx); +@@ -1724,6 +1764,7 @@ int ieee80211_link_use_channel(struct ie + struct ieee80211_local *local = sdata->local; + struct ieee80211_chanctx *ctx; + u8 radar_detect_width = 0; ++ int radio_idx; + int ret; + + lockdep_assert_wiphy(local->hw.wiphy); +@@ -1751,8 +1792,12 @@ int ieee80211_link_use_channel(struct ie + __ieee80211_link_release_channel(link); + + ctx = ieee80211_find_chanctx(local, chanreq, mode); +- if (!ctx) +- ctx = ieee80211_new_chanctx(local, chanreq, mode); ++ if (!ctx) { ++ if (!ieee80211_find_available_radio(local, chanreq, &radio_idx)) ++ ctx = ERR_PTR(-EBUSY); ++ else ++ ctx = ieee80211_new_chanctx(local, chanreq, mode, radio_idx); ++ } + if (IS_ERR(ctx)) { + ret = PTR_ERR(ctx); + goto out; diff --git a/package/kernel/mac80211/patches/subsys/349-wifi-mac80211_hwsim-add-support-for-multi-radio-wiph.patch b/package/kernel/mac80211/patches/subsys/349-wifi-mac80211_hwsim-add-support-for-multi-radio-wiph.patch new file mode 100644 index 0000000000..91fe6d83d9 --- /dev/null +++ b/package/kernel/mac80211/patches/subsys/349-wifi-mac80211_hwsim-add-support-for-multi-radio-wiph.patch @@ -0,0 +1,199 @@ +From: Felix Fietkau +Date: Tue, 11 Jun 2024 09:02:55 +0200 +Subject: [PATCH] wifi: mac80211_hwsim: add support for multi-radio wiphy + +This registers one wiphy radio per supported band. Number of different +channels is set per radio. + +Signed-off-by: Felix Fietkau +--- + +--- a/drivers/net/wireless/virtual/mac80211_hwsim.c ++++ b/drivers/net/wireless/virtual/mac80211_hwsim.c +@@ -69,6 +69,10 @@ static bool mlo; + module_param(mlo, bool, 0444); + MODULE_PARM_DESC(mlo, "Support MLO"); + ++static bool multi_radio; ++module_param(multi_radio, bool, 0444); ++MODULE_PARM_DESC(mlo, "Support Multiple Radios per wiphy"); ++ + /** + * enum hwsim_regtest - the type of regulatory tests we offer + * +@@ -669,6 +673,10 @@ struct mac80211_hwsim_data { + struct ieee80211_iface_limit if_limits[3]; + int n_if_limits; + ++ struct ieee80211_iface_combination if_combination_radio; ++ struct wiphy_radio_freq_range radio_range[NUM_NL80211_BANDS]; ++ struct wiphy_radio radio[NUM_NL80211_BANDS]; ++ + u32 ciphers[ARRAY_SIZE(hwsim_ciphers)]; + + struct mac_address addresses[2]; +@@ -917,6 +925,7 @@ static const struct nla_policy hwsim_gen + [HWSIM_ATTR_MLO_SUPPORT] = { .type = NLA_FLAG }, + [HWSIM_ATTR_PMSR_SUPPORT] = NLA_POLICY_NESTED(hwsim_pmsr_capa_policy), + [HWSIM_ATTR_PMSR_RESULT] = NLA_POLICY_NESTED(hwsim_pmsr_peers_result_policy), ++ [HWSIM_ATTR_MULTI_RADIO] = { .type = NLA_FLAG }, + }; + + #if IS_REACHABLE(CONFIG_VIRTIO) +@@ -4007,6 +4016,7 @@ struct hwsim_new_radio_params { + bool reg_strict; + bool p2p_device; + bool use_chanctx; ++ bool multi_radio; + bool destroy_on_close; + const char *hwname; + bool no_vif; +@@ -4083,6 +4093,12 @@ static int append_radio_msg(struct sk_bu + return ret; + } + ++ if (param->multi_radio) { ++ ret = nla_put_flag(skb, HWSIM_ATTR_MULTI_RADIO); ++ if (ret < 0) ++ return ret; ++ } ++ + if (param->hwname) { + ret = nla_put(skb, HWSIM_ATTR_RADIO_NAME, + strlen(param->hwname), param->hwname); +@@ -5099,6 +5115,7 @@ static int mac80211_hwsim_new_radio(stru + struct net *net; + int idx, i; + int n_limits = 0; ++ int n_bands = 0; + + if (WARN_ON(param->channels > 1 && !param->use_chanctx)) + return -EINVAL; +@@ -5202,22 +5219,22 @@ static int mac80211_hwsim_new_radio(stru + n_limits++; + } + ++ data->if_combination.radar_detect_widths = ++ BIT(NL80211_CHAN_WIDTH_5) | ++ BIT(NL80211_CHAN_WIDTH_10) | ++ BIT(NL80211_CHAN_WIDTH_20_NOHT) | ++ BIT(NL80211_CHAN_WIDTH_20) | ++ BIT(NL80211_CHAN_WIDTH_40) | ++ BIT(NL80211_CHAN_WIDTH_80) | ++ BIT(NL80211_CHAN_WIDTH_160); ++ + if (data->use_chanctx) { + hw->wiphy->max_scan_ssids = 255; + hw->wiphy->max_scan_ie_len = IEEE80211_MAX_DATA_LEN; + hw->wiphy->max_remain_on_channel_duration = 1000; +- data->if_combination.radar_detect_widths = 0; + data->if_combination.num_different_channels = data->channels; + } else { + data->if_combination.num_different_channels = 1; +- data->if_combination.radar_detect_widths = +- BIT(NL80211_CHAN_WIDTH_5) | +- BIT(NL80211_CHAN_WIDTH_10) | +- BIT(NL80211_CHAN_WIDTH_20_NOHT) | +- BIT(NL80211_CHAN_WIDTH_20) | +- BIT(NL80211_CHAN_WIDTH_40) | +- BIT(NL80211_CHAN_WIDTH_80) | +- BIT(NL80211_CHAN_WIDTH_160); + } + + if (!n_limits) { +@@ -5333,6 +5350,9 @@ static int mac80211_hwsim_new_radio(stru + + for (band = NL80211_BAND_2GHZ; band < NUM_NL80211_BANDS; band++) { + struct ieee80211_supported_band *sband = &data->bands[band]; ++ struct wiphy_radio_freq_range *radio_range; ++ const struct ieee80211_channel *c; ++ struct wiphy_radio *radio; + + sband->band = band; + +@@ -5406,8 +5426,36 @@ static int mac80211_hwsim_new_radio(stru + mac80211_hwsim_sband_capab(sband); + + hw->wiphy->bands[band] = sband; ++ ++ if (!param->multi_radio) ++ continue; ++ ++ c = sband->channels; ++ radio_range = &data->radio_range[n_bands]; ++ radio_range->start_freq = ieee80211_channel_to_khz(c) - 10000; ++ ++ c += sband->n_channels - 1; ++ radio_range->end_freq = ieee80211_channel_to_khz(c) + 10000; ++ ++ radio = &data->radio[n_bands++]; ++ radio->freq_range = radio_range; ++ radio->n_freq_range = 1; ++ radio->iface_combinations = &data->if_combination_radio; ++ radio->n_iface_combinations = 1; + } + ++ if (param->multi_radio) { ++ hw->wiphy->radio = data->radio; ++ hw->wiphy->n_radio = n_bands; ++ ++ memcpy(&data->if_combination_radio, &data->if_combination, ++ sizeof(data->if_combination)); ++ data->if_combination.num_different_channels *= n_bands; ++ } ++ ++ if (data->use_chanctx) ++ data->if_combination.radar_detect_widths = 0; ++ + /* By default all radios belong to the first group */ + data->group = 1; + mutex_init(&data->mutex); +@@ -6025,6 +6073,9 @@ static int hwsim_new_radio_nl(struct sk_ + else + param.use_chanctx = (param.channels > 1); + ++ if (info->attrs[HWSIM_ATTR_MULTI_RADIO]) ++ param.multi_radio = true; ++ + if (info->attrs[HWSIM_ATTR_REG_HINT_ALPHA2]) + param.reg_alpha2 = + nla_data(info->attrs[HWSIM_ATTR_REG_HINT_ALPHA2]); +@@ -6105,7 +6156,7 @@ static int hwsim_new_radio_nl(struct sk_ + + param.mlo = info->attrs[HWSIM_ATTR_MLO_SUPPORT]; + +- if (param.mlo) ++ if (param.mlo || param.multi_radio) + param.use_chanctx = true; + + if (info->attrs[HWSIM_ATTR_RADIO_NAME]) { +@@ -6802,7 +6853,8 @@ static int __init init_mac80211_hwsim(vo + + param.p2p_device = support_p2p_device; + param.mlo = mlo; +- param.use_chanctx = channels > 1 || mlo; ++ param.multi_radio = multi_radio; ++ param.use_chanctx = channels > 1 || mlo || multi_radio; + param.iftypes = HWSIM_IFTYPE_SUPPORT_MASK; + if (param.p2p_device) + param.iftypes |= BIT(NL80211_IFTYPE_P2P_DEVICE); +--- a/drivers/net/wireless/virtual/mac80211_hwsim.h ++++ b/drivers/net/wireless/virtual/mac80211_hwsim.h +@@ -157,6 +157,9 @@ enum hwsim_commands { + * to provide details about peer measurement request (nl80211_peer_measurement_attrs) + * @HWSIM_ATTR_PMSR_RESULT: nested attributed used with %HWSIM_CMD_REPORT_PMSR + * to provide peer measurement result (nl80211_peer_measurement_attrs) ++ * @HWSIM_ATTR_MULTI_RADIO: Register multiple wiphy radios (flag). ++ * Adds one radio for each band. Number of supported channels will be set for ++ * each radio instead of for the wiphy. + * @__HWSIM_ATTR_MAX: enum limit + */ + enum hwsim_attrs { +@@ -189,6 +192,7 @@ enum hwsim_attrs { + HWSIM_ATTR_PMSR_SUPPORT, + HWSIM_ATTR_PMSR_REQUEST, + HWSIM_ATTR_PMSR_RESULT, ++ HWSIM_ATTR_MULTI_RADIO, + __HWSIM_ATTR_MAX, + }; + #define HWSIM_ATTR_MAX (__HWSIM_ATTR_MAX - 1) diff --git a/package/kernel/mac80211/patches/subsys/780-avoid-crashing-missing-band.patch b/package/kernel/mac80211/patches/subsys/780-avoid-crashing-missing-band.patch index 35fa961d21..e64ca1753b 100644 --- a/package/kernel/mac80211/patches/subsys/780-avoid-crashing-missing-band.patch +++ b/package/kernel/mac80211/patches/subsys/780-avoid-crashing-missing-band.patch @@ -18,7 +18,7 @@ Signed-off-by: David Bauer --- a/net/mac80211/sta_info.c +++ b/net/mac80211/sta_info.c -@@ -2445,6 +2445,13 @@ static void sta_stats_decode_rate(struct +@@ -2459,6 +2459,13 @@ static void sta_stats_decode_rate(struct sband = local->hw.wiphy->bands[band]; diff --git a/package/kernel/mt76/patches/100-api_changes.patch b/package/kernel/mt76/patches/100-api_changes.patch new file mode 100644 index 0000000000..de81614ada --- /dev/null +++ b/package/kernel/mt76/patches/100-api_changes.patch @@ -0,0 +1,678 @@ +--- a/mac80211.c ++++ b/mac80211.c +@@ -1614,8 +1614,8 @@ EXPORT_SYMBOL_GPL(mt76_get_sar_power); + static void + __mt76_csa_finish(void *priv, u8 *mac, struct ieee80211_vif *vif) + { +- if (vif->bss_conf.csa_active && ieee80211_beacon_cntdwn_is_complete(vif)) +- ieee80211_csa_finish(vif); ++ if (vif->bss_conf.csa_active && ieee80211_beacon_cntdwn_is_complete(vif, 0)) ++ ieee80211_csa_finish(vif, 0); + } + + void mt76_csa_finish(struct mt76_dev *dev) +@@ -1639,7 +1639,7 @@ __mt76_csa_check(void *priv, u8 *mac, st + if (!vif->bss_conf.csa_active) + return; + +- dev->csa_complete |= ieee80211_beacon_cntdwn_is_complete(vif); ++ dev->csa_complete |= ieee80211_beacon_cntdwn_is_complete(vif, 0); + } + + void mt76_csa_check(struct mt76_dev *dev) +--- a/mt76.h ++++ b/mt76.h +@@ -1611,6 +1611,18 @@ s8 mt76_get_rate_power_limits(struct mt7 + struct mt76_power_limits *dest, + s8 target_power); + ++static inline bool mt76_queue_is_rx(struct mt76_dev *dev, struct mt76_queue *q) ++{ ++ int i; ++ ++ for (i = 0; i < ARRAY_SIZE(dev->q_rx); i++) { ++ if (q == &dev->q_rx[i]) ++ return true; ++ } ++ ++ return false; ++} ++ + static inline bool mt76_queue_is_wed_tx_free(struct mt76_queue *q) + { + return (q->flags & MT_QFLAG_WED) && +--- a/mt7603/main.c ++++ b/mt7603/main.c +@@ -701,6 +701,10 @@ static void mt7603_tx(struct ieee80211_h + } + + const struct ieee80211_ops mt7603_ops = { ++ .add_chanctx = ieee80211_emulate_add_chanctx, ++ .remove_chanctx = ieee80211_emulate_remove_chanctx, ++ .change_chanctx = ieee80211_emulate_change_chanctx, ++ .switch_vif_chanctx = ieee80211_emulate_switch_vif_chanctx, + .tx = mt7603_tx, + .start = mt7603_start, + .stop = mt7603_stop, +@@ -728,6 +732,7 @@ const struct ieee80211_ops mt7603_ops = + .set_sar_specs = mt7603_set_sar_specs, + }; + ++MODULE_DESCRIPTION("MediaTek MT7603E and MT76x8 wireless driver"); + MODULE_LICENSE("Dual BSD/GPL"); + + static int __init mt7603_init(void) +--- a/mt7615/Kconfig ++++ b/mt7615/Kconfig +@@ -11,7 +11,7 @@ config MT7615E + depends on MAC80211 + depends on PCI + help +- This adds support for MT7615-based wireless PCIe devices, ++ This adds support for MT7615-based PCIe wireless devices, + which support concurrent dual-band operation at both 5GHz + and 2.4GHz, IEEE 802.11ac 4x4:4SS 1733Mbps PHY rate, wave2 + MU-MIMO up to 4 users/group and 160MHz channels. +--- a/mt7615/main.c ++++ b/mt7615/main.c +@@ -1326,6 +1326,10 @@ static void mt7615_set_rekey_data(struct + #endif /* CONFIG_PM */ + + const struct ieee80211_ops mt7615_ops = { ++ .add_chanctx = ieee80211_emulate_add_chanctx, ++ .remove_chanctx = ieee80211_emulate_remove_chanctx, ++ .change_chanctx = ieee80211_emulate_change_chanctx, ++ .switch_vif_chanctx = ieee80211_emulate_switch_vif_chanctx, + .tx = mt7615_tx, + .start = mt7615_start, + .stop = mt7615_stop, +@@ -1375,4 +1379,5 @@ const struct ieee80211_ops mt7615_ops = + }; + EXPORT_SYMBOL_GPL(mt7615_ops); + ++MODULE_DESCRIPTION("MediaTek MT7615E and MT7663E wireless driver"); + MODULE_LICENSE("Dual BSD/GPL"); +--- a/mt7615/mcu.c ++++ b/mt7615/mcu.c +@@ -353,7 +353,7 @@ static void + mt7615_mcu_csa_finish(void *priv, u8 *mac, struct ieee80211_vif *vif) + { + if (vif->bss_conf.csa_active) +- ieee80211_csa_finish(vif); ++ ieee80211_csa_finish(vif, 0); + } + + static void +--- a/mt7615/mmio.c ++++ b/mt7615/mmio.c +@@ -270,4 +270,5 @@ static void __exit mt7615_exit(void) + + module_init(mt7615_init); + module_exit(mt7615_exit); ++MODULE_DESCRIPTION("MediaTek MT7615E MMIO helpers"); + MODULE_LICENSE("Dual BSD/GPL"); +--- a/mt7615/sdio.c ++++ b/mt7615/sdio.c +@@ -180,7 +180,6 @@ static void mt7663s_remove(struct sdio_f + mt76_free_device(&dev->mt76); + } + +-#ifdef CONFIG_PM + static int mt7663s_suspend(struct device *dev) + { + struct sdio_func *func = dev_to_sdio_func(dev); +@@ -235,31 +234,24 @@ static int mt7663s_resume(struct device + return err; + } + +-static const struct dev_pm_ops mt7663s_pm_ops = { +- .suspend = mt7663s_suspend, +- .resume = mt7663s_resume, +-}; +-#endif +- + MODULE_DEVICE_TABLE(sdio, mt7663s_table); + MODULE_FIRMWARE(MT7663_OFFLOAD_FIRMWARE_N9); + MODULE_FIRMWARE(MT7663_OFFLOAD_ROM_PATCH); + MODULE_FIRMWARE(MT7663_FIRMWARE_N9); + MODULE_FIRMWARE(MT7663_ROM_PATCH); + ++static DEFINE_SIMPLE_DEV_PM_OPS(mt7663s_pm_ops, mt7663s_suspend, mt7663s_resume); ++ + static struct sdio_driver mt7663s_driver = { + .name = KBUILD_MODNAME, + .probe = mt7663s_probe, + .remove = mt7663s_remove, + .id_table = mt7663s_table, +-#ifdef CONFIG_PM +- .drv = { +- .pm = &mt7663s_pm_ops, +- } +-#endif ++ .drv.pm = pm_sleep_ptr(&mt7663s_pm_ops), + }; + module_sdio_driver(mt7663s_driver); + + MODULE_AUTHOR("Sean Wang "); + MODULE_AUTHOR("Lorenzo Bianconi "); ++MODULE_DESCRIPTION("MediaTek MT7663S (SDIO) wireless driver"); + MODULE_LICENSE("Dual BSD/GPL"); +--- a/mt7615/usb.c ++++ b/mt7615/usb.c +@@ -281,4 +281,5 @@ module_usb_driver(mt7663u_driver); + + MODULE_AUTHOR("Sean Wang "); + MODULE_AUTHOR("Lorenzo Bianconi "); ++MODULE_DESCRIPTION("MediaTek MT7663U (USB) wireless driver"); + MODULE_LICENSE("Dual BSD/GPL"); +--- a/mt7615/usb_sdio.c ++++ b/mt7615/usb_sdio.c +@@ -349,4 +349,5 @@ EXPORT_SYMBOL_GPL(mt7663_usb_sdio_regist + + MODULE_AUTHOR("Lorenzo Bianconi "); + MODULE_AUTHOR("Sean Wang "); ++MODULE_DESCRIPTION("MediaTek MT7663 SDIO/USB helpers"); + MODULE_LICENSE("Dual BSD/GPL"); +--- a/mt76_connac_mcu.c ++++ b/mt76_connac_mcu.c +@@ -3171,4 +3171,5 @@ exit: + EXPORT_SYMBOL_GPL(mt76_connac2_mcu_fill_message); + + MODULE_AUTHOR("Lorenzo Bianconi "); ++MODULE_DESCRIPTION("MediaTek MT76x connac layer helpers"); + MODULE_LICENSE("Dual BSD/GPL"); +--- a/mt76_connac_mcu.h ++++ b/mt76_connac_mcu.h +@@ -128,7 +128,7 @@ struct mt76_connac2_mcu_rxd { + u8 rsv1[2]; + u8 s2d_index; + +- u8 tlv[0]; ++ u8 tlv[]; + }; + + struct mt76_connac2_patch_hdr { +@@ -1460,7 +1460,7 @@ struct mt76_connac_beacon_loss_event { + } __packed; + + struct mt76_connac_rssi_notify_event { +- s32 rssi[4]; ++ __le32 rssi[4]; + } __packed; + + struct mt76_connac_mcu_bss_event { +--- a/mt76x0/eeprom.c ++++ b/mt76x0/eeprom.c +@@ -342,4 +342,5 @@ int mt76x0_eeprom_init(struct mt76x02_de + return 0; + } + ++MODULE_DESCRIPTION("MediaTek MT76x EEPROM helpers"); + MODULE_LICENSE("Dual BSD/GPL"); +--- a/mt76x0/pci.c ++++ b/mt76x0/pci.c +@@ -59,6 +59,10 @@ mt76x0e_flush(struct ieee80211_hw *hw, s + } + + static const struct ieee80211_ops mt76x0e_ops = { ++ .add_chanctx = ieee80211_emulate_add_chanctx, ++ .remove_chanctx = ieee80211_emulate_remove_chanctx, ++ .change_chanctx = ieee80211_emulate_change_chanctx, ++ .switch_vif_chanctx = ieee80211_emulate_switch_vif_chanctx, + .tx = mt76x02_tx, + .start = mt76x0e_start, + .stop = mt76x0e_stop, +@@ -302,6 +306,7 @@ static const struct pci_device_id mt76x0 + MODULE_DEVICE_TABLE(pci, mt76x0e_device_table); + MODULE_FIRMWARE(MT7610E_FIRMWARE); + MODULE_FIRMWARE(MT7650E_FIRMWARE); ++MODULE_DESCRIPTION("MediaTek MT76x0E (PCIe) wireless driver"); + MODULE_LICENSE("Dual BSD/GPL"); + + static struct pci_driver mt76x0e_driver = { +--- a/mt76x0/usb.c ++++ b/mt76x0/usb.c +@@ -118,6 +118,10 @@ static int mt76x0u_start(struct ieee8021 + } + + static const struct ieee80211_ops mt76x0u_ops = { ++ .add_chanctx = ieee80211_emulate_add_chanctx, ++ .remove_chanctx = ieee80211_emulate_remove_chanctx, ++ .change_chanctx = ieee80211_emulate_change_chanctx, ++ .switch_vif_chanctx = ieee80211_emulate_switch_vif_chanctx, + .tx = mt76x02_tx, + .start = mt76x0u_start, + .stop = mt76x0u_stop, +@@ -336,6 +340,7 @@ err: + MODULE_DEVICE_TABLE(usb, mt76x0_device_table); + MODULE_FIRMWARE(MT7610E_FIRMWARE); + MODULE_FIRMWARE(MT7610U_FIRMWARE); ++MODULE_DESCRIPTION("MediaTek MT76x0U (USB) wireless driver"); + MODULE_LICENSE("GPL"); + + static struct usb_driver mt76x0_driver = { +--- a/mt76x02_usb_mcu.c ++++ b/mt76x02_usb_mcu.c +@@ -293,4 +293,5 @@ void mt76x02u_init_mcu(struct mt76_dev * + EXPORT_SYMBOL_GPL(mt76x02u_init_mcu); + + MODULE_AUTHOR("Lorenzo Bianconi "); ++MODULE_DESCRIPTION("MediaTek MT76x02 MCU helpers"); + MODULE_LICENSE("Dual BSD/GPL"); +--- a/mt76x02_util.c ++++ b/mt76x02_util.c +@@ -696,4 +696,5 @@ void mt76x02_config_mac_addr_list(struct + } + EXPORT_SYMBOL_GPL(mt76x02_config_mac_addr_list); + ++MODULE_DESCRIPTION("MediaTek MT76x02 helpers"); + MODULE_LICENSE("Dual BSD/GPL"); +--- a/mt76x2/eeprom.c ++++ b/mt76x2/eeprom.c +@@ -506,4 +506,5 @@ int mt76x2_eeprom_init(struct mt76x02_de + } + EXPORT_SYMBOL_GPL(mt76x2_eeprom_init); + ++MODULE_DESCRIPTION("MediaTek MT76x2 EEPROM helpers"); + MODULE_LICENSE("Dual BSD/GPL"); +--- a/mt76x2/pci.c ++++ b/mt76x2/pci.c +@@ -165,6 +165,7 @@ mt76x2e_resume(struct pci_dev *pdev) + MODULE_DEVICE_TABLE(pci, mt76x2e_device_table); + MODULE_FIRMWARE(MT7662_FIRMWARE); + MODULE_FIRMWARE(MT7662_ROM_PATCH); ++MODULE_DESCRIPTION("MediaTek MT76x2E (PCIe) wireless driver"); + MODULE_LICENSE("Dual BSD/GPL"); + + static struct pci_driver mt76pci_driver = { +--- a/mt76x2/pci_main.c ++++ b/mt76x2/pci_main.c +@@ -132,6 +132,10 @@ static int mt76x2_set_antenna(struct iee + } + + const struct ieee80211_ops mt76x2_ops = { ++ .add_chanctx = ieee80211_emulate_add_chanctx, ++ .remove_chanctx = ieee80211_emulate_remove_chanctx, ++ .change_chanctx = ieee80211_emulate_change_chanctx, ++ .switch_vif_chanctx = ieee80211_emulate_switch_vif_chanctx, + .tx = mt76x02_tx, + .start = mt76x2_start, + .stop = mt76x2_stop, +--- a/mt76x2/usb.c ++++ b/mt76x2/usb.c +@@ -148,4 +148,5 @@ static struct usb_driver mt76x2u_driver + module_usb_driver(mt76x2u_driver); + + MODULE_AUTHOR("Lorenzo Bianconi "); ++MODULE_DESCRIPTION("MediaTek MT76x2U (USB) wireless driver"); + MODULE_LICENSE("Dual BSD/GPL"); +--- a/mt76x2/usb_main.c ++++ b/mt76x2/usb_main.c +@@ -103,6 +103,10 @@ mt76x2u_config(struct ieee80211_hw *hw, + } + + const struct ieee80211_ops mt76x2u_ops = { ++ .add_chanctx = ieee80211_emulate_add_chanctx, ++ .remove_chanctx = ieee80211_emulate_remove_chanctx, ++ .change_chanctx = ieee80211_emulate_change_chanctx, ++ .switch_vif_chanctx = ieee80211_emulate_switch_vif_chanctx, + .tx = mt76x02_tx, + .start = mt76x2u_start, + .stop = mt76x2u_stop, +--- a/mt7915/Kconfig ++++ b/mt7915/Kconfig +@@ -7,7 +7,7 @@ config MT7915E + depends on PCI + select RELAY + help +- This adds support for MT7915-based wireless PCIe devices, ++ This adds support for MT7915-based PCIe wireless devices, + which support concurrent dual-band operation at both 5GHz + and 2.4GHz IEEE 802.11ax 4x4:4SS 1024-QAM, 160MHz channels, + OFDMA, spatial reuse and dual carrier modulation. +--- a/mt7915/init.c ++++ b/mt7915/init.c +@@ -4,6 +4,7 @@ + #include + #include + #include ++#include + #include + #include "mt7915.h" + #include "mac.h" +@@ -1151,8 +1152,7 @@ void mt7915_set_stream_he_caps(struct mt + n = mt7915_init_he_caps(phy, NL80211_BAND_2GHZ, data); + + band = &phy->mt76->sband_2g.sband; +- band->iftype_data = data; +- band->n_iftype_data = n; ++ _ieee80211_set_sband_iftype_data(band, data, n); + } + + if (phy->mt76->cap.has_5ghz) { +@@ -1160,8 +1160,7 @@ void mt7915_set_stream_he_caps(struct mt + n = mt7915_init_he_caps(phy, NL80211_BAND_5GHZ, data); + + band = &phy->mt76->sband_5g.sband; +- band->iftype_data = data; +- band->n_iftype_data = n; ++ _ieee80211_set_sband_iftype_data(band, data, n); + } + + if (phy->mt76->cap.has_6ghz) { +@@ -1169,8 +1168,7 @@ void mt7915_set_stream_he_caps(struct mt + n = mt7915_init_he_caps(phy, NL80211_BAND_6GHZ, data); + + band = &phy->mt76->sband_6g.sband; +- band->iftype_data = data; +- band->n_iftype_data = n; ++ _ieee80211_set_sband_iftype_data(band, data, n); + } + } + +--- a/mt7915/main.c ++++ b/mt7915/main.c +@@ -1661,6 +1661,10 @@ mt7915_net_fill_forward_path(struct ieee + #endif + + const struct ieee80211_ops mt7915_ops = { ++ .add_chanctx = ieee80211_emulate_add_chanctx, ++ .remove_chanctx = ieee80211_emulate_remove_chanctx, ++ .change_chanctx = ieee80211_emulate_change_chanctx, ++ .switch_vif_chanctx = ieee80211_emulate_switch_vif_chanctx, + .tx = mt7915_tx, + .start = mt7915_start, + .stop = mt7915_stop, +--- a/mt7915/mcu.c ++++ b/mt7915/mcu.c +@@ -228,7 +228,7 @@ mt7915_mcu_csa_finish(void *priv, u8 *ma + if (!vif->bss_conf.csa_active || vif->type == NL80211_IFTYPE_STATION) + return; + +- ieee80211_csa_finish(vif); ++ ieee80211_csa_finish(vif, 0); + } + + static void +@@ -463,10 +463,10 @@ static bool mt7915_check_he_obss_narrow_ + .tolerated = true, + }; + +- if (!(vif->bss_conf.chandef.chan->flags & IEEE80211_CHAN_RADAR)) ++ if (!(vif->bss_conf.chanreq.oper.chan->flags & IEEE80211_CHAN_RADAR)) + return false; + +- cfg80211_bss_iter(hw->wiphy, &vif->bss_conf.chandef, ++ cfg80211_bss_iter(hw->wiphy, &vif->bss_conf.chanreq.oper, + mt7915_check_he_obss_narrow_bw_ru_iter, + &iter_data); + +--- a/mt7915/mmio.c ++++ b/mt7915/mmio.c +@@ -993,4 +993,5 @@ static void __exit mt7915_exit(void) + + module_init(mt7915_init); + module_exit(mt7915_exit); ++MODULE_DESCRIPTION("MediaTek MT7915E MMIO helpers"); + MODULE_LICENSE("Dual BSD/GPL"); +--- a/mt7921/main.c ++++ b/mt7921/main.c +@@ -196,8 +196,7 @@ void mt7921_set_stream_he_caps(struct mt + n = mt7921_init_he_caps(phy, NL80211_BAND_2GHZ, data); + + band = &phy->mt76->sband_2g.sband; +- band->iftype_data = data; +- band->n_iftype_data = n; ++ _ieee80211_set_sband_iftype_data(band, data, n); + } + + if (phy->mt76->cap.has_5ghz) { +@@ -205,16 +204,14 @@ void mt7921_set_stream_he_caps(struct mt + n = mt7921_init_he_caps(phy, NL80211_BAND_5GHZ, data); + + band = &phy->mt76->sband_5g.sband; +- band->iftype_data = data; +- band->n_iftype_data = n; ++ _ieee80211_set_sband_iftype_data(band, data, n); + + if (phy->mt76->cap.has_6ghz) { + data = phy->iftype[NL80211_BAND_6GHZ]; + n = mt7921_init_he_caps(phy, NL80211_BAND_6GHZ, data); + + band = &phy->mt76->sband_6g.sband; +- band->iftype_data = data; +- band->n_iftype_data = n; ++ _ieee80211_set_sband_iftype_data(band, data, n); + } + } + } +@@ -1464,5 +1461,6 @@ const struct ieee80211_ops mt7921_ops = + }; + EXPORT_SYMBOL_GPL(mt7921_ops); + ++MODULE_DESCRIPTION("MediaTek MT7921 core driver"); + MODULE_LICENSE("Dual BSD/GPL"); + MODULE_AUTHOR("Sean Wang "); +--- a/mt7921/pci.c ++++ b/mt7921/pci.c +@@ -570,4 +570,5 @@ MODULE_FIRMWARE(MT7922_FIRMWARE_WM); + MODULE_FIRMWARE(MT7922_ROM_PATCH); + MODULE_AUTHOR("Sean Wang "); + MODULE_AUTHOR("Lorenzo Bianconi "); ++MODULE_DESCRIPTION("MediaTek MT7921E (PCIe) wireless driver"); + MODULE_LICENSE("Dual BSD/GPL"); +--- a/mt7921/sdio.c ++++ b/mt7921/sdio.c +@@ -201,7 +201,6 @@ static void mt7921s_remove(struct sdio_f + mt7921s_unregister_device(dev); + } + +-#ifdef CONFIG_PM + static int mt7921s_suspend(struct device *__dev) + { + struct sdio_func *func = dev_to_sdio_func(__dev); +@@ -312,27 +311,20 @@ failed: + return err; + } + +-static const struct dev_pm_ops mt7921s_pm_ops = { +- .suspend = mt7921s_suspend, +- .resume = mt7921s_resume, +-}; +-#endif +- + MODULE_DEVICE_TABLE(sdio, mt7921s_table); + MODULE_FIRMWARE(MT7921_FIRMWARE_WM); + MODULE_FIRMWARE(MT7921_ROM_PATCH); + ++static DEFINE_SIMPLE_DEV_PM_OPS(mt7921s_pm_ops, mt7921s_suspend, mt7921s_resume); ++ + static struct sdio_driver mt7921s_driver = { + .name = KBUILD_MODNAME, + .probe = mt7921s_probe, + .remove = mt7921s_remove, + .id_table = mt7921s_table, +-#ifdef CONFIG_PM +- .drv = { +- .pm = &mt7921s_pm_ops, +- } +-#endif ++ .drv.pm = pm_sleep_ptr(&mt7921s_pm_ops), + }; + module_sdio_driver(mt7921s_driver); ++MODULE_DESCRIPTION("MediaTek MT7921S (SDIO) wireless driver"); + MODULE_AUTHOR("Sean Wang "); + MODULE_LICENSE("Dual BSD/GPL"); +--- a/mt7921/usb.c ++++ b/mt7921/usb.c +@@ -336,5 +336,6 @@ static struct usb_driver mt7921u_driver + }; + module_usb_driver(mt7921u_driver); + ++MODULE_DESCRIPTION("MediaTek MT7921U (USB) wireless driver"); + MODULE_AUTHOR("Lorenzo Bianconi "); + MODULE_LICENSE("Dual BSD/GPL"); +--- a/mt7925/main.c ++++ b/mt7925/main.c +@@ -14,7 +14,7 @@ + static void + mt7925_init_he_caps(struct mt792x_phy *phy, enum nl80211_band band, + struct ieee80211_sband_iftype_data *data, +- enum nl80211_iftype iftype) ++ enum nl80211_iftype iftype) + { + struct ieee80211_sta_he_cap *he_cap = &data->he_cap; + struct ieee80211_he_cap_elem *he_cap_elem = &he_cap->he_cap_elem; +@@ -53,7 +53,7 @@ mt7925_init_he_caps(struct mt792x_phy *p + IEEE80211_HE_PHY_CAP2_UL_MU_FULL_MU_MIMO | + IEEE80211_HE_PHY_CAP2_UL_MU_PARTIAL_MU_MIMO; + +- switch (i) { ++ switch (iftype) { + case NL80211_IFTYPE_AP: + he_cap_elem->mac_cap_info[2] |= + IEEE80211_HE_MAC_CAP2_BSR; +@@ -1470,4 +1470,5 @@ const struct ieee80211_ops mt7925_ops = + EXPORT_SYMBOL_GPL(mt7925_ops); + + MODULE_AUTHOR("Deren Wu "); ++MODULE_DESCRIPTION("MediaTek MT7925 core driver"); + MODULE_LICENSE("Dual BSD/GPL"); +--- a/mt7925/pci.c ++++ b/mt7925/pci.c +@@ -586,4 +586,5 @@ MODULE_FIRMWARE(MT7925_FIRMWARE_WM); + MODULE_FIRMWARE(MT7925_ROM_PATCH); + MODULE_AUTHOR("Deren Wu "); + MODULE_AUTHOR("Lorenzo Bianconi "); ++MODULE_DESCRIPTION("MediaTek MT7925E (PCIe) wireless driver"); + MODULE_LICENSE("Dual BSD/GPL"); +--- a/mt7925/usb.c ++++ b/mt7925/usb.c +@@ -329,4 +329,5 @@ static struct usb_driver mt7925u_driver + module_usb_driver(mt7925u_driver); + + MODULE_AUTHOR("Lorenzo Bianconi "); ++MODULE_DESCRIPTION("MediaTek MT7925U (USB) wireless driver"); + MODULE_LICENSE("Dual BSD/GPL"); +--- a/mt792x_core.c ++++ b/mt792x_core.c +@@ -685,9 +685,10 @@ mt792x_get_mac80211_ops(struct device *d + if (!(*fw_features & MT792x_FW_CAP_CNM)) { + ops->remain_on_channel = NULL; + ops->cancel_remain_on_channel = NULL; +- ops->add_chanctx = NULL; +- ops->remove_chanctx = NULL; +- ops->change_chanctx = NULL; ++ ops->add_chanctx = ieee80211_emulate_add_chanctx; ++ ops->remove_chanctx = ieee80211_emulate_remove_chanctx; ++ ops->change_chanctx = ieee80211_emulate_change_chanctx; ++ ops->switch_vif_chanctx = ieee80211_emulate_switch_vif_chanctx; + ops->assign_vif_chanctx = NULL; + ops->unassign_vif_chanctx = NULL; + ops->mgd_prepare_tx = NULL; +@@ -863,5 +864,6 @@ int mt792x_load_firmware(struct mt792x_d + } + EXPORT_SYMBOL_GPL(mt792x_load_firmware); + ++MODULE_DESCRIPTION("MediaTek MT792x core driver"); + MODULE_LICENSE("Dual BSD/GPL"); + MODULE_AUTHOR("Lorenzo Bianconi "); +--- a/mt792x_usb.c ++++ b/mt792x_usb.c +@@ -312,5 +312,6 @@ void mt792xu_disconnect(struct usb_inter + } + EXPORT_SYMBOL_GPL(mt792xu_disconnect); + ++MODULE_DESCRIPTION("MediaTek MT792x USB helpers"); + MODULE_LICENSE("Dual BSD/GPL"); + MODULE_AUTHOR("Lorenzo Bianconi "); +--- a/mt7996/init.c ++++ b/mt7996/init.c +@@ -4,9 +4,10 @@ + */ + + #include +-#include ++#include + #include + #include ++#include + #include "mt7996.h" + #include "mac.h" + #include "mcu.h" +@@ -1278,8 +1279,7 @@ __mt7996_set_stream_he_eht_caps(struct m + n++; + } + +- sband->iftype_data = data; +- sband->n_iftype_data = n; ++ _ieee80211_set_sband_iftype_data(sband, data, n); + } + + void mt7996_set_stream_he_eht_caps(struct mt7996_phy *phy) +--- a/mt7996/main.c ++++ b/mt7996/main.c +@@ -1467,6 +1467,10 @@ mt7996_net_fill_forward_path(struct ieee + #endif + + const struct ieee80211_ops mt7996_ops = { ++ .add_chanctx = ieee80211_emulate_add_chanctx, ++ .remove_chanctx = ieee80211_emulate_remove_chanctx, ++ .change_chanctx = ieee80211_emulate_change_chanctx, ++ .switch_vif_chanctx = ieee80211_emulate_switch_vif_chanctx, + .tx = mt7996_tx, + .start = mt7996_start, + .stop = mt7996_stop, +--- a/mt7996/mcu.c ++++ b/mt7996/mcu.c +@@ -341,7 +341,7 @@ mt7996_mcu_csa_finish(void *priv, u8 *ma + if (!vif->bss_conf.csa_active || vif->type == NL80211_IFTYPE_STATION) + return; + +- ieee80211_csa_finish(vif); ++ ieee80211_csa_finish(vif, 0); + } + + static void +--- a/mt7996/mmio.c ++++ b/mt7996/mmio.c +@@ -670,4 +670,5 @@ static void __exit mt7996_exit(void) + + module_init(mt7996_init); + module_exit(mt7996_exit); ++MODULE_DESCRIPTION("MediaTek MT7996 MMIO helpers"); + MODULE_LICENSE("Dual BSD/GPL"); +--- a/sdio.c ++++ b/sdio.c +@@ -677,4 +677,5 @@ EXPORT_SYMBOL_GPL(mt76s_init); + + MODULE_AUTHOR("Sean Wang "); + MODULE_AUTHOR("Lorenzo Bianconi "); ++MODULE_DESCRIPTION("MediaTek MT76x SDIO helpers"); + MODULE_LICENSE("Dual BSD/GPL"); +--- a/usb.c ++++ b/usb.c +@@ -286,8 +286,7 @@ static bool mt76u_check_sg(struct mt76_d + struct usb_device *udev = interface_to_usbdev(uintf); + + return (!disable_usb_sg && udev->bus->sg_tablesize > 0 && +- (udev->bus->no_sg_constraint || +- udev->speed == USB_SPEED_WIRELESS)); ++ udev->bus->no_sg_constraint); + } + + static int +@@ -1136,4 +1135,5 @@ int mt76u_init(struct mt76_dev *dev, str + EXPORT_SYMBOL_GPL(mt76u_init); + + MODULE_AUTHOR("Lorenzo Bianconi "); ++MODULE_DESCRIPTION("MediaTek MT76x USB helpers"); + MODULE_LICENSE("Dual BSD/GPL"); +--- a/util.c ++++ b/util.c +@@ -138,4 +138,5 @@ int __mt76_worker_fn(void *ptr) + } + EXPORT_SYMBOL_GPL(__mt76_worker_fn); + ++MODULE_DESCRIPTION("MediaTek MT76x helpers"); + MODULE_LICENSE("Dual BSD/GPL"); diff --git a/package/kernel/mwlwifi/patches/005-mac80211_update.patch b/package/kernel/mwlwifi/patches/005-mac80211_update.patch index 92a8f2f70f..da37875705 100644 --- a/package/kernel/mwlwifi/patches/005-mac80211_update.patch +++ b/package/kernel/mwlwifi/patches/005-mac80211_update.patch @@ -1,14 +1,16 @@ --- a/core.c +++ b/core.c -@@ -718,7 +718,7 @@ static void mwl_chnl_switch_event(struct +@@ -718,8 +718,8 @@ static void mwl_chnl_switch_event(struct vif = container_of((void *)mwl_vif, struct ieee80211_vif, drv_priv); - if (vif->csa_active) +- ieee80211_csa_finish(vif); + if (vif->bss_conf.csa_active) - ieee80211_csa_finish(vif); ++ ieee80211_csa_finish(vif, 0); } spin_unlock_bh(&priv->vif_lock); + --- a/debugfs.c +++ b/debugfs.c @@ -498,9 +498,9 @@ static ssize_t mwl_debugfs_vif_read(stru @@ -95,6 +97,27 @@ if (priv->chip_type == MWL8997) ether_addr_copy(pcmd->start_cmd.bssid, mwl_vif->bssid); pcmd->start_cmd.bss_type = 1; +@@ -674,7 +678,7 @@ static int mwl_fwcmd_set_ap_beacon(struc + phy_ds_param_set = &pcmd->start_cmd.phy_param_set.ds_param_set; + phy_ds_param_set->elem_id = WLAN_EID_DS_PARAMS; + phy_ds_param_set->len = sizeof(phy_ds_param_set->current_chnl); +- phy_ds_param_set->current_chnl = bss_conf->chandef.chan->hw_value; ++ phy_ds_param_set->current_chnl = bss_conf->chanreq.oper.chan->hw_value; + + pcmd->start_cmd.probe_delay = cpu_to_le16(10); + pcmd->start_cmd.cap_info = cpu_to_le16(mwl_vif->beacon_info.cap_info); +@@ -768,9 +772,9 @@ static int mwl_fwcmd_set_country_code(st + bool enable = false; + + if (b_inf->ie_country_ptr) { +- if (bss_conf->chandef.chan->band == NL80211_BAND_2GHZ) ++ if (bss_conf->chanreq.oper.chan->band == NL80211_BAND_2GHZ) + a_band = false; +- else if (bss_conf->chandef.chan->band == NL80211_BAND_5GHZ) ++ else if (bss_conf->chanreq.oper.chan->band == NL80211_BAND_5GHZ) + a_band = true; + else + return -EINVAL; @@ -2090,7 +2094,7 @@ int mwl_fwcmd_set_beacon(struct ieee8021 if (mwl_fwcmd_set_wsc_ie(hw, b_inf->ie_wsc_len, b_inf->ie_wsc_ptr)) goto err; @@ -236,6 +259,15 @@ } --- a/hif/pcie/8864/tx.c +++ b/hif/pcie/8864/tx.c +@@ -490,7 +490,7 @@ static void pcie_non_pfu_tx_done(struct + } else + memmove(dma_data->data - hdrlen, &dma_data->wh, hdrlen); + skb_pull(done_skb, sizeof(*dma_data) - hdrlen); +- ieee80211_tx_status(priv->hw, done_skb); ++ ieee80211_tx_status_skb(priv->hw, done_skb); + dev_kfree_skb_any(done_skb); + done_skb = NULL; + } @@ -743,7 +743,7 @@ void pcie_8864_tx_xmit(struct ieee80211_ index = SYSADPT_TX_WMM_QUEUES - index - 1; txpriority = index; @@ -245,9 +277,41 @@ !(xmitcontrol & EAGLE_TXD_XMITCTRL_USE_MC_RATE) && ieee80211_is_data_qos(wh->frame_control)) { tid = qos & 0xf; +@@ -925,4 +925,4 @@ void pcie_8864_tx_del_sta_amsdu_pkts(str + } + } + spin_unlock_bh(&sta_info->amsdu_lock); +-} +\ No newline at end of file ++} --- a/hif/pcie/8964/tx_ndp.c +++ b/hif/pcie/8964/tx_ndp.c -@@ -607,7 +607,7 @@ void pcie_tx_xmit_ndp(struct ieee80211_h +@@ -287,7 +287,7 @@ static inline int pcie_tx_skb_ndp(struct + skb_get(tx_skb); + pcie_tx_prepare_info(priv, tx_ctrl->rate, tx_info); + tx_ctrl->flags |= TX_CTRL_TYPE_DATA; +- ieee80211_tx_status(priv->hw, tx_skb); ++ ieee80211_tx_status_skb(priv->hw, tx_skb); + } + + if (++tx_send_head_new >= MAX_NUM_TX_DESC) +@@ -488,7 +488,7 @@ void pcie_tx_done_ndp(struct ieee80211_h + } + + pcie_tx_prepare_info(priv, 0, tx_info); +- ieee80211_tx_status(hw, skb); ++ ieee80211_tx_status_skb(hw, skb); + + bypass_ack: + if (++tx_done_tail >= MAX_TX_RING_DONE_SIZE) +@@ -601,13 +601,13 @@ void pcie_tx_xmit_ndp(struct ieee80211_h + ack_skb = skb_copy(skb, GFP_ATOMIC); + ack_info = IEEE80211_SKB_CB(ack_skb); + pcie_tx_prepare_info(priv, 0, ack_info); +- ieee80211_tx_status(hw, ack_skb); ++ ieee80211_tx_status_skb(hw, ack_skb); + } + pcie_tx_encapsulate_frame(priv, skb, k_conf); } else { tid = qos & 0x7; @@ -267,6 +331,15 @@ pcie_priv->txbd_ring_size); for (num = 0; num < PCIE_MAX_TXRX_BD; num++) { +@@ -444,7 +444,7 @@ static void pcie_pfu_tx_done(struct mwl_ + } else + memmove(dma_data->data - hdrlen, &dma_data->wh, hdrlen); + skb_pull(done_skb, sizeof(*pfu_dma) - hdrlen); +- ieee80211_tx_status(priv->hw, done_skb); ++ ieee80211_tx_status_skb(priv->hw, done_skb); + } + } + next: @@ -694,7 +694,7 @@ void pcie_8997_tx_xmit(struct ieee80211_ index = SYSADPT_TX_WMM_QUEUES - index - 1; txpriority = index; @@ -276,6 +349,13 @@ !(xmitcontrol & EAGLE_TXD_XMITCTRL_USE_MC_RATE) && ieee80211_is_data_qos(wh->frame_control)) { tid = qos & 0xf; +@@ -875,4 +875,4 @@ void pcie_8997_tx_del_sta_amsdu_pkts(str + } + } + spin_unlock_bh(&sta_info->amsdu_lock); +-} +\ No newline at end of file ++} --- a/mac80211.c +++ b/mac80211.c @@ -368,15 +368,15 @@ static void mwl_mac80211_bss_info_change From f0a54f7e2f5639b5e199f7e3bf2a879e22fc3d07 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Thu, 11 Jul 2024 15:03:13 +0200 Subject: [PATCH 07/21] ucode: update to Git HEAD (2024-07-11) 73644a036f5a nl80211: move access to tb array out of uc_nl_convert_attr and below 6e3cf83a77a7 nl80211: add support for multi-attribute arrays 6ff24d5488a9 nl80211: update nl80211.h to latest wireless-next abc2aef28641 nl80211: add wiphy multi-radio support Signed-off-by: Felix Fietkau --- package/utils/ucode/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package/utils/ucode/Makefile b/package/utils/ucode/Makefile index 40dba3b46c..aa7a28483d 100644 --- a/package/utils/ucode/Makefile +++ b/package/utils/ucode/Makefile @@ -12,9 +12,9 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=https://github.com/jow-/ucode.git -PKG_SOURCE_DATE:=2024-06-18 -PKG_SOURCE_VERSION:=4dd98370ef558a62a9afd10ad6aa1cc658cf7339 -PKG_MIRROR_HASH:=c2cf650a3597457203040feebd6a9bff21be2dc55f80553cf998cff2c0d00244 +PKG_SOURCE_DATE:=2024-07-11 +PKG_SOURCE_VERSION:=1a8a0bcf725520820802ad433db22d8f64fbed6c +PKG_MIRROR_HASH:=0a859c97457a019adc73b028c19e2b334271b2c4de28337f1a18fd35438af3d3 PKG_MAINTAINER:=Jo-Philipp Wich PKG_LICENSE:=ISC From 7ca4190c186b6018f66421ce04daed5deeefdabb Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Fri, 12 Jul 2024 18:26:56 +0200 Subject: [PATCH 08/21] ath10k-ct: fix mac80211 backport patch to account for the bump to 6.7 Fixes build error Fixes: 1bfcc1ea8a78 ("mac80211: update to version 6.9.9") Signed-off-by: Felix Fietkau --- .../ath10k-ct/patches/010-mac80211_backport.patch | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/package/kernel/ath10k-ct/patches/010-mac80211_backport.patch b/package/kernel/ath10k-ct/patches/010-mac80211_backport.patch index b3f7d580fa..6c9cfdf730 100644 --- a/package/kernel/ath10k-ct/patches/010-mac80211_backport.patch +++ b/package/kernel/ath10k-ct/patches/010-mac80211_backport.patch @@ -1,6 +1,6 @@ ---- a/ath10k-6.4/mac.c -+++ b/ath10k-6.4/mac.c -@@ -2310,8 +2310,8 @@ static void ath10k_mac_vif_ap_csa_count_ +--- a/ath10k-6.7/mac.c ++++ b/ath10k-6.7/mac.c +@@ -2304,8 +2304,8 @@ static void ath10k_mac_vif_ap_csa_count_ if (!arvif->is_up) return; @@ -11,7 +11,7 @@ ret = ath10k_mac_setup_bcn_tmpl(arvif); if (ret) -@@ -2323,7 +2323,7 @@ static void ath10k_mac_vif_ap_csa_count_ +@@ -2317,7 +2317,7 @@ static void ath10k_mac_vif_ap_csa_count_ ath10k_warn(ar, "failed to update prb tmpl during csa: %d\n", ret); } else { @@ -20,9 +20,9 @@ } } ---- a/ath10k-6.4/wmi.c -+++ b/ath10k-6.4/wmi.c -@@ -4284,8 +4284,8 @@ void ath10k_wmi_event_host_swba(struct a +--- a/ath10k-6.7/wmi.c ++++ b/ath10k-6.7/wmi.c +@@ -4292,8 +4292,8 @@ void ath10k_wmi_event_host_swba(struct a * actual channel switch is done */ if (arvif->vif->bss_conf.csa_active && From 192afd31e3c58c1b855d46650e9954534f5f6851 Mon Sep 17 00:00:00 2001 From: Shiji Yang Date: Sat, 13 Jul 2024 11:47:21 +0800 Subject: [PATCH 09/21] mac80211: rt2x00: remove upstreamed patch This BBP register fix patch has already been upstreamed. Ref: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.9.9&id=50da74e1e8b682853d1e07fc8bbe3a0774ae5e09 Fixes: 1bfcc1ea8a78 ("mac80211: update to version 6.9.9") Signed-off-by: Shiji Yang --- ...ect-wrong-BBP-register-in-RxDCOC-cal.patch | 26 ------------------- 1 file changed, 26 deletions(-) delete mode 100644 package/kernel/mac80211/patches/rt2x00/101-wifi-rt2x00-correct-wrong-BBP-register-in-RxDCOC-cal.patch diff --git a/package/kernel/mac80211/patches/rt2x00/101-wifi-rt2x00-correct-wrong-BBP-register-in-RxDCOC-cal.patch b/package/kernel/mac80211/patches/rt2x00/101-wifi-rt2x00-correct-wrong-BBP-register-in-RxDCOC-cal.patch deleted file mode 100644 index 91ed123c01..0000000000 --- a/package/kernel/mac80211/patches/rt2x00/101-wifi-rt2x00-correct-wrong-BBP-register-in-RxDCOC-cal.patch +++ /dev/null @@ -1,26 +0,0 @@ -From: Shiji Yang -Date: Thu, 9 Nov 2023 12:01:18 +0800 -Subject: [PATCH] wifi: rt2x00: correct wrong BBP register in RxDCOC - calibration - -Refer to Mediatek vendor driver RxDCOC_Calibration() function, when -performing gainfreeze calibration, we should write register 140 -instead of 141. This fix can reduce the total calibration time from -6 seconds to 1 second. - -Signed-off-by: Shiji Yang ---- - drivers/net/wireless/ralink/rt2x00/rt2800lib.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - ---- a/drivers/net/wireless/ralink/rt2x00/rt2800lib.c -+++ b/drivers/net/wireless/ralink/rt2x00/rt2800lib.c -@@ -8692,7 +8692,7 @@ static void rt2800_rxdcoc_calibration(st - rfvalue |= 0x03; - rt2800_rfcsr_write_bank(rt2x00dev, 0, 2, rfvalue); - -- rt2800_bbp_write(rt2x00dev, 158, 141); -+ rt2800_bbp_write(rt2x00dev, 158, 140); - bbpreg = rt2800_bbp_read(rt2x00dev, 159); - bbpreg |= 0x10; - rt2800_bbp_write(rt2x00dev, 159, bbpreg); From 419ceead119b1c0d50012970f217d190f1441aaf Mon Sep 17 00:00:00 2001 From: Shiji Yang Date: Sat, 13 Jul 2024 16:50:59 +0800 Subject: [PATCH 10/21] rtl8812au-ct: fix build with mac80211 6.9.9 backport The change_beacon() API has been updated since the 6.7 kernel. Ref: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.9.9&id=66f85d57b7109baf8a7d5ee04049ac9412611d35 Fix build error: ../rtl8812au-ct-2022.10.26~9b2b203a/os_dep/linux/ioctl_cfg80211.c:5984:26: error: initialization of 'int (*)(struct wiphy *, struct net_device *, struct cfg80211_ap_update *)' from incompatible pointer type 'int (*)(struct wiphy *, struct net_device *, struct cfg80211_beacon_data *)' [-Werror=incompatible-pointer-types] 5984 | .change_beacon = cfg80211_rtw_change_beacon, | ^~~~~~~~~~~~~~~~~~~~~~~~~~ ../rtl8812au-ct-2022.10.26~9b2b203a/os_dep/linux/ioctl_cfg80211.c:5984:26: note: (near initialization for 'rtw_cfg80211_ops.change_beacon') Link: https://patchwork.ozlabs.org/project/openwrt/patch/TYCP286MB0895A26BA1C0517F2CBE71F0BCA72@TYCP286MB0895.JPNP286.PROD.OUTLOOK.COM/ Signed-off-by: Shiji Yang --- .../009-fix-build-on-linux-6.7-kernel.patch | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 package/kernel/rtl8812au-ct/patches/009-fix-build-on-linux-6.7-kernel.patch diff --git a/package/kernel/rtl8812au-ct/patches/009-fix-build-on-linux-6.7-kernel.patch b/package/kernel/rtl8812au-ct/patches/009-fix-build-on-linux-6.7-kernel.patch new file mode 100644 index 0000000000..8a5c15427c --- /dev/null +++ b/package/kernel/rtl8812au-ct/patches/009-fix-build-on-linux-6.7-kernel.patch @@ -0,0 +1,29 @@ +--- a/os_dep/linux/ioctl_cfg80211.c ++++ b/os_dep/linux/ioctl_cfg80211.c +@@ -4020,6 +4020,18 @@ static int cfg80211_rtw_start_ap(struct + return ret; + } + ++#if (LINUX_VERSION_CODE >= KERNEL_VERSION(6,7,0))|| defined(BUILD_OPENWRT) ++static int cfg80211_rtw_change_beacon(struct wiphy *wiphy, struct net_device *ndev, ++ struct cfg80211_ap_update *info) ++{ ++ int ret = 0; ++ _adapter *adapter = (_adapter *)rtw_netdev_priv(ndev); ++ ++ DBG_871X(FUNC_NDEV_FMT"\n", FUNC_NDEV_ARG(ndev)); ++ ++ ret = rtw_add_beacon(adapter, info->beacon.head, info->beacon.head_len, ++ info->beacon.tail, info->beacon.tail_len); ++#else + static int cfg80211_rtw_change_beacon(struct wiphy *wiphy, struct net_device *ndev, + struct cfg80211_beacon_data *info) + { +@@ -4029,6 +4041,7 @@ static int cfg80211_rtw_change_beacon(st + DBG_871X(FUNC_NDEV_FMT"\n", FUNC_NDEV_ARG(ndev)); + + ret = rtw_add_beacon(adapter, info->head, info->head_len, info->tail, info->tail_len); ++#endif + + return ret; + } From 325e53f9e1797f26ae3fa88d0ffd0d190043c5d1 Mon Sep 17 00:00:00 2001 From: Tomasz Maciej Nowak Date: Thu, 11 Jul 2024 21:38:22 +0200 Subject: [PATCH 11/21] tegra: promote kernel 6.6 as default It has been stable so far. As result of this change drop 5.15 files. Link: https://patchwork.ozlabs.org/project/openwrt/patch/20240711194120.11563-1-tmn505@terefe.re/ Signed-off-by: Tomasz Maciej Nowak --- target/linux/tegra/Makefile | 3 +- target/linux/tegra/config-5.15 | 506 ------------------ target/linux/tegra/image/Makefile | 4 - ...interrupts-due-to-tegra2-silicon-bug.patch | 77 --- ...enable-front-panel-leds-in-TrimSlice.patch | 46 -- 5 files changed, 1 insertion(+), 635 deletions(-) delete mode 100644 target/linux/tegra/config-5.15 delete mode 100644 target/linux/tegra/patches-5.15/100-serial8250-on-tegra-hsuart-recover-from-spurious-interrupts-due-to-tegra2-silicon-bug.patch delete mode 100644 target/linux/tegra/patches-5.15/101-ARM-dtc-tegra-enable-front-panel-leds-in-TrimSlice.patch diff --git a/target/linux/tegra/Makefile b/target/linux/tegra/Makefile index 3513e2751e..b917ea909d 100644 --- a/target/linux/tegra/Makefile +++ b/target/linux/tegra/Makefile @@ -12,8 +12,7 @@ CPU_TYPE := cortex-a9 CPU_SUBTYPE := vfpv3-d16 SUBTARGETS := generic -KERNEL_PATCHVER := 5.15 -KERNEL_TESTING_PATCHVER := 6.6 +KERNEL_PATCHVER := 6.6 include $(INCLUDE_DIR)/target.mk diff --git a/target/linux/tegra/config-5.15 b/target/linux/tegra/config-5.15 deleted file mode 100644 index c143c3f5a9..0000000000 --- a/target/linux/tegra/config-5.15 +++ /dev/null @@ -1,506 +0,0 @@ -CONFIG_AC97_BUS=y -# CONFIG_AHCI_TEGRA is not set -CONFIG_ALIGNMENT_TRAP=y -CONFIG_ARCH_32BIT_OFF_T=y -CONFIG_ARCH_HIBERNATION_POSSIBLE=y -CONFIG_ARCH_KEEP_MEMBLOCK=y -CONFIG_ARCH_MIGHT_HAVE_PC_PARPORT=y -CONFIG_ARCH_MULTIPLATFORM=y -CONFIG_ARCH_MULTI_V6_V7=y -CONFIG_ARCH_MULTI_V7=y -CONFIG_ARCH_NEEDS_CPU_IDLE_COUPLED=y -CONFIG_ARCH_NR_GPIO=1024 -CONFIG_ARCH_OPTIONAL_KERNEL_RWX=y -CONFIG_ARCH_OPTIONAL_KERNEL_RWX_DEFAULT=y -CONFIG_ARCH_SELECT_MEMORY_MODEL=y -CONFIG_ARCH_SPARSEMEM_ENABLE=y -CONFIG_ARCH_SUSPEND_POSSIBLE=y -CONFIG_ARCH_TEGRA=y -# CONFIG_ARCH_TEGRA_114_SOC is not set -# CONFIG_ARCH_TEGRA_124_SOC is not set -CONFIG_ARCH_TEGRA_2x_SOC=y -# CONFIG_ARCH_TEGRA_3x_SOC is not set -CONFIG_ARM=y -CONFIG_ARM_AMBA=y -CONFIG_ARM_CPU_SUSPEND=y -CONFIG_ARM_CRYPTO=y -CONFIG_ARM_ERRATA_720789=y -CONFIG_ARM_ERRATA_754327=y -CONFIG_ARM_ERRATA_764369=y -CONFIG_ARM_GIC=y -CONFIG_ARM_HAS_SG_CHAIN=y -CONFIG_ARM_HEAVY_MB=y -CONFIG_ARM_L1_CACHE_SHIFT=6 -CONFIG_ARM_L1_CACHE_SHIFT_6=y -CONFIG_ARM_PATCH_IDIV=y -CONFIG_ARM_PATCH_PHYS_VIRT=y -# CONFIG_ARM_PL172_MPMC is not set -# CONFIG_ARM_SMMU is not set -# CONFIG_ARM_TEGRA124_CPUFREQ is not set -CONFIG_ARM_TEGRA20_CPUFREQ=y -CONFIG_ARM_TEGRA_CPUIDLE=y -CONFIG_ARM_THUMB=y -CONFIG_ARM_THUMBEE=y -CONFIG_ARM_UNWIND=y -CONFIG_ARM_VIRT_EXT=y -CONFIG_ASN1=y -CONFIG_ATA=y -CONFIG_ATAGS=y -CONFIG_AUTO_ZRELADDR=y -CONFIG_BINFMT_FLAT_ARGVP_ENVP_ON_STACK=y -CONFIG_BLK_DEV_BSG=y -CONFIG_BLK_DEV_BSG_COMMON=y -CONFIG_BLK_DEV_LOOP=y -CONFIG_BLK_MQ_PCI=y -CONFIG_BLK_PM=y -CONFIG_BOUNCE=y -CONFIG_CACHE_L2X0=y -CONFIG_CLKSRC_MMIO=y -CONFIG_CLONE_BACKWARDS=y -CONFIG_CLZ_TAB=y -CONFIG_CMA=y -CONFIG_CMA_ALIGNMENT=8 -CONFIG_CMA_AREAS=7 -# CONFIG_CMA_DEBUG is not set -# CONFIG_CMA_DEBUGFS is not set -CONFIG_CMA_SIZE_MBYTES=16 -# CONFIG_CMA_SIZE_SEL_MAX is not set -CONFIG_CMA_SIZE_SEL_MBYTES=y -# CONFIG_CMA_SIZE_SEL_MIN is not set -# CONFIG_CMA_SIZE_SEL_PERCENTAGE is not set -# CONFIG_CMA_SYSFS is not set -CONFIG_COMMON_CLK=y -CONFIG_COMPAT_32BIT_TIME=y -CONFIG_CONTIG_ALLOC=y -CONFIG_CPUFREQ_DT=y -CONFIG_CPUFREQ_DT_PLATDEV=y -CONFIG_CPU_32v6K=y -CONFIG_CPU_32v7=y -CONFIG_CPU_ABRT_EV7=y -CONFIG_CPU_CACHE_V7=y -CONFIG_CPU_CACHE_VIPT=y -CONFIG_CPU_COPY_V6=y -CONFIG_CPU_CP15=y -CONFIG_CPU_CP15_MMU=y -CONFIG_CPU_FREQ=y -CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND=y -# CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set -CONFIG_CPU_FREQ_GOV_ATTR_SET=y -CONFIG_CPU_FREQ_GOV_COMMON=y -CONFIG_CPU_FREQ_GOV_CONSERVATIVE=y -CONFIG_CPU_FREQ_GOV_ONDEMAND=y -CONFIG_CPU_FREQ_GOV_PERFORMANCE=y -CONFIG_CPU_FREQ_GOV_POWERSAVE=y -CONFIG_CPU_FREQ_GOV_SCHEDUTIL=y -CONFIG_CPU_FREQ_GOV_USERSPACE=y -# CONFIG_CPU_FREQ_STAT is not set -CONFIG_CPU_HAS_ASID=y -CONFIG_CPU_IDLE=y -CONFIG_CPU_IDLE_GOV_LADDER=y -CONFIG_CPU_PABRT_V7=y -CONFIG_CPU_PM=y -CONFIG_CPU_RMAP=y -CONFIG_CPU_SPECTRE=y -CONFIG_CPU_THUMB_CAPABLE=y -CONFIG_CPU_TLB_V7=y -CONFIG_CPU_V7=y -CONFIG_CRC16=y -# CONFIG_CRC32_SARWATE is not set -CONFIG_CRC32_SLICEBY8=y -CONFIG_CROSS_MEMORY_ATTACH=y -CONFIG_CRYPTO_AES_ARM=y -CONFIG_CRYPTO_CRC32=y -CONFIG_CRYPTO_CRC32C=y -CONFIG_CRYPTO_CRYPTD=y -CONFIG_CRYPTO_DEFLATE=y -CONFIG_CRYPTO_DRBG=y -CONFIG_CRYPTO_DRBG_HMAC=y -CONFIG_CRYPTO_DRBG_MENU=y -CONFIG_CRYPTO_ECHAINIV=y -CONFIG_CRYPTO_HMAC=y -CONFIG_CRYPTO_JITTERENTROPY=y -CONFIG_CRYPTO_LIB_BLAKE2S_GENERIC=y -CONFIG_CRYPTO_LIB_SHA256=y -CONFIG_CRYPTO_LZ4=y -CONFIG_CRYPTO_LZ4HC=y -CONFIG_CRYPTO_LZO=y -CONFIG_CRYPTO_RNG=y -CONFIG_CRYPTO_RNG2=y -CONFIG_CRYPTO_RNG_DEFAULT=y -CONFIG_CRYPTO_RSA=y -CONFIG_CRYPTO_SEQIV=y -CONFIG_CRYPTO_SHA1=y -CONFIG_CRYPTO_SHA1_ARM=y -CONFIG_CRYPTO_SHA256=y -CONFIG_CRYPTO_SHA256_ARM=y -CONFIG_CRYPTO_SHA512=y -CONFIG_CRYPTO_SHA512_ARM=y -CONFIG_CRYPTO_TWOFISH=y -CONFIG_CRYPTO_TWOFISH_COMMON=y -CONFIG_DCACHE_WORD_ACCESS=y -CONFIG_DEBUG_ALIGN_RODATA=y -CONFIG_DEBUG_LL_INCLUDE="mach/debug-macro.S" -# CONFIG_DEVFREQ_GOV_PASSIVE is not set -# CONFIG_DEVFREQ_GOV_PERFORMANCE is not set -# CONFIG_DEVFREQ_GOV_POWERSAVE is not set -CONFIG_DEVFREQ_GOV_SIMPLE_ONDEMAND=y -# CONFIG_DEVFREQ_GOV_USERSPACE is not set -CONFIG_DEVFREQ_THERMAL=y -# CONFIG_DEVPORT is not set -CONFIG_DMADEVICES=y -CONFIG_DMA_CMA=y -CONFIG_DMA_ENGINE=y -CONFIG_DMA_OF=y -CONFIG_DMA_OPS=y -CONFIG_DMA_REMAP=y -CONFIG_DMA_SHARED_BUFFER=y -CONFIG_DNOTIFY=y -CONFIG_DRM=y -CONFIG_DRM_BRIDGE=y -CONFIG_DRM_DP_AUX_BUS=y -CONFIG_DRM_FBDEV_EMULATION=y -CONFIG_DRM_FBDEV_OVERALLOC=100 -CONFIG_DRM_KMS_HELPER=y -CONFIG_DRM_MIPI_DSI=y -CONFIG_DRM_PANEL=y -CONFIG_DRM_PANEL_BRIDGE=y -CONFIG_DRM_PANEL_ORIENTATION_QUIRKS=y -CONFIG_DRM_TEGRA=y -# CONFIG_DRM_TEGRA_DEBUG is not set -# CONFIG_DRM_TEGRA_STAGING is not set -CONFIG_DTC=y -CONFIG_EDAC_ATOMIC_SCRUB=y -CONFIG_EDAC_SUPPORT=y -CONFIG_EXT4_FS=y -CONFIG_EXTCON=y -CONFIG_F2FS_FS=y -CONFIG_FB=y -CONFIG_FB_CFB_COPYAREA=y -CONFIG_FB_CFB_FILLRECT=y -CONFIG_FB_CFB_IMAGEBLIT=y -CONFIG_FB_CMDLINE=y -CONFIG_FB_DEFERRED_IO=y -CONFIG_FB_SYS_COPYAREA=y -CONFIG_FB_SYS_FILLRECT=y -CONFIG_FB_SYS_FOPS=y -CONFIG_FB_SYS_IMAGEBLIT=y -CONFIG_FIX_EARLYCON_MEM=y -CONFIG_FS_IOMAP=y -CONFIG_FS_MBCACHE=y -CONFIG_FUNCTION_ALIGNMENT=0 -CONFIG_FW_LOADER_PAGED_BUF=y -CONFIG_GENERIC_ALLOCATOR=y -CONFIG_GENERIC_ARCH_TOPOLOGY=y -CONFIG_GENERIC_BUG=y -CONFIG_GENERIC_CLOCKEVENTS=y -CONFIG_GENERIC_CLOCKEVENTS_BROADCAST=y -CONFIG_GENERIC_CPU_AUTOPROBE=y -CONFIG_GENERIC_CPU_VULNERABILITIES=y -CONFIG_GENERIC_EARLY_IOREMAP=y -CONFIG_GENERIC_GETTIMEOFDAY=y -CONFIG_GENERIC_IDLE_POLL_SETUP=y -CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK=y -CONFIG_GENERIC_IRQ_MIGRATION=y -CONFIG_GENERIC_IRQ_MULTI_HANDLER=y -CONFIG_GENERIC_IRQ_SHOW=y -CONFIG_GENERIC_IRQ_SHOW_LEVEL=y -CONFIG_GENERIC_LIB_DEVMEM_IS_ALLOWED=y -CONFIG_GENERIC_MSI_IRQ=y -CONFIG_GENERIC_MSI_IRQ_DOMAIN=y -CONFIG_GENERIC_PCI_IOMAP=y -CONFIG_GENERIC_PHY=y -CONFIG_GENERIC_PINCONF=y -CONFIG_GENERIC_PINCTRL_GROUPS=y -CONFIG_GENERIC_PINMUX_FUNCTIONS=y -CONFIG_GENERIC_SCHED_CLOCK=y -CONFIG_GENERIC_SMP_IDLE_THREAD=y -CONFIG_GENERIC_STRNCPY_FROM_USER=y -CONFIG_GENERIC_STRNLEN_USER=y -CONFIG_GENERIC_TIME_VSYSCALL=y -CONFIG_GENERIC_VDSO_32=y -CONFIG_GLOB=y -CONFIG_GPIOLIB_IRQCHIP=y -CONFIG_GPIO_CDEV=y -CONFIG_GPIO_TEGRA=y -CONFIG_HANDLE_DOMAIN_IRQ=y -CONFIG_HARDEN_BRANCH_PREDICTOR=y -CONFIG_HARDIRQS_SW_RESEND=y -CONFIG_HAS_DMA=y -CONFIG_HAS_IOMEM=y -CONFIG_HAS_IOPORT_MAP=y -CONFIG_HAVE_SMP=y -CONFIG_HDMI=y -CONFIG_HID=y -CONFIG_HIDRAW=y -CONFIG_HID_GENERIC=y -CONFIG_HIGHMEM=y -CONFIG_HIGHPTE=y -CONFIG_HOTPLUG_CPU=y -CONFIG_HWMON=y -CONFIG_HZ_FIXED=0 -CONFIG_HZ_PERIODIC=y -CONFIG_I2C=y -CONFIG_I2C_ALGOBIT=y -CONFIG_I2C_BOARDINFO=y -CONFIG_I2C_COMPAT=y -CONFIG_I2C_TEGRA=y -CONFIG_INITRAMFS_SOURCE="" -CONFIG_INPUT=y -CONFIG_INPUT_KEYBOARD=y -CONFIG_INTERCONNECT=y -CONFIG_IOMMU_API=y -# CONFIG_IOMMU_DEBUGFS is not set -CONFIG_IOMMU_DEFAULT_DMA_STRICT=y -CONFIG_IOMMU_IOVA=y -# CONFIG_IOMMU_IO_PGTABLE_ARMV7S is not set -# CONFIG_IOMMU_IO_PGTABLE_LPAE is not set -CONFIG_IOMMU_SUPPORT=y -CONFIG_IRQCHIP=y -CONFIG_IRQ_DOMAIN=y -CONFIG_IRQ_DOMAIN_HIERARCHY=y -CONFIG_IRQ_FORCED_THREADING=y -CONFIG_IRQ_WORK=y -CONFIG_JBD2=y -CONFIG_KCMP=y -CONFIG_KEYBOARD_ATKBD=y -CONFIG_KMAP_LOCAL=y -CONFIG_KMAP_LOCAL_NON_LINEAR_PTE_ARRAY=y -CONFIG_LIBFDT=y -CONFIG_LOCK_DEBUGGING_SUPPORT=y -CONFIG_LOCK_SPIN_ON_OWNER=y -CONFIG_LZ4HC_COMPRESS=y -CONFIG_LZ4_COMPRESS=y -CONFIG_LZ4_DECOMPRESS=y -CONFIG_LZO_COMPRESS=y -CONFIG_LZO_DECOMPRESS=y -CONFIG_MEMFD_CREATE=y -CONFIG_MEMORY=y -CONFIG_MEMORY_ISOLATION=y -# CONFIG_MFD_ACER_A500_EC is not set -# CONFIG_MFD_NVEC is not set -CONFIG_MIGHT_HAVE_CACHE_L2X0=y -CONFIG_MIGRATION=y -CONFIG_MMC=y -CONFIG_MMC_BLOCK=y -CONFIG_MMC_CQHCI=y -CONFIG_MMC_SDHCI=y -CONFIG_MMC_SDHCI_IO_ACCESSORS=y -# CONFIG_MMC_SDHCI_PCI is not set -CONFIG_MMC_SDHCI_PLTFM=y -CONFIG_MMC_SDHCI_TEGRA=y -CONFIG_MODULES_USE_ELF_REL=y -CONFIG_MPILIB=y -CONFIG_MTD_SPI_NOR=y -CONFIG_MTD_SPI_NOR_USE_4K_SECTORS=y -CONFIG_MUTEX_SPIN_ON_OWNER=y -CONFIG_NEED_DMA_MAP_STATE=y -# CONFIG_NEON is not set -CONFIG_NET_FLOW_LIMIT=y -CONFIG_NLS=y -CONFIG_NR_CPUS=4 -CONFIG_NVMEM=y -CONFIG_NVMEM_LAYOUTS=y -CONFIG_OF=y -CONFIG_OF_ADDRESS=y -CONFIG_OF_EARLY_FLATTREE=y -CONFIG_OF_FLATTREE=y -CONFIG_OF_GPIO=y -CONFIG_OF_IOMMU=y -CONFIG_OF_IRQ=y -CONFIG_OF_KOBJ=y -CONFIG_OLD_SIGACTION=y -CONFIG_OLD_SIGSUSPEND3=y -CONFIG_OUTER_CACHE=y -CONFIG_OUTER_CACHE_SYNC=y -CONFIG_PADATA=y -CONFIG_PAGE_OFFSET=0xC0000000 -CONFIG_PCI=y -CONFIG_PCIEAER=y -CONFIG_PCIEASPM=y -CONFIG_PCIEASPM_DEFAULT=y -# CONFIG_PCIEASPM_PERFORMANCE is not set -# CONFIG_PCIEASPM_POWERSAVE is not set -# CONFIG_PCIEASPM_POWER_SUPERSAVE is not set -CONFIG_PCIEPORTBUS=y -CONFIG_PCIE_PME=y -CONFIG_PCI_DOMAINS=y -CONFIG_PCI_DOMAINS_GENERIC=y -CONFIG_PCI_MSI=y -CONFIG_PCI_MSI_IRQ_DOMAIN=y -CONFIG_PCI_TEGRA=y -CONFIG_PERF_USE_VMALLOC=y -CONFIG_PGTABLE_LEVELS=2 -CONFIG_PHY_TEGRA_XUSB=y -CONFIG_PINCTRL=y -CONFIG_PINCTRL_TEGRA=y -CONFIG_PINCTRL_TEGRA20=y -CONFIG_PINCTRL_TEGRA_XUSB=y -CONFIG_PL310_ERRATA_727915=y -CONFIG_PL310_ERRATA_769419=y -CONFIG_PL353_SMC=y -CONFIG_PM=y -CONFIG_PM_CLK=y -CONFIG_PM_DEVFREQ=y -# CONFIG_PM_DEVFREQ_EVENT is not set -CONFIG_PM_GENERIC_DOMAINS=y -CONFIG_PM_GENERIC_DOMAINS_OF=y -CONFIG_PM_OPP=y -CONFIG_POWER_RESET=y -CONFIG_POWER_RESET_GPIO=y -CONFIG_POWER_SUPPLY=y -CONFIG_PROC_PAGE_MONITOR=y -CONFIG_PTP_1588_CLOCK_OPTIONAL=y -CONFIG_PWM=y -CONFIG_PWM_SYSFS=y -CONFIG_PWM_TEGRA=y -CONFIG_RAS=y -CONFIG_RATIONAL=y -CONFIG_REGMAP=y -CONFIG_REGMAP_I2C=y -CONFIG_REGMAP_MMIO=y -CONFIG_REGMAP_SPI=y -CONFIG_REGULATOR=y -CONFIG_REGULATOR_FIXED_VOLTAGE=y -CONFIG_REGULATOR_GPIO=y -CONFIG_RESET_CONTROLLER=y -CONFIG_RFS_ACCEL=y -CONFIG_RPS=y -CONFIG_RTC_CLASS=y -# CONFIG_RTC_DRV_CMOS is not set -CONFIG_RTC_DRV_TEGRA=y -CONFIG_RTC_I2C_AND_SPI=y -CONFIG_RTC_NVMEM=y -CONFIG_RWSEM_SPIN_ON_OWNER=y -CONFIG_SCSI=y -CONFIG_SCSI_COMMON=y -# CONFIG_SCSI_LOWLEVEL is not set -# CONFIG_SCSI_PROC_FS is not set -CONFIG_SERIAL_8250_FSL=y -CONFIG_SERIAL_8250_TEGRA=y -CONFIG_SERIAL_MCTRL_GPIO=y -CONFIG_SERIAL_OF_PLATFORM=y -CONFIG_SERIAL_TEGRA=y -CONFIG_SERIO=y -CONFIG_SERIO_LIBPS2=y -CONFIG_SGL_ALLOC=y -CONFIG_SG_POOL=y -CONFIG_SMP=y -CONFIG_SMP_ON_UP=y -CONFIG_SND=y -# CONFIG_SND_COMPRESS_OFFLOAD is not set -CONFIG_SND_DMAENGINE_PCM=y -# CONFIG_SND_HDA_TEGRA is not set -CONFIG_SND_JACK=y -CONFIG_SND_JACK_INPUT_DEV=y -# CONFIG_SND_PCI is not set -CONFIG_SND_PCM=y -# CONFIG_SND_PROC_FS is not set -CONFIG_SND_SIMPLE_CARD=y -CONFIG_SND_SIMPLE_CARD_UTILS=y -CONFIG_SND_SOC=y -CONFIG_SND_SOC_AC97_BUS=y -CONFIG_SND_SOC_GENERIC_DMAENGINE_PCM=y -CONFIG_SND_SOC_I2C_AND_SPI=y -CONFIG_SND_SOC_TEGRA=y -# CONFIG_SND_SOC_TEGRA186_DSPK is not set -CONFIG_SND_SOC_TEGRA20_AC97=y -CONFIG_SND_SOC_TEGRA20_DAS=y -CONFIG_SND_SOC_TEGRA20_I2S=y -CONFIG_SND_SOC_TEGRA20_SPDIF=y -# CONFIG_SND_SOC_TEGRA210_ADMAIF is not set -# CONFIG_SND_SOC_TEGRA210_AHUB is not set -# CONFIG_SND_SOC_TEGRA210_DMIC is not set -# CONFIG_SND_SOC_TEGRA210_I2S is not set -# CONFIG_SND_SOC_TEGRA30_AHUB is not set -# CONFIG_SND_SOC_TEGRA30_I2S is not set -# CONFIG_SND_SOC_TEGRA_ALC5632 is not set -CONFIG_SND_SOC_TEGRA_MACHINE_DRV=y -# CONFIG_SND_SOC_TEGRA_MAX98090 is not set -# CONFIG_SND_SOC_TEGRA_RT5640 is not set -# CONFIG_SND_SOC_TEGRA_RT5677 is not set -# CONFIG_SND_SOC_TEGRA_SGTL5000 is not set -CONFIG_SND_SOC_TEGRA_TRIMSLICE=y -# CONFIG_SND_SOC_TEGRA_WM8753 is not set -# CONFIG_SND_SOC_TEGRA_WM8903 is not set -# CONFIG_SND_SOC_TEGRA_WM9712 is not set -CONFIG_SND_SOC_TLV320AIC23=y -CONFIG_SND_SOC_TLV320AIC23_I2C=y -# CONFIG_SND_USB is not set -CONFIG_SOCK_RX_QUEUE_MAPPING=y -CONFIG_SOC_BUS=y -CONFIG_SOC_TEGRA20_VOLTAGE_COUPLER=y -CONFIG_SOC_TEGRA_FLOWCTRL=y -CONFIG_SOC_TEGRA_FUSE=y -CONFIG_SOC_TEGRA_PMC=y -CONFIG_SOUND=y -CONFIG_SOUND_OSS_CORE=y -CONFIG_SOUND_OSS_CORE_PRECLAIM=y -CONFIG_SPARSE_IRQ=y -CONFIG_SPI=y -CONFIG_SPI_MASTER=y -CONFIG_SPI_MEM=y -# CONFIG_SPI_TEGRA114 is not set -CONFIG_SPI_TEGRA20_SFLASH=y -CONFIG_SPI_TEGRA20_SLINK=y -# CONFIG_SPI_TEGRA210_QUAD is not set -CONFIG_SRCU=y -CONFIG_SWP_EMULATE=y -CONFIG_SYNC_FILE=y -CONFIG_SYS_SUPPORTS_APM_EMULATION=y -CONFIG_TEGRA20_APB_DMA=y -CONFIG_TEGRA20_EMC=y -CONFIG_TEGRA_AHB=y -CONFIG_TEGRA_GMI=y -CONFIG_TEGRA_HOST1X=y -CONFIG_TEGRA_HOST1X_FIREWALL=y -CONFIG_TEGRA_IOMMU_GART=y -# CONFIG_TEGRA_IOMMU_SMMU is not set -# CONFIG_TEGRA_IVC is not set -CONFIG_TEGRA_MC=y -# CONFIG_TEGRA_SOCTHERM is not set -CONFIG_TEGRA_TIMER=y -CONFIG_TEGRA_WATCHDOG=y -CONFIG_TICK_CPU_ACCOUNTING=y -CONFIG_TIMER_OF=y -CONFIG_TIMER_PROBE=y -CONFIG_TREE_RCU=y -CONFIG_TREE_SRCU=y -# CONFIG_UACCE is not set -# CONFIG_UCLAMP_TASK is not set -CONFIG_UNCOMPRESS_INCLUDE="debug/uncompress.h" -CONFIG_UNWINDER_ARM=y -CONFIG_USB=y -CONFIG_USB_CHIPIDEA=y -CONFIG_USB_CHIPIDEA_HOST=y -CONFIG_USB_CHIPIDEA_TEGRA=y -CONFIG_USB_CHIPIDEA_UDC=y -CONFIG_USB_COMMON=y -CONFIG_USB_CONN_GPIO=y -CONFIG_USB_EHCI_HCD=y -# CONFIG_USB_EHCI_HCD_PLATFORM is not set -CONFIG_USB_EHCI_TEGRA=y -CONFIG_USB_GADGET=y -CONFIG_USB_HID=y -CONFIG_USB_HIDDEV=y -CONFIG_USB_PHY=y -CONFIG_USB_ROLE_SWITCH=y -CONFIG_USB_SUPPORT=y -CONFIG_USB_TEGRA_PHY=y -# CONFIG_USB_TEGRA_XUDC is not set -CONFIG_USB_ULPI=y -CONFIG_USB_ULPI_BUS=y -CONFIG_USB_ULPI_VIEWPORT=y -# CONFIG_USB_XHCI_TEGRA is not set -CONFIG_USE_OF=y -CONFIG_VFP=y -CONFIG_VFPv3=y -CONFIG_WATCHDOG_CORE=y -# CONFIG_WQ_POWER_EFFICIENT_DEFAULT is not set -CONFIG_XPS=y -CONFIG_XZ_DEC_ARM=y -CONFIG_XZ_DEC_ARMTHUMB=y -CONFIG_XZ_DEC_BCJ=y -CONFIG_ZBOOT_ROM_BSS=0 -CONFIG_ZBOOT_ROM_TEXT=0 -CONFIG_ZLIB_DEFLATE=y -CONFIG_ZLIB_INFLATE=y diff --git a/target/linux/tegra/image/Makefile b/target/linux/tegra/image/Makefile index 7103b6d36e..96b095e649 100644 --- a/target/linux/tegra/image/Makefile +++ b/target/linux/tegra/image/Makefile @@ -32,11 +32,7 @@ DEVICE_VARS += BOOT_SCRIPT UBOOT define Device/Default BOOT_SCRIPT := generic-bootscript -ifeq ($(KERNEL),6.6) DEVICE_DTS_DIR := $$(DTS_DIR)/nvidia -else - DEVICE_DTS_DIR := $$(DTS_DIR) -endif IMAGES := sdcard.img.gz IMAGE/sdcard.img.gz := append-rootfs | pad-extra 128k | tegra-sdcard | gzip | append-metadata KERNEL_NAME := zImage diff --git a/target/linux/tegra/patches-5.15/100-serial8250-on-tegra-hsuart-recover-from-spurious-interrupts-due-to-tegra2-silicon-bug.patch b/target/linux/tegra/patches-5.15/100-serial8250-on-tegra-hsuart-recover-from-spurious-interrupts-due-to-tegra2-silicon-bug.patch deleted file mode 100644 index 8f01f73eb2..0000000000 --- a/target/linux/tegra/patches-5.15/100-serial8250-on-tegra-hsuart-recover-from-spurious-interrupts-due-to-tegra2-silicon-bug.patch +++ /dev/null @@ -1,77 +0,0 @@ -From patchwork Fri Jul 13 11:32:42 2018 -Content-Type: text/plain; charset="utf-8" -MIME-Version: 1.0 -Content-Transfer-Encoding: 7bit -Subject: serial8250 on tegra hsuart: recover from spurious interrupts due to - tegra2 silicon bug -X-Patchwork-Submitter: "David R. Piegdon" -X-Patchwork-Id: 943440 -Message-Id: <4676ea34-69ce-5422-1ded-94218b89f7d9@p23q.org> -To: linux-tegra@vger.kernel.org -Date: Fri, 13 Jul 2018 11:32:42 +0000 -From: "David R. Piegdon" -List-Id: - -Hi, -a while back I sent a few mails regarding spurious interrupts in the -UARTA (hsuart) block of the Tegra2 SoC, when using the 8250 driver for -it instead of the hsuart driver. After going down a pretty deep -debugging/testing hole, I think I found a patch that fixes the issue. So -far testing in a reboot-cycle suggests that the error frequency dropped -from >3% of all reboots to at least <0.05% of all reboots. Tests -continue to run over the weekend. - -The patch below already is a second iteration; the first did not reset -the MCR or contain the lines below '// clear interrupts'. This resulted -in no more spurious interrupts, but in a few % of spurious interrupts -that were recovered the UART block did not receive any characters any -more. So further resetting was required to fully reacquire operational -state of the UART block. - -I'd love any comments/suggestions on this! - -Cheers, - -David - ---- a/drivers/tty/serial/8250/8250_core.c -+++ b/drivers/tty/serial/8250/8250_core.c -@@ -134,6 +134,38 @@ static irqreturn_t serial8250_interrupt( - - if (l == i->head && pass_counter++ > PASS_LIMIT) - break; -+ -+#ifdef CONFIG_ARCH_TEGRA_2x_SOC -+ if (!handled && (port->type == PORT_TEGRA)) { -+ /* -+ * Fix Tegra 2 CPU silicon bug where sometimes -+ * "TX holding register empty" interrupts result in a -+ * bad (metastable?) state in Tegras HSUART IP core. -+ * Only way to recover seems to be to reset all -+ * interrupts as well as the TX queue and the MCR. -+ * But we don't want to loose any outgoing characters, -+ * so only do it if the RX and TX queues are empty. -+ */ -+ unsigned char lsr = port->serial_in(port, UART_LSR); -+ const unsigned char fifo_empty_mask = -+ (UART_LSR_TEMT | UART_LSR_THRE); -+ if (((lsr & (UART_LSR_DR | fifo_empty_mask)) == -+ fifo_empty_mask)) { -+ port->serial_out(port, UART_IER, 0); -+ port->serial_out(port, UART_MCR, 0); -+ serial8250_clear_and_reinit_fifos(up); -+ port->serial_out(port, UART_MCR, up->mcr); -+ port->serial_out(port, UART_IER, up->ier); -+ // clear interrupts -+ serial_port_in(port, UART_LSR); -+ serial_port_in(port, UART_RX); -+ serial_port_in(port, UART_IIR); -+ serial_port_in(port, UART_MSR); -+ up->lsr_saved_flags = 0; -+ up->msr_saved_flags = 0; -+ } -+ } -+#endif - } while (l != end); - - spin_unlock(&i->lock); diff --git a/target/linux/tegra/patches-5.15/101-ARM-dtc-tegra-enable-front-panel-leds-in-TrimSlice.patch b/target/linux/tegra/patches-5.15/101-ARM-dtc-tegra-enable-front-panel-leds-in-TrimSlice.patch deleted file mode 100644 index b1e210b212..0000000000 --- a/target/linux/tegra/patches-5.15/101-ARM-dtc-tegra-enable-front-panel-leds-in-TrimSlice.patch +++ /dev/null @@ -1,46 +0,0 @@ ---- a/arch/arm/boot/dts/tegra20-trimslice.dts -+++ b/arch/arm/boot/dts/tegra20-trimslice.dts -@@ -201,16 +201,17 @@ - conf_ata { - nvidia,pins = "ata", "atc", "atd", "ate", - "crtp", "dap2", "dap3", "dap4", "dta", -- "dtb", "dtc", "dtd", "dte", "gmb", -- "gme", "i2cp", "pta", "slxc", "slxd", -- "spdi", "spdo", "uda"; -+ "dtb", "dtc", "dtd", "gmb", "gme", -+ "i2cp", "pta", "slxc", "slxd", "spdi", -+ "spdo", "uda"; - nvidia,pull = ; - nvidia,tristate = ; - }; - conf_atb { - nvidia,pins = "atb", "cdev1", "cdev2", "dap1", -- "gma", "gmc", "gmd", "gpu", "gpu7", -- "gpv", "sdio1", "slxa", "slxk", "uac"; -+ "dte", "gma", "gmc", "gmd", "gpu", -+ "gpu7", "gpv", "sdio1", "slxa", "slxk", -+ "uac"; - nvidia,pull = ; - nvidia,tristate = ; - }; -@@ -396,6 +397,20 @@ - }; - }; - -+ gpio-leds { -+ compatible = "gpio-leds"; -+ -+ ds2 { -+ label = "trimslice:green:right"; -+ gpios = <&gpio TEGRA_GPIO(D, 2) GPIO_ACTIVE_LOW>; -+ }; -+ -+ ds3 { -+ label = "trimslice:green:left"; -+ gpios = <&gpio TEGRA_GPIO(BB, 5) GPIO_ACTIVE_LOW>; -+ }; -+ }; -+ - poweroff { - compatible = "gpio-poweroff"; - gpios = <&gpio TEGRA_GPIO(X, 7) GPIO_ACTIVE_LOW>; From 708b77f549e852d5156acde03cc76942da29494a Mon Sep 17 00:00:00 2001 From: Shiji Yang Date: Sat, 6 Jul 2024 18:27:19 +0800 Subject: [PATCH 12/21] ramips: fix image recipe for ASUS RT-N56U The OpenWrt image metadata includes checksum validation. Therefore, it must be generated at the end. Fixes: https://github.com/openwrt/openwrt/issues/9045 Fixes: https://github.com/openwrt/openwrt/issues/13674 Link: https://patchwork.ozlabs.org/project/openwrt/patch/TYCP286MB08952FAACDFA234C5E052131BCD82@TYCP286MB0895.JPNP286.PROD.OUTLOOK.COM/ Signed-off-by: Shiji Yang --- target/linux/ramips/image/rt3883.mk | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/target/linux/ramips/image/rt3883.mk b/target/linux/ramips/image/rt3883.mk index 0430099296..1728f84444 100644 --- a/target/linux/ramips/image/rt3883.mk +++ b/target/linux/ramips/image/rt3883.mk @@ -8,7 +8,8 @@ endef define Device/asus_rt-n56u SOC := rt3662 IMAGE_SIZE := 7872k - IMAGE/sysupgrade.bin += | mkrtn56uimg -s + IMAGE/sysupgrade.bin := $$(sysupgrade_bin) | check-size | \ + mkrtn56uimg -s | append-metadata DEVICE_VENDOR := ASUS DEVICE_MODEL := RT-N56U DEVICE_PACKAGES := kmod-usb-ohci kmod-usb2 From e4ce494529e70795822efb9822ec26c283442214 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=B0=A2=E8=87=B4=E9=82=A6=20=28XIE=20Zhibang=29?= Date: Mon, 17 Jun 2024 16:07:53 +0000 Subject: [PATCH 13/21] netfilter: kmod-nft-netdev: add egress support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The netdev egress hook was added in Linux kernel 5.16. Link: https://patchwork.ozlabs.org/project/openwrt/patch/tencent_EB1DF62723D08576A747D0DAE16FFB99B505@qq.com/ Signed-off-by: 谢致邦 (XIE Zhibang) --- package/kernel/linux/modules/netfilter.mk | 1 + 1 file changed, 1 insertion(+) diff --git a/package/kernel/linux/modules/netfilter.mk b/package/kernel/linux/modules/netfilter.mk index 8bf2be585f..3cf63982ba 100644 --- a/package/kernel/linux/modules/netfilter.mk +++ b/package/kernel/linux/modules/netfilter.mk @@ -1217,6 +1217,7 @@ define KernelPackage/nft-netdev DEPENDS:=+kmod-nft-core KCONFIG:= \ CONFIG_NETFILTER_INGRESS=y \ + CONFIG_NETFILTER_EGRESS=y \ CONFIG_NF_TABLES_NETDEV \ CONFIG_NF_DUP_NETDEV \ CONFIG_NFT_DUP_NETDEV \ From 7f44f8d8d63d73807c4765386208b36acea01881 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Sat, 13 Jul 2024 15:31:11 +0200 Subject: [PATCH 14/21] mt76: update to Git HEAD (2024-07-13) 564cd93961fc mt76: sync with upstream changes 3b47d9df427c wifi: mt76: mt7915: fix oops on non-dbdc mt7986 Signed-off-by: Felix Fietkau --- package/kernel/mt76/Makefile | 6 +- .../kernel/mt76/patches/100-api_changes.patch | 678 ------------------ 2 files changed, 3 insertions(+), 681 deletions(-) delete mode 100644 package/kernel/mt76/patches/100-api_changes.patch diff --git a/package/kernel/mt76/Makefile b/package/kernel/mt76/Makefile index c6cce9cf9c..f71070dbb9 100644 --- a/package/kernel/mt76/Makefile +++ b/package/kernel/mt76/Makefile @@ -8,9 +8,9 @@ PKG_LICENSE_FILES:= PKG_SOURCE_URL:=https://github.com/openwrt/mt76 PKG_SOURCE_PROTO:=git -PKG_SOURCE_DATE:=2024-05-17 -PKG_SOURCE_VERSION:=513c131c6309712a51502870b041f45b4bd6a6d4 -PKG_MIRROR_HASH:=3e5d8ee6b8b122cc4e32668fdde0552a9fa23819b7ebdc758ecb63b5f761683a +PKG_SOURCE_DATE:=2024-07-13 +PKG_SOURCE_VERSION:=3b47d9df427c4833605a172f2a8f0e0012b04c80 +PKG_MIRROR_HASH:=23c3aaa53fb2e088446eb18148a44d3edcd3a0eda1ee41cf5cbf56064ebbee58 PKG_MAINTAINER:=Felix Fietkau PKG_USE_NINJA:=0 diff --git a/package/kernel/mt76/patches/100-api_changes.patch b/package/kernel/mt76/patches/100-api_changes.patch deleted file mode 100644 index de81614ada..0000000000 --- a/package/kernel/mt76/patches/100-api_changes.patch +++ /dev/null @@ -1,678 +0,0 @@ ---- a/mac80211.c -+++ b/mac80211.c -@@ -1614,8 +1614,8 @@ EXPORT_SYMBOL_GPL(mt76_get_sar_power); - static void - __mt76_csa_finish(void *priv, u8 *mac, struct ieee80211_vif *vif) - { -- if (vif->bss_conf.csa_active && ieee80211_beacon_cntdwn_is_complete(vif)) -- ieee80211_csa_finish(vif); -+ if (vif->bss_conf.csa_active && ieee80211_beacon_cntdwn_is_complete(vif, 0)) -+ ieee80211_csa_finish(vif, 0); - } - - void mt76_csa_finish(struct mt76_dev *dev) -@@ -1639,7 +1639,7 @@ __mt76_csa_check(void *priv, u8 *mac, st - if (!vif->bss_conf.csa_active) - return; - -- dev->csa_complete |= ieee80211_beacon_cntdwn_is_complete(vif); -+ dev->csa_complete |= ieee80211_beacon_cntdwn_is_complete(vif, 0); - } - - void mt76_csa_check(struct mt76_dev *dev) ---- a/mt76.h -+++ b/mt76.h -@@ -1611,6 +1611,18 @@ s8 mt76_get_rate_power_limits(struct mt7 - struct mt76_power_limits *dest, - s8 target_power); - -+static inline bool mt76_queue_is_rx(struct mt76_dev *dev, struct mt76_queue *q) -+{ -+ int i; -+ -+ for (i = 0; i < ARRAY_SIZE(dev->q_rx); i++) { -+ if (q == &dev->q_rx[i]) -+ return true; -+ } -+ -+ return false; -+} -+ - static inline bool mt76_queue_is_wed_tx_free(struct mt76_queue *q) - { - return (q->flags & MT_QFLAG_WED) && ---- a/mt7603/main.c -+++ b/mt7603/main.c -@@ -701,6 +701,10 @@ static void mt7603_tx(struct ieee80211_h - } - - const struct ieee80211_ops mt7603_ops = { -+ .add_chanctx = ieee80211_emulate_add_chanctx, -+ .remove_chanctx = ieee80211_emulate_remove_chanctx, -+ .change_chanctx = ieee80211_emulate_change_chanctx, -+ .switch_vif_chanctx = ieee80211_emulate_switch_vif_chanctx, - .tx = mt7603_tx, - .start = mt7603_start, - .stop = mt7603_stop, -@@ -728,6 +732,7 @@ const struct ieee80211_ops mt7603_ops = - .set_sar_specs = mt7603_set_sar_specs, - }; - -+MODULE_DESCRIPTION("MediaTek MT7603E and MT76x8 wireless driver"); - MODULE_LICENSE("Dual BSD/GPL"); - - static int __init mt7603_init(void) ---- a/mt7615/Kconfig -+++ b/mt7615/Kconfig -@@ -11,7 +11,7 @@ config MT7615E - depends on MAC80211 - depends on PCI - help -- This adds support for MT7615-based wireless PCIe devices, -+ This adds support for MT7615-based PCIe wireless devices, - which support concurrent dual-band operation at both 5GHz - and 2.4GHz, IEEE 802.11ac 4x4:4SS 1733Mbps PHY rate, wave2 - MU-MIMO up to 4 users/group and 160MHz channels. ---- a/mt7615/main.c -+++ b/mt7615/main.c -@@ -1326,6 +1326,10 @@ static void mt7615_set_rekey_data(struct - #endif /* CONFIG_PM */ - - const struct ieee80211_ops mt7615_ops = { -+ .add_chanctx = ieee80211_emulate_add_chanctx, -+ .remove_chanctx = ieee80211_emulate_remove_chanctx, -+ .change_chanctx = ieee80211_emulate_change_chanctx, -+ .switch_vif_chanctx = ieee80211_emulate_switch_vif_chanctx, - .tx = mt7615_tx, - .start = mt7615_start, - .stop = mt7615_stop, -@@ -1375,4 +1379,5 @@ const struct ieee80211_ops mt7615_ops = - }; - EXPORT_SYMBOL_GPL(mt7615_ops); - -+MODULE_DESCRIPTION("MediaTek MT7615E and MT7663E wireless driver"); - MODULE_LICENSE("Dual BSD/GPL"); ---- a/mt7615/mcu.c -+++ b/mt7615/mcu.c -@@ -353,7 +353,7 @@ static void - mt7615_mcu_csa_finish(void *priv, u8 *mac, struct ieee80211_vif *vif) - { - if (vif->bss_conf.csa_active) -- ieee80211_csa_finish(vif); -+ ieee80211_csa_finish(vif, 0); - } - - static void ---- a/mt7615/mmio.c -+++ b/mt7615/mmio.c -@@ -270,4 +270,5 @@ static void __exit mt7615_exit(void) - - module_init(mt7615_init); - module_exit(mt7615_exit); -+MODULE_DESCRIPTION("MediaTek MT7615E MMIO helpers"); - MODULE_LICENSE("Dual BSD/GPL"); ---- a/mt7615/sdio.c -+++ b/mt7615/sdio.c -@@ -180,7 +180,6 @@ static void mt7663s_remove(struct sdio_f - mt76_free_device(&dev->mt76); - } - --#ifdef CONFIG_PM - static int mt7663s_suspend(struct device *dev) - { - struct sdio_func *func = dev_to_sdio_func(dev); -@@ -235,31 +234,24 @@ static int mt7663s_resume(struct device - return err; - } - --static const struct dev_pm_ops mt7663s_pm_ops = { -- .suspend = mt7663s_suspend, -- .resume = mt7663s_resume, --}; --#endif -- - MODULE_DEVICE_TABLE(sdio, mt7663s_table); - MODULE_FIRMWARE(MT7663_OFFLOAD_FIRMWARE_N9); - MODULE_FIRMWARE(MT7663_OFFLOAD_ROM_PATCH); - MODULE_FIRMWARE(MT7663_FIRMWARE_N9); - MODULE_FIRMWARE(MT7663_ROM_PATCH); - -+static DEFINE_SIMPLE_DEV_PM_OPS(mt7663s_pm_ops, mt7663s_suspend, mt7663s_resume); -+ - static struct sdio_driver mt7663s_driver = { - .name = KBUILD_MODNAME, - .probe = mt7663s_probe, - .remove = mt7663s_remove, - .id_table = mt7663s_table, --#ifdef CONFIG_PM -- .drv = { -- .pm = &mt7663s_pm_ops, -- } --#endif -+ .drv.pm = pm_sleep_ptr(&mt7663s_pm_ops), - }; - module_sdio_driver(mt7663s_driver); - - MODULE_AUTHOR("Sean Wang "); - MODULE_AUTHOR("Lorenzo Bianconi "); -+MODULE_DESCRIPTION("MediaTek MT7663S (SDIO) wireless driver"); - MODULE_LICENSE("Dual BSD/GPL"); ---- a/mt7615/usb.c -+++ b/mt7615/usb.c -@@ -281,4 +281,5 @@ module_usb_driver(mt7663u_driver); - - MODULE_AUTHOR("Sean Wang "); - MODULE_AUTHOR("Lorenzo Bianconi "); -+MODULE_DESCRIPTION("MediaTek MT7663U (USB) wireless driver"); - MODULE_LICENSE("Dual BSD/GPL"); ---- a/mt7615/usb_sdio.c -+++ b/mt7615/usb_sdio.c -@@ -349,4 +349,5 @@ EXPORT_SYMBOL_GPL(mt7663_usb_sdio_regist - - MODULE_AUTHOR("Lorenzo Bianconi "); - MODULE_AUTHOR("Sean Wang "); -+MODULE_DESCRIPTION("MediaTek MT7663 SDIO/USB helpers"); - MODULE_LICENSE("Dual BSD/GPL"); ---- a/mt76_connac_mcu.c -+++ b/mt76_connac_mcu.c -@@ -3171,4 +3171,5 @@ exit: - EXPORT_SYMBOL_GPL(mt76_connac2_mcu_fill_message); - - MODULE_AUTHOR("Lorenzo Bianconi "); -+MODULE_DESCRIPTION("MediaTek MT76x connac layer helpers"); - MODULE_LICENSE("Dual BSD/GPL"); ---- a/mt76_connac_mcu.h -+++ b/mt76_connac_mcu.h -@@ -128,7 +128,7 @@ struct mt76_connac2_mcu_rxd { - u8 rsv1[2]; - u8 s2d_index; - -- u8 tlv[0]; -+ u8 tlv[]; - }; - - struct mt76_connac2_patch_hdr { -@@ -1460,7 +1460,7 @@ struct mt76_connac_beacon_loss_event { - } __packed; - - struct mt76_connac_rssi_notify_event { -- s32 rssi[4]; -+ __le32 rssi[4]; - } __packed; - - struct mt76_connac_mcu_bss_event { ---- a/mt76x0/eeprom.c -+++ b/mt76x0/eeprom.c -@@ -342,4 +342,5 @@ int mt76x0_eeprom_init(struct mt76x02_de - return 0; - } - -+MODULE_DESCRIPTION("MediaTek MT76x EEPROM helpers"); - MODULE_LICENSE("Dual BSD/GPL"); ---- a/mt76x0/pci.c -+++ b/mt76x0/pci.c -@@ -59,6 +59,10 @@ mt76x0e_flush(struct ieee80211_hw *hw, s - } - - static const struct ieee80211_ops mt76x0e_ops = { -+ .add_chanctx = ieee80211_emulate_add_chanctx, -+ .remove_chanctx = ieee80211_emulate_remove_chanctx, -+ .change_chanctx = ieee80211_emulate_change_chanctx, -+ .switch_vif_chanctx = ieee80211_emulate_switch_vif_chanctx, - .tx = mt76x02_tx, - .start = mt76x0e_start, - .stop = mt76x0e_stop, -@@ -302,6 +306,7 @@ static const struct pci_device_id mt76x0 - MODULE_DEVICE_TABLE(pci, mt76x0e_device_table); - MODULE_FIRMWARE(MT7610E_FIRMWARE); - MODULE_FIRMWARE(MT7650E_FIRMWARE); -+MODULE_DESCRIPTION("MediaTek MT76x0E (PCIe) wireless driver"); - MODULE_LICENSE("Dual BSD/GPL"); - - static struct pci_driver mt76x0e_driver = { ---- a/mt76x0/usb.c -+++ b/mt76x0/usb.c -@@ -118,6 +118,10 @@ static int mt76x0u_start(struct ieee8021 - } - - static const struct ieee80211_ops mt76x0u_ops = { -+ .add_chanctx = ieee80211_emulate_add_chanctx, -+ .remove_chanctx = ieee80211_emulate_remove_chanctx, -+ .change_chanctx = ieee80211_emulate_change_chanctx, -+ .switch_vif_chanctx = ieee80211_emulate_switch_vif_chanctx, - .tx = mt76x02_tx, - .start = mt76x0u_start, - .stop = mt76x0u_stop, -@@ -336,6 +340,7 @@ err: - MODULE_DEVICE_TABLE(usb, mt76x0_device_table); - MODULE_FIRMWARE(MT7610E_FIRMWARE); - MODULE_FIRMWARE(MT7610U_FIRMWARE); -+MODULE_DESCRIPTION("MediaTek MT76x0U (USB) wireless driver"); - MODULE_LICENSE("GPL"); - - static struct usb_driver mt76x0_driver = { ---- a/mt76x02_usb_mcu.c -+++ b/mt76x02_usb_mcu.c -@@ -293,4 +293,5 @@ void mt76x02u_init_mcu(struct mt76_dev * - EXPORT_SYMBOL_GPL(mt76x02u_init_mcu); - - MODULE_AUTHOR("Lorenzo Bianconi "); -+MODULE_DESCRIPTION("MediaTek MT76x02 MCU helpers"); - MODULE_LICENSE("Dual BSD/GPL"); ---- a/mt76x02_util.c -+++ b/mt76x02_util.c -@@ -696,4 +696,5 @@ void mt76x02_config_mac_addr_list(struct - } - EXPORT_SYMBOL_GPL(mt76x02_config_mac_addr_list); - -+MODULE_DESCRIPTION("MediaTek MT76x02 helpers"); - MODULE_LICENSE("Dual BSD/GPL"); ---- a/mt76x2/eeprom.c -+++ b/mt76x2/eeprom.c -@@ -506,4 +506,5 @@ int mt76x2_eeprom_init(struct mt76x02_de - } - EXPORT_SYMBOL_GPL(mt76x2_eeprom_init); - -+MODULE_DESCRIPTION("MediaTek MT76x2 EEPROM helpers"); - MODULE_LICENSE("Dual BSD/GPL"); ---- a/mt76x2/pci.c -+++ b/mt76x2/pci.c -@@ -165,6 +165,7 @@ mt76x2e_resume(struct pci_dev *pdev) - MODULE_DEVICE_TABLE(pci, mt76x2e_device_table); - MODULE_FIRMWARE(MT7662_FIRMWARE); - MODULE_FIRMWARE(MT7662_ROM_PATCH); -+MODULE_DESCRIPTION("MediaTek MT76x2E (PCIe) wireless driver"); - MODULE_LICENSE("Dual BSD/GPL"); - - static struct pci_driver mt76pci_driver = { ---- a/mt76x2/pci_main.c -+++ b/mt76x2/pci_main.c -@@ -132,6 +132,10 @@ static int mt76x2_set_antenna(struct iee - } - - const struct ieee80211_ops mt76x2_ops = { -+ .add_chanctx = ieee80211_emulate_add_chanctx, -+ .remove_chanctx = ieee80211_emulate_remove_chanctx, -+ .change_chanctx = ieee80211_emulate_change_chanctx, -+ .switch_vif_chanctx = ieee80211_emulate_switch_vif_chanctx, - .tx = mt76x02_tx, - .start = mt76x2_start, - .stop = mt76x2_stop, ---- a/mt76x2/usb.c -+++ b/mt76x2/usb.c -@@ -148,4 +148,5 @@ static struct usb_driver mt76x2u_driver - module_usb_driver(mt76x2u_driver); - - MODULE_AUTHOR("Lorenzo Bianconi "); -+MODULE_DESCRIPTION("MediaTek MT76x2U (USB) wireless driver"); - MODULE_LICENSE("Dual BSD/GPL"); ---- a/mt76x2/usb_main.c -+++ b/mt76x2/usb_main.c -@@ -103,6 +103,10 @@ mt76x2u_config(struct ieee80211_hw *hw, - } - - const struct ieee80211_ops mt76x2u_ops = { -+ .add_chanctx = ieee80211_emulate_add_chanctx, -+ .remove_chanctx = ieee80211_emulate_remove_chanctx, -+ .change_chanctx = ieee80211_emulate_change_chanctx, -+ .switch_vif_chanctx = ieee80211_emulate_switch_vif_chanctx, - .tx = mt76x02_tx, - .start = mt76x2u_start, - .stop = mt76x2u_stop, ---- a/mt7915/Kconfig -+++ b/mt7915/Kconfig -@@ -7,7 +7,7 @@ config MT7915E - depends on PCI - select RELAY - help -- This adds support for MT7915-based wireless PCIe devices, -+ This adds support for MT7915-based PCIe wireless devices, - which support concurrent dual-band operation at both 5GHz - and 2.4GHz IEEE 802.11ax 4x4:4SS 1024-QAM, 160MHz channels, - OFDMA, spatial reuse and dual carrier modulation. ---- a/mt7915/init.c -+++ b/mt7915/init.c -@@ -4,6 +4,7 @@ - #include - #include - #include -+#include - #include - #include "mt7915.h" - #include "mac.h" -@@ -1151,8 +1152,7 @@ void mt7915_set_stream_he_caps(struct mt - n = mt7915_init_he_caps(phy, NL80211_BAND_2GHZ, data); - - band = &phy->mt76->sband_2g.sband; -- band->iftype_data = data; -- band->n_iftype_data = n; -+ _ieee80211_set_sband_iftype_data(band, data, n); - } - - if (phy->mt76->cap.has_5ghz) { -@@ -1160,8 +1160,7 @@ void mt7915_set_stream_he_caps(struct mt - n = mt7915_init_he_caps(phy, NL80211_BAND_5GHZ, data); - - band = &phy->mt76->sband_5g.sband; -- band->iftype_data = data; -- band->n_iftype_data = n; -+ _ieee80211_set_sband_iftype_data(band, data, n); - } - - if (phy->mt76->cap.has_6ghz) { -@@ -1169,8 +1168,7 @@ void mt7915_set_stream_he_caps(struct mt - n = mt7915_init_he_caps(phy, NL80211_BAND_6GHZ, data); - - band = &phy->mt76->sband_6g.sband; -- band->iftype_data = data; -- band->n_iftype_data = n; -+ _ieee80211_set_sband_iftype_data(band, data, n); - } - } - ---- a/mt7915/main.c -+++ b/mt7915/main.c -@@ -1661,6 +1661,10 @@ mt7915_net_fill_forward_path(struct ieee - #endif - - const struct ieee80211_ops mt7915_ops = { -+ .add_chanctx = ieee80211_emulate_add_chanctx, -+ .remove_chanctx = ieee80211_emulate_remove_chanctx, -+ .change_chanctx = ieee80211_emulate_change_chanctx, -+ .switch_vif_chanctx = ieee80211_emulate_switch_vif_chanctx, - .tx = mt7915_tx, - .start = mt7915_start, - .stop = mt7915_stop, ---- a/mt7915/mcu.c -+++ b/mt7915/mcu.c -@@ -228,7 +228,7 @@ mt7915_mcu_csa_finish(void *priv, u8 *ma - if (!vif->bss_conf.csa_active || vif->type == NL80211_IFTYPE_STATION) - return; - -- ieee80211_csa_finish(vif); -+ ieee80211_csa_finish(vif, 0); - } - - static void -@@ -463,10 +463,10 @@ static bool mt7915_check_he_obss_narrow_ - .tolerated = true, - }; - -- if (!(vif->bss_conf.chandef.chan->flags & IEEE80211_CHAN_RADAR)) -+ if (!(vif->bss_conf.chanreq.oper.chan->flags & IEEE80211_CHAN_RADAR)) - return false; - -- cfg80211_bss_iter(hw->wiphy, &vif->bss_conf.chandef, -+ cfg80211_bss_iter(hw->wiphy, &vif->bss_conf.chanreq.oper, - mt7915_check_he_obss_narrow_bw_ru_iter, - &iter_data); - ---- a/mt7915/mmio.c -+++ b/mt7915/mmio.c -@@ -993,4 +993,5 @@ static void __exit mt7915_exit(void) - - module_init(mt7915_init); - module_exit(mt7915_exit); -+MODULE_DESCRIPTION("MediaTek MT7915E MMIO helpers"); - MODULE_LICENSE("Dual BSD/GPL"); ---- a/mt7921/main.c -+++ b/mt7921/main.c -@@ -196,8 +196,7 @@ void mt7921_set_stream_he_caps(struct mt - n = mt7921_init_he_caps(phy, NL80211_BAND_2GHZ, data); - - band = &phy->mt76->sband_2g.sband; -- band->iftype_data = data; -- band->n_iftype_data = n; -+ _ieee80211_set_sband_iftype_data(band, data, n); - } - - if (phy->mt76->cap.has_5ghz) { -@@ -205,16 +204,14 @@ void mt7921_set_stream_he_caps(struct mt - n = mt7921_init_he_caps(phy, NL80211_BAND_5GHZ, data); - - band = &phy->mt76->sband_5g.sband; -- band->iftype_data = data; -- band->n_iftype_data = n; -+ _ieee80211_set_sband_iftype_data(band, data, n); - - if (phy->mt76->cap.has_6ghz) { - data = phy->iftype[NL80211_BAND_6GHZ]; - n = mt7921_init_he_caps(phy, NL80211_BAND_6GHZ, data); - - band = &phy->mt76->sband_6g.sband; -- band->iftype_data = data; -- band->n_iftype_data = n; -+ _ieee80211_set_sband_iftype_data(band, data, n); - } - } - } -@@ -1464,5 +1461,6 @@ const struct ieee80211_ops mt7921_ops = - }; - EXPORT_SYMBOL_GPL(mt7921_ops); - -+MODULE_DESCRIPTION("MediaTek MT7921 core driver"); - MODULE_LICENSE("Dual BSD/GPL"); - MODULE_AUTHOR("Sean Wang "); ---- a/mt7921/pci.c -+++ b/mt7921/pci.c -@@ -570,4 +570,5 @@ MODULE_FIRMWARE(MT7922_FIRMWARE_WM); - MODULE_FIRMWARE(MT7922_ROM_PATCH); - MODULE_AUTHOR("Sean Wang "); - MODULE_AUTHOR("Lorenzo Bianconi "); -+MODULE_DESCRIPTION("MediaTek MT7921E (PCIe) wireless driver"); - MODULE_LICENSE("Dual BSD/GPL"); ---- a/mt7921/sdio.c -+++ b/mt7921/sdio.c -@@ -201,7 +201,6 @@ static void mt7921s_remove(struct sdio_f - mt7921s_unregister_device(dev); - } - --#ifdef CONFIG_PM - static int mt7921s_suspend(struct device *__dev) - { - struct sdio_func *func = dev_to_sdio_func(__dev); -@@ -312,27 +311,20 @@ failed: - return err; - } - --static const struct dev_pm_ops mt7921s_pm_ops = { -- .suspend = mt7921s_suspend, -- .resume = mt7921s_resume, --}; --#endif -- - MODULE_DEVICE_TABLE(sdio, mt7921s_table); - MODULE_FIRMWARE(MT7921_FIRMWARE_WM); - MODULE_FIRMWARE(MT7921_ROM_PATCH); - -+static DEFINE_SIMPLE_DEV_PM_OPS(mt7921s_pm_ops, mt7921s_suspend, mt7921s_resume); -+ - static struct sdio_driver mt7921s_driver = { - .name = KBUILD_MODNAME, - .probe = mt7921s_probe, - .remove = mt7921s_remove, - .id_table = mt7921s_table, --#ifdef CONFIG_PM -- .drv = { -- .pm = &mt7921s_pm_ops, -- } --#endif -+ .drv.pm = pm_sleep_ptr(&mt7921s_pm_ops), - }; - module_sdio_driver(mt7921s_driver); -+MODULE_DESCRIPTION("MediaTek MT7921S (SDIO) wireless driver"); - MODULE_AUTHOR("Sean Wang "); - MODULE_LICENSE("Dual BSD/GPL"); ---- a/mt7921/usb.c -+++ b/mt7921/usb.c -@@ -336,5 +336,6 @@ static struct usb_driver mt7921u_driver - }; - module_usb_driver(mt7921u_driver); - -+MODULE_DESCRIPTION("MediaTek MT7921U (USB) wireless driver"); - MODULE_AUTHOR("Lorenzo Bianconi "); - MODULE_LICENSE("Dual BSD/GPL"); ---- a/mt7925/main.c -+++ b/mt7925/main.c -@@ -14,7 +14,7 @@ - static void - mt7925_init_he_caps(struct mt792x_phy *phy, enum nl80211_band band, - struct ieee80211_sband_iftype_data *data, -- enum nl80211_iftype iftype) -+ enum nl80211_iftype iftype) - { - struct ieee80211_sta_he_cap *he_cap = &data->he_cap; - struct ieee80211_he_cap_elem *he_cap_elem = &he_cap->he_cap_elem; -@@ -53,7 +53,7 @@ mt7925_init_he_caps(struct mt792x_phy *p - IEEE80211_HE_PHY_CAP2_UL_MU_FULL_MU_MIMO | - IEEE80211_HE_PHY_CAP2_UL_MU_PARTIAL_MU_MIMO; - -- switch (i) { -+ switch (iftype) { - case NL80211_IFTYPE_AP: - he_cap_elem->mac_cap_info[2] |= - IEEE80211_HE_MAC_CAP2_BSR; -@@ -1470,4 +1470,5 @@ const struct ieee80211_ops mt7925_ops = - EXPORT_SYMBOL_GPL(mt7925_ops); - - MODULE_AUTHOR("Deren Wu "); -+MODULE_DESCRIPTION("MediaTek MT7925 core driver"); - MODULE_LICENSE("Dual BSD/GPL"); ---- a/mt7925/pci.c -+++ b/mt7925/pci.c -@@ -586,4 +586,5 @@ MODULE_FIRMWARE(MT7925_FIRMWARE_WM); - MODULE_FIRMWARE(MT7925_ROM_PATCH); - MODULE_AUTHOR("Deren Wu "); - MODULE_AUTHOR("Lorenzo Bianconi "); -+MODULE_DESCRIPTION("MediaTek MT7925E (PCIe) wireless driver"); - MODULE_LICENSE("Dual BSD/GPL"); ---- a/mt7925/usb.c -+++ b/mt7925/usb.c -@@ -329,4 +329,5 @@ static struct usb_driver mt7925u_driver - module_usb_driver(mt7925u_driver); - - MODULE_AUTHOR("Lorenzo Bianconi "); -+MODULE_DESCRIPTION("MediaTek MT7925U (USB) wireless driver"); - MODULE_LICENSE("Dual BSD/GPL"); ---- a/mt792x_core.c -+++ b/mt792x_core.c -@@ -685,9 +685,10 @@ mt792x_get_mac80211_ops(struct device *d - if (!(*fw_features & MT792x_FW_CAP_CNM)) { - ops->remain_on_channel = NULL; - ops->cancel_remain_on_channel = NULL; -- ops->add_chanctx = NULL; -- ops->remove_chanctx = NULL; -- ops->change_chanctx = NULL; -+ ops->add_chanctx = ieee80211_emulate_add_chanctx; -+ ops->remove_chanctx = ieee80211_emulate_remove_chanctx; -+ ops->change_chanctx = ieee80211_emulate_change_chanctx; -+ ops->switch_vif_chanctx = ieee80211_emulate_switch_vif_chanctx; - ops->assign_vif_chanctx = NULL; - ops->unassign_vif_chanctx = NULL; - ops->mgd_prepare_tx = NULL; -@@ -863,5 +864,6 @@ int mt792x_load_firmware(struct mt792x_d - } - EXPORT_SYMBOL_GPL(mt792x_load_firmware); - -+MODULE_DESCRIPTION("MediaTek MT792x core driver"); - MODULE_LICENSE("Dual BSD/GPL"); - MODULE_AUTHOR("Lorenzo Bianconi "); ---- a/mt792x_usb.c -+++ b/mt792x_usb.c -@@ -312,5 +312,6 @@ void mt792xu_disconnect(struct usb_inter - } - EXPORT_SYMBOL_GPL(mt792xu_disconnect); - -+MODULE_DESCRIPTION("MediaTek MT792x USB helpers"); - MODULE_LICENSE("Dual BSD/GPL"); - MODULE_AUTHOR("Lorenzo Bianconi "); ---- a/mt7996/init.c -+++ b/mt7996/init.c -@@ -4,9 +4,10 @@ - */ - - #include --#include -+#include - #include - #include -+#include - #include "mt7996.h" - #include "mac.h" - #include "mcu.h" -@@ -1278,8 +1279,7 @@ __mt7996_set_stream_he_eht_caps(struct m - n++; - } - -- sband->iftype_data = data; -- sband->n_iftype_data = n; -+ _ieee80211_set_sband_iftype_data(sband, data, n); - } - - void mt7996_set_stream_he_eht_caps(struct mt7996_phy *phy) ---- a/mt7996/main.c -+++ b/mt7996/main.c -@@ -1467,6 +1467,10 @@ mt7996_net_fill_forward_path(struct ieee - #endif - - const struct ieee80211_ops mt7996_ops = { -+ .add_chanctx = ieee80211_emulate_add_chanctx, -+ .remove_chanctx = ieee80211_emulate_remove_chanctx, -+ .change_chanctx = ieee80211_emulate_change_chanctx, -+ .switch_vif_chanctx = ieee80211_emulate_switch_vif_chanctx, - .tx = mt7996_tx, - .start = mt7996_start, - .stop = mt7996_stop, ---- a/mt7996/mcu.c -+++ b/mt7996/mcu.c -@@ -341,7 +341,7 @@ mt7996_mcu_csa_finish(void *priv, u8 *ma - if (!vif->bss_conf.csa_active || vif->type == NL80211_IFTYPE_STATION) - return; - -- ieee80211_csa_finish(vif); -+ ieee80211_csa_finish(vif, 0); - } - - static void ---- a/mt7996/mmio.c -+++ b/mt7996/mmio.c -@@ -670,4 +670,5 @@ static void __exit mt7996_exit(void) - - module_init(mt7996_init); - module_exit(mt7996_exit); -+MODULE_DESCRIPTION("MediaTek MT7996 MMIO helpers"); - MODULE_LICENSE("Dual BSD/GPL"); ---- a/sdio.c -+++ b/sdio.c -@@ -677,4 +677,5 @@ EXPORT_SYMBOL_GPL(mt76s_init); - - MODULE_AUTHOR("Sean Wang "); - MODULE_AUTHOR("Lorenzo Bianconi "); -+MODULE_DESCRIPTION("MediaTek MT76x SDIO helpers"); - MODULE_LICENSE("Dual BSD/GPL"); ---- a/usb.c -+++ b/usb.c -@@ -286,8 +286,7 @@ static bool mt76u_check_sg(struct mt76_d - struct usb_device *udev = interface_to_usbdev(uintf); - - return (!disable_usb_sg && udev->bus->sg_tablesize > 0 && -- (udev->bus->no_sg_constraint || -- udev->speed == USB_SPEED_WIRELESS)); -+ udev->bus->no_sg_constraint); - } - - static int -@@ -1136,4 +1135,5 @@ int mt76u_init(struct mt76_dev *dev, str - EXPORT_SYMBOL_GPL(mt76u_init); - - MODULE_AUTHOR("Lorenzo Bianconi "); -+MODULE_DESCRIPTION("MediaTek MT76x USB helpers"); - MODULE_LICENSE("Dual BSD/GPL"); ---- a/util.c -+++ b/util.c -@@ -138,4 +138,5 @@ int __mt76_worker_fn(void *ptr) - } - EXPORT_SYMBOL_GPL(__mt76_worker_fn); - -+MODULE_DESCRIPTION("MediaTek MT76x helpers"); - MODULE_LICENSE("Dual BSD/GPL"); From 6951526792f305fce20c26e5ffcccd05200a2cbe Mon Sep 17 00:00:00 2001 From: Shiji Yang Date: Fri, 5 Jul 2024 13:52:06 +0800 Subject: [PATCH 15/21] uboot-mediatek: update to U-Boot release v2024.07 1. Rename function _do_env_set() to env_do_env_set(). 2. Replace kwbimage hack with UBOOT_CUSTOMIZE_CONFIG: "--disable TOOLS_KWBIMAGE" and "--disable TOOLS_LIBCRYPTO". 3. Disable CONFIG_CMD_BOOTEFI_BOOTMGR for all supported devices because the newly added UEFI bootmenu entries doesn't work. 4. Enable CONFIG_VERSION_VARIABLE for the OpenWrt One. Signed-off-by: Shiji Yang Co-authored-by: Daniel Golle --- package/boot/uboot-mediatek/Makefile | 8 ++++++-- ...nv-add-support-for-generic-MTD-device.patch | 2 +- ...06-mtd-add-core-facility-code-of-NMBM.patch | 4 +++- ...add-support-to-initialize-NMBM-after-.patch | 2 +- .../patches/100-09-cmd-add-nmbm-command.patch | 4 ++-- ...d-markbad-subcommand-for-NMBM-testing.patch | 12 ++++++------ ...-add-support-for-NMBM-upper-MTD-layer.patch | 2 +- ...-new-command-for-NAND-flash-debugging.patch | 4 ++-- ...r-add-support-to-read-flash-unique-ID.patch | 6 +++--- ...f-add-support-to-read-flash-unique-ID.patch | 6 +++--- ...dd-ability-to-select-item-by-shortkey.patch | 10 +++++----- ...nand-enable-CONFIG_SYS_NAND_U_BOOT_OF.patch | 2 +- ...add-support-for-booting-from-SPI-NAND.patch | 2 +- ...-board-mt7622-use-new-spi-nand-driver.patch | 9 ++++----- ...d-reference-board-using-new-spi-nand-.patch | 2 +- ...100-21-mtd-spi-nor-add-more-flash-ids.patch | 10 +++++----- ...pi-nand-backport-from-upstream-kernel.patch | 9 +++++---- ...-support-to-display-verbose-error-log.patch | 4 ++-- ...volume-find-create-remove-APIs-public.patch | 2 +- .../patches/103-mt7988-enable-pstore.patch | 2 +- ...nfigs-add-usefull-stuff-to-mt7988-rfb.patch | 10 +++++----- ...figs-add-useful-options-to-mt7981-rfb.patch | 18 +++++++++--------- .../patches/110-no-kwbimage.patch | 10 ---------- .../patches/120-use-xz-instead-of-lzma.patch | 2 +- .../patches/130-fix-mkimage-host-build.patch | 4 ++-- .../patches/200-cmd-add-imsz-and-imszb.patch | 4 ++-- .../patches/220-cmd-env-readmem.patch | 12 ++++++------ ...e-of-FIT-configuration-in-chosen-node.patch | 2 +- ...t7622-generic-reset-button-ignore-env.patch | 2 +- .../patches/400-update-bpir2-defconfig.patch | 13 +++++++------ .../patches/401-update-u7623-defconfig.patch | 13 +++++++------ .../404-add-bananapi_bpi-r64_defconfigs.patch | 9 ++++++--- .../patches/410-add-linksys-e8450.patch | 5 +++-- .../patches/412-add-ubnt-unifi-6-lr.patch | 13 ++++++++----- ...420-add-support-for-RAVPower-RP-WD009.patch | 5 +++-- .../patches/421-zbtlink_zbt-wg3526-16m.patch | 3 ++- .../patches/429-add-netcore-n60.patch | 3 ++- .../patches/430-add-bpi-r3.patch | 12 ++++++++---- .../patches/431-add-xiaomi_redmi-ax6000.patch | 3 ++- .../patches/432-add-tplink-xdr608x.patch | 9 ++++++--- .../patches/433-add-qihoo_360t7.patch | 3 ++- .../434-add-xiaomi_mi-router-wr30u.patch | 3 ++- .../patches/435-add-h3c_magic-nx30-pro.patch | 3 ++- .../patches/436-add-glinet-mt6000.patch | 3 ++- .../patches/437-add-cmcc_rax3000m.patch | 6 ++++-- .../patches/438-add-jcg_q30-pro.patch | 3 ++- .../patches/439-add-zyxel_ex5601-t0.patch | 3 ++- .../440-add-xiaomi_mi-router-ax3000t.patch | 3 ++- .../patches/441-add-jdcloud_re-cp-03.patch | 3 ++- .../patches/442-add-bpi-r3-mini.patch | 6 ++++-- .../patches/443-add-nokia_ea0326gmp.patch | 3 ++- .../patches/450-add-bpi-r4.patch | 18 ++++++++++++------ .../patches/452-add-xiaomi-redmi-ax6s.patch | 5 +++-- .../patches/453-add-openwrt-one.patch | 8 ++++---- 54 files changed, 180 insertions(+), 144 deletions(-) delete mode 100644 package/boot/uboot-mediatek/patches/110-no-kwbimage.patch diff --git a/package/boot/uboot-mediatek/Makefile b/package/boot/uboot-mediatek/Makefile index 8827bcf8c2..71b72ba018 100644 --- a/package/boot/uboot-mediatek/Makefile +++ b/package/boot/uboot-mediatek/Makefile @@ -1,8 +1,8 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/kernel.mk -PKG_VERSION:=2024.01 -PKG_HASH:=b99611f1ed237bf3541bdc8434b68c96a6e05967061f992443cb30aabebef5b3 +PKG_VERSION:=2024.07 +PKG_HASH:=f591da9ab90ef3d6b3d173766d0ddff90c4ed7330680897486117df390d83c8f PKG_BUILD_DEPENDS:=!(TARGET_ramips||TARGET_mediatek_mt7623):arm-trusted-firmware-tools/host UBOOT_USE_INTREE_DTC:=1 @@ -776,6 +776,10 @@ UBOOT_TARGETS := \ mt7988_rfb-emmc \ mt7988_rfb-sd +UBOOT_CUSTOMIZE_CONFIG := \ + --disable TOOLS_KWBIMAGE \ + --disable TOOLS_LIBCRYPTO + ifdef CONFIG_TARGET_mediatek UBOOT_MAKE_FLAGS += $(UBOOT_IMAGE:.fip=.bin) endif diff --git a/package/boot/uboot-mediatek/patches/100-04-env-add-support-for-generic-MTD-device.patch b/package/boot/uboot-mediatek/patches/100-04-env-add-support-for-generic-MTD-device.patch index 9b02b4dc63..2f070005d6 100644 --- a/package/boot/uboot-mediatek/patches/100-04-env-add-support-for-generic-MTD-device.patch +++ b/package/boot/uboot-mediatek/patches/100-04-env-add-support-for-generic-MTD-device.patch @@ -370,7 +370,7 @@ Signed-off-by: Weijie Gao +}; --- a/include/env_internal.h +++ b/include/env_internal.h -@@ -109,6 +109,7 @@ enum env_location { +@@ -108,6 +108,7 @@ enum env_location { ENVL_FAT, ENVL_FLASH, ENVL_MMC, diff --git a/package/boot/uboot-mediatek/patches/100-06-mtd-add-core-facility-code-of-NMBM.patch b/package/boot/uboot-mediatek/patches/100-06-mtd-add-core-facility-code-of-NMBM.patch index 23634e6425..997d07867b 100644 --- a/package/boot/uboot-mediatek/patches/100-06-mtd-add-core-facility-code-of-NMBM.patch +++ b/package/boot/uboot-mediatek/patches/100-06-mtd-add-core-facility-code-of-NMBM.patch @@ -31,12 +31,14 @@ Signed-off-by: Weijie Gao --- a/drivers/mtd/Kconfig +++ b/drivers/mtd/Kconfig -@@ -274,4 +274,6 @@ source "drivers/mtd/ubi/Kconfig" +@@ -274,6 +274,8 @@ source "drivers/mtd/ubi/Kconfig" source "drivers/mtd/nvmxip/Kconfig" +source "drivers/mtd/nmbm/Kconfig" + + endif + endmenu --- a/drivers/mtd/Makefile +++ b/drivers/mtd/Makefile diff --git a/package/boot/uboot-mediatek/patches/100-08-common-board_r-add-support-to-initialize-NMBM-after-.patch b/package/boot/uboot-mediatek/patches/100-08-common-board_r-add-support-to-initialize-NMBM-after-.patch index da4dce917b..6a7912e64a 100644 --- a/package/boot/uboot-mediatek/patches/100-08-common-board_r-add-support-to-initialize-NMBM-after-.patch +++ b/package/boot/uboot-mediatek/patches/100-08-common-board_r-add-support-to-initialize-NMBM-after-.patch @@ -34,7 +34,7 @@ Signed-off-by: Weijie Gao #if defined(CONFIG_CMD_ONENAND) /* go init the NAND */ static int initr_onenand(void) -@@ -675,6 +689,9 @@ static init_fnc_t init_sequence_r[] = { +@@ -664,6 +678,9 @@ static init_fnc_t init_sequence_r[] = { #ifdef CONFIG_CMD_ONENAND initr_onenand, #endif diff --git a/package/boot/uboot-mediatek/patches/100-09-cmd-add-nmbm-command.patch b/package/boot/uboot-mediatek/patches/100-09-cmd-add-nmbm-command.patch index 4eb2bc9ccf..cd41581006 100644 --- a/package/boot/uboot-mediatek/patches/100-09-cmd-add-nmbm-command.patch +++ b/package/boot/uboot-mediatek/patches/100-09-cmd-add-nmbm-command.patch @@ -15,7 +15,7 @@ Signed-off-by: Weijie Gao --- a/cmd/Kconfig +++ b/cmd/Kconfig -@@ -1392,6 +1392,12 @@ config CMD_NAND_TORTURE +@@ -1450,6 +1450,12 @@ config CMD_NAND_TORTURE endif # CMD_NAND @@ -36,8 +36,8 @@ Signed-off-by: Weijie Gao obj-$(CONFIG_CMD_NAND) += nand.o +obj-$(CONFIG_CMD_NMBM) += nmbm.o obj-$(CONFIG_CMD_NET) += net.o + obj-$(CONFIG_ENV_SUPPORT) += nvedit.o obj-$(CONFIG_CMD_NVEDIT_EFI) += nvedit_efi.o - obj-$(CONFIG_CMD_ONENAND) += onenand.o --- /dev/null +++ b/cmd/nmbm.c @@ -0,0 +1,327 @@ diff --git a/package/boot/uboot-mediatek/patches/100-10-cmd-mtd-add-markbad-subcommand-for-NMBM-testing.patch b/package/boot/uboot-mediatek/patches/100-10-cmd-mtd-add-markbad-subcommand-for-NMBM-testing.patch index c6358f3287..34f7fba960 100644 --- a/package/boot/uboot-mediatek/patches/100-10-cmd-mtd-add-markbad-subcommand-for-NMBM-testing.patch +++ b/package/boot/uboot-mediatek/patches/100-10-cmd-mtd-add-markbad-subcommand-for-NMBM-testing.patch @@ -20,7 +20,7 @@ Signed-off-by: SkyLake.Huang --- a/cmd/mtd.c +++ b/cmd/mtd.c -@@ -504,6 +504,42 @@ out_put_mtd: +@@ -722,6 +722,42 @@ out_put_mtd: return CMD_RET_SUCCESS; } @@ -63,15 +63,15 @@ Signed-off-by: SkyLake.Huang #ifdef CONFIG_AUTO_COMPLETE static int mtd_name_complete(int argc, char *const argv[], char last_char, int maxv, char *cmdv[]) -@@ -551,6 +587,7 @@ U_BOOT_LONGHELP(mtd, +@@ -769,6 +805,7 @@ U_BOOT_LONGHELP(mtd, "\n" "Specific functions:\n" "mtd bad \n" + "mtd markbad \n" - "\n" - "With:\n" - "\t: NAND partition/chip name (or corresponding DM device name or OF path)\n" -@@ -575,4 +612,6 @@ U_BOOT_CMD_WITH_SUBCMDS(mtd, "MTD utils" + #if CONFIG_IS_ENABLED(CMD_MTD_OTP) + "mtd otpread [u|f] \n" + "mtd otpwrite \n" +@@ -809,4 +846,6 @@ U_BOOT_CMD_WITH_SUBCMDS(mtd, "MTD utils" U_BOOT_SUBCMD_MKENT_COMPLETE(erase, 4, 0, do_mtd_erase, mtd_name_complete), U_BOOT_SUBCMD_MKENT_COMPLETE(bad, 2, 1, do_mtd_bad, diff --git a/package/boot/uboot-mediatek/patches/100-11-env-add-support-for-NMBM-upper-MTD-layer.patch b/package/boot/uboot-mediatek/patches/100-11-env-add-support-for-NMBM-upper-MTD-layer.patch index dbb1e2e59d..0930ace26a 100644 --- a/package/boot/uboot-mediatek/patches/100-11-env-add-support-for-NMBM-upper-MTD-layer.patch +++ b/package/boot/uboot-mediatek/patches/100-11-env-add-support-for-NMBM-upper-MTD-layer.patch @@ -240,7 +240,7 @@ Signed-off-by: Weijie Gao +}; --- a/include/env_internal.h +++ b/include/env_internal.h -@@ -111,6 +111,7 @@ enum env_location { +@@ -110,6 +110,7 @@ enum env_location { ENVL_MMC, ENVL_MTD, ENVL_NAND, diff --git a/package/boot/uboot-mediatek/patches/100-13-cmd-add-a-new-command-for-NAND-flash-debugging.patch b/package/boot/uboot-mediatek/patches/100-13-cmd-add-a-new-command-for-NAND-flash-debugging.patch index e6e12ae24c..97cb1088a0 100644 --- a/package/boot/uboot-mediatek/patches/100-13-cmd-add-a-new-command-for-NAND-flash-debugging.patch +++ b/package/boot/uboot-mediatek/patches/100-13-cmd-add-a-new-command-for-NAND-flash-debugging.patch @@ -26,7 +26,7 @@ Signed-off-by: Weijie Gao --- a/cmd/Kconfig +++ b/cmd/Kconfig -@@ -1392,6 +1392,14 @@ config CMD_NAND_TORTURE +@@ -1450,6 +1450,14 @@ config CMD_NAND_TORTURE endif # CMD_NAND @@ -50,7 +50,7 @@ Signed-off-by: Weijie Gao +obj-$(CONFIG_CMD_NAND_EXT) += nand-ext.o obj-$(CONFIG_CMD_NMBM) += nmbm.o obj-$(CONFIG_CMD_NET) += net.o - obj-$(CONFIG_CMD_NVEDIT_EFI) += nvedit_efi.o + obj-$(CONFIG_ENV_SUPPORT) += nvedit.o --- /dev/null +++ b/cmd/nand-ext.c @@ -0,0 +1,1062 @@ diff --git a/package/boot/uboot-mediatek/patches/100-14-mtd-spi-nor-add-support-to-read-flash-unique-ID.patch b/package/boot/uboot-mediatek/patches/100-14-mtd-spi-nor-add-support-to-read-flash-unique-ID.patch index da09cd9c08..8db02ddf6a 100644 --- a/package/boot/uboot-mediatek/patches/100-14-mtd-spi-nor-add-support-to-read-flash-unique-ID.patch +++ b/package/boot/uboot-mediatek/patches/100-14-mtd-spi-nor-add-support-to-read-flash-unique-ID.patch @@ -13,7 +13,7 @@ Signed-off-by: Weijie Gao --- a/drivers/mtd/spi/spi-nor-core.c +++ b/drivers/mtd/spi/spi-nor-core.c -@@ -2854,6 +2854,100 @@ static int spi_nor_init_params(struct sp +@@ -2908,6 +2908,100 @@ static int spi_nor_init_params(struct sp return 0; } @@ -114,7 +114,7 @@ Signed-off-by: Weijie Gao static int spi_nor_hwcaps2cmd(u32 hwcaps, const int table[][2], size_t size) { size_t i; -@@ -4051,6 +4145,7 @@ int spi_nor_scan(struct spi_nor *nor) +@@ -4027,6 +4121,7 @@ int spi_nor_scan(struct spi_nor *nor) nor->write = spi_nor_write_data; nor->read_reg = spi_nor_read_reg; nor->write_reg = spi_nor_write_reg; @@ -132,7 +132,7 @@ Signed-off-by: Weijie Gao #define SNOR_MFR_CYPRESS 0x34 /* -@@ -571,6 +572,7 @@ struct spi_nor { +@@ -567,6 +568,7 @@ struct spi_nor { void (*unprepare)(struct spi_nor *nor, enum spi_nor_ops ops); int (*read_reg)(struct spi_nor *nor, u8 opcode, u8 *buf, int len); int (*write_reg)(struct spi_nor *nor, u8 opcode, u8 *buf, int len); diff --git a/package/boot/uboot-mediatek/patches/100-15-cmd-sf-add-support-to-read-flash-unique-ID.patch b/package/boot/uboot-mediatek/patches/100-15-cmd-sf-add-support-to-read-flash-unique-ID.patch index f7cbd8d052..dcf6b47f62 100644 --- a/package/boot/uboot-mediatek/patches/100-15-cmd-sf-add-support-to-read-flash-unique-ID.patch +++ b/package/boot/uboot-mediatek/patches/100-15-cmd-sf-add-support-to-read-flash-unique-ID.patch @@ -12,7 +12,7 @@ Signed-off-by: Weijie Gao --- a/cmd/sf.c +++ b/cmd/sf.c -@@ -412,6 +412,14 @@ static int do_spi_protect(int argc, char +@@ -413,6 +413,14 @@ static int do_spi_protect(int argc, char return ret == 0 ? 0 : 1; } @@ -27,7 +27,7 @@ Signed-off-by: Weijie Gao enum { STAGE_ERASE, STAGE_CHECK, -@@ -606,6 +614,8 @@ static int do_spi_flash(struct cmd_tbl * +@@ -607,6 +615,8 @@ static int do_spi_flash(struct cmd_tbl * ret = do_spi_flash_erase(argc, argv); else if (IS_ENABLED(CONFIG_SPI_FLASH_LOCK) && strcmp(cmd, "protect") == 0) ret = do_spi_protect(argc, argv); @@ -36,7 +36,7 @@ Signed-off-by: Weijie Gao else if (IS_ENABLED(CONFIG_CMD_SF_TEST) && !strcmp(cmd, "test")) ret = do_spi_flash_test(argc, argv); else -@@ -636,6 +646,7 @@ U_BOOT_LONGHELP(sf, +@@ -637,6 +647,7 @@ U_BOOT_LONGHELP(sf, #ifdef CONFIG_CMD_SF_TEST "\nsf test offset len - run a very basic destructive test" #endif diff --git a/package/boot/uboot-mediatek/patches/100-16-cmd-bootmenu-add-ability-to-select-item-by-shortkey.patch b/package/boot/uboot-mediatek/patches/100-16-cmd-bootmenu-add-ability-to-select-item-by-shortkey.patch index 0438895fdb..701acddd78 100644 --- a/package/boot/uboot-mediatek/patches/100-16-cmd-bootmenu-add-ability-to-select-item-by-shortkey.patch +++ b/package/boot/uboot-mediatek/patches/100-16-cmd-bootmenu-add-ability-to-select-item-by-shortkey.patch @@ -94,10 +94,10 @@ Signed-off-by: Weijie Gao if (default_str) @@ -369,9 +393,9 @@ static struct bootmenu_data *bootmenu_cr - /* Add Quit entry if entering U-Boot console is disabled */ + /* Add Quit entry if exiting bootmenu is disabled */ if (!IS_ENABLED(CONFIG_BOOTMENU_DISABLE_UBOOT_CONSOLE)) -- entry->title = strdup("U-Boot console"); -+ entry->title = strdup("0. U-Boot console"); +- entry->title = strdup("Exit"); ++ entry->title = strdup("0. Exit"); else - entry->title = strdup("Quit"); + entry->title = strdup("0. Quit"); @@ -301,7 +301,7 @@ Signed-off-by: Weijie Gao switch (key) { case BKEY_UP: -@@ -1838,7 +1838,7 @@ char *eficonfig_choice_change_boot_order +@@ -1839,7 +1839,7 @@ char *eficonfig_choice_change_boot_order cli_ch_init(cch); while (1) { @@ -312,7 +312,7 @@ Signed-off-by: Weijie Gao case BKEY_PLUS: --- a/boot/bootflow_menu.c +++ b/boot/bootflow_menu.c -@@ -235,7 +235,7 @@ int bootflow_menu_run(struct bootstd_pri +@@ -234,7 +234,7 @@ int bootflow_menu_run(struct bootstd_pri key = 0; if (ichar) { diff --git a/package/boot/uboot-mediatek/patches/100-17-common-spl-spl_nand-enable-CONFIG_SYS_NAND_U_BOOT_OF.patch b/package/boot/uboot-mediatek/patches/100-17-common-spl-spl_nand-enable-CONFIG_SYS_NAND_U_BOOT_OF.patch index f017ce92ad..c65a118b89 100644 --- a/package/boot/uboot-mediatek/patches/100-17-common-spl-spl_nand-enable-CONFIG_SYS_NAND_U_BOOT_OF.patch +++ b/package/boot/uboot-mediatek/patches/100-17-common-spl-spl_nand-enable-CONFIG_SYS_NAND_U_BOOT_OF.patch @@ -14,7 +14,7 @@ Signed-off-by: Weijie Gao --- a/common/spl/spl_nand.c +++ b/common/spl/spl_nand.c -@@ -17,7 +17,11 @@ +@@ -19,7 +19,11 @@ uint32_t __weak spl_nand_get_uboot_raw_page(void) { diff --git a/package/boot/uboot-mediatek/patches/100-18-board-mt7629-add-support-for-booting-from-SPI-NAND.patch b/package/boot/uboot-mediatek/patches/100-18-board-mt7629-add-support-for-booting-from-SPI-NAND.patch index ef20c2dfb6..bc5f68cd1e 100644 --- a/package/boot/uboot-mediatek/patches/100-18-board-mt7629-add-support-for-booting-from-SPI-NAND.patch +++ b/package/boot/uboot-mediatek/patches/100-18-board-mt7629-add-support-for-booting-from-SPI-NAND.patch @@ -89,7 +89,7 @@ Signed-off-by: Weijie Gao reg = <0x11014000 0x1000>; --- a/arch/arm/mach-mediatek/Kconfig +++ b/arch/arm/mach-mediatek/Kconfig -@@ -144,9 +144,11 @@ config SYS_CONFIG_NAME +@@ -147,9 +147,11 @@ config SYS_CONFIG_NAME config MTK_BROM_HEADER_INFO string diff --git a/package/boot/uboot-mediatek/patches/100-19-board-mt7622-use-new-spi-nand-driver.patch b/package/boot/uboot-mediatek/patches/100-19-board-mt7622-use-new-spi-nand-driver.patch index 6202ddf3b0..547212c740 100644 --- a/package/boot/uboot-mediatek/patches/100-19-board-mt7622-use-new-spi-nand-driver.patch +++ b/package/boot/uboot-mediatek/patches/100-19-board-mt7622-use-new-spi-nand-driver.patch @@ -55,19 +55,18 @@ Signed-off-by: Weijie Gao reg = <0x11014000 0x1000>; --- a/configs/mt7622_rfb_defconfig +++ b/configs/mt7622_rfb_defconfig -@@ -22,6 +22,7 @@ CONFIG_SYS_MAXARGS=8 - CONFIG_SYS_PBSIZE=1049 +@@ -22,6 +22,7 @@ CONFIG_SYS_PROMPT="MT7622> " + CONFIG_SYS_MAXARGS=8 CONFIG_CMD_BOOTMENU=y CONFIG_CMD_MMC=y +CONFIG_CMD_MTD=y CONFIG_CMD_PCI=y CONFIG_CMD_SF_TEST=y CONFIG_CMD_PING=y -@@ -41,6 +42,10 @@ CONFIG_SYSCON=y - CONFIG_CLK=y +@@ -42,6 +43,9 @@ CONFIG_CLK=y CONFIG_MMC_HS200_SUPPORT=y CONFIG_MMC_MTK=y -+CONFIG_MTD=y + CONFIG_MTD=y +CONFIG_DM_MTD=y +CONFIG_MTK_SPI_NAND=y +CONFIG_MTK_SPI_NAND_MTD=y diff --git a/package/boot/uboot-mediatek/patches/100-20-board-mt7981-add-reference-board-using-new-spi-nand-.patch b/package/boot/uboot-mediatek/patches/100-20-board-mt7981-add-reference-board-using-new-spi-nand-.patch index 9dc1a57722..caedea7315 100644 --- a/package/boot/uboot-mediatek/patches/100-20-board-mt7981-add-reference-board-using-new-spi-nand-.patch +++ b/package/boot/uboot-mediatek/patches/100-20-board-mt7981-add-reference-board-using-new-spi-nand-.patch @@ -18,7 +18,7 @@ Signed-off-by: Weijie Gao --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile -@@ -1425,6 +1425,7 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += \ +@@ -1225,6 +1225,7 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += \ mt7623n-bananapi-bpi-r2.dtb \ mt7629-rfb.dtb \ mt7981-rfb.dtb \ diff --git a/package/boot/uboot-mediatek/patches/100-21-mtd-spi-nor-add-more-flash-ids.patch b/package/boot/uboot-mediatek/patches/100-21-mtd-spi-nor-add-more-flash-ids.patch index 15e943b1c0..adcaadf654 100644 --- a/package/boot/uboot-mediatek/patches/100-21-mtd-spi-nor-add-more-flash-ids.patch +++ b/package/boot/uboot-mediatek/patches/100-21-mtd-spi-nor-add-more-flash-ids.patch @@ -13,7 +13,7 @@ Signed-off-by: Weijie Gao --- a/drivers/mtd/spi/spi-nor-core.c +++ b/drivers/mtd/spi/spi-nor-core.c -@@ -674,6 +674,7 @@ static int set_4byte(struct spi_nor *nor +@@ -698,6 +698,7 @@ static int set_4byte(struct spi_nor *nor case SNOR_MFR_ISSI: case SNOR_MFR_MACRONIX: case SNOR_MFR_WINBOND: @@ -23,7 +23,7 @@ Signed-off-by: Weijie Gao --- a/drivers/mtd/spi/spi-nor-ids.c +++ b/drivers/mtd/spi/spi-nor-ids.c -@@ -83,7 +83,8 @@ const struct flash_info spi_nor_ids[] = +@@ -84,7 +84,8 @@ const struct flash_info spi_nor_ids[] = { INFO("en25q32b", 0x1c3016, 0, 64 * 1024, 64, 0) }, { INFO("en25q64", 0x1c3017, 0, 64 * 1024, 128, SECT_4K) }, { INFO("en25q128b", 0x1c3018, 0, 64 * 1024, 256, 0) }, @@ -33,7 +33,7 @@ Signed-off-by: Weijie Gao { INFO("en25s64", 0x1c3817, 0, 64 * 1024, 128, SECT_4K) }, #endif #ifdef CONFIG_SPI_FLASH_GIGADEVICE /* GIGADEVICE */ -@@ -149,6 +150,11 @@ const struct flash_info spi_nor_ids[] = +@@ -150,6 +151,11 @@ const struct flash_info spi_nor_ids[] = {INFO("gd55x02g", 0xc8481C, 0, 64 * 1024, 4096, SECT_4K | SPI_NOR_OCTAL_READ | SPI_NOR_4B_OPCODES)}, { @@ -45,7 +45,7 @@ Signed-off-by: Weijie Gao INFO("gd25lq128", 0xc86018, 0, 64 * 1024, 256, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB) -@@ -474,6 +480,16 @@ const struct flash_info spi_nor_ids[] = +@@ -489,6 +495,16 @@ const struct flash_info spi_nor_ids[] = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB) }, { @@ -62,7 +62,7 @@ Signed-off-by: Weijie Gao INFO("w25q128jw", 0xef8018, 0, 64 * 1024, 256, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ | SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB) -@@ -523,6 +539,11 @@ const struct flash_info spi_nor_ids[] = +@@ -548,6 +564,11 @@ const struct flash_info spi_nor_ids[] = SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB) }, { INFO("w25q256", 0xef4019, 0, 64 * 1024, 512, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, diff --git a/package/boot/uboot-mediatek/patches/100-22-mtd-spi-nand-backport-from-upstream-kernel.patch b/package/boot/uboot-mediatek/patches/100-22-mtd-spi-nand-backport-from-upstream-kernel.patch index 20489d8726..ddfb7577ef 100644 --- a/package/boot/uboot-mediatek/patches/100-22-mtd-spi-nand-backport-from-upstream-kernel.patch +++ b/package/boot/uboot-mediatek/patches/100-22-mtd-spi-nand-backport-from-upstream-kernel.patch @@ -22,11 +22,12 @@ Signed-off-by: Weijie Gao --- a/drivers/mtd/nand/spi/Makefile +++ b/drivers/mtd/nand/spi/Makefile -@@ -1,4 +1,4 @@ +@@ -1,5 +1,5 @@ # SPDX-License-Identifier: GPL-2.0 --spinand-objs := core.o gigadevice.o macronix.o micron.o paragon.o toshiba.o winbond.o -+spinand-objs := core.o etron.o gigadevice.o macronix.o micron.o paragon.o toshiba.o winbond.o +-spinand-objs := core.o esmt.o gigadevice.o macronix.o micron.o paragon.o ++spinand-objs := core.o esmt.o etron.o gigadevice.o macronix.o micron.o paragon.o + spinand-objs += toshiba.o winbond.o xtx.o obj-$(CONFIG_MTD_SPI_NAND) += spinand.o --- a/drivers/mtd/nand/spi/core.c +++ b/drivers/mtd/nand/spi/core.c @@ -539,7 +540,7 @@ Signed-off-by: Weijie Gao static int winbond_spinand_init(struct spinand_device *spinand) --- a/include/linux/mtd/spinand.h +++ b/include/linux/mtd/spinand.h -@@ -245,6 +245,7 @@ struct spinand_manufacturer { +@@ -244,6 +244,7 @@ struct spinand_manufacturer { }; /* SPI NAND manufacturers */ diff --git a/package/boot/uboot-mediatek/patches/100-23-mmc-mtk-sd-add-support-to-display-verbose-error-log.patch b/package/boot/uboot-mediatek/patches/100-23-mmc-mtk-sd-add-support-to-display-verbose-error-log.patch index 5c90e24ebf..d33ab0b284 100644 --- a/package/boot/uboot-mediatek/patches/100-23-mmc-mtk-sd-add-support-to-display-verbose-error-log.patch +++ b/package/boot/uboot-mediatek/patches/100-23-mmc-mtk-sd-add-support-to-display-verbose-error-log.patch @@ -15,7 +15,7 @@ Signed-off-by: Weijie Gao --- a/drivers/mmc/Kconfig +++ b/drivers/mmc/Kconfig -@@ -815,6 +815,14 @@ config MMC_MTK +@@ -855,6 +855,14 @@ config MMC_MTK This is needed if support for any SD/SDIO/MMC devices is required. If unsure, say N. @@ -32,7 +32,7 @@ Signed-off-by: Weijie Gao config FSL_SDHC_V2_3 --- a/drivers/mmc/Makefile +++ b/drivers/mmc/Makefile -@@ -82,3 +82,7 @@ obj-$(CONFIG_RENESAS_SDHI) += tmio-comm +@@ -83,3 +83,7 @@ obj-$(CONFIG_RENESAS_SDHI) += tmio-comm obj-$(CONFIG_MMC_BCM2835) += bcm2835_sdhost.o obj-$(CONFIG_MMC_MTK) += mtk-sd.o obj-$(CONFIG_MMC_SDHCI_F_SDH30) += f_sdh30.o diff --git a/package/boot/uboot-mediatek/patches/100-24-cmd-ubi-make-volume-find-create-remove-APIs-public.patch b/package/boot/uboot-mediatek/patches/100-24-cmd-ubi-make-volume-find-create-remove-APIs-public.patch index ed74eab1e4..3362e0e57d 100644 --- a/package/boot/uboot-mediatek/patches/100-24-cmd-ubi-make-volume-find-create-remove-APIs-public.patch +++ b/package/boot/uboot-mediatek/patches/100-24-cmd-ubi-make-volume-find-create-remove-APIs-public.patch @@ -45,7 +45,7 @@ Signed-off-by: Weijie Gao struct ubi_volume *vol; --- a/include/ubi_uboot.h +++ b/include/ubi_uboot.h -@@ -51,6 +51,10 @@ extern void ubi_exit(void); +@@ -50,6 +50,10 @@ extern void ubi_exit(void); extern int ubi_part(char *part_name, const char *vid_header_offset); extern int ubi_volume_write(char *volume, void *buf, size_t size); extern int ubi_volume_read(char *volume, char *buf, size_t size); diff --git a/package/boot/uboot-mediatek/patches/103-mt7988-enable-pstore.patch b/package/boot/uboot-mediatek/patches/103-mt7988-enable-pstore.patch index 747aa2e5da..1f339d4b5b 100644 --- a/package/boot/uboot-mediatek/patches/103-mt7988-enable-pstore.patch +++ b/package/boot/uboot-mediatek/patches/103-mt7988-enable-pstore.patch @@ -1,6 +1,6 @@ --- a/arch/arm/dts/mt7988.dtsi +++ b/arch/arm/dts/mt7988.dtsi -@@ -62,6 +62,30 @@ +@@ -63,6 +63,30 @@ #clock-cells = <0>; }; diff --git a/package/boot/uboot-mediatek/patches/105-configs-add-usefull-stuff-to-mt7988-rfb.patch b/package/boot/uboot-mediatek/patches/105-configs-add-usefull-stuff-to-mt7988-rfb.patch index 535af4fa09..32d87a376d 100644 --- a/package/boot/uboot-mediatek/patches/105-configs-add-usefull-stuff-to-mt7988-rfb.patch +++ b/package/boot/uboot-mediatek/patches/105-configs-add-usefull-stuff-to-mt7988-rfb.patch @@ -24,8 +24,8 @@ +CONFIG_BOOTSTD_FULL=y # CONFIG_AUTOBOOT is not set CONFIG_DEFAULT_FDT_FILE="mt7988-sd-rfb" - CONFIG_LOGLEVEL=7 -@@ -22,15 +40,118 @@ CONFIG_SYS_PBSIZE=1049 + CONFIG_SYS_CBSIZE=512 +@@ -22,15 +40,118 @@ CONFIG_SYS_PROMPT="MT7988> " # CONFIG_BOOTM_PLAN9 is not set # CONFIG_BOOTM_RTEMS is not set # CONFIG_BOOTM_VXWORKS is not set @@ -181,9 +181,9 @@ +CONFIG_BOOTSTD_DEFAULTS=y +CONFIG_BOOTSTD_FULL=y CONFIG_DEFAULT_FDT_FILE="mt7988-rfb" - CONFIG_LOGLEVEL=7 - CONFIG_LOG=y -@@ -22,15 +39,120 @@ CONFIG_SYS_PBSIZE=1049 + CONFIG_SYS_CBSIZE=512 + CONFIG_SYS_PBSIZE=1049 +@@ -22,15 +39,120 @@ CONFIG_SYS_PROMPT="MT7988> " # CONFIG_BOOTM_PLAN9 is not set # CONFIG_BOOTM_RTEMS is not set # CONFIG_BOOTM_VXWORKS is not set diff --git a/package/boot/uboot-mediatek/patches/107-configs-add-useful-options-to-mt7981-rfb.patch b/package/boot/uboot-mediatek/patches/107-configs-add-useful-options-to-mt7981-rfb.patch index bd4c6b55f0..b33ba4bdee 100644 --- a/package/boot/uboot-mediatek/patches/107-configs-add-useful-options-to-mt7981-rfb.patch +++ b/package/boot/uboot-mediatek/patches/107-configs-add-useful-options-to-mt7981-rfb.patch @@ -22,9 +22,9 @@ +CONFIG_BOOTSTD_DEFAULTS=y +CONFIG_BOOTSTD_FULL=y CONFIG_DEFAULT_FDT_FILE="mt7981-emmc-rfb" - CONFIG_LOGLEVEL=7 - CONFIG_LOG=y -@@ -24,9 +39,23 @@ CONFIG_SYS_PBSIZE=1049 + CONFIG_SYS_CBSIZE=512 + CONFIG_SYS_PBSIZE=1049 +@@ -24,9 +39,23 @@ CONFIG_SYS_PROMPT="MT7981> " # CONFIG_BOOTM_PLAN9 is not set # CONFIG_BOOTM_RTEMS is not set # CONFIG_BOOTM_VXWORKS is not set @@ -110,9 +110,9 @@ +CONFIG_BOOTSTD_DEFAULTS=y +CONFIG_BOOTSTD_FULL=y CONFIG_DEFAULT_FDT_FILE="mt7981-rfb" - CONFIG_LOGLEVEL=7 - CONFIG_LOG=y -@@ -22,23 +38,74 @@ CONFIG_SYS_PBSIZE=1049 + CONFIG_SYS_CBSIZE=512 + CONFIG_SYS_PBSIZE=1049 +@@ -22,23 +38,74 @@ CONFIG_SYS_PROMPT="MT7981> " # CONFIG_BOOTM_PLAN9 is not set # CONFIG_BOOTM_RTEMS is not set # CONFIG_BOOTM_VXWORKS is not set @@ -213,9 +213,9 @@ +CONFIG_BOOTSTD_DEFAULTS=y +CONFIG_BOOTSTD_FULL=y CONFIG_DEFAULT_FDT_FILE="mt7981-sd-rfb" - CONFIG_LOGLEVEL=7 - CONFIG_LOG=y -@@ -24,9 +39,23 @@ CONFIG_SYS_PBSIZE=1049 + CONFIG_SYS_CBSIZE=512 + CONFIG_SYS_PBSIZE=1049 +@@ -24,9 +39,23 @@ CONFIG_SYS_PROMPT="MT7981> " # CONFIG_BOOTM_PLAN9 is not set # CONFIG_BOOTM_RTEMS is not set # CONFIG_BOOTM_VXWORKS is not set diff --git a/package/boot/uboot-mediatek/patches/110-no-kwbimage.patch b/package/boot/uboot-mediatek/patches/110-no-kwbimage.patch deleted file mode 100644 index 3bf033f814..0000000000 --- a/package/boot/uboot-mediatek/patches/110-no-kwbimage.patch +++ /dev/null @@ -1,10 +0,0 @@ ---- a/tools/Makefile -+++ b/tools/Makefile -@@ -116,7 +116,6 @@ dumpimage-mkimage-objs := aisimage.o \ - imximage.o \ - imx8image.o \ - imx8mimage.o \ -- kwbimage.o \ - generated/lib/md5.o \ - lpc32xximage.o \ - mxsimage.o \ diff --git a/package/boot/uboot-mediatek/patches/120-use-xz-instead-of-lzma.patch b/package/boot/uboot-mediatek/patches/120-use-xz-instead-of-lzma.patch index 9a9224963d..5aadeaca0c 100644 --- a/package/boot/uboot-mediatek/patches/120-use-xz-instead-of-lzma.patch +++ b/package/boot/uboot-mediatek/patches/120-use-xz-instead-of-lzma.patch @@ -1,6 +1,6 @@ --- a/Makefile +++ b/Makefile -@@ -1083,7 +1083,7 @@ quiet_cmd_pad_cat = CAT $@ +@@ -1085,7 +1085,7 @@ quiet_cmd_pad_cat = CAT $@ cmd_pad_cat = $(cmd_objcopy) && $(append) || { rm -f $@; false; } quiet_cmd_lzma = LZMA $@ diff --git a/package/boot/uboot-mediatek/patches/130-fix-mkimage-host-build.patch b/package/boot/uboot-mediatek/patches/130-fix-mkimage-host-build.patch index 86a424e8b7..d04a61432e 100644 --- a/package/boot/uboot-mediatek/patches/130-fix-mkimage-host-build.patch +++ b/package/boot/uboot-mediatek/patches/130-fix-mkimage-host-build.patch @@ -1,6 +1,6 @@ --- a/tools/image-host.c +++ b/tools/image-host.c -@@ -1137,6 +1137,7 @@ static int fit_config_add_verification_d +@@ -1162,6 +1162,7 @@ static int fit_config_add_verification_d * 2) get public key (X509_get_pubkey) * 3) provide der format (d2i_RSAPublicKey) */ @@ -8,7 +8,7 @@ static int read_pub_key(const char *keydir, const void *name, unsigned char **pubkey, int *pubkey_len) { -@@ -1190,6 +1191,13 @@ err_cert: +@@ -1215,6 +1216,13 @@ err_cert: fclose(f); return ret; } diff --git a/package/boot/uboot-mediatek/patches/200-cmd-add-imsz-and-imszb.patch b/package/boot/uboot-mediatek/patches/200-cmd-add-imsz-and-imszb.patch index 28175e02e8..d10391e8c6 100644 --- a/package/boot/uboot-mediatek/patches/200-cmd-add-imsz-and-imszb.patch +++ b/package/boot/uboot-mediatek/patches/200-cmd-add-imsz-and-imszb.patch @@ -1,6 +1,6 @@ --- a/cmd/bootm.c +++ b/cmd/bootm.c -@@ -245,6 +245,67 @@ U_BOOT_CMD( +@@ -262,6 +262,67 @@ U_BOOT_CMD( /* iminfo - print header info for a requested image */ /*******************************************************************/ #if defined(CONFIG_CMD_IMI) @@ -120,7 +120,7 @@ int arch, int ph_type, int bootstage_id, --- a/include/image.h +++ b/include/image.h -@@ -1049,6 +1049,7 @@ int fit_parse_subimage(const char *spec, +@@ -1123,6 +1123,7 @@ int fit_parse_subimage(const char *spec, ulong *addr, const char **image_name); int fit_get_subimage_count(const void *fit, int images_noffset); diff --git a/package/boot/uboot-mediatek/patches/220-cmd-env-readmem.patch b/package/boot/uboot-mediatek/patches/220-cmd-env-readmem.patch index 7bf87ef7b5..6f5f5539ab 100644 --- a/package/boot/uboot-mediatek/patches/220-cmd-env-readmem.patch +++ b/package/boot/uboot-mediatek/patches/220-cmd-env-readmem.patch @@ -1,6 +1,6 @@ --- a/cmd/Kconfig +++ b/cmd/Kconfig -@@ -622,6 +622,12 @@ config CMD_ENV_EXISTS +@@ -676,6 +676,12 @@ config CMD_ENV_EXISTS Check if a variable is defined in the environment for use in shell scripting. @@ -15,7 +15,7 @@ help --- a/cmd/nvedit.c +++ b/cmd/nvedit.c -@@ -385,6 +385,60 @@ int do_env_ask(struct cmd_tbl *cmdtp, in +@@ -273,6 +273,60 @@ int do_env_ask(struct cmd_tbl *cmdtp, in } #endif @@ -69,14 +69,14 @@ + unmap_sysmem(buf); + + /* Continue calling setenv code */ -+ return _do_env_set(flag, 3, local_args, H_INTERACTIVE); ++ return env_do_env_set(flag, 3, local_args, H_INTERACTIVE); +} +#endif + #if defined(CONFIG_CMD_ENV_CALLBACK) static int print_static_binding(const char *var_name, const char *callback_name, void *priv) -@@ -1201,6 +1255,9 @@ static struct cmd_tbl cmd_env_sub[] = { +@@ -1089,6 +1143,9 @@ static struct cmd_tbl cmd_env_sub[] = { U_BOOT_CMD_MKENT(load, 1, 0, do_env_load, "", ""), #endif U_BOOT_CMD_MKENT(print, CONFIG_SYS_MAXARGS, 1, do_env_print, "", ""), @@ -86,7 +86,7 @@ #if defined(CONFIG_CMD_RUN) U_BOOT_CMD_MKENT(run, CONFIG_SYS_MAXARGS, 1, do_run, "", ""), #endif -@@ -1284,6 +1341,9 @@ U_BOOT_LONGHELP(env, +@@ -1172,6 +1229,9 @@ U_BOOT_LONGHELP(env, #if defined(CONFIG_CMD_NVEDIT_EFI) "env print -e [-guid guid] [-n] [name ...] - print UEFI environment\n" #endif @@ -96,7 +96,7 @@ #if defined(CONFIG_CMD_RUN) "env run var [...] - run commands in an environment variable\n" #endif -@@ -1392,6 +1452,17 @@ U_BOOT_CMD( +@@ -1280,6 +1340,17 @@ U_BOOT_CMD( ); #endif diff --git a/package/boot/uboot-mediatek/patches/280-image-fdt-save-name-of-FIT-configuration-in-chosen-node.patch b/package/boot/uboot-mediatek/patches/280-image-fdt-save-name-of-FIT-configuration-in-chosen-node.patch index f087bec72a..6755f614a9 100644 --- a/package/boot/uboot-mediatek/patches/280-image-fdt-save-name-of-FIT-configuration-in-chosen-node.patch +++ b/package/boot/uboot-mediatek/patches/280-image-fdt-save-name-of-FIT-configuration-in-chosen-node.patch @@ -16,7 +16,7 @@ Reviewed-by: Tom Rini --- a/boot/image-fdt.c +++ b/boot/image-fdt.c -@@ -637,6 +637,12 @@ int image_setup_libfdt(struct bootm_head +@@ -618,6 +618,12 @@ int image_setup_libfdt(struct bootm_head images->fit_uname_cfg, strlen(images->fit_uname_cfg) + 1, 1); diff --git a/package/boot/uboot-mediatek/patches/301-mt7622-generic-reset-button-ignore-env.patch b/package/boot/uboot-mediatek/patches/301-mt7622-generic-reset-button-ignore-env.patch index 65990156c2..47c92a85bd 100644 --- a/package/boot/uboot-mediatek/patches/301-mt7622-generic-reset-button-ignore-env.patch +++ b/package/boot/uboot-mediatek/patches/301-mt7622-generic-reset-button-ignore-env.patch @@ -43,7 +43,7 @@ } --- a/arch/arm/mach-mediatek/Kconfig +++ b/arch/arm/mach-mediatek/Kconfig -@@ -151,4 +151,11 @@ config MTK_BROM_HEADER_INFO +@@ -154,4 +154,11 @@ config MTK_BROM_HEADER_INFO source "board/mediatek/mt7629/Kconfig" diff --git a/package/boot/uboot-mediatek/patches/400-update-bpir2-defconfig.patch b/package/boot/uboot-mediatek/patches/400-update-bpir2-defconfig.patch index ab3424e6b5..b8c120dca0 100644 --- a/package/boot/uboot-mediatek/patches/400-update-bpir2-defconfig.patch +++ b/package/boot/uboot-mediatek/patches/400-update-bpir2-defconfig.patch @@ -1,6 +1,6 @@ --- a/configs/mt7623n_bpir2_defconfig +++ b/configs/mt7623n_bpir2_defconfig -@@ -7,34 +7,106 @@ CONFIG_SYS_MALLOC_F_LEN=0x4000 +@@ -7,7 +7,7 @@ CONFIG_SYS_MALLOC_F_LEN=0x4000 CONFIG_NR_DRAM_BANKS=1 CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x81ffff10 @@ -9,9 +9,10 @@ CONFIG_ENV_OFFSET=0x100000 CONFIG_DEFAULT_DEVICE_TREE="mt7623n-bananapi-bpi-r2" CONFIG_TARGET_MT7623=y - CONFIG_SYS_LOAD_ADDR=0x84000000 +@@ -15,26 +15,99 @@ CONFIG_SYS_LOAD_ADDR=0x84000000 CONFIG_FIT=y CONFIG_FIT_VERBOSE=y + CONFIG_SYS_BOOTM_LEN=0x4000000 +CONFIG_FIT_ENABLE_SHA256_SUPPORT=y +CONFIG_LED=y +CONFIG_LED_BLINK=y @@ -28,6 +29,7 @@ CONFIG_BOOTDELAY=3 +CONFIG_BOOTP_SEND_HOSTNAME=y CONFIG_DEFAULT_FDT_FILE="mt7623n-bananapi-bpi-r2.dtb" + CONFIG_SYS_PBSIZE=1049 CONFIG_SYS_CONSOLE_IS_IN_ENV=y +CONFIG_DEFAULT_ENV_FILE="bananapi_bpi-r2_env" +CONFIG_BUTTON=y @@ -40,9 +42,8 @@ +CONFIG_USE_DEFAULT_ENV_FILE=y +CONFIG_SYS_PROMPT="MT7623> " CONFIG_SYS_MAXARGS=8 - CONFIG_SYS_PBSIZE=1049 - CONFIG_SYS_BOOTM_LEN=0x4000000 CONFIG_CMD_BOOTMENU=y ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTP=y +CONFIG_CMD_BUTTON=y +CONFIG_CMD_CACHE=y @@ -111,7 +112,7 @@ CONFIG_USE_IPADDR=y CONFIG_IPADDR="192.168.1.1" CONFIG_USE_SERVERIP=y -@@ -46,6 +118,12 @@ CONFIG_CLK=y +@@ -46,6 +119,12 @@ CONFIG_CLK=y CONFIG_SUPPORT_EMMC_BOOT=y CONFIG_MMC_HS400_SUPPORT=y CONFIG_MMC_MTK=y @@ -124,7 +125,7 @@ CONFIG_PHY_FIXED=y CONFIG_MEDIATEK_ETH=y CONFIG_PINCTRL=y -@@ -55,10 +133,13 @@ CONFIG_POWER_DOMAIN=y +@@ -55,10 +134,13 @@ CONFIG_POWER_DOMAIN=y CONFIG_MTK_POWER_DOMAIN=y CONFIG_DM_SERIAL=y CONFIG_MTK_SERIAL=y diff --git a/package/boot/uboot-mediatek/patches/401-update-u7623-defconfig.patch b/package/boot/uboot-mediatek/patches/401-update-u7623-defconfig.patch index 58c62dc3ef..d096be7a78 100644 --- a/package/boot/uboot-mediatek/patches/401-update-u7623-defconfig.patch +++ b/package/boot/uboot-mediatek/patches/401-update-u7623-defconfig.patch @@ -1,6 +1,6 @@ --- a/configs/mt7623a_unielec_u7623_02_defconfig +++ b/configs/mt7623a_unielec_u7623_02_defconfig -@@ -7,33 +7,109 @@ CONFIG_SYS_MALLOC_F_LEN=0x4000 +@@ -7,7 +7,7 @@ CONFIG_SYS_MALLOC_F_LEN=0x4000 CONFIG_NR_DRAM_BANKS=1 CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x81ffff10 @@ -9,9 +9,10 @@ CONFIG_ENV_OFFSET=0x100000 CONFIG_DEFAULT_DEVICE_TREE="mt7623a-unielec-u7623-02-emmc" CONFIG_TARGET_MT7623=y - CONFIG_SYS_LOAD_ADDR=0x84000000 +@@ -15,25 +15,102 @@ CONFIG_SYS_LOAD_ADDR=0x84000000 CONFIG_FIT=y CONFIG_FIT_VERBOSE=y + CONFIG_SYS_BOOTM_LEN=0x4000000 +CONFIG_FIT_ENABLE_SHA256_SUPPORT=y +CONFIG_LED=y +CONFIG_LED_BLINK=y @@ -27,6 +28,7 @@ CONFIG_BOOTDELAY=3 +CONFIG_BOOTP_SEND_HOSTNAME=y CONFIG_DEFAULT_FDT_FILE="mt7623a-unielec-u7623-02-emmc.dtb" + CONFIG_SYS_PBSIZE=1049 CONFIG_SYS_CONSOLE_IS_IN_ENV=y +CONFIG_DEFAULT_ENV_FILE="unielec_u7623-02_env" +CONFIG_BUTTON=y @@ -39,9 +41,8 @@ +CONFIG_USE_DEFAULT_ENV_FILE=y +CONFIG_SYS_PROMPT="MT7623> " CONFIG_SYS_MAXARGS=8 - CONFIG_SYS_PBSIZE=1049 - CONFIG_SYS_BOOTM_LEN=0x4000000 CONFIG_CMD_BOOTMENU=y ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTP=y +CONFIG_CMD_BOOTZ=y +CONFIG_CMD_BUTTON=y @@ -114,7 +115,7 @@ CONFIG_USE_IPADDR=y CONFIG_IPADDR="192.168.1.1" CONFIG_USE_SERVERIP=y -@@ -45,6 +121,11 @@ CONFIG_CLK=y +@@ -45,6 +122,11 @@ CONFIG_CLK=y CONFIG_SUPPORT_EMMC_BOOT=y CONFIG_MMC_HS400_SUPPORT=y CONFIG_MMC_MTK=y @@ -126,7 +127,7 @@ CONFIG_PHY_FIXED=y CONFIG_MEDIATEK_ETH=y CONFIG_PINCTRL=y -@@ -54,9 +135,12 @@ CONFIG_POWER_DOMAIN=y +@@ -54,9 +136,12 @@ CONFIG_POWER_DOMAIN=y CONFIG_MTK_POWER_DOMAIN=y CONFIG_DM_SERIAL=y CONFIG_MTK_SERIAL=y diff --git a/package/boot/uboot-mediatek/patches/404-add-bananapi_bpi-r64_defconfigs.patch b/package/boot/uboot-mediatek/patches/404-add-bananapi_bpi-r64_defconfigs.patch index 6ee8729674..193e1dd4db 100644 --- a/package/boot/uboot-mediatek/patches/404-add-bananapi_bpi-r64_defconfigs.patch +++ b/package/boot/uboot-mediatek/patches/404-add-bananapi_bpi-r64_defconfigs.patch @@ -1,6 +1,6 @@ --- /dev/null +++ b/configs/mt7622_bananapi_bpi-r64-sdmmc_defconfig -@@ -0,0 +1,164 @@ +@@ -0,0 +1,165 @@ +CONFIG_ARM=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y @@ -39,6 +39,7 @@ +CONFIG_LOG=y +CONFIG_DEFAULT_FDT_FILE="mediatek/mt7622-bananapi-bpi-r64.dtb" +CONFIG_SYS_PROMPT="MT7622> " ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y +CONFIG_CMD_BOOTP=y +CONFIG_CMD_BUTTON=y @@ -251,7 +252,7 @@ +_bootmenu_update_title=setenv _bootmenu_update_title ; setenv bootmenu_title "$bootmenu_title $ver" --- /dev/null +++ b/configs/mt7622_bananapi_bpi-r64-emmc_defconfig -@@ -0,0 +1,152 @@ +@@ -0,0 +1,153 @@ +CONFIG_ARM=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y @@ -290,6 +291,7 @@ +CONFIG_LOG=y +CONFIG_DEFAULT_FDT_FILE="mt7622-bananapi-bpi-r64" +CONFIG_SYS_PROMPT="MT7622> " ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y +CONFIG_CMD_BOOTP=y +CONFIG_CMD_BUTTON=y @@ -465,7 +467,7 @@ +_bootmenu_update_title=setenv _bootmenu_update_title ; setenv bootmenu_title "$bootmenu_title $ver" --- /dev/null +++ b/configs/mt7622_bananapi_bpi-r64-snand_defconfig -@@ -0,0 +1,145 @@ +@@ -0,0 +1,146 @@ +CONFIG_ARM=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y @@ -503,6 +505,7 @@ +CONFIG_LOG=y +CONFIG_DEFAULT_FDT_FILE="mediatek/mt7622-bananapi-bpi-r64.dtb" +CONFIG_SYS_PROMPT="MT7622> " ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y +CONFIG_CMD_BOOTP=y +CONFIG_CMD_BUTTON=y diff --git a/package/boot/uboot-mediatek/patches/410-add-linksys-e8450.patch b/package/boot/uboot-mediatek/patches/410-add-linksys-e8450.patch index ca8fb32bea..4d9b0ba9e2 100644 --- a/package/boot/uboot-mediatek/patches/410-add-linksys-e8450.patch +++ b/package/boot/uboot-mediatek/patches/410-add-linksys-e8450.patch @@ -1,6 +1,6 @@ --- /dev/null +++ b/configs/mt7622_linksys_e8450_defconfig -@@ -0,0 +1,140 @@ +@@ -0,0 +1,141 @@ +CONFIG_ARM=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y @@ -35,6 +35,7 @@ +CONFIG_LOG=y +CONFIG_DEFAULT_FDT_FILE="mt7622-linksys-e8450" +CONFIG_SYS_PROMPT="MT7622> " ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y +CONFIG_CMD_BOOTP=y +CONFIG_CMD_BUTTON=y @@ -360,7 +361,7 @@ +}; --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile -@@ -1422,6 +1422,7 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += \ +@@ -1222,6 +1222,7 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += \ mt7622-rfb.dtb \ mt7623a-unielec-u7623-02-emmc.dtb \ mt7622-bananapi-bpi-r64.dtb \ diff --git a/package/boot/uboot-mediatek/patches/412-add-ubnt-unifi-6-lr.patch b/package/boot/uboot-mediatek/patches/412-add-ubnt-unifi-6-lr.patch index bbd05fe41f..1cdbda9103 100644 --- a/package/boot/uboot-mediatek/patches/412-add-ubnt-unifi-6-lr.patch +++ b/package/boot/uboot-mediatek/patches/412-add-ubnt-unifi-6-lr.patch @@ -1,6 +1,6 @@ --- /dev/null +++ b/configs/mt7622_ubnt_unifi-6-lr-v1_defconfig -@@ -0,0 +1,147 @@ +@@ -0,0 +1,148 @@ +CONFIG_ARM=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y @@ -45,6 +45,7 @@ +# CONFIG_BOOTM_VXWORKS is not set +# CONFIG_EFI is not set +# CONFIG_EFI_LOADER is not set ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y +# CONFIG_CMD_BOOTEFI is not set +CONFIG_CMD_BOOTP=y @@ -150,7 +151,7 @@ +CONFIG_SERVERIP="192.168.1.254" --- /dev/null +++ b/configs/mt7622_ubnt_unifi-6-lr-v2_defconfig -@@ -0,0 +1,147 @@ +@@ -0,0 +1,148 @@ +CONFIG_ARM=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y @@ -195,6 +196,7 @@ +# CONFIG_BOOTM_VXWORKS is not set +# CONFIG_EFI is not set +# CONFIG_EFI_LOADER is not set ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y +# CONFIG_CMD_BOOTEFI is not set +CONFIG_CMD_BOOTP=y @@ -300,7 +302,7 @@ +CONFIG_SERVERIP="192.168.1.254" --- /dev/null +++ b/configs/mt7622_ubnt_unifi-6-lr-v3_defconfig -@@ -0,0 +1,146 @@ +@@ -0,0 +1,147 @@ +CONFIG_ARM=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y @@ -345,6 +347,7 @@ +# CONFIG_BOOTM_VXWORKS is not set +# CONFIG_EFI is not set +# CONFIG_EFI_LOADER is not set ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y +# CONFIG_CMD_BOOTEFI is not set +CONFIG_CMD_BOOTP=y @@ -841,7 +844,7 @@ +}; --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile -@@ -1423,6 +1423,8 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += \ +@@ -1223,6 +1223,8 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += \ mt7623a-unielec-u7623-02-emmc.dtb \ mt7622-bananapi-bpi-r64.dtb \ mt7622-linksys-e8450-ubi.dtb \ @@ -1040,7 +1043,7 @@ #ifdef CONFIG_MMC static int initr_mmc(void) { -@@ -692,6 +707,9 @@ static init_fnc_t init_sequence_r[] = { +@@ -681,6 +696,9 @@ static init_fnc_t init_sequence_r[] = { #ifdef CONFIG_NMBM_MTD initr_nmbm, #endif diff --git a/package/boot/uboot-mediatek/patches/420-add-support-for-RAVPower-RP-WD009.patch b/package/boot/uboot-mediatek/patches/420-add-support-for-RAVPower-RP-WD009.patch index 4ee87ce3d2..fb7e33fcca 100644 --- a/package/boot/uboot-mediatek/patches/420-add-support-for-RAVPower-RP-WD009.patch +++ b/package/boot/uboot-mediatek/patches/420-add-support-for-RAVPower-RP-WD009.patch @@ -125,7 +125,7 @@ Subject: [PATCH] add support for RAVPower RP-WD009 +} --- /dev/null +++ b/configs/ravpower-rp-wd009-ram_defconfig -@@ -0,0 +1,71 @@ +@@ -0,0 +1,72 @@ +CONFIG_MIPS=y +CONFIG_SYS_LOAD_ADDR=0x80010000 +CONFIG_NR_DRAM_BANKS=1 @@ -145,6 +145,7 @@ Subject: [PATCH] add support for RAVPower RP-WD009 +CONFIG_SYS_MIPS_TIMER_FREQ=290000000 +CONFIG_SYS_BOOTPARAMS_LEN=0x20000 +CONFIG_HUSH_PARSER=y ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_LICENSE=y +# CONFIG_CMD_ELF is not set +# CONFIG_CMD_XIMG is not set @@ -234,7 +235,7 @@ Subject: [PATCH] add support for RAVPower RP-WD009 config BOARD_VOCORE2 bool "VoCore2" select SPL_SERIAL -@@ -53,6 +61,7 @@ config SYS_CONFIG_NAME +@@ -52,6 +60,7 @@ config SYS_CONFIG_NAME default "mt7628" if BOARD_MT7628_RFB source "board/gardena/smart-gateway-mt7688/Kconfig" diff --git a/package/boot/uboot-mediatek/patches/421-zbtlink_zbt-wg3526-16m.patch b/package/boot/uboot-mediatek/patches/421-zbtlink_zbt-wg3526-16m.patch index b9b241a51d..52e4184bb7 100644 --- a/package/boot/uboot-mediatek/patches/421-zbtlink_zbt-wg3526-16m.patch +++ b/package/boot/uboot-mediatek/patches/421-zbtlink_zbt-wg3526-16m.patch @@ -1,6 +1,6 @@ --- /dev/null +++ b/configs/mt7621_zbtlink_zbt-wg3526-16m_defconfig -@@ -0,0 +1,138 @@ +@@ -0,0 +1,139 @@ +CONFIG_MIPS=y +CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_SYS_MALLOC_LEN=0x100000 @@ -64,6 +64,7 @@ +# CONFIG_BOOTM_VXWORKS is not set +# CONFIG_EFI is not set +# CONFIG_EFI_LOADER is not set ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y +# CONFIG_CMD_BOOTEFI is not set +# CONFIG_CMD_BOOTD is not set diff --git a/package/boot/uboot-mediatek/patches/429-add-netcore-n60.patch b/package/boot/uboot-mediatek/patches/429-add-netcore-n60.patch index 2304fcd5ce..64d8d693ec 100644 --- a/package/boot/uboot-mediatek/patches/429-add-netcore-n60.patch +++ b/package/boot/uboot-mediatek/patches/429-add-netcore-n60.patch @@ -1,6 +1,6 @@ --- /dev/null +++ b/configs/mt7986_netcore_n60_defconfig -@@ -0,0 +1,182 @@ +@@ -0,0 +1,183 @@ +CONFIG_ARM=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y @@ -35,6 +35,7 @@ +CONFIG_LOGLEVEL=7 +CONFIG_LOG=y +CONFIG_SYS_PROMPT="MT7986> " ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y +CONFIG_CMD_BOOTP=y +CONFIG_CMD_BUTTON=y diff --git a/package/boot/uboot-mediatek/patches/430-add-bpi-r3.patch b/package/boot/uboot-mediatek/patches/430-add-bpi-r3.patch index cbcda89119..d6eae6dea5 100644 --- a/package/boot/uboot-mediatek/patches/430-add-bpi-r3.patch +++ b/package/boot/uboot-mediatek/patches/430-add-bpi-r3.patch @@ -1,6 +1,6 @@ --- /dev/null +++ b/configs/mt7986a_bpi-r3-emmc_defconfig -@@ -0,0 +1,197 @@ +@@ -0,0 +1,198 @@ +CONFIG_ARM=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y @@ -36,6 +36,7 @@ +CONFIG_LOGLEVEL=7 +CONFIG_LOG=y +CONFIG_SYS_PROMPT="MT7986> " ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y +CONFIG_CMD_BOOTP=y +CONFIG_CMD_BUTTON=y @@ -200,7 +201,7 @@ +CONFIG_SERVERIP="192.168.1.254" --- /dev/null +++ b/configs/mt7986a_bpi-r3-nor_defconfig -@@ -0,0 +1,193 @@ +@@ -0,0 +1,194 @@ +CONFIG_ARM=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y @@ -236,6 +237,7 @@ +CONFIG_LOGLEVEL=7 +CONFIG_LOG=y +CONFIG_SYS_PROMPT="MT7986> " ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y +CONFIG_CMD_BOOTP=y +CONFIG_CMD_BUTTON=y @@ -396,7 +398,7 @@ +CONFIG_SERVERIP="192.168.1.254" --- /dev/null +++ b/configs/mt7986a_bpi-r3-sd_defconfig -@@ -0,0 +1,197 @@ +@@ -0,0 +1,198 @@ +CONFIG_ARM=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y @@ -432,6 +434,7 @@ +CONFIG_LOGLEVEL=7 +CONFIG_LOG=y +CONFIG_SYS_PROMPT="MT7986> " ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y +CONFIG_CMD_BOOTP=y +CONFIG_CMD_BUTTON=y @@ -596,7 +599,7 @@ +CONFIG_SERVERIP="192.168.1.254" --- /dev/null +++ b/configs/mt7986a_bpi-r3-snand_defconfig -@@ -0,0 +1,198 @@ +@@ -0,0 +1,199 @@ +CONFIG_ARM=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y @@ -632,6 +635,7 @@ +CONFIG_LOGLEVEL=7 +CONFIG_LOG=y +CONFIG_SYS_PROMPT="MT7986> " ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y +CONFIG_CMD_BOOTP=y +CONFIG_CMD_BUTTON=y diff --git a/package/boot/uboot-mediatek/patches/431-add-xiaomi_redmi-ax6000.patch b/package/boot/uboot-mediatek/patches/431-add-xiaomi_redmi-ax6000.patch index 88b2c63632..6ccf11d24c 100644 --- a/package/boot/uboot-mediatek/patches/431-add-xiaomi_redmi-ax6000.patch +++ b/package/boot/uboot-mediatek/patches/431-add-xiaomi_redmi-ax6000.patch @@ -1,6 +1,6 @@ --- /dev/null +++ b/configs/mt7986_xiaomi_redmi-ax6000_defconfig -@@ -0,0 +1,179 @@ +@@ -0,0 +1,180 @@ +CONFIG_ARM=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y @@ -35,6 +35,7 @@ +CONFIG_LOGLEVEL=7 +CONFIG_LOG=y +CONFIG_SYS_PROMPT="MT7986> " ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y +CONFIG_CMD_BOOTP=y +CONFIG_CMD_BUTTON=y diff --git a/package/boot/uboot-mediatek/patches/432-add-tplink-xdr608x.patch b/package/boot/uboot-mediatek/patches/432-add-tplink-xdr608x.patch index 365f280947..315d4be1fe 100644 --- a/package/boot/uboot-mediatek/patches/432-add-tplink-xdr608x.patch +++ b/package/boot/uboot-mediatek/patches/432-add-tplink-xdr608x.patch @@ -1,6 +1,6 @@ --- /dev/null +++ b/configs/mt7986_tplink_tl-xdr4288_defconfig -@@ -0,0 +1,182 @@ +@@ -0,0 +1,183 @@ +CONFIG_ARM=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y @@ -35,6 +35,7 @@ +CONFIG_LOGLEVEL=7 +CONFIG_LOG=y +CONFIG_SYS_PROMPT="MT7986> " ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y +CONFIG_CMD_BOOTP=y +CONFIG_CMD_BUTTON=y @@ -185,7 +186,7 @@ +CONFIG_SERVERIP="192.168.1.254" --- /dev/null +++ b/configs/mt7986_tplink_tl-xdr6086_defconfig -@@ -0,0 +1,182 @@ +@@ -0,0 +1,183 @@ +CONFIG_ARM=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y @@ -220,6 +221,7 @@ +CONFIG_LOGLEVEL=7 +CONFIG_LOG=y +CONFIG_SYS_PROMPT="MT7986> " ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y +CONFIG_CMD_BOOTP=y +CONFIG_CMD_BUTTON=y @@ -370,7 +372,7 @@ +CONFIG_SERVERIP="192.168.1.254" --- /dev/null +++ b/configs/mt7986_tplink_tl-xdr6088_defconfig -@@ -0,0 +1,182 @@ +@@ -0,0 +1,183 @@ +CONFIG_ARM=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y @@ -405,6 +407,7 @@ +CONFIG_LOGLEVEL=7 +CONFIG_LOG=y +CONFIG_SYS_PROMPT="MT7986> " ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y +CONFIG_CMD_BOOTP=y +CONFIG_CMD_BUTTON=y diff --git a/package/boot/uboot-mediatek/patches/433-add-qihoo_360t7.patch b/package/boot/uboot-mediatek/patches/433-add-qihoo_360t7.patch index 4f98c95893..289efbfa77 100644 --- a/package/boot/uboot-mediatek/patches/433-add-qihoo_360t7.patch +++ b/package/boot/uboot-mediatek/patches/433-add-qihoo_360t7.patch @@ -1,6 +1,6 @@ --- /dev/null +++ b/configs/mt7981_qihoo-360t7_defconfig -@@ -0,0 +1,175 @@ +@@ -0,0 +1,176 @@ +CONFIG_ARM=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y @@ -35,6 +35,7 @@ +CONFIG_LOGLEVEL=7 +CONFIG_LOG=y +CONFIG_SYS_PROMPT="MT7981> " ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y +CONFIG_CMD_BOOTP=y +CONFIG_CMD_BUTTON=y diff --git a/package/boot/uboot-mediatek/patches/434-add-xiaomi_mi-router-wr30u.patch b/package/boot/uboot-mediatek/patches/434-add-xiaomi_mi-router-wr30u.patch index 2bd1afe7a8..c435d01887 100644 --- a/package/boot/uboot-mediatek/patches/434-add-xiaomi_mi-router-wr30u.patch +++ b/package/boot/uboot-mediatek/patches/434-add-xiaomi_mi-router-wr30u.patch @@ -1,6 +1,6 @@ --- /dev/null +++ b/configs/mt7981_xiaomi_mi-router-wr30u_defconfig -@@ -0,0 +1,175 @@ +@@ -0,0 +1,176 @@ +CONFIG_ARM=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y @@ -35,6 +35,7 @@ +CONFIG_LOGLEVEL=7 +CONFIG_LOG=y +CONFIG_SYS_PROMPT="MT7981> " ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y +CONFIG_CMD_BOOTP=y +CONFIG_CMD_BUTTON=y diff --git a/package/boot/uboot-mediatek/patches/435-add-h3c_magic-nx30-pro.patch b/package/boot/uboot-mediatek/patches/435-add-h3c_magic-nx30-pro.patch index d5a149b903..75256c3f0f 100644 --- a/package/boot/uboot-mediatek/patches/435-add-h3c_magic-nx30-pro.patch +++ b/package/boot/uboot-mediatek/patches/435-add-h3c_magic-nx30-pro.patch @@ -1,6 +1,6 @@ --- /dev/null +++ b/configs/mt7981_h3c_magic-nx30-pro_defconfig -@@ -0,0 +1,175 @@ +@@ -0,0 +1,176 @@ +CONFIG_ARM=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y @@ -35,6 +35,7 @@ +CONFIG_LOGLEVEL=7 +CONFIG_LOG=y +CONFIG_SYS_PROMPT="MT7981> " ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y +CONFIG_CMD_BOOTP=y +CONFIG_CMD_BUTTON=y diff --git a/package/boot/uboot-mediatek/patches/436-add-glinet-mt6000.patch b/package/boot/uboot-mediatek/patches/436-add-glinet-mt6000.patch index e0a059eb7b..dd68a81137 100644 --- a/package/boot/uboot-mediatek/patches/436-add-glinet-mt6000.patch +++ b/package/boot/uboot-mediatek/patches/436-add-glinet-mt6000.patch @@ -138,7 +138,7 @@ +}; --- /dev/null +++ b/configs/mt7986a_glinet_gl-mt6000_defconfig -@@ -0,0 +1,105 @@ +@@ -0,0 +1,106 @@ +CONFIG_ARM=y +CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y @@ -169,6 +169,7 @@ +CONFIG_HUSH_PARSER=y +CONFIG_CMD_CPU=y +CONFIG_CMD_LICENSE=y ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y +CONFIG_CMD_ASKENV=y +CONFIG_CMD_ERASEENV=y diff --git a/package/boot/uboot-mediatek/patches/437-add-cmcc_rax3000m.patch b/package/boot/uboot-mediatek/patches/437-add-cmcc_rax3000m.patch index 26e0e30a99..1cf98f2074 100644 --- a/package/boot/uboot-mediatek/patches/437-add-cmcc_rax3000m.patch +++ b/package/boot/uboot-mediatek/patches/437-add-cmcc_rax3000m.patch @@ -1,6 +1,6 @@ --- /dev/null +++ b/configs/mt7981_cmcc_rax3000m-emmc_defconfig -@@ -0,0 +1,175 @@ +@@ -0,0 +1,176 @@ +CONFIG_ARM=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y @@ -35,6 +35,7 @@ +CONFIG_LOGLEVEL=7 +CONFIG_LOG=y +CONFIG_SYS_PROMPT="MT7981> " ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y +CONFIG_CMD_BOOTP=y +CONFIG_CMD_BUTTON=y @@ -178,7 +179,7 @@ +CONFIG_SERVERIP="192.168.1.254" --- /dev/null +++ b/configs/mt7981_cmcc_rax3000m-nand_defconfig -@@ -0,0 +1,175 @@ +@@ -0,0 +1,176 @@ +CONFIG_ARM=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y @@ -213,6 +214,7 @@ +CONFIG_LOGLEVEL=7 +CONFIG_LOG=y +CONFIG_SYS_PROMPT="MT7981> " ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y +CONFIG_CMD_BOOTP=y +CONFIG_CMD_BUTTON=y diff --git a/package/boot/uboot-mediatek/patches/438-add-jcg_q30-pro.patch b/package/boot/uboot-mediatek/patches/438-add-jcg_q30-pro.patch index 639cae174e..a8d49e70b8 100644 --- a/package/boot/uboot-mediatek/patches/438-add-jcg_q30-pro.patch +++ b/package/boot/uboot-mediatek/patches/438-add-jcg_q30-pro.patch @@ -1,6 +1,6 @@ --- /dev/null +++ b/configs/mt7981_jcg_q30-pro_defconfig -@@ -0,0 +1,175 @@ +@@ -0,0 +1,176 @@ +CONFIG_ARM=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y @@ -35,6 +35,7 @@ +CONFIG_LOGLEVEL=7 +CONFIG_LOG=y +CONFIG_SYS_PROMPT="MT7981> " ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y +CONFIG_CMD_BOOTP=y +CONFIG_CMD_BUTTON=y diff --git a/package/boot/uboot-mediatek/patches/439-add-zyxel_ex5601-t0.patch b/package/boot/uboot-mediatek/patches/439-add-zyxel_ex5601-t0.patch index 7f0564fd49..06e4217375 100644 --- a/package/boot/uboot-mediatek/patches/439-add-zyxel_ex5601-t0.patch +++ b/package/boot/uboot-mediatek/patches/439-add-zyxel_ex5601-t0.patch @@ -1,6 +1,6 @@ --- /dev/null +++ b/configs/mt7986_zyxel_ex5601-t0_defconfig -@@ -0,0 +1,186 @@ +@@ -0,0 +1,187 @@ +CONFIG_ARM=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y @@ -35,6 +35,7 @@ +CONFIG_LOGLEVEL=7 +CONFIG_LOG=y +CONFIG_SYS_PROMPT="EX5601> " ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y +CONFIG_CMD_BOOTP=y +CONFIG_CMD_BUTTON=y diff --git a/package/boot/uboot-mediatek/patches/440-add-xiaomi_mi-router-ax3000t.patch b/package/boot/uboot-mediatek/patches/440-add-xiaomi_mi-router-ax3000t.patch index 9b50166a94..9e4643f97a 100644 --- a/package/boot/uboot-mediatek/patches/440-add-xiaomi_mi-router-ax3000t.patch +++ b/package/boot/uboot-mediatek/patches/440-add-xiaomi_mi-router-ax3000t.patch @@ -1,6 +1,6 @@ --- /dev/null +++ b/configs/mt7981_xiaomi_mi-router-ax3000t_defconfig -@@ -0,0 +1,163 @@ +@@ -0,0 +1,164 @@ +CONFIG_ARM=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y @@ -35,6 +35,7 @@ +CONFIG_LOGLEVEL=7 +CONFIG_LOG=y +CONFIG_SYS_PROMPT="MT7981> " ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y +CONFIG_CMD_BOOTP=y +CONFIG_CMD_BUTTON=y diff --git a/package/boot/uboot-mediatek/patches/441-add-jdcloud_re-cp-03.patch b/package/boot/uboot-mediatek/patches/441-add-jdcloud_re-cp-03.patch index dc8dfe0140..2d46f3c02b 100644 --- a/package/boot/uboot-mediatek/patches/441-add-jdcloud_re-cp-03.patch +++ b/package/boot/uboot-mediatek/patches/441-add-jdcloud_re-cp-03.patch @@ -1,6 +1,6 @@ --- /dev/null +++ b/configs/mt7986a_jdcloud_re-cp-03_defconfig -@@ -0,0 +1,112 @@ +@@ -0,0 +1,113 @@ +CONFIG_ARM=y +CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y @@ -32,6 +32,7 @@ +CONFIG_HUSH_PARSER=y +CONFIG_CMD_CPU=y +CONFIG_CMD_LICENSE=y ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y +CONFIG_CMD_ASKENV=y +CONFIG_CMD_ERASEENV=y diff --git a/package/boot/uboot-mediatek/patches/442-add-bpi-r3-mini.patch b/package/boot/uboot-mediatek/patches/442-add-bpi-r3-mini.patch index 5409f7fa0d..91757476b6 100644 --- a/package/boot/uboot-mediatek/patches/442-add-bpi-r3-mini.patch +++ b/package/boot/uboot-mediatek/patches/442-add-bpi-r3-mini.patch @@ -1,6 +1,6 @@ --- /dev/null +++ b/configs/mt7986a_bpi-r3-mini-emmc_defconfig -@@ -0,0 +1,203 @@ +@@ -0,0 +1,204 @@ +CONFIG_ARM=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y @@ -36,6 +36,7 @@ +CONFIG_LOGLEVEL=7 +CONFIG_LOG=y +CONFIG_SYS_PROMPT="MT7986> " ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y +CONFIG_CMD_BOOTP=y +CONFIG_CMD_BUTTON=y @@ -206,7 +207,7 @@ +CONFIG_SERVERIP="192.168.1.254" --- /dev/null +++ b/configs/mt7986a_bpi-r3-mini-snand_defconfig -@@ -0,0 +1,203 @@ +@@ -0,0 +1,204 @@ +CONFIG_ARM=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y @@ -242,6 +243,7 @@ +CONFIG_LOGLEVEL=7 +CONFIG_LOG=y +CONFIG_SYS_PROMPT="MT7986> " ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y +CONFIG_CMD_BOOTP=y +CONFIG_CMD_BUTTON=y diff --git a/package/boot/uboot-mediatek/patches/443-add-nokia_ea0326gmp.patch b/package/boot/uboot-mediatek/patches/443-add-nokia_ea0326gmp.patch index 0b72e1ee98..fa92a09eeb 100644 --- a/package/boot/uboot-mediatek/patches/443-add-nokia_ea0326gmp.patch +++ b/package/boot/uboot-mediatek/patches/443-add-nokia_ea0326gmp.patch @@ -1,6 +1,6 @@ --- /dev/null +++ b/configs/mt7981_nokia_ea0326gmp_defconfig -@@ -0,0 +1,163 @@ +@@ -0,0 +1,164 @@ +CONFIG_ARM=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y @@ -35,6 +35,7 @@ +CONFIG_LOGLEVEL=7 +CONFIG_LOG=y +CONFIG_SYS_PROMPT="MT7981> " ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y +CONFIG_CMD_BOOTP=y +CONFIG_CMD_BUTTON=y diff --git a/package/boot/uboot-mediatek/patches/450-add-bpi-r4.patch b/package/boot/uboot-mediatek/patches/450-add-bpi-r4.patch index 0a69e74e02..24f533f0f2 100644 --- a/package/boot/uboot-mediatek/patches/450-add-bpi-r4.patch +++ b/package/boot/uboot-mediatek/patches/450-add-bpi-r4.patch @@ -1,6 +1,6 @@ --- /dev/null +++ b/configs/mt7988a_bananapi_bpi-r4-emmc_defconfig -@@ -0,0 +1,180 @@ +@@ -0,0 +1,181 @@ +CONFIG_ARM=y +CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y @@ -38,6 +38,7 @@ +CONFIG_LED_GPIO=y +CONFIG_LOGLEVEL=7 +CONFIG_LOG=y ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y +CONFIG_CMD_BOOTP=y +CONFIG_CMD_BUTTON=y @@ -183,7 +184,7 @@ +CONFIG_SERVERIP="192.168.1.254" --- /dev/null +++ b/configs/mt7988a_bananapi_bpi-r4-sdmmc_defconfig -@@ -0,0 +1,180 @@ +@@ -0,0 +1,181 @@ +CONFIG_ARM=y +CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y @@ -221,6 +222,7 @@ +CONFIG_LED_GPIO=y +CONFIG_LOGLEVEL=7 +CONFIG_LOG=y ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y +CONFIG_CMD_BOOTP=y +CONFIG_CMD_BUTTON=y @@ -366,7 +368,7 @@ +CONFIG_SERVERIP="192.168.1.254" --- /dev/null +++ b/configs/mt7988a_bananapi_bpi-r4-snand_defconfig -@@ -0,0 +1,182 @@ +@@ -0,0 +1,183 @@ +CONFIG_ARM=y +CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y @@ -404,6 +406,7 @@ +CONFIG_LED_GPIO=y +CONFIG_LOGLEVEL=7 +CONFIG_LOG=y ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y +CONFIG_CMD_BOOTP=y +CONFIG_CMD_BUTTON=y @@ -998,7 +1001,7 @@ +}; --- /dev/null +++ b/configs/mt7988a_bananapi_bpi-r4-poe-emmc_defconfig -@@ -0,0 +1,180 @@ +@@ -0,0 +1,181 @@ +CONFIG_ARM=y +CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y @@ -1036,6 +1039,7 @@ +CONFIG_LED_GPIO=y +CONFIG_LOGLEVEL=7 +CONFIG_LOG=y ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y +CONFIG_CMD_BOOTP=y +CONFIG_CMD_BUTTON=y @@ -1181,7 +1185,7 @@ +CONFIG_SERVERIP="192.168.1.254" --- /dev/null +++ b/configs/mt7988a_bananapi_bpi-r4-poe-sdmmc_defconfig -@@ -0,0 +1,180 @@ +@@ -0,0 +1,181 @@ +CONFIG_ARM=y +CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y @@ -1219,6 +1223,7 @@ +CONFIG_LED_GPIO=y +CONFIG_LOGLEVEL=7 +CONFIG_LOG=y ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y +CONFIG_CMD_BOOTP=y +CONFIG_CMD_BUTTON=y @@ -1364,7 +1369,7 @@ +CONFIG_SERVERIP="192.168.1.254" --- /dev/null +++ b/configs/mt7988a_bananapi_bpi-r4-poe-snand_defconfig -@@ -0,0 +1,182 @@ +@@ -0,0 +1,183 @@ +CONFIG_ARM=y +CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y @@ -1402,6 +1407,7 @@ +CONFIG_LED_GPIO=y +CONFIG_LOGLEVEL=7 +CONFIG_LOG=y ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y +CONFIG_CMD_BOOTP=y +CONFIG_CMD_BUTTON=y diff --git a/package/boot/uboot-mediatek/patches/452-add-xiaomi-redmi-ax6s.patch b/package/boot/uboot-mediatek/patches/452-add-xiaomi-redmi-ax6s.patch index 28cc5d73d7..f671c53472 100644 --- a/package/boot/uboot-mediatek/patches/452-add-xiaomi-redmi-ax6s.patch +++ b/package/boot/uboot-mediatek/patches/452-add-xiaomi-redmi-ax6s.patch @@ -15,7 +15,7 @@ Subject: [PATCH] add xiaomi redmi ax6s --- a/arch/arm/dts/Makefile +++ b/arch/arm/dts/Makefile -@@ -1425,6 +1425,7 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += \ +@@ -1225,6 +1225,7 @@ dtb-$(CONFIG_ARCH_MEDIATEK) += \ mt7622-linksys-e8450-ubi.dtb \ mt7622-ubnt-unifi-6-lr.dtb \ mt7622-ubnt-unifi-6-lr-v3.dtb \ @@ -194,7 +194,7 @@ Subject: [PATCH] add xiaomi redmi ax6s +}; --- /dev/null +++ b/configs/mt7622_xiaomi_redmi-router-ax6s-ubi-loader_defconfig -@@ -0,0 +1,98 @@ +@@ -0,0 +1,99 @@ +CONFIG_ARM=y +CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y @@ -221,6 +221,7 @@ Subject: [PATCH] add xiaomi redmi ax6s +CONFIG_HUSH_PARSER=y +# CONFIG_AUTO_COMPLETE is not set +CONFIG_SYS_PROMPT="MT7622> " ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_LICENSE=y +CONFIG_CMD_ASKENV=y +CONFIG_CMD_ERASEENV=y diff --git a/package/boot/uboot-mediatek/patches/453-add-openwrt-one.patch b/package/boot/uboot-mediatek/patches/453-add-openwrt-one.patch index 25d2733d1c..171a139d6d 100644 --- a/package/boot/uboot-mediatek/patches/453-add-openwrt-one.patch +++ b/package/boot/uboot-mediatek/patches/453-add-openwrt-one.patch @@ -1047,7 +1047,7 @@ +# CONFIG_USE_BOOTFILE is not set +# CONFIG_USE_ETHPRIME is not set +# CONFIG_USE_HOSTNAME is not set -+# CONFIG_VERSION_VARIABLE is not set ++CONFIG_VERSION_VARIABLE=y +CONFIG_NET=y +CONFIG_ARP_TIMEOUT=5000 +CONFIG_NET_RETRY_COUNT=5 @@ -1960,7 +1960,7 @@ +CONFIG_SMBIOS=y +# CONFIG_SMBIOS_PARSER is not set +CONFIG_EFI_LOADER=y -+CONFIG_CMD_BOOTEFI_BOOTMGR=y ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_EFI_VARIABLE_FILE_STORE=y +# CONFIG_EFI_VARIABLE_NO_STORE is not set +# CONFIG_EFI_VARIABLES_PRESEED is not set @@ -2865,7 +2865,7 @@ +# CONFIG_USE_BOOTFILE is not set +# CONFIG_USE_ETHPRIME is not set +# CONFIG_USE_HOSTNAME is not set -+# CONFIG_VERSION_VARIABLE is not set ++CONFIG_VERSION_VARIABLE=y +CONFIG_NET=y +CONFIG_ARP_TIMEOUT=5000 +CONFIG_NET_RETRY_COUNT=5 @@ -3778,7 +3778,7 @@ +CONFIG_SMBIOS=y +# CONFIG_SMBIOS_PARSER is not set +CONFIG_EFI_LOADER=y -+CONFIG_CMD_BOOTEFI_BOOTMGR=y ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_EFI_VARIABLE_FILE_STORE=y +# CONFIG_EFI_VARIABLE_NO_STORE is not set +# CONFIG_EFI_VARIABLES_PRESEED is not set From a40e0c75299af7d87d84684130afb2bf4903d7da Mon Sep 17 00:00:00 2001 From: Shiji Yang Date: Fri, 5 Jul 2024 13:52:06 +0800 Subject: [PATCH 16/21] uboot-mediatek: refresh device defconfig files It seems that most of them are manually modified. However, we can use `make savedefconfig` to generate a clean defconfig file. Refreshed by: ``` Boards=( mt7623n_bpir2_defconfig \ mt7623a_unielec_u7623_02_defconfig \ mt7622_bananapi_bpi-r64-sdmmc_defconfig \ mt7622_bananapi_bpi-r64-emmc_defconfig \ mt7622_bananapi_bpi-r64-snand_defconfig \ mt7622_linksys_e8450_defconfig \ mt7622_ubnt_unifi-6-lr-v1_defconfig \ mt7622_ubnt_unifi-6-lr-v2_defconfig \ mt7622_ubnt_unifi-6-lr-v3_defconfig \ ravpower-rp-wd009-ram_defconfig \ mt7621_zbtlink_zbt-wg3526-16m_defconfig \ mt7986_netcore_n60_defconfig \ mt7986a_bpi-r3-emmc_defconfig \ mt7986a_bpi-r3-nor_defconfig \ mt7986a_bpi-r3-sd_defconfig \ mt7986a_bpi-r3-snand_defconfig \ mt7986_xiaomi_redmi-ax6000_defconfig \ mt7986_tplink_tl-xdr4288_defconfig \ mt7986_tplink_tl-xdr6086_defconfig \ mt7986_tplink_tl-xdr6088_defconfig \ mt7981_qihoo-360t7_defconfig \ mt7981_xiaomi_mi-router-wr30u_defconfig \ mt7981_h3c_magic-nx30-pro_defconfig \ mt7986a_glinet_gl-mt6000_defconfig \ mt7981_cmcc_rax3000m-emmc_defconfig \ mt7981_cmcc_rax3000m-nand_defconfig \ mt7981_jcg_q30-pro_defconfig \ mt7986_zyxel_ex5601-t0_defconfig \ mt7981_xiaomi_mi-router-ax3000t_defconfig \ mt7986a_jdcloud_re-cp-03_defconfig \ mt7986a_bpi-r3-mini-emmc_defconfig \ mt7986a_bpi-r3-mini-snand_defconfig \ mt7981_nokia_ea0326gmp_defconfig \ mt7988a_bananapi_bpi-r4-emmc_defconfig \ mt7988a_bananapi_bpi-r4-sdmmc_defconfig \ mt7988a_bananapi_bpi-r4-snand_defconfig \ mt7988a_bananapi_bpi-r4-poe-emmc_defconfig \ mt7988a_bananapi_bpi-r4-poe-sdmmc_defconfig \ mt7988a_bananapi_bpi-r4-poe-snand_defconfig \ mt7622_xiaomi_redmi-router-ax6s-ubi-loader_defconfig \ mt7981_openwrt-one-nor_defconfig \ mt7981_openwrt-one-spi-nand_defconfig \ ) for Board in ${Boards[@]} do echo "Refresh board ${Board}" make ${Board} make savedefconfig cat ./defconfig > ./configs/${Board} done ``` Signed-off-by: Shiji Yang --- .../patches/400-update-bpir2-defconfig.patch | 139 +- .../patches/401-update-u7623-defconfig.patch | 142 +- .../404-add-bananapi_bpi-r64_defconfigs.patch | 609 ++- .../patches/410-add-linksys-e8450.patch | 157 +- .../patches/412-add-ubnt-unifi-6-lr.patch | 625 ++- ...20-add-support-for-RAVPower-RP-WD009.patch | 37 +- .../patches/421-zbtlink_zbt-wg3526-16m.patch | 104 +- .../patches/429-add-netcore-n60.patch | 215 +- .../patches/430-add-bpi-r3.patch | 1106 +++--- .../patches/431-add-xiaomi_redmi-ax6000.patch | 192 +- .../patches/432-add-tplink-xdr608x.patch | 645 ++-- .../patches/433-add-qihoo_360t7.patch | 203 +- .../434-add-xiaomi_mi-router-wr30u.patch | 203 +- .../patches/435-add-h3c_magic-nx30-pro.patch | 203 +- .../patches/436-add-glinet-mt6000.patch | 2 +- .../patches/437-add-cmcc_rax3000m.patch | 468 +-- .../patches/438-add-jcg_q30-pro.patch | 203 +- .../patches/439-add-zyxel_ex5601-t0.patch | 217 +- .../440-add-xiaomi_mi-router-ax3000t.patch | 201 +- .../patches/441-add-jdcloud_re-cp-03.patch | 5 +- .../patches/442-add-bpi-r3-mini.patch | 575 ++- .../patches/443-add-nokia_ea0326gmp.patch | 201 +- .../patches/450-add-bpi-r4.patch | 1342 +++---- .../patches/452-add-xiaomi-redmi-ax6s.patch | 3 +- .../patches/453-add-openwrt-one.patch | 3399 +---------------- 25 files changed, 3048 insertions(+), 8148 deletions(-) diff --git a/package/boot/uboot-mediatek/patches/400-update-bpir2-defconfig.patch b/package/boot/uboot-mediatek/patches/400-update-bpir2-defconfig.patch index b8c120dca0..c7d82012d8 100644 --- a/package/boot/uboot-mediatek/patches/400-update-bpir2-defconfig.patch +++ b/package/boot/uboot-mediatek/patches/400-update-bpir2-defconfig.patch @@ -1,6 +1,6 @@ --- a/configs/mt7623n_bpir2_defconfig +++ b/configs/mt7623n_bpir2_defconfig -@@ -7,7 +7,7 @@ CONFIG_SYS_MALLOC_F_LEN=0x4000 +@@ -7,52 +7,98 @@ CONFIG_SYS_MALLOC_F_LEN=0x4000 CONFIG_NR_DRAM_BANKS=1 CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x81ffff10 @@ -8,135 +8,106 @@ +CONFIG_ENV_SIZE=0x10000 CONFIG_ENV_OFFSET=0x100000 CONFIG_DEFAULT_DEVICE_TREE="mt7623n-bananapi-bpi-r2" ++CONFIG_OF_LIBFDT_OVERLAY=y CONFIG_TARGET_MT7623=y -@@ -15,26 +15,99 @@ CONFIG_SYS_LOAD_ADDR=0x84000000 ++CONFIG_RESET_BUTTON_LABEL="factory" + CONFIG_SYS_LOAD_ADDR=0x84000000 ++CONFIG_PCI=y ++CONFIG_AHCI=y CONFIG_FIT=y CONFIG_FIT_VERBOSE=y - CONFIG_SYS_BOOTM_LEN=0x4000000 -+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y -+CONFIG_LED=y -+CONFIG_LED_BLINK=y -+CONFIG_LED_GPIO=y -+CONFIG_LOGLEVEL=7 -+CONFIG_LOG=y -+CONFIG_OF_SYSTEM_SETUP=y -+CONFIG_AUTOBOOT_KEYED=y -+CONFIG_AUTOBOOT_MENU_SHOW=y -+CONFIG_BOARD_LATE_INIT=y +# CONFIG_BOOTSTD is not set -+# CONFIG_BOOT_DEFAULTS is not set + CONFIG_SYS_BOOTM_LEN=0x4000000 CONFIG_DISTRO_DEFAULTS=y CONFIG_BOOTDELAY=3 -+CONFIG_BOOTP_SEND_HOSTNAME=y ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_MENU_SHOW=y ++CONFIG_OF_SYSTEM_SETUP=y CONFIG_DEFAULT_FDT_FILE="mt7623n-bananapi-bpi-r2.dtb" CONFIG_SYS_PBSIZE=1049 ++CONFIG_LOGLEVEL=7 CONFIG_SYS_CONSOLE_IS_IN_ENV=y -+CONFIG_DEFAULT_ENV_FILE="bananapi_bpi-r2_env" -+CONFIG_BUTTON=y -+CONFIG_BUTTON_GPIO=y -+CONFIG_RESET_BUTTON_LABEL="factory" -+CONFIG_CFB_CONSOLE_ANSI=y -+CONFIG_CMD_ENV_FLAGS=y ++CONFIG_LOG=y # CONFIG_DISPLAY_BOARDINFO is not set -CONFIG_SYS_PROMPT="U-Boot> " -+CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_BOARD_LATE_INIT=y +CONFIG_SYS_PROMPT="MT7623> " CONFIG_SYS_MAXARGS=8 - CONFIG_CMD_BOOTMENU=y ++CONFIG_CMD_LICENSE=y +# CONFIG_CMD_BOOTEFI_BOOTMGR is not set -+CONFIG_CMD_BOOTP=y -+CONFIG_CMD_BUTTON=y -+CONFIG_CMD_CACHE=y -+CONFIG_CMD_CDP=y -+CONFIG_CMD_DHCP=y -+CONFIG_CMD_DM=y -+CONFIG_CMD_DNS=y -+CONFIG_CMD_ECHO=y -+CONFIG_CMD_ENV_READMEM=y -+CONFIG_CMD_ERASEENV=y -+CONFIG_CMD_EXT4=y -+CONFIG_CMD_FAT=y -+CONFIG_CMD_FS_GENERIC=y -+CONFIG_CMD_FS_UUID=y + CONFIG_CMD_BOOTMENU=y # CONFIG_CMD_ELF is not set # CONFIG_CMD_XIMG is not set ++CONFIG_CMD_ASKENV=y ++CONFIG_CMD_ERASEENV=y ++CONFIG_CMD_ENV_FLAGS=y ++CONFIG_CMD_STRINGS=y ++CONFIG_CMD_DM=y CONFIG_CMD_GPIO=y -CONFIG_CMD_GPT=y -+# CONFIG_CMD_GPT is not set -+CONFIG_CMD_HASH=y -+CONFIG_CMD_ITEST=y -+CONFIG_CMD_LED=y -+CONFIG_CMD_LICENSE=y -+CONFIG_CMD_LINK_LOCAL=y +CONFIG_CMD_MBR=y CONFIG_CMD_MMC=y CONFIG_CMD_READ=y -# CONFIG_CMD_SETEXPR is not set -+CONFIG_CMD_SF_TEST=y -+CONFIG_CMD_PING=y -+CONFIG_CMD_PXE=y -+CONFIG_CMD_TFTPBOOT=y -+CONFIG_CMD_TFTPSRV=y -+CONFIG_CMD_ASKENV=y -+CONFIG_CMD_PART=y -+CONFIG_CMD_RARP=y +CONFIG_CMD_SATA=y -+CONFIG_CMD_SETEXPR=y -+CONFIG_CMD_SLEEP=y ++CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_RARP=y ++CONFIG_CMD_CDP=y +CONFIG_CMD_SNTP=y -+CONFIG_CMD_SOURCE=y -+CONFIG_CMD_STRINGS=y -+CONFIG_CMD_USB=y ++CONFIG_CMD_DNS=y ++CONFIG_CMD_LINK_LOCAL=y ++CONFIG_CMD_CACHE=y +CONFIG_CMD_UUID=y -+CONFIG_CMD_SCSI=y -+CONFIG_DISPLAY_CPUINFO=y -+CONFIG_DM_ETH=y -+CONFIG_DM_GPIO=y -+CONFIG_DM_SCSI=y -+CONFIG_DM_MMC=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_REGULATOR_GPIO=y -+CONFIG_DM_USB=y -+CONFIG_DM_PCI=y -+CONFIG_AHCI=y -+CONFIG_AHCI_PCI=y -+CONFIG_SCSI_AHCI=y -+CONFIG_SCSI=y -+CONFIG_HUSH_PARSER=y ++CONFIG_CMD_HASH=y ++CONFIG_CMD_FS_UUID=y CONFIG_ENV_OVERWRITE=y CONFIG_ENV_IS_IN_MMC=y CONFIG_SYS_RELOC_GD_ENV_ADDR=y ++CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_DEFAULT_ENV_FILE="bananapi_bpi-r2_env" ++CONFIG_VERSION_VARIABLE=y ++CONFIG_BOOTP_SEND_HOSTNAME=y CONFIG_NET_RANDOM_ETHADDR=y +CONFIG_NETCONSOLE=y CONFIG_USE_IPADDR=y CONFIG_IPADDR="192.168.1.1" CONFIG_USE_SERVERIP=y -@@ -46,6 +119,12 @@ CONFIG_CLK=y + CONFIG_SERVERIP="192.168.1.2" + CONFIG_REGMAP=y + CONFIG_SYSCON=y ++CONFIG_SCSI_AHCI=y ++CONFIG_AHCI_PCI=y ++CONFIG_BUTTON=y ++CONFIG_BUTTON_GPIO=y + CONFIG_CLK=y ++CONFIG_LED=y ++CONFIG_LED_BLINK=y ++CONFIG_LED_GPIO=y + # CONFIG_MMC_QUIRKS is not set CONFIG_SUPPORT_EMMC_BOOT=y CONFIG_MMC_HS400_SUPPORT=y CONFIG_MMC_MTK=y -+CONFIG_OF_LIBFDT_OVERLAY=y -+CONFIG_PARTITION_UUIDS=y -+CONFIG_PCI=y -+CONFIG_PCIE_MEDIATEK=y -+CONFIG_PHY=y -+CONFIG_PINCONF=y CONFIG_PHY_FIXED=y CONFIG_MEDIATEK_ETH=y ++CONFIG_PCIE_MEDIATEK=y ++CONFIG_PHY=y CONFIG_PINCTRL=y -@@ -55,10 +134,13 @@ CONFIG_POWER_DOMAIN=y + CONFIG_PINCONF=y + CONFIG_PINCTRL_MT7623=y + CONFIG_POWER_DOMAIN=y CONFIG_MTK_POWER_DOMAIN=y ++CONFIG_DM_REGULATOR=y ++CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_REGULATOR_GPIO=y ++CONFIG_SCSI=y CONFIG_DM_SERIAL=y CONFIG_MTK_SERIAL=y -+CONFIG_RANDOM_UUID=y -+CONFIG_REGEX=y CONFIG_SYSRESET=y - CONFIG_SYSRESET_WATCHDOG=y +@@ -60,5 +106,6 @@ CONFIG_SYSRESET_WATCHDOG=y CONFIG_TIMER=y CONFIG_MTK_TIMER=y -+CONFIG_VERSION_VARIABLE=y CONFIG_WDT_MTK=y ++CONFIG_RANDOM_UUID=y CONFIG_LZMA=y # CONFIG_EFI_GRUB_ARM32_WORKAROUND is not set --- /dev/null diff --git a/package/boot/uboot-mediatek/patches/401-update-u7623-defconfig.patch b/package/boot/uboot-mediatek/patches/401-update-u7623-defconfig.patch index d096be7a78..1fb0ae9c9e 100644 --- a/package/boot/uboot-mediatek/patches/401-update-u7623-defconfig.patch +++ b/package/boot/uboot-mediatek/patches/401-update-u7623-defconfig.patch @@ -1,6 +1,6 @@ --- a/configs/mt7623a_unielec_u7623_02_defconfig +++ b/configs/mt7623a_unielec_u7623_02_defconfig -@@ -7,7 +7,7 @@ CONFIG_SYS_MALLOC_F_LEN=0x4000 +@@ -7,51 +7,97 @@ CONFIG_SYS_MALLOC_F_LEN=0x4000 CONFIG_NR_DRAM_BANKS=1 CONFIG_HAS_CUSTOM_SYS_INIT_SP_ADDR=y CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x81ffff10 @@ -8,137 +8,105 @@ +CONFIG_ENV_SIZE=0x10000 CONFIG_ENV_OFFSET=0x100000 CONFIG_DEFAULT_DEVICE_TREE="mt7623a-unielec-u7623-02-emmc" ++CONFIG_OF_LIBFDT_OVERLAY=y CONFIG_TARGET_MT7623=y -@@ -15,25 +15,102 @@ CONFIG_SYS_LOAD_ADDR=0x84000000 ++CONFIG_RESET_BUTTON_LABEL="factory" + CONFIG_SYS_LOAD_ADDR=0x84000000 ++CONFIG_PCI=y ++CONFIG_AHCI=y CONFIG_FIT=y CONFIG_FIT_VERBOSE=y - CONFIG_SYS_BOOTM_LEN=0x4000000 -+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y -+CONFIG_LED=y -+CONFIG_LED_BLINK=y -+CONFIG_LED_GPIO=y -+CONFIG_LOGLEVEL=7 -+CONFIG_LOG=y -+CONFIG_AUTOBOOT_KEYED=y -+CONFIG_AUTOBOOT_MENU_SHOW=y -+CONFIG_BOARD_LATE_INIT=y +# CONFIG_BOOTSTD is not set -+# CONFIG_BOOT_DEFAULTS is not set + CONFIG_SYS_BOOTM_LEN=0x4000000 CONFIG_DISTRO_DEFAULTS=y CONFIG_BOOTDELAY=3 -+CONFIG_BOOTP_SEND_HOSTNAME=y ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_MENU_SHOW=y CONFIG_DEFAULT_FDT_FILE="mt7623a-unielec-u7623-02-emmc.dtb" CONFIG_SYS_PBSIZE=1049 ++CONFIG_LOGLEVEL=7 CONFIG_SYS_CONSOLE_IS_IN_ENV=y -+CONFIG_DEFAULT_ENV_FILE="unielec_u7623-02_env" -+CONFIG_BUTTON=y -+CONFIG_BUTTON_GPIO=y -+CONFIG_RESET_BUTTON_LABEL="factory" -+CONFIG_CFB_CONSOLE_ANSI=y -+CONFIG_CMD_ENV_FLAGS=y ++CONFIG_LOG=y # CONFIG_DISPLAY_BOARDINFO is not set -CONFIG_SYS_PROMPT="U-Boot> " -+CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_BOARD_LATE_INIT=y +CONFIG_SYS_PROMPT="MT7623> " CONFIG_SYS_MAXARGS=8 - CONFIG_CMD_BOOTMENU=y ++CONFIG_CMD_LICENSE=y +# CONFIG_CMD_BOOTEFI_BOOTMGR is not set -+CONFIG_CMD_BOOTP=y -+CONFIG_CMD_BOOTZ=y -+CONFIG_CMD_BUTTON=y -+CONFIG_CMD_CACHE=y -+CONFIG_CMD_CDP=y -+CONFIG_CMD_DHCP=y -+CONFIG_CMD_DM=y -+CONFIG_CMD_DNS=y -+CONFIG_CMD_ECHO=y -+CONFIG_CMD_ENV_READMEM=y -+CONFIG_CMD_ERASEENV=y -+CONFIG_CMD_EXT4=y -+CONFIG_CMD_FAT=y -+CONFIG_CMD_FS_GENERIC=y -+CONFIG_CMD_FS_UUID=y + CONFIG_CMD_BOOTMENU=y # CONFIG_CMD_ELF is not set # CONFIG_CMD_XIMG is not set ++CONFIG_CMD_ASKENV=y ++CONFIG_CMD_ERASEENV=y ++CONFIG_CMD_ENV_FLAGS=y ++CONFIG_CMD_STRINGS=y ++CONFIG_CMD_DM=y CONFIG_CMD_GPIO=y -CONFIG_CMD_GPT=y -+# CONFIG_CMD_GPT is not set -+CONFIG_CMD_HASH=y -+CONFIG_CMD_ITEST=y -+CONFIG_CMD_LED=y -+CONFIG_CMD_LICENSE=y -+CONFIG_CMD_LINK_LOCAL=y +CONFIG_CMD_MBR=y CONFIG_CMD_MMC=y CONFIG_CMD_READ=y -# CONFIG_CMD_SETEXPR is not set -+CONFIG_CMD_SF_TEST=y -+CONFIG_CMD_PING=y -+CONFIG_CMD_PXE=y -+CONFIG_CMD_TFTPBOOT=y -+CONFIG_CMD_TFTPSRV=y -+CONFIG_CMD_ASKENV=y -+CONFIG_CMD_PART=y -+CONFIG_CMD_RARP=y +CONFIG_CMD_SATA=y -+CONFIG_CMD_SETEXPR=y -+CONFIG_CMD_SLEEP=y ++CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_RARP=y ++CONFIG_CMD_CDP=y +CONFIG_CMD_SNTP=y -+CONFIG_CMD_SOURCE=y -+CONFIG_CMD_STRINGS=y -+CONFIG_CMD_USB=y ++CONFIG_CMD_DNS=y ++CONFIG_CMD_LINK_LOCAL=y ++CONFIG_CMD_CACHE=y +CONFIG_CMD_UUID=y -+CONFIG_CMD_READ=y -+CONFIG_CMD_SCSI=y -+CONFIG_DISPLAY_CPUINFO=y -+CONFIG_DM_ETH=y -+CONFIG_DM_GPIO=y -+CONFIG_DM_SCSI=y -+CONFIG_DM_MMC=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_SERIAL=y -+CONFIG_DM_REGULATOR_GPIO=y -+CONFIG_DM_USB=y -+CONFIG_DM_PCI=y -+CONFIG_AHCI=y -+CONFIG_AHCI_PCI=y -+CONFIG_SCSI_AHCI=y -+CONFIG_SCSI=y -+CONFIG_HUSH_PARSER=y ++CONFIG_CMD_HASH=y ++CONFIG_CMD_FS_UUID=y ++CONFIG_ENV_OVERWRITE=y CONFIG_ENV_IS_IN_MMC=y CONFIG_SYS_RELOC_GD_ENV_ADDR=y -+CONFIG_SYS_MMC_ENV_DEV=0 -+CONFIG_ENV_OVERWRITE=y ++CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_DEFAULT_ENV_FILE="unielec_u7623-02_env" ++CONFIG_VERSION_VARIABLE=y ++CONFIG_BOOTP_SEND_HOSTNAME=y CONFIG_NET_RANDOM_ETHADDR=y +CONFIG_NETCONSOLE=y CONFIG_USE_IPADDR=y CONFIG_IPADDR="192.168.1.1" CONFIG_USE_SERVERIP=y -@@ -45,6 +122,11 @@ CONFIG_CLK=y + CONFIG_SERVERIP="192.168.1.2" + CONFIG_REGMAP=y + CONFIG_SYSCON=y ++CONFIG_SCSI_AHCI=y ++CONFIG_AHCI_PCI=y ++CONFIG_BUTTON=y ++CONFIG_BUTTON_GPIO=y + CONFIG_CLK=y ++CONFIG_LED=y ++CONFIG_LED_BLINK=y ++CONFIG_LED_GPIO=y + # CONFIG_MMC_QUIRKS is not set CONFIG_SUPPORT_EMMC_BOOT=y CONFIG_MMC_HS400_SUPPORT=y CONFIG_MMC_MTK=y -+CONFIG_OF_LIBFDT_OVERLAY=y -+CONFIG_PARTITION_UUIDS=y -+CONFIG_PCI=y -+CONFIG_PCIE_MEDIATEK=y -+CONFIG_PHY=y CONFIG_PHY_FIXED=y CONFIG_MEDIATEK_ETH=y ++CONFIG_PCIE_MEDIATEK=y ++CONFIG_PHY=y CONFIG_PINCTRL=y -@@ -54,9 +136,12 @@ CONFIG_POWER_DOMAIN=y + CONFIG_PINCONF=y + CONFIG_PINCTRL_MT7623=y + CONFIG_POWER_DOMAIN=y CONFIG_MTK_POWER_DOMAIN=y ++CONFIG_DM_REGULATOR=y ++CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_REGULATOR_GPIO=y ++CONFIG_SCSI=y CONFIG_DM_SERIAL=y CONFIG_MTK_SERIAL=y -+CONFIG_RANDOM_UUID=y -+CONFIG_REGEX=y CONFIG_SYSRESET=y - CONFIG_SYSRESET_WATCHDOG=y +@@ -59,4 +105,5 @@ CONFIG_SYSRESET_WATCHDOG=y CONFIG_TIMER=y CONFIG_MTK_TIMER=y -+CONFIG_VERSION_VARIABLE=y CONFIG_WDT_MTK=y ++CONFIG_RANDOM_UUID=y CONFIG_LZMA=y --- /dev/null +++ b/unielec_u7623-02_env diff --git a/package/boot/uboot-mediatek/patches/404-add-bananapi_bpi-r64_defconfigs.patch b/package/boot/uboot-mediatek/patches/404-add-bananapi_bpi-r64_defconfigs.patch index 193e1dd4db..29bb1d91a1 100644 --- a/package/boot/uboot-mediatek/patches/404-add-bananapi_bpi-r64_defconfigs.patch +++ b/package/boot/uboot-mediatek/patches/404-add-bananapi_bpi-r64_defconfigs.patch @@ -1,171 +1,136 @@ --- /dev/null +++ b/configs/mt7622_bananapi_bpi-r64-sdmmc_defconfig -@@ -0,0 +1,165 @@ +@@ -0,0 +1,130 @@ +CONFIG_ARM=y ++CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y -+CONFIG_TARGET_MT7622=y +CONFIG_TEXT_BASE=0x41e00000 +CONFIG_SYS_MALLOC_F_LEN=0x4000 -+CONFIG_SYS_LOAD_ADDR=0x40080000 -+CONFIG_SYS_HAS_NONCACHED_MEMORY=y -+CONFIG_USE_DEFAULT_ENV_FILE=y -+CONFIG_BOARD_LATE_INIT=y -+CONFIG_BOOTP_SEND_HOSTNAME=y +CONFIG_NR_DRAM_BANKS=1 -+CONFIG_DEBUG_UART_BASE=0x11002000 -+CONFIG_DEBUG_UART_CLOCK=25000000 ++CONFIG_ENV_SIZE=0x80000 ++CONFIG_ENV_OFFSET=0x400000 +CONFIG_DEFAULT_DEVICE_TREE="mt7622-bananapi-bpi-r64" +CONFIG_OF_LIBFDT_OVERLAY=y -+CONFIG_OF_SYSTEM_SETUP=y ++CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 ++CONFIG_DEBUG_UART_BASE=0x11002000 ++CONFIG_DEBUG_UART_CLOCK=25000000 ++CONFIG_ENV_OFFSET_REDUND=0x480000 ++CONFIG_SYS_LOAD_ADDR=0x40080000 ++CONFIG_PCI=y +CONFIG_DEBUG_UART=y -+CONFIG_DEFAULT_ENV_FILE="bananapi_bpi-r64-sdmmc_env" -+CONFIG_NET_RANDOM_ETHADDR=y -+CONFIG_SMBIOS_PRODUCT_NAME="" -+CONFIG_AUTOBOOT_KEYED=y -+CONFIG_BOOTDELAY=30 -+CONFIG_AUTOBOOT_MENU_SHOW=y -+CONFIG_CFB_CONSOLE_ANSI=y -+CONFIG_BUTTON=y -+CONFIG_BUTTON_GPIO=y -+CONFIG_GPIO_HOG=y -+CONFIG_CMD_ENV_FLAGS=y ++CONFIG_AHCI=y +CONFIG_FIT=y -+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y -+CONFIG_LED=y -+CONFIG_LED_BLINK=y -+CONFIG_LED_GPIO=y -+CONFIG_LOGLEVEL=7 -+CONFIG_LOG=y ++CONFIG_BOOTDELAY=30 ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_MENU_SHOW=y ++CONFIG_OF_SYSTEM_SETUP=y +CONFIG_DEFAULT_FDT_FILE="mediatek/mt7622-bananapi-bpi-r64.dtb" ++CONFIG_LOGLEVEL=7 ++CONFIG_PRE_CONSOLE_BUFFER=y ++CONFIG_LOG=y ++CONFIG_BOARD_LATE_INIT=y ++CONFIG_HUSH_PARSER=y +CONFIG_SYS_PROMPT="MT7622> " ++CONFIG_CMD_LICENSE=y +# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y -+CONFIG_CMD_BOOTP=y -+CONFIG_CMD_BUTTON=y -+CONFIG_CMD_CACHE=y -+CONFIG_CMD_CDP=y -+CONFIG_CMD_DHCP=y -+CONFIG_CMD_DM=y -+CONFIG_CMD_DNS=y -+CONFIG_CMD_ECHO=y -+CONFIG_CMD_ENV_READMEM=y ++CONFIG_CMD_ASKENV=y +CONFIG_CMD_ERASEENV=y ++CONFIG_CMD_ENV_FLAGS=y ++CONFIG_CMD_STRINGS=y ++CONFIG_CMD_DM=y ++CONFIG_CMD_GPIO=y ++CONFIG_CMD_PWM=y ++CONFIG_CMD_GPT=y ++CONFIG_CMD_MMC=y ++CONFIG_CMD_MTD=y ++CONFIG_CMD_PART=y ++CONFIG_CMD_PCI=y ++CONFIG_CMD_USB=y ++CONFIG_CMD_DHCP=y ++CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_RARP=y ++CONFIG_CMD_PING=y ++CONFIG_CMD_CDP=y ++CONFIG_CMD_SNTP=y ++CONFIG_CMD_DNS=y ++CONFIG_CMD_LINK_LOCAL=y ++CONFIG_CMD_PXE=y ++CONFIG_CMD_CACHE=y ++CONFIG_CMD_PSTORE=y ++CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 ++CONFIG_CMD_UUID=y ++CONFIG_CMD_HASH=y ++CONFIG_CMD_SMC=y +CONFIG_CMD_EXT4=y +CONFIG_CMD_FAT=y +CONFIG_CMD_FS_GENERIC=y +CONFIG_CMD_FS_UUID=y -+CONFIG_CMD_GPIO=y -+CONFIG_CMD_GPT=y -+CONFIG_CMD_HASH=y -+CONFIG_CMD_ITEST=y -+CONFIG_CMD_LED=y -+CONFIG_CMD_LICENSE=y -+CONFIG_CMD_LINK_LOCAL=y -+# CONFIG_CMD_MBR is not set -+CONFIG_CMD_MMC=y -+CONFIG_CMD_MTD=y -+CONFIG_CMD_PCI=y -+CONFIG_CMD_SF_TEST=y -+CONFIG_CMD_PING=y -+CONFIG_CMD_PXE=y -+CONFIG_CMD_PWM=y -+CONFIG_CMD_SMC=y -+CONFIG_CMD_TFTPBOOT=y -+CONFIG_CMD_TFTPSRV=y +CONFIG_CMD_UBI=y +CONFIG_CMD_UBI_RENAME=y -+CONFIG_CMD_UBIFS=y -+CONFIG_CMD_ASKENV=y -+CONFIG_CMD_PART=y -+CONFIG_CMD_PSTORE=y -+CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 -+CONFIG_CMD_RARP=y -+CONFIG_CMD_SETEXPR=y -+CONFIG_CMD_SLEEP=y -+CONFIG_CMD_SNTP=y -+CONFIG_CMD_SOURCE=y -+CONFIG_CMD_STRINGS=y -+CONFIG_CMD_USB=y -+CONFIG_CMD_UUID=y -+CONFIG_DISPLAY_CPUINFO=y -+CONFIG_DM_MMC=y -+CONFIG_DM_MTD=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_REGULATOR_GPIO=y -+CONFIG_DM_USB=y -+CONFIG_DM_PWM=y -+CONFIG_PWM_MTK=y -+CONFIG_HUSH_PARSER=y ++CONFIG_ENV_IS_IN_MMC=y +CONFIG_SYS_REDUNDAND_ENVIRONMENT=y +CONFIG_SYS_RELOC_GD_ENV_ADDR=y -+CONFIG_ENV_IS_IN_MMC=y +CONFIG_SYS_MMC_ENV_DEV=1 -+CONFIG_ENV_OFFSET=0x400000 -+CONFIG_ENV_OFFSET_REDUND=0x480000 -+CONFIG_ENV_SIZE=0x80000 ++CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_DEFAULT_ENV_FILE="bananapi_bpi-r64-sdmmc_env" +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y +CONFIG_VERSION_VARIABLE=y -+CONFIG_PARTITION_UUIDS=y ++CONFIG_BOOTP_SEND_HOSTNAME=y ++CONFIG_NET_RANDOM_ETHADDR=y +CONFIG_NETCONSOLE=y -+CONFIG_REGMAP=y -+CONFIG_SYSCON=y -+CONFIG_CLK=y -+CONFIG_DM_GPIO=y -+CONFIG_DM_SCSI=y -+CONFIG_AHCI=y -+CONFIG_AHCI_PCI=y -+CONFIG_SCSI_AHCI=y -+CONFIG_SCSI=y -+CONFIG_CMD_SCSI=y -+CONFIG_PHY=y -+CONFIG_PHY_MTK_TPHY=y -+CONFIG_PHY_FIXED=y -+CONFIG_MTK_AHCI=y -+CONFIG_DM_ETH=y -+CONFIG_MEDIATEK_ETH=y -+CONFIG_PCI=y -+CONFIG_MTD=y -+CONFIG_MTD_UBI_FASTMAP=y -+CONFIG_DM_PCI=y -+CONFIG_PCIE_MEDIATEK=y -+CONFIG_PINCTRL=y -+CONFIG_PINCONF=y -+CONFIG_PINCTRL_MT7622=y -+CONFIG_POWER_DOMAIN=y -+CONFIG_PRE_CONSOLE_BUFFER=y -+CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 -+CONFIG_MTK_POWER_DOMAIN=y -+CONFIG_RAM=y -+CONFIG_DM_SERIAL=y -+CONFIG_MTK_SERIAL=y -+CONFIG_MMC=y -+CONFIG_MMC_DEFAULT_DEV=1 -+CONFIG_MMC_HS200_SUPPORT=y -+CONFIG_MMC_MTK=y -+CONFIG_MMC_SUPPORTS_TUNING=y -+CONFIG_SUPPORT_EMMC_BOOT=y -+CONFIG_SPI=y -+CONFIG_DM_SPI=y -+CONFIG_MTK_SPI_NAND=y -+CONFIG_MTK_SPI_NAND_MTD=y -+CONFIG_SYSRESET_WATCHDOG=y -+CONFIG_WDT_MTK=y -+CONFIG_LZO=y -+CONFIG_ZSTD=y -+CONFIG_HEXDUMP=y -+CONFIG_RANDOM_UUID=y -+CONFIG_REGEX=y -+CONFIG_USB=y -+CONFIG_USB_HOST=y -+CONFIG_USB_XHCI_HCD=y -+CONFIG_USB_XHCI_MTK=y -+CONFIG_USB_STORAGE=y +CONFIG_USE_IPADDR=y +CONFIG_IPADDR="192.168.1.1" +CONFIG_USE_SERVERIP=y +CONFIG_SERVERIP="192.168.1.254" ++CONFIG_REGMAP=y ++CONFIG_SYSCON=y ++CONFIG_SCSI_AHCI=y ++CONFIG_AHCI_PCI=y ++CONFIG_MTK_AHCI=y ++CONFIG_BUTTON=y ++CONFIG_BUTTON_GPIO=y ++CONFIG_CLK=y ++CONFIG_GPIO_HOG=y ++CONFIG_LED=y ++CONFIG_LED_BLINK=y ++CONFIG_LED_GPIO=y ++CONFIG_SUPPORT_EMMC_BOOT=y ++CONFIG_MMC_HS200_SUPPORT=y ++CONFIG_MMC_MTK=y ++CONFIG_MTD=y ++CONFIG_DM_MTD=y ++CONFIG_MTK_SPI_NAND=y ++CONFIG_MTK_SPI_NAND_MTD=y ++CONFIG_MTD_UBI_FASTMAP=y ++CONFIG_PHY_FIXED=y ++CONFIG_MEDIATEK_ETH=y ++CONFIG_PCIE_MEDIATEK=y ++CONFIG_PHY=y ++CONFIG_PHY_MTK_TPHY=y ++CONFIG_PINCTRL=y ++CONFIG_PINCONF=y ++CONFIG_PINCTRL_MT7622=y ++CONFIG_POWER_DOMAIN=y ++CONFIG_MTK_POWER_DOMAIN=y ++CONFIG_DM_REGULATOR=y ++CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_REGULATOR_GPIO=y ++CONFIG_DM_PWM=y ++CONFIG_PWM_MTK=y ++CONFIG_RAM=y ++CONFIG_SCSI=y ++CONFIG_DM_SERIAL=y ++CONFIG_MTK_SERIAL=y ++CONFIG_SPI=y ++CONFIG_DM_SPI=y ++CONFIG_USB=y ++CONFIG_USB_XHCI_HCD=y ++CONFIG_USB_XHCI_MTK=y ++CONFIG_USB_STORAGE=y ++CONFIG_ZSTD=y ++CONFIG_HEXDUMP=y --- /dev/null +++ b/bananapi_bpi-r64-sdmmc_env @@ -0,0 +1,81 @@ @@ -252,160 +217,126 @@ +_bootmenu_update_title=setenv _bootmenu_update_title ; setenv bootmenu_title "$bootmenu_title $ver" --- /dev/null +++ b/configs/mt7622_bananapi_bpi-r64-emmc_defconfig -@@ -0,0 +1,153 @@ +@@ -0,0 +1,119 @@ +CONFIG_ARM=y ++CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y -+CONFIG_TARGET_MT7622=y +CONFIG_TEXT_BASE=0x41e00000 +CONFIG_SYS_MALLOC_F_LEN=0x4000 -+CONFIG_SYS_LOAD_ADDR=0x40080000 -+CONFIG_SYS_HAS_NONCACHED_MEMORY=y -+CONFIG_USE_DEFAULT_ENV_FILE=y -+CONFIG_BOARD_LATE_INIT=y -+CONFIG_BOOTP_SEND_HOSTNAME=y +CONFIG_NR_DRAM_BANKS=1 -+CONFIG_DEBUG_UART_BASE=0x11002000 -+CONFIG_DEBUG_UART_CLOCK=25000000 ++CONFIG_ENV_SIZE=0x80000 ++CONFIG_ENV_OFFSET=0x400000 +CONFIG_DEFAULT_DEVICE_TREE="mt7622-bananapi-bpi-r64" +CONFIG_OF_LIBFDT_OVERLAY=y -+CONFIG_OF_SYSTEM_SETUP=y ++CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 ++CONFIG_DEBUG_UART_BASE=0x11002000 ++CONFIG_DEBUG_UART_CLOCK=25000000 ++CONFIG_ENV_OFFSET_REDUND=0x480000 ++CONFIG_SYS_LOAD_ADDR=0x40080000 ++CONFIG_PCI=y +CONFIG_DEBUG_UART=y -+CONFIG_DEFAULT_ENV_FILE="bananapi_bpi-r64-emmc_env" -+CONFIG_NET_RANDOM_ETHADDR=y -+CONFIG_SMBIOS_PRODUCT_NAME="" -+CONFIG_AUTOBOOT_KEYED=y -+CONFIG_BOOTDELAY=30 -+CONFIG_AUTOBOOT_MENU_SHOW=y -+CONFIG_CFB_CONSOLE_ANSI=y -+CONFIG_BUTTON=y -+CONFIG_BUTTON_GPIO=y -+CONFIG_GPIO_HOG=y -+CONFIG_CMD_ENV_FLAGS=y ++CONFIG_AHCI=y +CONFIG_FIT=y -+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y -+CONFIG_LED=y -+CONFIG_LED_BLINK=y -+CONFIG_LED_GPIO=y -+CONFIG_LOGLEVEL=7 -+CONFIG_LOG=y ++CONFIG_BOOTDELAY=30 ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_MENU_SHOW=y ++CONFIG_OF_SYSTEM_SETUP=y +CONFIG_DEFAULT_FDT_FILE="mt7622-bananapi-bpi-r64" ++CONFIG_LOGLEVEL=7 ++CONFIG_PRE_CONSOLE_BUFFER=y ++CONFIG_LOG=y ++CONFIG_BOARD_LATE_INIT=y ++CONFIG_HUSH_PARSER=y +CONFIG_SYS_PROMPT="MT7622> " ++CONFIG_CMD_LICENSE=y +# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y -+CONFIG_CMD_BOOTP=y -+CONFIG_CMD_BUTTON=y -+CONFIG_CMD_CACHE=y -+CONFIG_CMD_CDP=y -+CONFIG_CMD_DHCP=y -+CONFIG_CMD_DNS=y -+CONFIG_CMD_ECHO=y -+CONFIG_CMD_ENV_READMEM=y ++CONFIG_CMD_ASKENV=y +CONFIG_CMD_ERASEENV=y ++CONFIG_CMD_ENV_FLAGS=y ++CONFIG_CMD_STRINGS=y ++CONFIG_CMD_GPIO=y ++CONFIG_CMD_PWM=y ++CONFIG_CMD_GPT=y ++CONFIG_CMD_MMC=y ++CONFIG_CMD_PART=y ++CONFIG_CMD_PCI=y ++CONFIG_CMD_USB=y ++CONFIG_CMD_DHCP=y ++CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_RARP=y ++CONFIG_CMD_PING=y ++CONFIG_CMD_CDP=y ++CONFIG_CMD_SNTP=y ++CONFIG_CMD_DNS=y ++CONFIG_CMD_LINK_LOCAL=y ++CONFIG_CMD_PXE=y ++CONFIG_CMD_CACHE=y ++CONFIG_CMD_PSTORE=y ++CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 ++CONFIG_CMD_UUID=y ++CONFIG_CMD_HASH=y ++CONFIG_CMD_SMC=y +CONFIG_CMD_EXT4=y +CONFIG_CMD_FAT=y +CONFIG_CMD_FS_GENERIC=y +CONFIG_CMD_FS_UUID=y -+CONFIG_CMD_GPIO=y -+CONFIG_CMD_GPT=y -+CONFIG_CMD_HASH=y -+CONFIG_CMD_ITEST=y -+CONFIG_CMD_LED=y -+CONFIG_CMD_LICENSE=y -+CONFIG_CMD_LINK_LOCAL=y -+# CONFIG_CMD_MBR is not set -+CONFIG_CMD_MMC=y -+CONFIG_CMD_PCI=y -+CONFIG_CMD_SF_TEST=y -+CONFIG_CMD_PING=y -+CONFIG_CMD_PXE=y -+CONFIG_CMD_PWM=y -+CONFIG_CMD_SMC=y -+CONFIG_CMD_TFTPBOOT=y -+CONFIG_CMD_TFTPSRV=y -+CONFIG_CMD_ASKENV=y -+CONFIG_CMD_PART=y -+CONFIG_CMD_PSTORE=y -+CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 -+CONFIG_CMD_RARP=y -+CONFIG_CMD_SETEXPR=y -+CONFIG_CMD_SLEEP=y -+CONFIG_CMD_SNTP=y -+CONFIG_CMD_SOURCE=y -+CONFIG_CMD_STRINGS=y -+CONFIG_CMD_USB=y -+CONFIG_CMD_UUID=y -+CONFIG_DISPLAY_CPUINFO=y -+CONFIG_DM_MMC=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_REGULATOR_GPIO=y -+CONFIG_DM_USB=y -+CONFIG_DM_PWM=y -+CONFIG_PWM_MTK=y -+CONFIG_HUSH_PARSER=y ++CONFIG_ENV_IS_IN_MMC=y +CONFIG_SYS_REDUNDAND_ENVIRONMENT=y +CONFIG_SYS_RELOC_GD_ENV_ADDR=y -+CONFIG_ENV_IS_IN_MMC=y -+CONFIG_SYS_MMC_ENV_DEV=0 -+CONFIG_ENV_OFFSET=0x400000 -+CONFIG_ENV_OFFSET_REDUND=0x480000 -+CONFIG_ENV_SIZE=0x80000 ++CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_DEFAULT_ENV_FILE="bananapi_bpi-r64-emmc_env" +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y +CONFIG_VERSION_VARIABLE=y -+CONFIG_PARTITION_UUIDS=y ++CONFIG_BOOTP_SEND_HOSTNAME=y ++CONFIG_NET_RANDOM_ETHADDR=y +CONFIG_NETCONSOLE=y -+CONFIG_REGMAP=y -+CONFIG_SYSCON=y -+CONFIG_CLK=y -+CONFIG_DM_GPIO=y -+CONFIG_DM_SCSI=y -+CONFIG_AHCI=y -+CONFIG_AHCI_PCI=y -+CONFIG_SCSI_AHCI=y -+CONFIG_SCSI=y -+CONFIG_CMD_SCSI=y -+CONFIG_PHY=y -+CONFIG_PHY_MTK_TPHY=y -+CONFIG_PHY_FIXED=y -+CONFIG_MTK_AHCI=y -+CONFIG_DM_ETH=y -+CONFIG_MEDIATEK_ETH=y -+CONFIG_PCI=y -+CONFIG_DM_PCI=y -+CONFIG_PCIE_MEDIATEK=y -+CONFIG_PINCTRL=y -+CONFIG_PINCONF=y -+CONFIG_PINCTRL_MT7622=y -+CONFIG_POWER_DOMAIN=y -+CONFIG_PRE_CONSOLE_BUFFER=y -+CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 -+CONFIG_MTK_POWER_DOMAIN=y -+CONFIG_RAM=y -+CONFIG_DM_SERIAL=y -+CONFIG_MTK_SERIAL=y -+CONFIG_MMC=y -+CONFIG_MMC_DEFAULT_DEV=0 -+CONFIG_MMC_HS200_SUPPORT=y -+CONFIG_MMC_MTK=y -+CONFIG_MMC_SUPPORTS_TUNING=y -+CONFIG_SUPPORT_EMMC_BOOT=y -+CONFIG_SYSRESET_WATCHDOG=y -+CONFIG_WDT_MTK=y -+CONFIG_LZO=y -+CONFIG_ZSTD=y -+CONFIG_HEXDUMP=y -+CONFIG_RANDOM_UUID=y -+CONFIG_REGEX=y -+CONFIG_USB=y -+CONFIG_USB_HOST=y -+CONFIG_USB_XHCI_HCD=y -+CONFIG_USB_XHCI_MTK=y -+CONFIG_USB_STORAGE=y +CONFIG_USE_IPADDR=y +CONFIG_IPADDR="192.168.1.1" +CONFIG_USE_SERVERIP=y +CONFIG_SERVERIP="192.168.1.254" ++CONFIG_REGMAP=y ++CONFIG_SYSCON=y ++CONFIG_SCSI_AHCI=y ++CONFIG_AHCI_PCI=y ++CONFIG_MTK_AHCI=y ++CONFIG_BUTTON=y ++CONFIG_BUTTON_GPIO=y ++CONFIG_CLK=y ++CONFIG_GPIO_HOG=y ++CONFIG_LED=y ++CONFIG_LED_BLINK=y ++CONFIG_LED_GPIO=y ++CONFIG_SUPPORT_EMMC_BOOT=y ++CONFIG_MMC_HS200_SUPPORT=y ++CONFIG_MMC_MTK=y ++CONFIG_PHY_FIXED=y ++CONFIG_MEDIATEK_ETH=y ++CONFIG_PCIE_MEDIATEK=y ++CONFIG_PHY=y ++CONFIG_PHY_MTK_TPHY=y ++CONFIG_PINCTRL=y ++CONFIG_PINCONF=y ++CONFIG_PINCTRL_MT7622=y ++CONFIG_POWER_DOMAIN=y ++CONFIG_MTK_POWER_DOMAIN=y ++CONFIG_DM_REGULATOR=y ++CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_REGULATOR_GPIO=y ++CONFIG_DM_PWM=y ++CONFIG_PWM_MTK=y ++CONFIG_RAM=y ++CONFIG_SCSI=y ++CONFIG_DM_SERIAL=y ++CONFIG_MTK_SERIAL=y ++CONFIG_USB=y ++CONFIG_USB_XHCI_HCD=y ++CONFIG_USB_XHCI_MTK=y ++CONFIG_USB_STORAGE=y ++CONFIG_LZO=y ++CONFIG_ZSTD=y ++CONFIG_HEXDUMP=y --- /dev/null +++ b/bananapi_bpi-r64-emmc_env @@ -0,0 +1,56 @@ @@ -467,153 +398,115 @@ +_bootmenu_update_title=setenv _bootmenu_update_title ; setenv bootmenu_title "$bootmenu_title $ver" --- /dev/null +++ b/configs/mt7622_bananapi_bpi-r64-snand_defconfig -@@ -0,0 +1,146 @@ +@@ -0,0 +1,108 @@ +CONFIG_ARM=y ++CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y +CONFIG_TEXT_BASE=0x41e00000 +CONFIG_SYS_MALLOC_F_LEN=0x4000 -+CONFIG_SYS_LOAD_ADDR=0x40080000 -+CONFIG_SYS_HAS_NONCACHED_MEMORY=y -+CONFIG_USE_DEFAULT_ENV_FILE=y -+CONFIG_BOARD_LATE_INIT=y -+CONFIG_BOOTP_SEND_HOSTNAME=y +CONFIG_NR_DRAM_BANKS=1 -+CONFIG_DEBUG_UART_BASE=0x11002000 -+CONFIG_DEBUG_UART_CLOCK=25000000 +CONFIG_DEFAULT_DEVICE_TREE="mt7622-bananapi-bpi-r64" +CONFIG_OF_LIBFDT_OVERLAY=y -+CONFIG_OF_SYSTEM_SETUP=y ++CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 ++CONFIG_DEBUG_UART_BASE=0x11002000 ++CONFIG_DEBUG_UART_CLOCK=25000000 ++CONFIG_SYS_LOAD_ADDR=0x40080000 ++CONFIG_PCI=y +CONFIG_DEBUG_UART=y -+CONFIG_DEFAULT_ENV_FILE="bananapi_bpi-r64-snand_env" -+CONFIG_DISTRO_DEFAULTS=y -+CONFIG_NET_RANDOM_ETHADDR=y -+CONFIG_SMBIOS_PRODUCT_NAME="" -+CONFIG_AUTOBOOT_KEYED=y -+CONFIG_BOOTDELAY=30 -+CONFIG_AUTOBOOT_MENU_SHOW=y -+CONFIG_CFB_CONSOLE_ANSI=y -+CONFIG_BUTTON=y -+CONFIG_BUTTON_GPIO=y -+CONFIG_CMD_ENV_FLAGS=y +CONFIG_FIT=y -+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y -+CONFIG_LED=y -+CONFIG_LED_BLINK=y -+CONFIG_LED_GPIO=y -+CONFIG_LOGLEVEL=7 -+CONFIG_LOG=y ++CONFIG_DISTRO_DEFAULTS=y ++CONFIG_BOOTDELAY=30 ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_MENU_SHOW=y ++CONFIG_OF_SYSTEM_SETUP=y +CONFIG_DEFAULT_FDT_FILE="mediatek/mt7622-bananapi-bpi-r64.dtb" ++CONFIG_LOGLEVEL=7 ++CONFIG_PRE_CONSOLE_BUFFER=y ++CONFIG_LOG=y ++CONFIG_BOARD_LATE_INIT=y +CONFIG_SYS_PROMPT="MT7622> " ++CONFIG_CMD_LICENSE=y +# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y -+CONFIG_CMD_BOOTP=y -+CONFIG_CMD_BUTTON=y -+CONFIG_CMD_CDP=y -+CONFIG_CMD_DHCP=y -+CONFIG_CMD_DM=y -+CONFIG_CMD_DNS=y -+CONFIG_CMD_ECHO=y -+CONFIG_CMD_EFIDEBUG=y -+CONFIG_CMD_ENV_READMEM=y ++CONFIG_CMD_ASKENV=y +CONFIG_CMD_ERASEENV=y -+CONFIG_CMD_EXT4=y -+CONFIG_CMD_FAT=y -+CONFIG_CMD_FS_GENERIC=y -+CONFIG_CMD_FS_UUID=y ++CONFIG_CMD_ENV_FLAGS=y ++CONFIG_CMD_DM=y +CONFIG_CMD_GPIO=y +CONFIG_CMD_GPT=y -+CONFIG_CMD_HASH=y -+CONFIG_CMD_ITEST=y -+CONFIG_CMD_LED=y -+CONFIG_CMD_LICENSE=y -+CONFIG_CMD_LINK_LOCAL=y -+# CONFIG_CMD_MBR is not set +CONFIG_CMD_MMC=y +CONFIG_CMD_MTD=y +CONFIG_CMD_PCI=y -+CONFIG_CMD_PING=y -+CONFIG_CMD_PXE=y -+CONFIG_CMD_SMC=y -+CONFIG_CMD_TFTPBOOT=y ++CONFIG_CMD_USB=y +CONFIG_CMD_TFTPSRV=y -+CONFIG_CMD_UBI=y -+CONFIG_CMD_UBI_RENAME=y -+CONFIG_CMD_UBIFS=y -+CONFIG_CMD_ASKENV=y -+CONFIG_CMD_PART=y ++CONFIG_CMD_RARP=y ++CONFIG_CMD_CDP=y ++CONFIG_CMD_SNTP=y ++CONFIG_CMD_DNS=y ++CONFIG_CMD_LINK_LOCAL=y ++CONFIG_CMD_EFIDEBUG=y +CONFIG_CMD_PSTORE=y +CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 -+CONFIG_CMD_RARP=y -+CONFIG_CMD_SETEXPR=y -+CONFIG_CMD_SLEEP=y -+CONFIG_CMD_SNTP=y -+CONFIG_CMD_SOURCE=y -+CONFIG_CMD_USB=y +CONFIG_CMD_UUID=y -+CONFIG_DISPLAY_CPUINFO=y -+CONFIG_DM_MMC=y -+CONFIG_DM_MTD=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_REGULATOR_GPIO=y -+CONFIG_DM_USB=y -+CONFIG_HUSH_PARSER=y -+CONFIG_SYS_REDUNDAND_ENVIRONMENT=y -+CONFIG_SYS_RELOC_GD_ENV_ADDR=y ++CONFIG_CMD_HASH=y ++CONFIG_CMD_SMC=y ++CONFIG_CMD_FS_UUID=y ++CONFIG_CMD_UBI=y ++CONFIG_CMD_UBI_RENAME=y +CONFIG_ENV_IS_IN_UBI=y ++CONFIG_SYS_REDUNDAND_ENVIRONMENT=y +CONFIG_ENV_UBI_PART="ubi" +CONFIG_ENV_UBI_VOLUME="ubootenv" +CONFIG_ENV_UBI_VOLUME_REDUND="ubootenv2" ++CONFIG_SYS_RELOC_GD_ENV_ADDR=y ++CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_DEFAULT_ENV_FILE="bananapi_bpi-r64-snand_env" +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y +CONFIG_VERSION_VARIABLE=y -+CONFIG_PARTITION_UUIDS=y ++CONFIG_BOOTP_SEND_HOSTNAME=y ++CONFIG_NET_RANDOM_ETHADDR=y +CONFIG_NETCONSOLE=y ++CONFIG_USE_IPADDR=y ++CONFIG_IPADDR="192.168.1.1" ++CONFIG_USE_SERVERIP=y ++CONFIG_SERVERIP="192.168.1.3" +CONFIG_REGMAP=y +CONFIG_SYSCON=y ++CONFIG_BUTTON=y ++CONFIG_BUTTON_GPIO=y +CONFIG_CLK=y -+CONFIG_PHY_FIXED=y -+CONFIG_DM_ETH=y -+CONFIG_MEDIATEK_ETH=y -+CONFIG_PCI=y ++CONFIG_LED=y ++CONFIG_LED_BLINK=y ++CONFIG_LED_GPIO=y ++CONFIG_SUPPORT_EMMC_BOOT=y ++CONFIG_MMC_MTK=y +CONFIG_MTD=y ++CONFIG_DM_MTD=y ++CONFIG_MTK_SPI_NAND=y ++CONFIG_MTK_SPI_NAND_MTD=y +CONFIG_MTD_UBI_FASTMAP=y -+CONFIG_DM_PCI=y ++CONFIG_PHY_FIXED=y ++CONFIG_MEDIATEK_ETH=y +CONFIG_PCIE_MEDIATEK=y +CONFIG_PINCTRL=y +CONFIG_PINCONF=y +CONFIG_PINCTRL_MT7622=y +CONFIG_POWER_DOMAIN=y -+CONFIG_PRE_CONSOLE_BUFFER=y -+CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 +CONFIG_MTK_POWER_DOMAIN=y ++CONFIG_DM_REGULATOR=y ++CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_REGULATOR_GPIO=y +CONFIG_RAM=y +CONFIG_DM_SERIAL=y +CONFIG_MTK_SERIAL=y -+CONFIG_MMC=y -+CONFIG_MMC_DEFAULT_DEV=1 -+CONFIG_MMC_MTK=y -+CONFIG_SUPPORT_EMMC_BOOT=y +CONFIG_SPI=y +CONFIG_DM_SPI=y -+CONFIG_MTK_SPI_NAND=y -+CONFIG_MTK_SPI_NAND_MTD=y -+CONFIG_SYSRESET_WATCHDOG=y -+CONFIG_WDT_MTK=y -+CONFIG_LZO=y -+CONFIG_ZSTD=y -+CONFIG_HEXDUMP=y -+CONFIG_RANDOM_UUID=y -+CONFIG_REGEX=y +CONFIG_USB=y -+CONFIG_USB_HOST=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_XHCI_MTK=y -+CONFIG_USB_STORAGE=y -+CONFIG_USE_IPADDR=y -+CONFIG_IPADDR="192.168.1.1" -+CONFIG_USE_SERVERIP=y -+CONFIG_SERVERIP="192.168.1.3" ++CONFIG_ZSTD=y ++CONFIG_HEXDUMP=y --- /dev/null +++ b/bananapi_bpi-r64-snand_env @@ -0,0 +1,56 @@ diff --git a/package/boot/uboot-mediatek/patches/410-add-linksys-e8450.patch b/package/boot/uboot-mediatek/patches/410-add-linksys-e8450.patch index 4d9b0ba9e2..a4cb75b277 100644 --- a/package/boot/uboot-mediatek/patches/410-add-linksys-e8450.patch +++ b/package/boot/uboot-mediatek/patches/410-add-linksys-e8450.patch @@ -1,147 +1,118 @@ --- /dev/null +++ b/configs/mt7622_linksys_e8450_defconfig -@@ -0,0 +1,141 @@ +@@ -0,0 +1,112 @@ +CONFIG_ARM=y ++CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y -+CONFIG_TARGET_MT7622=y +CONFIG_TEXT_BASE=0x41e00000 +CONFIG_SYS_MALLOC_F_LEN=0x4000 -+CONFIG_SYS_LOAD_ADDR=0x40080000 -+CONFIG_USE_DEFAULT_ENV_FILE=y -+CONFIG_BOARD_LATE_INIT=y -+CONFIG_BOOTP_SEND_HOSTNAME=y -+CONFIG_DEFAULT_ENV_FILE="linksys_e8450_env" +CONFIG_NR_DRAM_BANKS=1 ++CONFIG_DEFAULT_DEVICE_TREE="mt7622-linksys-e8450-ubi" ++CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 +CONFIG_DEBUG_UART_BASE=0x11002000 +CONFIG_DEBUG_UART_CLOCK=25000000 -+CONFIG_DEFAULT_DEVICE_TREE="mt7622-linksys-e8450-ubi" ++CONFIG_SYS_LOAD_ADDR=0x40080000 ++CONFIG_PCI=y +CONFIG_DEBUG_UART=y -+CONFIG_SMBIOS_PRODUCT_NAME="" -+CONFIG_AUTOBOOT_KEYED=y -+CONFIG_BOOTDELAY=30 -+CONFIG_AUTOBOOT_MENU_SHOW=y -+CONFIG_CFB_CONSOLE_ANSI=y -+CONFIG_BUTTON=y -+CONFIG_BUTTON_GPIO=y -+CONFIG_GPIO_HOG=y -+CONFIG_CMD_ENV_FLAGS=y +CONFIG_FIT=y -+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y -+CONFIG_LED=y -+CONFIG_LED_BLINK=y -+CONFIG_LED_GPIO=y -+CONFIG_LOGLEVEL=7 -+CONFIG_LOG=y ++CONFIG_BOOTDELAY=30 ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_MENU_SHOW=y +CONFIG_DEFAULT_FDT_FILE="mt7622-linksys-e8450" ++CONFIG_LOGLEVEL=7 ++CONFIG_PRE_CONSOLE_BUFFER=y ++CONFIG_LOG=y ++CONFIG_BOARD_LATE_INIT=y ++CONFIG_HUSH_PARSER=y +CONFIG_SYS_PROMPT="MT7622> " ++CONFIG_CMD_LICENSE=y +# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y -+CONFIG_CMD_BOOTP=y -+CONFIG_CMD_BUTTON=y -+CONFIG_CMD_CDP=y -+CONFIG_CMD_DHCP=y -+CONFIG_CMD_DNS=y -+CONFIG_CMD_ECHO=y -+CONFIG_CMD_ENV_READMEM=y ++CONFIG_CMD_ASKENV=y +CONFIG_CMD_ERASEENV=y ++CONFIG_CMD_ENV_FLAGS=y ++CONFIG_CMD_GPIO=y ++CONFIG_CMD_GPT=y ++CONFIG_CMD_MTD=y ++CONFIG_CMD_PART=y ++CONFIG_CMD_PCI=y ++CONFIG_CMD_USB=y ++CONFIG_CMD_DHCP=y ++CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_RARP=y ++CONFIG_CMD_PING=y ++CONFIG_CMD_CDP=y ++CONFIG_CMD_SNTP=y ++CONFIG_CMD_DNS=y ++CONFIG_CMD_LINK_LOCAL=y ++CONFIG_CMD_PXE=y ++CONFIG_CMD_PSTORE=y ++CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 ++CONFIG_CMD_UUID=y ++CONFIG_CMD_HASH=y ++CONFIG_CMD_SMC=y +CONFIG_CMD_EXT4=y +CONFIG_CMD_FAT=y +CONFIG_CMD_FS_GENERIC=y +CONFIG_CMD_FS_UUID=y -+CONFIG_CMD_GPIO=y -+CONFIG_CMD_GPT=y -+CONFIG_CMD_HASH=y -+CONFIG_CMD_ITEST=y -+CONFIG_CMD_LED=y -+CONFIG_CMD_LICENSE=y -+CONFIG_CMD_LINK_LOCAL=y -+# CONFIG_CMD_MBR is not set -+CONFIG_CMD_MTD=y +CONFIG_CMD_MTDPARTS=y -+CONFIG_CMD_PCI=y -+CONFIG_CMD_SF_TEST=y -+CONFIG_CMD_PING=y -+CONFIG_CMD_PXE=y -+CONFIG_CMD_SMC=y -+CONFIG_CMD_TFTPBOOT=y -+CONFIG_CMD_TFTPSRV=y +CONFIG_CMD_UBI=y +CONFIG_CMD_UBI_RENAME=y -+CONFIG_CMD_UBIFS=y -+CONFIG_CMD_ASKENV=y -+CONFIG_CMD_PART=y -+CONFIG_CMD_PSTORE=y -+CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 -+CONFIG_CMD_RARP=y -+CONFIG_CMD_SETEXPR=y -+CONFIG_CMD_SLEEP=y -+CONFIG_CMD_SNTP=y -+CONFIG_CMD_SOURCE=y -+CONFIG_CMD_USB=y -+CONFIG_CMD_UUID=y -+CONFIG_DISPLAY_CPUINFO=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_REGULATOR_GPIO=y -+CONFIG_DM_USB=y -+CONFIG_HUSH_PARSER=y -+CONFIG_SYS_REDUNDAND_ENVIRONMENT=y -+CONFIG_SYS_RELOC_GD_ENV_ADDR=y +CONFIG_ENV_IS_IN_UBI=y ++CONFIG_SYS_REDUNDAND_ENVIRONMENT=y +CONFIG_ENV_UBI_PART="ubi" +CONFIG_ENV_UBI_VOLUME="ubootenv" +CONFIG_ENV_UBI_VOLUME_REDUND="ubootenv2" ++CONFIG_SYS_RELOC_GD_ENV_ADDR=y ++CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_DEFAULT_ENV_FILE="linksys_e8450_env" +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y +CONFIG_VERSION_VARIABLE=y -+CONFIG_PARTITION_UUIDS=y ++CONFIG_BOOTP_SEND_HOSTNAME=y +CONFIG_NETCONSOLE=y ++CONFIG_USE_IPADDR=y ++CONFIG_IPADDR="192.168.1.1" ++CONFIG_USE_SERVERIP=y ++CONFIG_SERVERIP="192.168.1.254" +CONFIG_REGMAP=y +CONFIG_SYSCON=y ++CONFIG_BUTTON=y ++CONFIG_BUTTON_GPIO=y +CONFIG_CLK=y ++CONFIG_GPIO_HOG=y ++CONFIG_LED=y ++CONFIG_LED_BLINK=y ++CONFIG_LED_GPIO=y ++CONFIG_MTD=y +CONFIG_DM_MTD=y -+CONFIG_DM_GPIO=y ++CONFIG_MTK_SPI_NAND=y ++CONFIG_MTK_SPI_NAND_MTD=y ++CONFIG_MTD_UBI_FASTMAP=y ++CONFIG_PHY_FIXED=y ++CONFIG_MEDIATEK_ETH=y ++CONFIG_PCIE_MEDIATEK=y +CONFIG_PHY=y +CONFIG_PHY_MTK_TPHY=y -+CONFIG_PHY_FIXED=y -+CONFIG_DM_ETH=y -+CONFIG_MEDIATEK_ETH=y -+CONFIG_PCI=y -+CONFIG_MTD=y -+CONFIG_MTD_UBI_FASTMAP=y -+CONFIG_DM_PCI=y -+CONFIG_PCIE_MEDIATEK=y +CONFIG_PINCTRL=y +CONFIG_PINCONF=y +CONFIG_PINCTRL_MT7622=y +CONFIG_POWER_DOMAIN=y -+CONFIG_PRE_CONSOLE_BUFFER=y -+CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 +CONFIG_MTK_POWER_DOMAIN=y ++CONFIG_DM_REGULATOR=y ++CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_REGULATOR_GPIO=y +CONFIG_RAM=y +CONFIG_DM_SERIAL=y +CONFIG_MTK_SERIAL=y +CONFIG_SPI=y +CONFIG_DM_SPI=y -+CONFIG_MTK_SPI_NAND=y -+CONFIG_MTK_SPI_NAND_MTD=y -+CONFIG_SYSRESET_WATCHDOG=y -+CONFIG_SYS_HAS_NONCACHED_MEMORY=y -+CONFIG_WDT_MTK=y -+CONFIG_LZO=y -+CONFIG_ZSTD=y -+CONFIG_HEXDUMP=y -+CONFIG_RANDOM_UUID=y -+CONFIG_REGEX=y -+CONFIG_USE_IPADDR=y -+CONFIG_IPADDR="192.168.1.1" -+CONFIG_USE_SERVERIP=y -+CONFIG_SERVERIP="192.168.1.254" +CONFIG_USB=y -+CONFIG_USB_HOST=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_XHCI_MTK=y +CONFIG_USB_STORAGE=y ++CONFIG_ZSTD=y ++CONFIG_HEXDUMP=y --- /dev/null +++ b/arch/arm/dts/mt7622-linksys-e8450-ubi.dts @@ -0,0 +1,214 @@ diff --git a/package/boot/uboot-mediatek/patches/412-add-ubnt-unifi-6-lr.patch b/package/boot/uboot-mediatek/patches/412-add-ubnt-unifi-6-lr.patch index 1cdbda9103..3a743384af 100644 --- a/package/boot/uboot-mediatek/patches/412-add-ubnt-unifi-6-lr.patch +++ b/package/boot/uboot-mediatek/patches/412-add-ubnt-unifi-6-lr.patch @@ -1,140 +1,85 @@ --- /dev/null +++ b/configs/mt7622_ubnt_unifi-6-lr-v1_defconfig -@@ -0,0 +1,148 @@ +@@ -0,0 +1,113 @@ +CONFIG_ARM=y ++CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y -+CONFIG_TARGET_MT7622=y +CONFIG_TEXT_BASE=0x41e00000 +CONFIG_SYS_MALLOC_F_LEN=0x4000 ++CONFIG_ENV_SIZE=0x4000 ++CONFIG_ENV_OFFSET=0xc0000 ++CONFIG_DEFAULT_DEVICE_TREE="mt7622-ubnt-unifi-6-lr" ++CONFIG_RESET_BUTTON_SETTLE_DELAY=400 ++CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 ++CONFIG_DEBUG_UART_BASE=0x11002000 ++CONFIG_DEBUG_UART_CLOCK=25000000 +CONFIG_SYS_LOAD_ADDR=0x40080000 -+CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_DEBUG_UART=y ++CONFIG_FIT=y ++# CONFIG_LEGACY_IMAGE_FORMAT is not set ++CONFIG_BOOTDELAY=30 ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_MENU_SHOW=y ++CONFIG_DEFAULT_FDT_FILE="mt7622-ubnt-unifi-6-lr" ++CONFIG_LOGLEVEL=7 ++CONFIG_PRE_CONSOLE_BUFFER=y ++CONFIG_LOG=y ++CONFIG_BOARD_LATE_INIT=y ++CONFIG_HUSH_PARSER=y ++CONFIG_SYS_PROMPT="MT7622> " ++# CONFIG_BOOTM_PLAN9 is not set ++# CONFIG_BOOTM_RTEMS is not set ++# CONFIG_BOOTM_VXWORKS is not set ++CONFIG_CMD_BOOTMENU=y ++# CONFIG_CMD_ELF is not set ++CONFIG_CMD_ASKENV=y ++CONFIG_CMD_ERASEENV=y ++CONFIG_CMD_ENV_FLAGS=y ++# CONFIG_CMD_UNLZ4 is not set ++CONFIG_CMD_GPIO=y ++CONFIG_CMD_MTD=y ++CONFIG_CMD_SF_TEST=y ++CONFIG_CMD_DHCP=y ++CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_RARP=y ++CONFIG_CMD_PING=y ++CONFIG_CMD_CDP=y ++CONFIG_CMD_DNS=y ++CONFIG_CMD_LINK_LOCAL=y ++CONFIG_CMD_PXE=y ++CONFIG_CMD_PSTORE=y ++CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 ++CONFIG_CMD_UUID=y ++CONFIG_CMD_HASH=y ++CONFIG_CMD_SMC=y ++CONFIG_CMD_MTDPARTS=y +CONFIG_MTDPARTS_DEFAULT="mtdparts=nor0:128k(bl2),640k(fip),64k(u-boot-env),256k(factory),64k(eeprom),15232k(recovery),-(firmware)" +CONFIG_ENV_IS_IN_MTD=y +CONFIG_ENV_MTD_NAME="nor0" +CONFIG_ENV_SIZE_REDUND=0x4000 -+CONFIG_ENV_SIZE=0x4000 -+CONFIG_ENV_OFFSET=0xc0000 -+CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y -+CONFIG_BOARD_LATE_INIT=y -+CONFIG_RESET_BUTTON_SETTLE_DELAY=400 -+CONFIG_BOOTP_SEND_HOSTNAME=y -+CONFIG_DEFAULT_ENV_FILE="ubnt_unifi-6-lr_env" -+CONFIG_DEBUG_UART_BASE=0x11002000 -+CONFIG_DEBUG_UART_CLOCK=25000000 -+CONFIG_DEFAULT_DEVICE_TREE="mt7622-ubnt-unifi-6-lr" -+CONFIG_DEBUG_UART=y -+CONFIG_SMBIOS_PRODUCT_NAME="" -+CONFIG_AUTOBOOT_KEYED=y -+CONFIG_BOOTDELAY=30 -+CONFIG_AUTOBOOT_MENU_SHOW=y -+CONFIG_CFB_CONSOLE_ANSI=y -+CONFIG_BUTTON=y -+CONFIG_BUTTON_GPIO=y -+CONFIG_GPIO_HOG=y -+CONFIG_CMD_ENV_FLAGS=y -+CONFIG_FIT=y -+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y -+CONFIG_LOGLEVEL=7 -+CONFIG_LOG=y -+CONFIG_DEFAULT_FDT_FILE="mt7622-ubnt-unifi-6-lr" -+CONFIG_SYS_PROMPT="MT7622> " -+# CONFIG_LEGACY_IMAGE_FORMAT is not set -+# CONFIG_BOOTM_PLAN9 is not set -+# CONFIG_BOOTM_RTEMS is not set -+# CONFIG_BOOTM_VXWORKS is not set -+# CONFIG_EFI is not set -+# CONFIG_EFI_LOADER is not set -+# CONFIG_CMD_BOOTEFI_BOOTMGR is not set -+CONFIG_CMD_BOOTMENU=y -+# CONFIG_CMD_BOOTEFI is not set -+CONFIG_CMD_BOOTP=y -+CONFIG_CMD_BUTTON=y -+CONFIG_CMD_CDP=y -+CONFIG_CMD_DHCP=y -+CONFIG_CMD_DNS=y -+CONFIG_CMD_ECHO=y -+# CONFIG_CMD_ELF is not set -+# CONFIG_CMD_BOOTEFI_BOOTMGR is not set -+CONFIG_CMD_ENV_READMEM=y -+CONFIG_CMD_ERASEENV=y -+CONFIG_CMD_GPIO=y -+CONFIG_CMD_HASH=y -+CONFIG_CMD_ITEST=y -+CONFIG_CMD_LED=y -+CONFIG_CMD_LINK_LOCAL=y -+# CONFIG_CMD_MBR is not set -+CONFIG_CMD_MTD=y -+CONFIG_CMD_MTDPARTS=y -+# CONFIG_CMD_PCI is not set -+CONFIG_CMD_SF_TEST=y -+CONFIG_CMD_PING=y -+CONFIG_CMD_PXE=y -+CONFIG_CMD_SMC=y -+CONFIG_CMD_TFTPBOOT=y -+CONFIG_CMD_TFTPSRV=y -+# CONFIG_CMD_UNLZ4 is not set -+CONFIG_CMD_ASKENV=y -+CONFIG_CMD_PSTORE=y -+CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 -+CONFIG_CMD_RARP=y -+CONFIG_CMD_SETEXPR=y -+CONFIG_CMD_SLEEP=y -+CONFIG_CMD_SOURCE=y -+CONFIG_CMD_UUID=y -+CONFIG_DISPLAY_CPUINFO=y -+CONFIG_DM_ETH=y -+CONFIG_DM_ETH_PHY=y -+CONFIG_DM_GPIO=y -+CONFIG_DM_MDIO=y -+CONFIG_DM_MTD=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_REGULATOR_GPIO=y -+# CONFIG_DM_MMC is not set -+CONFIG_DM_SERIAL=y -+CONFIG_DM_SPI=y -+CONFIG_DM_SPI_FLASH=y -+CONFIG_HUSH_PARSER=y -+# CONFIG_PARTITION_UUIDS is not set +CONFIG_SYS_RELOC_GD_ENV_ADDR=y -+# CONFIG_LED is not set -+# CONFIG_LZ4 is not set ++CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_DEFAULT_ENV_FILE="ubnt_unifi-6-lr_env" ++CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y +CONFIG_VERSION_VARIABLE=y ++CONFIG_BOOTP_SEND_HOSTNAME=y +CONFIG_NETCONSOLE=y ++CONFIG_USE_IPADDR=y ++CONFIG_IPADDR="192.168.1.1" ++CONFIG_USE_SERVERIP=y ++CONFIG_SERVERIP="192.168.1.254" +CONFIG_REGMAP=y +CONFIG_SYSCON=y ++CONFIG_BUTTON=y ++CONFIG_BUTTON_GPIO=y +CONFIG_CLK=y -+CONFIG_PHY=y -+CONFIG_PHY_FIXED=y -+CONFIG_PHYLIB_10G=y -+CONFIG_PHY_AQUANTIA=y -+CONFIG_PHY_ADDR_ENABLE=y -+CONFIG_PHY_ADDR=8 -+CONFIG_MEDIATEK_ETH=y -+CONFIG_MTD=y ++CONFIG_GPIO_HOG=y +# CONFIG_MMC is not set -+CONFIG_PINCTRL=y -+CONFIG_PINCONF=y -+CONFIG_PINCTRL_MT7622=y -+CONFIG_POWER_DOMAIN=y -+CONFIG_PRE_CONSOLE_BUFFER=y -+CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 -+CONFIG_MTK_POWER_DOMAIN=y -+CONFIG_RAM=y -+CONFIG_MTK_SERIAL=y -+CONFIG_SPI=y -+CONFIG_MTK_SNFI_SPI=y -+CONFIG_MTK_SNOR=y -+CONFIG_SYSRESET_WATCHDOG=y -+CONFIG_WDT_MTK=y -+CONFIG_HEXDUMP=y -+CONFIG_RANDOM_UUID=y -+CONFIG_REGEX=y -+CONFIG_SPI_FLASH=y ++CONFIG_MTD=y ++CONFIG_DM_MTD=y ++CONFIG_DM_SPI_FLASH=y +CONFIG_SPI_FLASH_BAR=y -+CONFIG_SPI_FLASH_MTD=y -+CONFIG_SPI_FLASH_UNLOCK_ALL=y +CONFIG_SPI_FLASH_EON=y +CONFIG_SPI_FLASH_GIGADEVICE=y +CONFIG_SPI_FLASH_MACRONIX=y @@ -143,299 +88,230 @@ +CONFIG_SPI_FLASH_SST=y +CONFIG_SPI_FLASH_WINBOND=y +CONFIG_SPI_FLASH_XMC=y -+CONFIG_SPI_FLASH_USE_4K_SECTORS=y -+CONFIG_SYS_HAS_NONCACHED_MEMORY=y -+CONFIG_USE_IPADDR=y -+CONFIG_IPADDR="192.168.1.1" -+CONFIG_USE_SERVERIP=y -+CONFIG_SERVERIP="192.168.1.254" ++CONFIG_SPI_FLASH_MTD=y ++CONFIG_PHY_ADDR_ENABLE=y ++CONFIG_PHY_ADDR=8 ++CONFIG_PHY_AQUANTIA=y ++CONFIG_PHY_FIXED=y ++CONFIG_DM_MDIO=y ++CONFIG_DM_ETH_PHY=y ++CONFIG_MEDIATEK_ETH=y ++CONFIG_PHY=y ++CONFIG_PINCTRL=y ++CONFIG_PINCONF=y ++CONFIG_PINCTRL_MT7622=y ++CONFIG_POWER_DOMAIN=y ++CONFIG_MTK_POWER_DOMAIN=y ++CONFIG_DM_REGULATOR=y ++CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_REGULATOR_GPIO=y ++CONFIG_RAM=y ++CONFIG_DM_SERIAL=y ++CONFIG_MTK_SERIAL=y ++CONFIG_SPI=y ++CONFIG_DM_SPI=y ++CONFIG_MTK_SNOR=y ++CONFIG_MTK_SNFI_SPI=y ++CONFIG_RANDOM_UUID=y ++CONFIG_HEXDUMP=y --- /dev/null +++ b/configs/mt7622_ubnt_unifi-6-lr-v2_defconfig -@@ -0,0 +1,148 @@ +@@ -0,0 +1,113 @@ +CONFIG_ARM=y ++CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y -+CONFIG_TARGET_MT7622=y +CONFIG_TEXT_BASE=0x41e00000 +CONFIG_SYS_MALLOC_F_LEN=0x4000 ++CONFIG_ENV_SIZE=0x4000 ++CONFIG_ENV_OFFSET=0xc0000 ++CONFIG_DEFAULT_DEVICE_TREE="mt7622-ubnt-unifi-6-lr" ++CONFIG_RESET_BUTTON_SETTLE_DELAY=400 ++CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 ++CONFIG_DEBUG_UART_BASE=0x11002000 ++CONFIG_DEBUG_UART_CLOCK=25000000 +CONFIG_SYS_LOAD_ADDR=0x40080000 -+CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_DEBUG_UART=y ++CONFIG_FIT=y ++# CONFIG_LEGACY_IMAGE_FORMAT is not set ++CONFIG_BOOTDELAY=30 ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_MENU_SHOW=y ++CONFIG_DEFAULT_FDT_FILE="mt7622-ubnt-unifi-6-lr" ++CONFIG_LOGLEVEL=7 ++CONFIG_PRE_CONSOLE_BUFFER=y ++CONFIG_LOG=y ++CONFIG_BOARD_LATE_INIT=y ++CONFIG_HUSH_PARSER=y ++CONFIG_SYS_PROMPT="MT7622> " ++# CONFIG_BOOTM_PLAN9 is not set ++# CONFIG_BOOTM_RTEMS is not set ++# CONFIG_BOOTM_VXWORKS is not set ++CONFIG_CMD_BOOTMENU=y ++# CONFIG_CMD_ELF is not set ++CONFIG_CMD_ASKENV=y ++CONFIG_CMD_ERASEENV=y ++CONFIG_CMD_ENV_FLAGS=y ++# CONFIG_CMD_UNLZ4 is not set ++CONFIG_CMD_GPIO=y ++CONFIG_CMD_MTD=y ++CONFIG_CMD_SF_TEST=y ++CONFIG_CMD_DHCP=y ++CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_RARP=y ++CONFIG_CMD_PING=y ++CONFIG_CMD_CDP=y ++CONFIG_CMD_DNS=y ++CONFIG_CMD_LINK_LOCAL=y ++CONFIG_CMD_PXE=y ++CONFIG_CMD_PSTORE=y ++CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 ++CONFIG_CMD_UUID=y ++CONFIG_CMD_HASH=y ++CONFIG_CMD_SMC=y ++CONFIG_CMD_MTDPARTS=y +CONFIG_MTDPARTS_DEFAULT="mtdparts=nor0:128k(bl2),640k(fip),64k(u-boot-env),256k(factory),64k(eeprom),15232k(recovery),-(firmware)" +CONFIG_ENV_IS_IN_MTD=y +CONFIG_ENV_MTD_NAME="nor0" +CONFIG_ENV_SIZE_REDUND=0x4000 -+CONFIG_ENV_SIZE=0x4000 -+CONFIG_ENV_OFFSET=0xc0000 -+CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y -+CONFIG_BOARD_LATE_INIT=y -+CONFIG_RESET_BUTTON_SETTLE_DELAY=400 -+CONFIG_BOOTP_SEND_HOSTNAME=y -+CONFIG_DEFAULT_ENV_FILE="ubnt_unifi-6-lr-v2_env" -+CONFIG_DEBUG_UART_BASE=0x11002000 -+CONFIG_DEBUG_UART_CLOCK=25000000 -+CONFIG_DEFAULT_DEVICE_TREE="mt7622-ubnt-unifi-6-lr" -+CONFIG_DEBUG_UART=y -+CONFIG_SMBIOS_PRODUCT_NAME="" -+CONFIG_AUTOBOOT_KEYED=y -+CONFIG_BOOTDELAY=30 -+CONFIG_AUTOBOOT_MENU_SHOW=y -+CONFIG_CFB_CONSOLE_ANSI=y -+CONFIG_BUTTON=y -+CONFIG_BUTTON_GPIO=y -+CONFIG_GPIO_HOG=y -+CONFIG_CMD_ENV_FLAGS=y -+CONFIG_FIT=y -+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y -+CONFIG_LOGLEVEL=7 -+CONFIG_LOG=y -+CONFIG_DEFAULT_FDT_FILE="mt7622-ubnt-unifi-6-lr" -+CONFIG_SYS_PROMPT="MT7622> " -+# CONFIG_LEGACY_IMAGE_FORMAT is not set -+# CONFIG_BOOTM_PLAN9 is not set -+# CONFIG_BOOTM_RTEMS is not set -+# CONFIG_BOOTM_VXWORKS is not set -+# CONFIG_EFI is not set -+# CONFIG_EFI_LOADER is not set -+# CONFIG_CMD_BOOTEFI_BOOTMGR is not set -+CONFIG_CMD_BOOTMENU=y -+# CONFIG_CMD_BOOTEFI is not set -+CONFIG_CMD_BOOTP=y -+CONFIG_CMD_BUTTON=y -+CONFIG_CMD_CDP=y -+CONFIG_CMD_DHCP=y -+CONFIG_CMD_DNS=y -+CONFIG_CMD_ECHO=y -+# CONFIG_CMD_ELF is not set -+# CONFIG_CMD_BOOTEFI_BOOTMGR is not set -+CONFIG_CMD_ENV_READMEM=y -+CONFIG_CMD_ERASEENV=y -+CONFIG_CMD_GPIO=y -+CONFIG_CMD_HASH=y -+CONFIG_CMD_ITEST=y -+CONFIG_CMD_LED=y -+CONFIG_CMD_LINK_LOCAL=y -+# CONFIG_CMD_MBR is not set -+CONFIG_CMD_MTD=y -+CONFIG_CMD_MTDPARTS=y -+# CONFIG_CMD_PCI is not set -+CONFIG_CMD_SF_TEST=y -+CONFIG_CMD_PING=y -+CONFIG_CMD_PXE=y -+CONFIG_CMD_SMC=y -+CONFIG_CMD_TFTPBOOT=y -+CONFIG_CMD_TFTPSRV=y -+# CONFIG_CMD_UNLZ4 is not set -+CONFIG_CMD_ASKENV=y -+CONFIG_CMD_PSTORE=y -+CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 -+CONFIG_CMD_RARP=y -+CONFIG_CMD_SETEXPR=y -+CONFIG_CMD_SLEEP=y -+CONFIG_CMD_SOURCE=y -+CONFIG_CMD_UUID=y -+CONFIG_DISPLAY_CPUINFO=y -+CONFIG_DM_ETH=y -+CONFIG_DM_ETH_PHY=y -+CONFIG_DM_GPIO=y -+CONFIG_DM_MDIO=y -+CONFIG_DM_MTD=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_REGULATOR_GPIO=y -+# CONFIG_DM_MMC is not set -+CONFIG_DM_SERIAL=y -+CONFIG_DM_SPI=y -+CONFIG_DM_SPI_FLASH=y -+CONFIG_HUSH_PARSER=y -+# CONFIG_PARTITION_UUIDS is not set +CONFIG_SYS_RELOC_GD_ENV_ADDR=y -+# CONFIG_LED is not set -+# CONFIG_LZ4 is not set ++CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_DEFAULT_ENV_FILE="ubnt_unifi-6-lr-v2_env" ++CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y +CONFIG_VERSION_VARIABLE=y ++CONFIG_BOOTP_SEND_HOSTNAME=y +CONFIG_NETCONSOLE=y ++CONFIG_USE_IPADDR=y ++CONFIG_IPADDR="192.168.1.1" ++CONFIG_USE_SERVERIP=y ++CONFIG_SERVERIP="192.168.1.254" +CONFIG_REGMAP=y +CONFIG_SYSCON=y ++CONFIG_BUTTON=y ++CONFIG_BUTTON_GPIO=y +CONFIG_CLK=y -+CONFIG_PHY=y -+CONFIG_PHY_FIXED=y -+CONFIG_PHYLIB_10G=y -+CONFIG_PHY_AQUANTIA=y ++CONFIG_GPIO_HOG=y ++# CONFIG_MMC is not set ++CONFIG_MTD=y ++CONFIG_DM_MTD=y ++CONFIG_DM_SPI_FLASH=y ++CONFIG_SPI_FLASH_BAR=y ++CONFIG_SPI_FLASH_EON=y ++CONFIG_SPI_FLASH_GIGADEVICE=y ++CONFIG_SPI_FLASH_MACRONIX=y ++CONFIG_SPI_FLASH_SPANSION=y ++CONFIG_SPI_FLASH_STMICRO=y ++CONFIG_SPI_FLASH_SST=y ++CONFIG_SPI_FLASH_WINBOND=y ++CONFIG_SPI_FLASH_XMC=y ++CONFIG_SPI_FLASH_MTD=y +CONFIG_PHY_ADDR_ENABLE=y +CONFIG_PHY_ADDR=8 ++CONFIG_PHY_AQUANTIA=y ++CONFIG_PHY_FIXED=y ++CONFIG_DM_MDIO=y ++CONFIG_DM_ETH_PHY=y +CONFIG_MEDIATEK_ETH=y -+CONFIG_MTD=y -+# CONFIG_MMC is not set ++CONFIG_PHY=y +CONFIG_PINCTRL=y +CONFIG_PINCONF=y +CONFIG_PINCTRL_MT7622=y +CONFIG_POWER_DOMAIN=y -+CONFIG_PRE_CONSOLE_BUFFER=y -+CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 +CONFIG_MTK_POWER_DOMAIN=y ++CONFIG_DM_REGULATOR=y ++CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_REGULATOR_GPIO=y +CONFIG_RAM=y ++CONFIG_DM_SERIAL=y +CONFIG_MTK_SERIAL=y +CONFIG_SPI=y -+CONFIG_MTK_SNFI_SPI=y ++CONFIG_DM_SPI=y +CONFIG_MTK_SNOR=y -+CONFIG_SYSRESET_WATCHDOG=y -+CONFIG_WDT_MTK=y -+CONFIG_HEXDUMP=y ++CONFIG_MTK_SNFI_SPI=y +CONFIG_RANDOM_UUID=y -+CONFIG_REGEX=y -+CONFIG_SPI_FLASH=y -+CONFIG_SPI_FLASH_BAR=y -+CONFIG_SPI_FLASH_MTD=y -+CONFIG_SPI_FLASH_UNLOCK_ALL=y -+CONFIG_SPI_FLASH_EON=y -+CONFIG_SPI_FLASH_GIGADEVICE=y -+CONFIG_SPI_FLASH_MACRONIX=y -+CONFIG_SPI_FLASH_SPANSION=y -+CONFIG_SPI_FLASH_STMICRO=y -+CONFIG_SPI_FLASH_SST=y -+CONFIG_SPI_FLASH_WINBOND=y -+CONFIG_SPI_FLASH_XMC=y -+CONFIG_SPI_FLASH_USE_4K_SECTORS=y -+CONFIG_SYS_HAS_NONCACHED_MEMORY=y -+CONFIG_USE_IPADDR=y -+CONFIG_IPADDR="192.168.1.1" -+CONFIG_USE_SERVERIP=y -+CONFIG_SERVERIP="192.168.1.254" ++CONFIG_HEXDUMP=y --- /dev/null +++ b/configs/mt7622_ubnt_unifi-6-lr-v3_defconfig -@@ -0,0 +1,147 @@ +@@ -0,0 +1,112 @@ +CONFIG_ARM=y ++CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y -+CONFIG_TARGET_MT7622=y +CONFIG_TEXT_BASE=0x41e00000 +CONFIG_SYS_MALLOC_F_LEN=0x4000 ++CONFIG_ENV_SIZE=0x4000 ++CONFIG_ENV_OFFSET=0xc0000 ++CONFIG_DEFAULT_DEVICE_TREE="mt7622-ubnt-unifi-6-lr-v3" ++CONFIG_RESET_BUTTON_SETTLE_DELAY=400 ++CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 ++CONFIG_DEBUG_UART_BASE=0x11002000 ++CONFIG_DEBUG_UART_CLOCK=25000000 +CONFIG_SYS_LOAD_ADDR=0x40080000 -+CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_DEBUG_UART=y ++CONFIG_FIT=y ++# CONFIG_LEGACY_IMAGE_FORMAT is not set ++CONFIG_BOOTDELAY=30 ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_MENU_SHOW=y ++CONFIG_DEFAULT_FDT_FILE="mt7622-ubnt-unifi-6-lr-v3" ++CONFIG_LOGLEVEL=7 ++CONFIG_PRE_CONSOLE_BUFFER=y ++CONFIG_LOG=y ++CONFIG_BOARD_LATE_INIT=y ++CONFIG_HUSH_PARSER=y ++CONFIG_SYS_PROMPT="MT7622> " ++# CONFIG_BOOTM_PLAN9 is not set ++# CONFIG_BOOTM_RTEMS is not set ++# CONFIG_BOOTM_VXWORKS is not set ++CONFIG_CMD_BOOTMENU=y ++# CONFIG_CMD_ELF is not set ++CONFIG_CMD_ASKENV=y ++CONFIG_CMD_ERASEENV=y ++CONFIG_CMD_ENV_FLAGS=y ++# CONFIG_CMD_UNLZ4 is not set ++CONFIG_CMD_GPIO=y ++CONFIG_CMD_MTD=y ++CONFIG_CMD_SF_TEST=y ++CONFIG_CMD_DHCP=y ++CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_RARP=y ++CONFIG_CMD_PING=y ++CONFIG_CMD_CDP=y ++CONFIG_CMD_DNS=y ++CONFIG_CMD_LINK_LOCAL=y ++CONFIG_CMD_PXE=y ++CONFIG_CMD_PSTORE=y ++CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 ++CONFIG_CMD_UUID=y ++CONFIG_CMD_HASH=y ++CONFIG_CMD_SMC=y ++CONFIG_CMD_MTDPARTS=y +CONFIG_MTDPARTS_DEFAULT="mtdparts=nor0:128k(bl2),640k(fip),64k(u-boot-env),256k(factory),64k(eeprom),15232k(recovery),-(firmware)" +CONFIG_ENV_IS_IN_MTD=y +CONFIG_ENV_MTD_NAME="nor0" +CONFIG_ENV_SIZE_REDUND=0x4000 -+CONFIG_ENV_SIZE=0x4000 -+CONFIG_ENV_OFFSET=0xc0000 -+CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y -+CONFIG_BOARD_LATE_INIT=y -+CONFIG_RESET_BUTTON_SETTLE_DELAY=400 -+CONFIG_BOOTP_SEND_HOSTNAME=y -+CONFIG_DEFAULT_ENV_FILE="ubnt_unifi-6-lr_env" -+CONFIG_DEBUG_UART_BASE=0x11002000 -+CONFIG_DEBUG_UART_CLOCK=25000000 -+CONFIG_DEFAULT_DEVICE_TREE="mt7622-ubnt-unifi-6-lr-v3" -+CONFIG_DEBUG_UART=y -+CONFIG_SMBIOS_PRODUCT_NAME="" -+CONFIG_AUTOBOOT_KEYED=y -+CONFIG_BOOTDELAY=30 -+CONFIG_AUTOBOOT_MENU_SHOW=y -+CONFIG_CFB_CONSOLE_ANSI=y -+CONFIG_BUTTON=y -+CONFIG_BUTTON_GPIO=y -+CONFIG_GPIO_HOG=y -+CONFIG_CMD_ENV_FLAGS=y -+CONFIG_FIT=y -+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y -+CONFIG_LOGLEVEL=7 -+CONFIG_LOG=y -+CONFIG_DEFAULT_FDT_FILE="mt7622-ubnt-unifi-6-lr-v3" -+CONFIG_SYS_PROMPT="MT7622> " -+# CONFIG_LEGACY_IMAGE_FORMAT is not set -+# CONFIG_BOOTM_PLAN9 is not set -+# CONFIG_BOOTM_RTEMS is not set -+# CONFIG_BOOTM_VXWORKS is not set -+# CONFIG_EFI is not set -+# CONFIG_EFI_LOADER is not set -+# CONFIG_CMD_BOOTEFI_BOOTMGR is not set -+CONFIG_CMD_BOOTMENU=y -+# CONFIG_CMD_BOOTEFI is not set -+CONFIG_CMD_BOOTP=y -+CONFIG_CMD_BUTTON=y -+CONFIG_CMD_CDP=y -+CONFIG_CMD_DHCP=y -+CONFIG_CMD_DNS=y -+CONFIG_CMD_ECHO=y -+# CONFIG_CMD_ELF is not set -+# CONFIG_CMD_BOOTEFI_BOOTMGR is not set -+CONFIG_CMD_ENV_READMEM=y -+CONFIG_CMD_ERASEENV=y -+CONFIG_CMD_GPIO=y -+CONFIG_CMD_HASH=y -+CONFIG_CMD_ITEST=y -+CONFIG_CMD_LED=y -+CONFIG_CMD_LINK_LOCAL=y -+# CONFIG_CMD_MBR is not set -+CONFIG_CMD_MTD=y -+CONFIG_CMD_MTDPARTS=y -+# CONFIG_CMD_PCI is not set -+CONFIG_CMD_SF_TEST=y -+CONFIG_CMD_PING=y -+CONFIG_CMD_PXE=y -+CONFIG_CMD_SMC=y -+CONFIG_CMD_TFTPBOOT=y -+CONFIG_CMD_TFTPSRV=y -+# CONFIG_CMD_UNLZ4 is not set -+CONFIG_CMD_ASKENV=y -+CONFIG_CMD_PSTORE=y -+CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 -+CONFIG_CMD_RARP=y -+CONFIG_CMD_SETEXPR=y -+CONFIG_CMD_SLEEP=y -+CONFIG_CMD_SOURCE=y -+CONFIG_CMD_UUID=y -+CONFIG_DISPLAY_CPUINFO=y -+CONFIG_DM_ETH=y -+CONFIG_DM_ETH_PHY=y -+CONFIG_DM_GPIO=y -+CONFIG_DM_MDIO=y -+CONFIG_DM_MTD=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_REGULATOR_GPIO=y -+# CONFIG_DM_MMC is not set -+CONFIG_DM_SERIAL=y -+CONFIG_DM_SPI=y -+CONFIG_DM_SPI_FLASH=y -+CONFIG_HUSH_PARSER=y -+# CONFIG_PARTITION_UUIDS is not set +CONFIG_SYS_RELOC_GD_ENV_ADDR=y -+# CONFIG_LED is not set -+# CONFIG_LZ4 is not set ++CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_DEFAULT_ENV_FILE="ubnt_unifi-6-lr_env" ++CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y +CONFIG_VERSION_VARIABLE=y ++CONFIG_BOOTP_SEND_HOSTNAME=y +CONFIG_NETCONSOLE=y ++CONFIG_USE_IPADDR=y ++CONFIG_IPADDR="192.168.1.1" ++CONFIG_USE_SERVERIP=y ++CONFIG_SERVERIP="192.168.1.254" +CONFIG_REGMAP=y +CONFIG_SYSCON=y ++CONFIG_BUTTON=y ++CONFIG_BUTTON_GPIO=y +CONFIG_CLK=y -+CONFIG_PHY=y -+CONFIG_PHY_FIXED=y -+CONFIG_PHY_REALTEK=y -+CONFIG_PHY_ADDR_ENABLE=y -+CONFIG_PHY_ADDR=0 -+CONFIG_MEDIATEK_ETH=y -+CONFIG_MTD=y ++CONFIG_GPIO_HOG=y +# CONFIG_MMC is not set -+CONFIG_PINCTRL=y -+CONFIG_PINCONF=y -+CONFIG_PINCTRL_MT7622=y -+CONFIG_POWER_DOMAIN=y -+CONFIG_PRE_CONSOLE_BUFFER=y -+CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 -+CONFIG_MTK_POWER_DOMAIN=y -+CONFIG_RAM=y -+CONFIG_MTK_SERIAL=y -+CONFIG_SPI=y -+CONFIG_MTK_SNFI_SPI=y -+CONFIG_MTK_SNOR=y -+CONFIG_SYSRESET_WATCHDOG=y -+CONFIG_WDT_MTK=y -+CONFIG_HEXDUMP=y -+CONFIG_RANDOM_UUID=y -+CONFIG_REGEX=y -+CONFIG_SPI_FLASH=y ++CONFIG_MTD=y ++CONFIG_DM_MTD=y ++CONFIG_DM_SPI_FLASH=y +CONFIG_SPI_FLASH_BAR=y -+CONFIG_SPI_FLASH_MTD=y -+CONFIG_SPI_FLASH_UNLOCK_ALL=y +CONFIG_SPI_FLASH_EON=y +CONFIG_SPI_FLASH_GIGADEVICE=y +CONFIG_SPI_FLASH_MACRONIX=y @@ -444,12 +320,31 @@ +CONFIG_SPI_FLASH_SST=y +CONFIG_SPI_FLASH_WINBOND=y +CONFIG_SPI_FLASH_XMC=y -+CONFIG_SPI_FLASH_USE_4K_SECTORS=y -+CONFIG_SYS_HAS_NONCACHED_MEMORY=y -+CONFIG_USE_IPADDR=y -+CONFIG_IPADDR="192.168.1.1" -+CONFIG_USE_SERVERIP=y -+CONFIG_SERVERIP="192.168.1.254" ++CONFIG_SPI_FLASH_MTD=y ++CONFIG_PHY_ADDR_ENABLE=y ++CONFIG_PHY_REALTEK=y ++CONFIG_PHY_FIXED=y ++CONFIG_DM_MDIO=y ++CONFIG_DM_ETH_PHY=y ++CONFIG_MEDIATEK_ETH=y ++CONFIG_PHY=y ++CONFIG_PINCTRL=y ++CONFIG_PINCONF=y ++CONFIG_PINCTRL_MT7622=y ++CONFIG_POWER_DOMAIN=y ++CONFIG_MTK_POWER_DOMAIN=y ++CONFIG_DM_REGULATOR=y ++CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_REGULATOR_GPIO=y ++CONFIG_RAM=y ++CONFIG_DM_SERIAL=y ++CONFIG_MTK_SERIAL=y ++CONFIG_SPI=y ++CONFIG_DM_SPI=y ++CONFIG_MTK_SNOR=y ++CONFIG_MTK_SNFI_SPI=y ++CONFIG_RANDOM_UUID=y ++CONFIG_HEXDUMP=y --- /dev/null +++ b/arch/arm/dts/mt7622-ubnt-unifi-6-lr.dts @@ -0,0 +1,193 @@ diff --git a/package/boot/uboot-mediatek/patches/420-add-support-for-RAVPower-RP-WD009.patch b/package/boot/uboot-mediatek/patches/420-add-support-for-RAVPower-RP-WD009.patch index fb7e33fcca..046c0a6bb9 100644 --- a/package/boot/uboot-mediatek/patches/420-add-support-for-RAVPower-RP-WD009.patch +++ b/package/boot/uboot-mediatek/patches/420-add-support-for-RAVPower-RP-WD009.patch @@ -125,32 +125,28 @@ Subject: [PATCH] add support for RAVPower RP-WD009 +} --- /dev/null +++ b/configs/ravpower-rp-wd009-ram_defconfig -@@ -0,0 +1,72 @@ +@@ -0,0 +1,61 @@ +CONFIG_MIPS=y -+CONFIG_SYS_LOAD_ADDR=0x80010000 +CONFIG_NR_DRAM_BANKS=1 -+CONFIG_SYS_MEMTEST_START=0x80100000 -+CONFIG_SYS_MEMTEST_END=0x80400000 ++CONFIG_DEFAULT_DEVICE_TREE="ravpower-rp-wd009" ++CONFIG_SYS_LOAD_ADDR=0x80010000 +CONFIG_ARCH_MTMIPS=y +CONFIG_SOC_MT7628=y ++CONFIG_BOARD_RAVPOWER_RP_WD009=y ++CONFIG_SYS_MIPS_TIMER_FREQ=290000000 +CONFIG_MIPS_BOOT_FDT=y -+CONFIG_LEGACY_IMAGE_FORMAT=y ++CONFIG_FIT=y +CONFIG_OF_STDOUT_VIA_ALIAS=y +CONFIG_USE_BOOTCOMMAND=y +CONFIG_BOOTCOMMAND="sf probe && mtd read firmware 82000000 && bootm 82000000" +CONFIG_USE_PREBOOT=y ++CONFIG_SYS_CBSIZE=512 +CONFIG_SYS_CONSOLE_INFO_QUIET=y -+CONFIG_VERSION_VARIABLE=y -+CONFIG_BOARD_RAVPOWER_RP_WD009=y -+CONFIG_SYS_MIPS_TIMER_FREQ=290000000 -+CONFIG_SYS_BOOTPARAMS_LEN=0x20000 +CONFIG_HUSH_PARSER=y -+# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_LICENSE=y +# CONFIG_CMD_ELF is not set +# CONFIG_CMD_XIMG is not set +CONFIG_CMD_MEMINFO=y -+# CONFIG_CMD_FLASH is not set +CONFIG_CMD_GPIO=y +# CONFIG_CMD_LOADS is not set +CONFIG_CMD_MTD=y @@ -162,18 +158,18 @@ Subject: [PATCH] add support for RAVPower RP-WD009 +CONFIG_CMD_TIME=y +CONFIG_CMD_UUID=y +CONFIG_CMD_MTDPARTS=y -+CONFIG_FIT=y -+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y +CONFIG_MTDIDS_DEFAULT="nor0=spi0.0" +CONFIG_MTDPARTS_DEFAULT="spi0.0:192k(factory-uboot),64k(config),64k(factory),1536k(loader),64k(params),64k(user_backup),64k(user),14272k(firmware),64k(mode)" -+CONFIG_DEFAULT_DEVICE_TREE="ravpower-rp-wd009" ++CONFIG_VERSION_VARIABLE=y +CONFIG_NET_RANDOM_ETHADDR=y ++CONFIG_USE_IPADDR=y ++CONFIG_IPADDR="192.168.1.1" ++CONFIG_USE_SERVERIP=y ++CONFIG_SERVERIP="192.168.1.254" +# CONFIG_DM_DEVICE_REMOVE is not set -+CONFIG_HAVE_BLOCK_DEVICE=y +CONFIG_LED=y +CONFIG_LED_BLINK=y +CONFIG_LED_GPIO=y -+CONFIG_MTD=y +CONFIG_DM_MTD=y +CONFIG_SPI_FLASH_GIGADEVICE=y +CONFIG_SPI_FLASH_MACRONIX=y @@ -182,22 +178,15 @@ Subject: [PATCH] add support for RAVPower RP-WD009 +CONFIG_SPI_FLASH_WINBOND=y +CONFIG_SPI_FLASH_XMC=y +CONFIG_SPI_FLASH_MTD=y -+CONFIG_MTD_UBI_BEB_LIMIT=22 +CONFIG_MT7628_ETH=y +CONFIG_PHY=y ++CONFIG_BAUDRATE=57600 +CONFIG_SPI=y +CONFIG_MT7621_SPI=y +CONFIG_SYSRESET_SYSCON=y +CONFIG_WDT=y +CONFIG_WDT_MT7621=y +CONFIG_LZMA=y -+CONFIG_BAUDRATE=57600 -+CONFIG_SYS_MAXARGS=64 -+CONFIG_SYS_CBSIZE=512 -+CONFIG_USE_IPADDR=y -+CONFIG_IPADDR="192.168.1.1" -+CONFIG_USE_SERVERIP=y -+CONFIG_SERVERIP="192.168.1.254" --- /dev/null +++ b/include/configs/ravpower-rp-wd009.h @@ -0,0 +1,17 @@ diff --git a/package/boot/uboot-mediatek/patches/421-zbtlink_zbt-wg3526-16m.patch b/package/boot/uboot-mediatek/patches/421-zbtlink_zbt-wg3526-16m.patch index 52e4184bb7..547849d369 100644 --- a/package/boot/uboot-mediatek/patches/421-zbtlink_zbt-wg3526-16m.patch +++ b/package/boot/uboot-mediatek/patches/421-zbtlink_zbt-wg3526-16m.patch @@ -1,127 +1,88 @@ --- /dev/null +++ b/configs/mt7621_zbtlink_zbt-wg3526-16m_defconfig -@@ -0,0 +1,139 @@ +@@ -0,0 +1,97 @@ +CONFIG_MIPS=y +CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_SYS_MALLOC_LEN=0x100000 +CONFIG_SPL_LIBCOMMON_SUPPORT=y +CONFIG_SPL_LIBGENERIC_SUPPORT=y +CONFIG_NR_DRAM_BANKS=1 -+CONFIG_ENV_SIZE=0x1000 -+CONFIG_ENV_IS_IN_MTD=y -+CONFIG_ENV_MTD_NAME="nor0" -+CONFIG_ENV_SIZE_REDUND=0x10000 ++CONFIG_SF_DEFAULT_SPEED=20000000 +CONFIG_ENV_SIZE=0x10000 +CONFIG_ENV_OFFSET=0x30000 -+CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y -+CONFIG_RESET_BUTTON_SETTLE_DELAY=400 -+CONFIG_BOOTP_SEND_HOSTNAME=y -+# CONFIG_BOOTSTD is not set -+CONFIG_DEFAULT_ENV_FILE="zbtlink_zbt-wg3526-16m_env" +CONFIG_DEFAULT_DEVICE_TREE="zbtlink,zbt-wg3526" -+CONFIG_SPL_BSS_MAX_SIZE=0x80000 -+CONFIG_SPL_BSS_START_ADDR=0x80140000 +CONFIG_SPL_SERIAL=y ++CONFIG_TPL_SYS_MALLOC_F_LEN=0x1000 +CONFIG_SPL_SYS_MALLOC_F_LEN=0x40000 ++CONFIG_SPL_BSS_START_ADDR=0x80140000 ++CONFIG_SPL_BSS_MAX_SIZE=0x80000 +CONFIG_SPL=y +CONFIG_DEBUG_UART_BASE=0xbe000c00 +CONFIG_DEBUG_UART_CLOCK=50000000 -+CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_SYS_LOAD_ADDR=0x83000000 -+CONFIG_SYS_MIPS_TIMER_FREQ=440000000 +CONFIG_ARCH_MTMIPS=y +CONFIG_SOC_MT7621=y ++CONFIG_SYS_MIPS_TIMER_FREQ=440000000 +# CONFIG_MIPS_CACHE_SETUP is not set +# CONFIG_MIPS_CACHE_DISABLE is not set +CONFIG_RESTORE_EXCEPTION_VECTOR_BASE=y +CONFIG_MIPS_BOOT_FDT=y +CONFIG_DEBUG_UART=y -+CONFIG_TPL_SYS_MALLOC_F_LEN=0x1000 -+CONFIG_AUTOBOOT_KEYED=y -+CONFIG_BOOTDELAY=30 -+CONFIG_AUTOBOOT_MENU_SHOW=y -+CONFIG_CFB_CONSOLE_ANSI=y -+CONFIG_BUTTON=y -+CONFIG_BUTTON_GPIO=y -+CONFIG_GPIO_HOG=y -+CONFIG_CMD_ENV_FLAGS=y +CONFIG_FIT=y -+# CONFIG_FIT_ENABLE_SHA256_SUPPORT is not set -+CONFIG_HUSH_PARSER=y -+CONFIG_LOGLEVEL=6 -+# CONFIG_LOG is not set -+# CONFIG_SYS_LONGHELP is not set ++# CONFIG_BOOTSTD is not set ++CONFIG_BOOTDELAY=30 ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_MENU_SHOW=y +# CONFIG_ARCH_FIXUP_FDT_MEMORY is not set ++CONFIG_LOGLEVEL=6 +CONFIG_SYS_CONSOLE_INFO_QUIET=y +CONFIG_SPL_SYS_MALLOC_SIMPLE=y +CONFIG_SPL_NOR_SUPPORT=y +CONFIG_TPL=y +# CONFIG_TPL_FRAMEWORK is not set -+CONFIG_LEGACY_IMAGE_FORMAT=y ++CONFIG_HUSH_PARSER=y ++# CONFIG_SYS_LONGHELP is not set ++# CONFIG_SYS_XTRACE is not set ++# CONFIG_CMD_BOOTD is not set +# CONFIG_BOOTM_NETBSD is not set +# CONFIG_BOOTM_PLAN9 is not set +# CONFIG_BOOTM_RTEMS is not set +# CONFIG_BOOTM_VXWORKS is not set -+# CONFIG_EFI is not set -+# CONFIG_EFI_LOADER is not set -+# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y -+# CONFIG_CMD_BOOTEFI is not set -+# CONFIG_CMD_BOOTD is not set -+# CONFIG_CMD_BOOTP is not set -+CONFIG_CMD_BOOTM=y -+# CONFIG_CMD_BOOTDEV is not set -+# CONFIG_CMD_BOOTFLOW is not set -+CONFIG_CMD_BUTTON=y -+CONFIG_CMD_ECHO=y +# CONFIG_CMD_ELF is not set -+# CONFIG_CMD_BOOTEFI_BOOTMGR is not set -+CONFIG_CMD_ENV_READMEM=y ++CONFIG_CMD_ASKENV=y +CONFIG_CMD_ERASEENV=y ++CONFIG_CMD_ENV_FLAGS=y +CONFIG_CMD_GPIO=y -+CONFIG_CMD_HASH=y -+CONFIG_CMD_ITEST=y -+CONFIG_CMD_LED=y -+# CONFIG_CMD_MBR is not set +CONFIG_CMD_MMC=y +CONFIG_CMD_MTD=y -+CONFIG_CMD_MTDPART=y -+# CONFIG_CMD_PCI is not set +CONFIG_CMD_SF_TEST=y ++# CONFIG_CMD_BOOTP is not set +CONFIG_CMD_PING=y -+CONFIG_CMD_TFTPBOOT=y -+# CONFIG_CMD_UNLZ4 is not set -+CONFIG_CMD_ASKENV=y -+CONFIG_CMD_SETEXPR=y -+CONFIG_CMD_SLEEP=y -+CONFIG_CMD_SOURCE=y ++CONFIG_CMD_HASH=y +CONFIG_DOS_PARTITION=y +# CONFIG_SPL_DOS_PARTITION is not set +# CONFIG_ISO_PARTITION is not set -+# CONFIG_EFI_PARTITION is not set -+# CONFIG_SPL_EFI_PARTITION is not set -+CONFIG_PARTITION_TYPE_GUID=y ++CONFIG_ENV_IS_IN_MTD=y ++CONFIG_ENV_MTD_NAME="nor0" ++CONFIG_ENV_SIZE_REDUND=0x10000 +CONFIG_SYS_RELOC_GD_ENV_ADDR=y -+# CONFIG_NET_RANDOM_ETHADDR is not set ++CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_DEFAULT_ENV_FILE="zbtlink_zbt-wg3526-16m_env" ++CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y ++CONFIG_VERSION_VARIABLE=y ++CONFIG_BOOTP_SEND_HOSTNAME=y ++CONFIG_BUTTON=y ++CONFIG_BUTTON_GPIO=y ++CONFIG_GPIO_HOG=y +# CONFIG_I2C is not set +# CONFIG_INPUT is not set +CONFIG_MMC=y +# CONFIG_MMC_QUIRKS is not set +# CONFIG_MMC_HW_PARTITIONING is not set +CONFIG_MMC_MTK=y -+CONFIG_MTD=y +CONFIG_DM_MTD=y -+CONFIG_SF_DEFAULT_SPEED=20000000 -+# CONFIG_SPI_FLASH_BAR is not set -+# CONFIG_SPI_FLASH_EON is not set -+# CONFIG_SPI_FLASH_GIGADEVICE is not set -+# CONFIG_SPI_FLASH_ISSI is not set -+# CONFIG_SPI_FLASH_MACRONIX is not set -+# CONFIG_SPI_FLASH_SPANSION is not set -+# CONFIG_SPI_FLASH_STMICRO is not set +CONFIG_SPI_FLASH_WINBOND=y -+# CONFIG_SPI_FLASH_XMC is not set -+# CONFIG_SPI_FLASH_XTX is not set +CONFIG_SPI_FLASH_MTD=y +CONFIG_MEDIATEK_ETH=y +CONFIG_PHY=y @@ -131,15 +92,12 @@ +CONFIG_MT7621_SPI=y +CONFIG_SYSRESET=y +CONFIG_SYSRESET_RESETCTL=y -+# CONFIG_SYS_XTRACE is not set -+CONFIG_USE_DEFAULT_ENV_FILE=y -+CONFIG_VERSION_VARIABLE=y +CONFIG_WDT=y +CONFIG_WDT_MT7621=y +# CONFIG_BINMAN_FDT is not set +CONFIG_LZMA=y -+CONFIG_SPL_LZMA=y +# CONFIG_GZIP is not set ++CONFIG_SPL_LZMA=y --- /dev/null +++ b/zbtlink_zbt-wg3526-16m_env @@ -0,0 +1,36 @@ diff --git a/package/boot/uboot-mediatek/patches/429-add-netcore-n60.patch b/package/boot/uboot-mediatek/patches/429-add-netcore-n60.patch index 64d8d693ec..42f0bc5b18 100644 --- a/package/boot/uboot-mediatek/patches/429-add-netcore-n60.patch +++ b/package/boot/uboot-mediatek/patches/429-add-netcore-n60.patch @@ -1,189 +1,136 @@ --- /dev/null +++ b/configs/mt7986_netcore_n60_defconfig -@@ -0,0 +1,183 @@ +@@ -0,0 +1,130 @@ +CONFIG_ARM=y ++CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y -+CONFIG_TARGET_MT7986=y +CONFIG_TEXT_BASE=0x41e00000 +CONFIG_SYS_MALLOC_F_LEN=0x4000 -+CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_NR_DRAM_BANKS=1 +CONFIG_DEFAULT_DEVICE_TREE="mt7986a-netcore-n60" -+CONFIG_DEFAULT_ENV_FILE="netcore_n60_env" -+CONFIG_DEFAULT_FDT_FILE="mediatek/mt7986a-netcore-n60.dtb" +CONFIG_OF_LIBFDT_OVERLAY=y ++CONFIG_TARGET_MT7986=y ++CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 +CONFIG_DEBUG_UART_BASE=0x11002000 +CONFIG_DEBUG_UART_CLOCK=40000000 -+CONFIG_DEBUG_UART=y +CONFIG_SYS_LOAD_ADDR=0x46000000 -+CONFIG_SMBIOS_PRODUCT_NAME="" -+CONFIG_AUTOBOOT_KEYED=y -+CONFIG_BOOTDELAY=30 -+CONFIG_AUTOBOOT_MENU_SHOW=y -+CONFIG_CFB_CONSOLE_ANSI=y -+CONFIG_BOARD_LATE_INIT=y -+CONFIG_BUTTON=y -+CONFIG_BUTTON_GPIO=y -+CONFIG_GPIO_HOG=y -+CONFIG_CMD_ENV_FLAGS=y ++CONFIG_PCI=y ++CONFIG_DEBUG_UART=y ++CONFIG_AHCI=y +CONFIG_FIT=y -+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y -+CONFIG_LED=y -+CONFIG_LED_BLINK=y -+CONFIG_LED_GPIO=y ++CONFIG_BOOTDELAY=30 ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_MENU_SHOW=y ++CONFIG_DEFAULT_FDT_FILE="mediatek/mt7986a-netcore-n60.dtb" +CONFIG_LOGLEVEL=7 ++CONFIG_PRE_CONSOLE_BUFFER=y +CONFIG_LOG=y ++CONFIG_BOARD_LATE_INIT=y ++CONFIG_HUSH_PARSER=y +CONFIG_SYS_PROMPT="MT7986> " ++CONFIG_CMD_CPU=y ++CONFIG_CMD_LICENSE=y +# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y -+CONFIG_CMD_BOOTP=y -+CONFIG_CMD_BUTTON=y -+CONFIG_CMD_CACHE=y -+CONFIG_CMD_CDP=y -+CONFIG_CMD_CPU=y -+CONFIG_CMD_DHCP=y -+CONFIG_CMD_DM=y -+CONFIG_CMD_DNS=y -+CONFIG_CMD_ECHO=y -+CONFIG_CMD_ENV_READMEM=y ++CONFIG_CMD_ASKENV=y +CONFIG_CMD_ERASEENV=y -+CONFIG_CMD_EXT4=y -+CONFIG_CMD_FAT=y -+CONFIG_CMD_FDT=y -+CONFIG_CMD_FS_GENERIC=y -+CONFIG_CMD_FS_UUID=y ++CONFIG_CMD_ENV_FLAGS=y ++CONFIG_CMD_STRINGS=y ++CONFIG_CMD_DM=y +CONFIG_CMD_GPIO=y ++CONFIG_CMD_PWM=y +CONFIG_CMD_GPT=y -+CONFIG_CMD_HASH=y -+CONFIG_CMD_ITEST=y -+CONFIG_CMD_LED=y -+CONFIG_CMD_LICENSE=y -+CONFIG_CMD_LINK_LOCAL=y -+# CONFIG_CMD_MBR is not set ++CONFIG_CMD_MTD=y ++CONFIG_CMD_PART=y +CONFIG_CMD_PCI=y ++CONFIG_CMD_USB=y ++CONFIG_CMD_DHCP=y ++CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_RARP=y ++CONFIG_CMD_PING=y ++CONFIG_CMD_CDP=y ++CONFIG_CMD_SNTP=y ++CONFIG_CMD_DNS=y ++CONFIG_CMD_LINK_LOCAL=y ++CONFIG_CMD_PXE=y ++CONFIG_CMD_CACHE=y +CONFIG_CMD_PSTORE=y +CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 -+CONFIG_CMD_SF_TEST=y -+CONFIG_CMD_PING=y -+CONFIG_CMD_PXE=y -+CONFIG_CMD_PWM=y ++CONFIG_CMD_UUID=y ++CONFIG_CMD_HASH=y +CONFIG_CMD_SMC=y -+CONFIG_CMD_TFTPBOOT=y -+CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_EXT4=y ++CONFIG_CMD_FAT=y ++CONFIG_CMD_FS_GENERIC=y ++CONFIG_CMD_FS_UUID=y +CONFIG_CMD_UBI=y +CONFIG_CMD_UBI_RENAME=y -+CONFIG_CMD_UBIFS=y -+CONFIG_CMD_ASKENV=y -+CONFIG_CMD_PART=y -+CONFIG_CMD_RARP=y -+CONFIG_CMD_SETEXPR=y -+CONFIG_CMD_SLEEP=y -+CONFIG_CMD_SNTP=y -+CONFIG_CMD_SOURCE=y -+CONFIG_CMD_STRINGS=y -+CONFIG_CMD_USB=y -+CONFIG_CMD_UUID=y -+CONFIG_DISPLAY_CPUINFO=y -+CONFIG_DM_MTD=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_REGULATOR_GPIO=y -+CONFIG_DM_USB=y -+CONFIG_DM_PWM=y -+CONFIG_PWM_MTK=y -+CONFIG_HUSH_PARSER=y -+CONFIG_SYS_REDUNDAND_ENVIRONMENT=y -+CONFIG_SYS_RELOC_GD_ENV_ADDR=y -+CONFIG_VERSION_VARIABLE=y -+CONFIG_PARTITION_UUIDS=y -+CONFIG_NETCONSOLE=y -+CONFIG_REGMAP=y -+CONFIG_SYSCON=y -+CONFIG_CLK=y -+CONFIG_DM_GPIO=y -+CONFIG_DM_SCSI=y -+CONFIG_AHCI=y -+CONFIG_AHCI_PCI=y -+CONFIG_SCSI_AHCI=y -+CONFIG_SCSI=y -+CONFIG_CMD_SCSI=y -+CONFIG_PHY=y -+CONFIG_PHY_MTK_TPHY=y -+CONFIG_PHY_FIXED=y -+CONFIG_MTK_AHCI=y -+CONFIG_DM_ETH=y -+CONFIG_MEDIATEK_ETH=y -+CONFIG_PCI=y -+# CONFIG_MMC is not set -+# CONFIG_DM_MMC is not set -+CONFIG_MTD=y -+CONFIG_MTD_UBI_FASTMAP=y -+CONFIG_DM_PCI=y -+CONFIG_PCIE_MEDIATEK=y -+CONFIG_PINCTRL=y -+CONFIG_PINCONF=y -+CONFIG_PINCTRL_MT7622=y -+CONFIG_POWER_DOMAIN=y -+CONFIG_PRE_CONSOLE_BUFFER=y -+CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 -+CONFIG_MTK_POWER_DOMAIN=y -+CONFIG_RAM=y -+CONFIG_DM_SERIAL=y -+CONFIG_MTK_SERIAL=y -+CONFIG_SPI=y -+CONFIG_DM_SPI=y -+CONFIG_MTK_SPI_NAND=y -+CONFIG_MTK_SPI_NAND_MTD=y -+CONFIG_SYSRESET_WATCHDOG=y -+CONFIG_WDT_MTK=y -+CONFIG_LZO=y -+CONFIG_ZSTD=y -+CONFIG_HEXDUMP=y -+CONFIG_RANDOM_UUID=y -+CONFIG_REGEX=y -+CONFIG_USB=y -+CONFIG_USB_HOST=y -+CONFIG_USB_XHCI_HCD=y -+CONFIG_USB_XHCI_MTK=y -+CONFIG_USB_STORAGE=y +CONFIG_OF_EMBED=y +CONFIG_ENV_OVERWRITE=y +CONFIG_ENV_IS_IN_UBI=y ++CONFIG_SYS_REDUNDAND_ENVIRONMENT=y +CONFIG_ENV_UBI_PART="ubi" -+CONFIG_ENV_SIZE=0x1f000 -+CONFIG_ENV_SIZE_REDUND=0x1f000 +CONFIG_ENV_UBI_VOLUME="ubootenv" +CONFIG_ENV_UBI_VOLUME_REDUND="ubootenv2" ++CONFIG_SYS_RELOC_GD_ENV_ADDR=y ++CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_DEFAULT_ENV_FILE="netcore_n60_env" +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y ++CONFIG_VERSION_VARIABLE=y +CONFIG_NET_RANDOM_ETHADDR=y ++CONFIG_NETCONSOLE=y ++CONFIG_USE_IPADDR=y ++CONFIG_IPADDR="192.168.1.1" ++CONFIG_USE_SERVERIP=y ++CONFIG_SERVERIP="192.168.1.254" +CONFIG_REGMAP=y +CONFIG_SYSCON=y ++CONFIG_SCSI_AHCI=y ++CONFIG_AHCI_PCI=y ++CONFIG_MTK_AHCI=y ++CONFIG_BUTTON=y ++CONFIG_BUTTON_GPIO=y +CONFIG_CLK=y ++CONFIG_GPIO_HOG=y ++CONFIG_LED=y ++CONFIG_LED_BLINK=y ++CONFIG_LED_GPIO=y ++# CONFIG_MMC is not set ++CONFIG_MTD=y ++CONFIG_DM_MTD=y ++CONFIG_MTD_SPI_NAND=y ++CONFIG_MTD_UBI_FASTMAP=y +CONFIG_PHY_FIXED=y -+CONFIG_DM_ETH=y +CONFIG_MEDIATEK_ETH=y ++CONFIG_PCIE_MEDIATEK=y ++CONFIG_PHY=y ++CONFIG_PHY_MTK_TPHY=y +CONFIG_PINCTRL=y +CONFIG_PINCONF=y ++CONFIG_PINCTRL_MT7622=y +CONFIG_PINCTRL_MT7986=y +CONFIG_POWER_DOMAIN=y +CONFIG_MTK_POWER_DOMAIN=y +CONFIG_DM_REGULATOR=y +CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_REGULATOR_GPIO=y ++CONFIG_DM_PWM=y ++CONFIG_PWM_MTK=y ++CONFIG_RAM=y ++CONFIG_SCSI=y +CONFIG_DM_SERIAL=y +CONFIG_MTK_SERIAL=y -+CONFIG_HEXDUMP=y -+CONFIG_USE_DEFAULT_ENV_FILE=y -+CONFIG_MTD_SPI_NAND=y ++CONFIG_SPI=y ++CONFIG_DM_SPI=y +CONFIG_MTK_SPIM=y -+CONFIG_CMD_MTD=y -+CONFIG_CMD_NAND=y -+CONFIG_CMD_NAND_TRIMFFS=y ++CONFIG_USB=y ++CONFIG_USB_XHCI_HCD=y ++CONFIG_USB_XHCI_MTK=y ++CONFIG_USB_STORAGE=y ++CONFIG_ZSTD=y ++CONFIG_HEXDUMP=y +CONFIG_LMB_MAX_REGIONS=64 -+CONFIG_USE_IPADDR=y -+CONFIG_IPADDR="192.168.1.1" -+CONFIG_USE_SERVERIP=y -+CONFIG_SERVERIP="192.168.1.254" --- /dev/null +++ b/arch/arm/dts/mt7986a-netcore-n60.dts @@ -0,0 +1,185 @@ diff --git a/package/boot/uboot-mediatek/patches/430-add-bpi-r3.patch b/package/boot/uboot-mediatek/patches/430-add-bpi-r3.patch index d6eae6dea5..17f628f852 100644 --- a/package/boot/uboot-mediatek/patches/430-add-bpi-r3.patch +++ b/package/boot/uboot-mediatek/patches/430-add-bpi-r3.patch @@ -1,804 +1,566 @@ --- /dev/null +++ b/configs/mt7986a_bpi-r3-emmc_defconfig -@@ -0,0 +1,198 @@ +@@ -0,0 +1,139 @@ +CONFIG_ARM=y ++CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y -+CONFIG_TARGET_MT7986=y +CONFIG_TEXT_BASE=0x41e00000 +CONFIG_SYS_MALLOC_F_LEN=0x4000 -+CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_NR_DRAM_BANKS=1 ++CONFIG_ENV_SIZE=0x40000 ++CONFIG_ENV_OFFSET=0x400000 +CONFIG_DEFAULT_DEVICE_TREE="mt7986a-bpi-r3-emmc" -+CONFIG_DEFAULT_ENV_FILE="bananapi_bpi-r3_emmc_env" -+CONFIG_DEFAULT_FDT_FILE="mediatek/mt7986a-bpi-r3-emmc.dtb" +CONFIG_OF_LIBFDT_OVERLAY=y -+CONFIG_OF_SYSTEM_SETUP=y ++CONFIG_TARGET_MT7986=y ++CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 +CONFIG_DEBUG_UART_BASE=0x11002000 +CONFIG_DEBUG_UART_CLOCK=40000000 -+CONFIG_DEBUG_UART=y ++CONFIG_ENV_OFFSET_REDUND=0x440000 +CONFIG_SYS_LOAD_ADDR=0x46000000 -+CONFIG_SMBIOS_PRODUCT_NAME="" -+CONFIG_AUTOBOOT_KEYED=y -+CONFIG_BOOTDELAY=30 -+CONFIG_AUTOBOOT_MENU_SHOW=y -+CONFIG_CFB_CONSOLE_ANSI=y -+CONFIG_BOARD_LATE_INIT=y -+CONFIG_BUTTON=y -+CONFIG_BUTTON_GPIO=y -+CONFIG_GPIO_HOG=y -+CONFIG_CMD_ENV_FLAGS=y ++CONFIG_PCI=y ++CONFIG_DEBUG_UART=y ++CONFIG_AHCI=y +CONFIG_FIT=y -+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y -+CONFIG_LED=y -+CONFIG_LED_BLINK=y -+CONFIG_LED_GPIO=y ++CONFIG_BOOTDELAY=30 ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_MENU_SHOW=y ++CONFIG_OF_SYSTEM_SETUP=y ++CONFIG_DEFAULT_FDT_FILE="mediatek/mt7986a-bpi-r3-emmc.dtb" +CONFIG_LOGLEVEL=7 ++CONFIG_PRE_CONSOLE_BUFFER=y +CONFIG_LOG=y ++CONFIG_BOARD_LATE_INIT=y ++CONFIG_HUSH_PARSER=y +CONFIG_SYS_PROMPT="MT7986> " ++CONFIG_CMD_CPU=y ++CONFIG_CMD_LICENSE=y +# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y -+CONFIG_CMD_BOOTP=y -+CONFIG_CMD_BUTTON=y -+CONFIG_CMD_CACHE=y -+CONFIG_CMD_CDP=y -+CONFIG_CMD_CPU=y -+CONFIG_CMD_DHCP=y -+CONFIG_CMD_DM=y -+CONFIG_CMD_DNS=y -+CONFIG_CMD_ECHO=y -+CONFIG_CMD_ENV_READMEM=y ++CONFIG_CMD_ASKENV=y +CONFIG_CMD_ERASEENV=y -+CONFIG_CMD_EXT4=y -+CONFIG_CMD_FAT=y -+CONFIG_CMD_FDT=y -+CONFIG_CMD_FS_GENERIC=y -+CONFIG_CMD_FS_UUID=y ++CONFIG_CMD_ENV_FLAGS=y ++CONFIG_CMD_STRINGS=y ++CONFIG_CMD_DM=y +CONFIG_CMD_GPIO=y ++CONFIG_CMD_PWM=y +CONFIG_CMD_GPT=y -+CONFIG_CMD_HASH=y -+CONFIG_CMD_ITEST=y -+CONFIG_CMD_LED=y -+CONFIG_CMD_LICENSE=y -+CONFIG_CMD_LINK_LOCAL=y -+# CONFIG_CMD_MBR is not set +CONFIG_CMD_MMC=y +CONFIG_CMD_MTD=y ++CONFIG_CMD_PART=y +CONFIG_CMD_PCI=y ++CONFIG_CMD_SF_TEST=y ++CONFIG_CMD_USB=y ++CONFIG_CMD_DHCP=y ++CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_RARP=y ++CONFIG_CMD_PING=y ++CONFIG_CMD_CDP=y ++CONFIG_CMD_SNTP=y ++CONFIG_CMD_DNS=y ++CONFIG_CMD_LINK_LOCAL=y ++CONFIG_CMD_PXE=y ++CONFIG_CMD_CACHE=y +CONFIG_CMD_PSTORE=y +CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 -+CONFIG_CMD_SF_TEST=y -+CONFIG_CMD_PING=y -+CONFIG_CMD_PXE=y -+CONFIG_CMD_PWM=y ++CONFIG_CMD_UUID=y ++CONFIG_CMD_HASH=y +CONFIG_CMD_SMC=y -+CONFIG_CMD_TFTPBOOT=y -+CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_EXT4=y ++CONFIG_CMD_FAT=y ++CONFIG_CMD_FS_GENERIC=y ++CONFIG_CMD_FS_UUID=y +CONFIG_CMD_UBI=y +CONFIG_CMD_UBI_RENAME=y -+CONFIG_CMD_UBIFS=y -+CONFIG_CMD_ASKENV=y -+CONFIG_CMD_PART=y -+CONFIG_CMD_RARP=y -+CONFIG_CMD_SETEXPR=y -+CONFIG_CMD_SLEEP=y -+CONFIG_CMD_SNTP=y -+CONFIG_CMD_SOURCE=y -+CONFIG_CMD_STRINGS=y -+CONFIG_CMD_USB=y -+CONFIG_CMD_UUID=y -+CONFIG_DISPLAY_CPUINFO=y -+CONFIG_DM_MMC=y -+CONFIG_DM_MTD=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_REGULATOR_GPIO=y -+CONFIG_DM_USB=y -+CONFIG_DM_PWM=y -+CONFIG_PWM_MTK=y -+CONFIG_HUSH_PARSER=y -+CONFIG_SYS_REDUNDAND_ENVIRONMENT=y -+CONFIG_SYS_RELOC_GD_ENV_ADDR=y -+CONFIG_VERSION_VARIABLE=y -+CONFIG_PARTITION_UUIDS=y -+CONFIG_NETCONSOLE=y -+CONFIG_REGMAP=y -+CONFIG_SYSCON=y -+CONFIG_CLK=y -+CONFIG_DM_GPIO=y -+CONFIG_DM_SCSI=y -+CONFIG_AHCI=y -+CONFIG_AHCI_PCI=y -+CONFIG_SCSI_AHCI=y -+CONFIG_SCSI=y -+CONFIG_CMD_SCSI=y -+CONFIG_PHY=y -+CONFIG_PHY_MTK_TPHY=y -+CONFIG_PHY_FIXED=y -+CONFIG_MTK_AHCI=y -+CONFIG_DM_ETH=y -+CONFIG_MEDIATEK_ETH=y -+CONFIG_PCI=y -+CONFIG_MTD=y -+CONFIG_MTD_UBI_FASTMAP=y -+CONFIG_DM_PCI=y -+CONFIG_PCIE_MEDIATEK=y -+CONFIG_PINCTRL=y -+CONFIG_PINCONF=y -+CONFIG_PINCTRL_MT7622=y -+CONFIG_POWER_DOMAIN=y -+CONFIG_PRE_CONSOLE_BUFFER=y -+CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 -+CONFIG_MTK_POWER_DOMAIN=y -+CONFIG_RAM=y -+CONFIG_DM_SERIAL=y -+CONFIG_MTK_SERIAL=y -+CONFIG_MMC=y -+CONFIG_MMC_DEFAULT_DEV=1 -+CONFIG_MMC_HS200_SUPPORT=y -+CONFIG_MMC_MTK=y -+CONFIG_MMC_SUPPORTS_TUNING=y -+CONFIG_SUPPORT_EMMC_BOOT=y -+CONFIG_SPI=y -+CONFIG_DM_SPI=y -+CONFIG_MTK_SPI_NAND=y -+CONFIG_MTK_SPI_NAND_MTD=y -+CONFIG_SYSRESET_WATCHDOG=y -+CONFIG_WDT_MTK=y -+CONFIG_LZO=y -+CONFIG_ZSTD=y -+CONFIG_HEXDUMP=y -+CONFIG_RANDOM_UUID=y -+CONFIG_REGEX=y -+CONFIG_USB=y -+CONFIG_USB_HOST=y -+CONFIG_USB_XHCI_HCD=y -+CONFIG_USB_XHCI_MTK=y -+CONFIG_USB_STORAGE=y +CONFIG_OF_EMBED=y +CONFIG_ENV_OVERWRITE=y +CONFIG_ENV_IS_IN_MMC=y -+CONFIG_ENV_OFFSET=0x400000 -+CONFIG_ENV_OFFSET_REDUND=0x440000 -+CONFIG_ENV_SIZE=0x40000 -+CONFIG_ENV_SIZE_REDUND=0x40000 ++CONFIG_SYS_REDUNDAND_ENVIRONMENT=y ++CONFIG_SYS_RELOC_GD_ENV_ADDR=y ++CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_DEFAULT_ENV_FILE="bananapi_bpi-r3_emmc_env" +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y ++CONFIG_VERSION_VARIABLE=y +CONFIG_NET_RANDOM_ETHADDR=y ++CONFIG_NETCONSOLE=y ++CONFIG_USE_IPADDR=y ++CONFIG_IPADDR="192.168.1.1" ++CONFIG_USE_SERVERIP=y ++CONFIG_SERVERIP="192.168.1.254" +CONFIG_REGMAP=y +CONFIG_SYSCON=y ++CONFIG_SCSI_AHCI=y ++CONFIG_AHCI_PCI=y ++CONFIG_MTK_AHCI=y ++CONFIG_BUTTON=y ++CONFIG_BUTTON_GPIO=y +CONFIG_CLK=y ++CONFIG_GPIO_HOG=y ++CONFIG_LED=y ++CONFIG_LED_BLINK=y ++CONFIG_LED_GPIO=y +CONFIG_SUPPORT_EMMC_BOOT=y +CONFIG_MMC_HS200_SUPPORT=y +CONFIG_MMC_MTK=y ++CONFIG_MTD=y ++CONFIG_DM_MTD=y ++CONFIG_MTD_SPI_NAND=y ++CONFIG_DM_SPI_FLASH=y ++CONFIG_SPI_FLASH_WINBOND=y ++# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set ++CONFIG_SPI_FLASH_MTD=y ++CONFIG_MTD_UBI_FASTMAP=y +CONFIG_PHY_FIXED=y -+CONFIG_DM_ETH=y +CONFIG_MEDIATEK_ETH=y ++CONFIG_PCIE_MEDIATEK=y ++CONFIG_PHY=y ++CONFIG_PHY_MTK_TPHY=y +CONFIG_PINCTRL=y +CONFIG_PINCONF=y ++CONFIG_PINCTRL_MT7622=y +CONFIG_PINCTRL_MT7986=y +CONFIG_POWER_DOMAIN=y +CONFIG_MTK_POWER_DOMAIN=y +CONFIG_DM_REGULATOR=y +CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_SERIAL=y -+CONFIG_MTK_SERIAL=y -+CONFIG_HEXDUMP=y -+CONFIG_USE_DEFAULT_ENV_FILE=y -+CONFIG_MTD_SPI_NAND=y -+CONFIG_MTK_SPIM=y -+#CONFIG_MTK_SNOR=y -+CONFIG_DM_SPI_FLASH=y -+CONFIG_SPI_FLASH_MTD=y -+CONFIG_SPI_FLASH_WINBOND=y -+# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set -+CONFIG_CMD_SF=y -+CONFIG_CMD_NAND=y -+CONFIG_CMD_NAND_TRIMFFS=y -+CONFIG_LMB_MAX_REGIONS=64 -+CONFIG_USE_IPADDR=y -+CONFIG_IPADDR="192.168.1.1" -+CONFIG_USE_SERVERIP=y -+CONFIG_SERVERIP="192.168.1.254" ---- /dev/null -+++ b/configs/mt7986a_bpi-r3-nor_defconfig -@@ -0,0 +1,194 @@ -+CONFIG_ARM=y -+CONFIG_POSITION_INDEPENDENT=y -+CONFIG_ARCH_MEDIATEK=y -+CONFIG_TARGET_MT7986=y -+CONFIG_TEXT_BASE=0x41e00000 -+CONFIG_SYS_MALLOC_F_LEN=0x4000 -+CONFIG_SYS_HAS_NONCACHED_MEMORY=y -+CONFIG_NR_DRAM_BANKS=1 -+CONFIG_DEFAULT_DEVICE_TREE="mt7986a-bpi-r3-emmc" -+CONFIG_DEFAULT_ENV_FILE="bananapi_bpi-r3_nor_env" -+CONFIG_DEFAULT_FDT_FILE="mediatek/mt7986a-bpi-r3-emmc.dtb" -+CONFIG_OF_LIBFDT_OVERLAY=y -+CONFIG_OF_SYSTEM_SETUP=y -+CONFIG_DEBUG_UART_BASE=0x11002000 -+CONFIG_DEBUG_UART_CLOCK=40000000 -+CONFIG_DEBUG_UART=y -+CONFIG_SYS_LOAD_ADDR=0x46000000 -+CONFIG_SMBIOS_PRODUCT_NAME="" -+CONFIG_AUTOBOOT_KEYED=y -+CONFIG_BOOTDELAY=30 -+CONFIG_AUTOBOOT_MENU_SHOW=y -+CONFIG_CFB_CONSOLE_ANSI=y -+CONFIG_BOARD_LATE_INIT=y -+CONFIG_BUTTON=y -+CONFIG_BUTTON_GPIO=y -+CONFIG_GPIO_HOG=y -+CONFIG_CMD_ENV_FLAGS=y -+CONFIG_FIT=y -+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y -+CONFIG_LED=y -+CONFIG_LED_BLINK=y -+CONFIG_LED_GPIO=y -+CONFIG_LOGLEVEL=7 -+CONFIG_LOG=y -+CONFIG_SYS_PROMPT="MT7986> " -+# CONFIG_CMD_BOOTEFI_BOOTMGR is not set -+CONFIG_CMD_BOOTMENU=y -+CONFIG_CMD_BOOTP=y -+CONFIG_CMD_BUTTON=y -+CONFIG_CMD_CACHE=y -+CONFIG_CMD_CDP=y -+CONFIG_CMD_CPU=y -+CONFIG_CMD_DHCP=y -+CONFIG_CMD_DM=y -+CONFIG_CMD_DNS=y -+CONFIG_CMD_ECHO=y -+CONFIG_CMD_ENV_READMEM=y -+CONFIG_CMD_ERASEENV=y -+CONFIG_CMD_EXT4=y -+CONFIG_CMD_FAT=y -+CONFIG_CMD_FDT=y -+CONFIG_CMD_FS_GENERIC=y -+CONFIG_CMD_FS_UUID=y -+CONFIG_CMD_GPIO=y -+CONFIG_CMD_GPT=y -+CONFIG_CMD_HASH=y -+CONFIG_CMD_ITEST=y -+CONFIG_CMD_LED=y -+CONFIG_CMD_LICENSE=y -+CONFIG_CMD_LINK_LOCAL=y -+# CONFIG_CMD_MBR is not set -+CONFIG_CMD_MMC=y -+CONFIG_CMD_MTD=y -+CONFIG_CMD_PCI=y -+CONFIG_CMD_PSTORE=y -+CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 -+CONFIG_CMD_SF_TEST=y -+CONFIG_CMD_PING=y -+CONFIG_CMD_PXE=y -+CONFIG_CMD_PWM=y -+CONFIG_CMD_SMC=y -+CONFIG_CMD_TFTPBOOT=y -+CONFIG_CMD_TFTPSRV=y -+CONFIG_CMD_ASKENV=y -+CONFIG_CMD_PART=y -+CONFIG_CMD_RARP=y -+CONFIG_CMD_SETEXPR=y -+CONFIG_CMD_SLEEP=y -+CONFIG_CMD_SNTP=y -+CONFIG_CMD_SOURCE=y -+CONFIG_CMD_STRINGS=y -+CONFIG_CMD_USB=y -+CONFIG_CMD_UUID=y -+CONFIG_DISPLAY_CPUINFO=y -+CONFIG_DM_MMC=y -+CONFIG_DM_MTD=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y +CONFIG_DM_REGULATOR_GPIO=y -+CONFIG_DM_USB=y +CONFIG_DM_PWM=y +CONFIG_PWM_MTK=y -+CONFIG_HUSH_PARSER=y -+CONFIG_SYS_REDUNDAND_ENVIRONMENT=y -+CONFIG_SYS_RELOC_GD_ENV_ADDR=y -+CONFIG_VERSION_VARIABLE=y -+CONFIG_PARTITION_UUIDS=y -+CONFIG_NETCONSOLE=y -+CONFIG_REGMAP=y -+CONFIG_SYSCON=y -+CONFIG_CLK=y -+CONFIG_DM_GPIO=y -+CONFIG_DM_SCSI=y -+CONFIG_AHCI=y -+CONFIG_AHCI_PCI=y -+CONFIG_SCSI_AHCI=y -+CONFIG_SCSI=y -+CONFIG_CMD_SCSI=y -+CONFIG_PHY=y -+CONFIG_PHY_MTK_TPHY=y -+CONFIG_PHY_FIXED=y -+CONFIG_MTK_AHCI=y -+CONFIG_DM_ETH=y -+CONFIG_MEDIATEK_ETH=y -+CONFIG_PCI=y -+CONFIG_MTD=y -+CONFIG_MTD_UBI_FASTMAP=y -+CONFIG_DM_PCI=y -+CONFIG_PCIE_MEDIATEK=y -+CONFIG_PINCTRL=y -+CONFIG_PINCONF=y -+CONFIG_PINCTRL_MT7622=y -+CONFIG_POWER_DOMAIN=y -+CONFIG_PRE_CONSOLE_BUFFER=y -+CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 -+CONFIG_MTK_POWER_DOMAIN=y +CONFIG_RAM=y ++CONFIG_SCSI=y +CONFIG_DM_SERIAL=y +CONFIG_MTK_SERIAL=y -+CONFIG_MMC=y -+CONFIG_MMC_DEFAULT_DEV=1 -+CONFIG_MMC_HS200_SUPPORT=y -+CONFIG_MMC_MTK=y -+CONFIG_MMC_SUPPORTS_TUNING=y -+CONFIG_SUPPORT_EMMC_BOOT=y +CONFIG_SPI=y +CONFIG_DM_SPI=y -+CONFIG_MTK_SPI_NAND=y -+CONFIG_MTK_SPI_NAND_MTD=y -+CONFIG_SYSRESET_WATCHDOG=y -+CONFIG_WDT_MTK=y -+CONFIG_LZO=y -+CONFIG_ZSTD=y -+CONFIG_HEXDUMP=y -+CONFIG_RANDOM_UUID=y -+CONFIG_REGEX=y ++CONFIG_MTK_SPIM=y +CONFIG_USB=y -+CONFIG_USB_HOST=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_XHCI_MTK=y +CONFIG_USB_STORAGE=y ++CONFIG_ZSTD=y ++CONFIG_HEXDUMP=y ++CONFIG_LMB_MAX_REGIONS=64 +--- /dev/null ++++ b/configs/mt7986a_bpi-r3-nor_defconfig +@@ -0,0 +1,139 @@ ++CONFIG_ARM=y ++CONFIG_SYS_HAS_NONCACHED_MEMORY=y ++CONFIG_POSITION_INDEPENDENT=y ++CONFIG_ARCH_MEDIATEK=y ++CONFIG_TEXT_BASE=0x41e00000 ++CONFIG_SYS_MALLOC_F_LEN=0x4000 ++CONFIG_NR_DRAM_BANKS=1 ++CONFIG_ENV_SIZE=0x20000 ++CONFIG_ENV_OFFSET=0x0 ++CONFIG_DEFAULT_DEVICE_TREE="mt7986a-bpi-r3-emmc" ++CONFIG_OF_LIBFDT_OVERLAY=y ++CONFIG_TARGET_MT7986=y ++CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 ++CONFIG_DEBUG_UART_BASE=0x11002000 ++CONFIG_DEBUG_UART_CLOCK=40000000 ++CONFIG_SYS_LOAD_ADDR=0x46000000 ++CONFIG_PCI=y ++CONFIG_DEBUG_UART=y ++CONFIG_AHCI=y ++CONFIG_FIT=y ++CONFIG_BOOTDELAY=30 ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_MENU_SHOW=y ++CONFIG_OF_SYSTEM_SETUP=y ++CONFIG_DEFAULT_FDT_FILE="mediatek/mt7986a-bpi-r3-emmc.dtb" ++CONFIG_LOGLEVEL=7 ++CONFIG_PRE_CONSOLE_BUFFER=y ++CONFIG_LOG=y ++CONFIG_BOARD_LATE_INIT=y ++CONFIG_HUSH_PARSER=y ++CONFIG_SYS_PROMPT="MT7986> " ++CONFIG_CMD_CPU=y ++CONFIG_CMD_LICENSE=y ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set ++CONFIG_CMD_BOOTMENU=y ++CONFIG_CMD_ASKENV=y ++CONFIG_CMD_ERASEENV=y ++CONFIG_CMD_ENV_FLAGS=y ++CONFIG_CMD_STRINGS=y ++CONFIG_CMD_DM=y ++CONFIG_CMD_GPIO=y ++CONFIG_CMD_PWM=y ++CONFIG_CMD_GPT=y ++CONFIG_CMD_MMC=y ++CONFIG_CMD_MTD=y ++CONFIG_CMD_PART=y ++CONFIG_CMD_PCI=y ++CONFIG_CMD_SF_TEST=y ++CONFIG_CMD_USB=y ++CONFIG_CMD_DHCP=y ++CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_RARP=y ++CONFIG_CMD_PING=y ++CONFIG_CMD_CDP=y ++CONFIG_CMD_SNTP=y ++CONFIG_CMD_DNS=y ++CONFIG_CMD_LINK_LOCAL=y ++CONFIG_CMD_PXE=y ++CONFIG_CMD_CACHE=y ++CONFIG_CMD_PSTORE=y ++CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 ++CONFIG_CMD_UUID=y ++CONFIG_CMD_HASH=y ++CONFIG_CMD_SMC=y ++CONFIG_CMD_EXT4=y ++CONFIG_CMD_FAT=y ++CONFIG_CMD_FS_GENERIC=y ++CONFIG_CMD_FS_UUID=y +CONFIG_OF_EMBED=y +CONFIG_ENV_OVERWRITE=y +CONFIG_ENV_IS_IN_MTD=y ++CONFIG_SYS_REDUNDAND_ENVIRONMENT=y +CONFIG_ENV_MTD_NAME="u-boot-env" -+CONFIG_ENV_OFFSET=0x0 -+CONFIG_ENV_OFFSET_REDUND=0x20000 -+CONFIG_ENV_SIZE=0x20000 +CONFIG_ENV_SIZE_REDUND=0x20000 ++CONFIG_SYS_RELOC_GD_ENV_ADDR=y ++CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_DEFAULT_ENV_FILE="bananapi_bpi-r3_nor_env" +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y ++CONFIG_VERSION_VARIABLE=y +CONFIG_NET_RANDOM_ETHADDR=y ++CONFIG_NETCONSOLE=y ++CONFIG_USE_IPADDR=y ++CONFIG_IPADDR="192.168.1.1" ++CONFIG_USE_SERVERIP=y ++CONFIG_SERVERIP="192.168.1.254" +CONFIG_REGMAP=y +CONFIG_SYSCON=y ++CONFIG_SCSI_AHCI=y ++CONFIG_AHCI_PCI=y ++CONFIG_MTK_AHCI=y ++CONFIG_BUTTON=y ++CONFIG_BUTTON_GPIO=y +CONFIG_CLK=y ++CONFIG_GPIO_HOG=y ++CONFIG_LED=y ++CONFIG_LED_BLINK=y ++CONFIG_LED_GPIO=y +CONFIG_SUPPORT_EMMC_BOOT=y +CONFIG_MMC_HS200_SUPPORT=y +CONFIG_MMC_MTK=y ++CONFIG_MTD=y ++CONFIG_DM_MTD=y ++CONFIG_MTK_SPI_NAND=y ++CONFIG_MTK_SPI_NAND_MTD=y ++CONFIG_DM_SPI_FLASH=y ++CONFIG_SPI_FLASH_WINBOND=y ++# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set ++CONFIG_SPI_FLASH_MTD=y +CONFIG_PHY_FIXED=y -+CONFIG_DM_ETH=y +CONFIG_MEDIATEK_ETH=y ++CONFIG_PCIE_MEDIATEK=y ++CONFIG_PHY=y ++CONFIG_PHY_MTK_TPHY=y +CONFIG_PINCTRL=y +CONFIG_PINCONF=y ++CONFIG_PINCTRL_MT7622=y +CONFIG_PINCTRL_MT7986=y +CONFIG_POWER_DOMAIN=y +CONFIG_MTK_POWER_DOMAIN=y +CONFIG_DM_REGULATOR=y +CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_SERIAL=y -+CONFIG_MTK_SERIAL=y -+CONFIG_HEXDUMP=y -+CONFIG_USE_DEFAULT_ENV_FILE=y -+#CONFIG_MTD_SPI_NAND=y -+CONFIG_MTK_SPIM=y -+#CONFIG_MTK_SNOR=y -+CONFIG_DM_SPI_FLASH=y -+CONFIG_SPI_FLASH_MTD=y -+CONFIG_SPI_FLASH_WINBOND=y -+# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set -+CONFIG_CMD_SF=y -+CONFIG_LMB_MAX_REGIONS=64 -+CONFIG_USE_IPADDR=y -+CONFIG_IPADDR="192.168.1.1" -+CONFIG_USE_SERVERIP=y -+CONFIG_SERVERIP="192.168.1.254" ---- /dev/null -+++ b/configs/mt7986a_bpi-r3-sd_defconfig -@@ -0,0 +1,198 @@ -+CONFIG_ARM=y -+CONFIG_POSITION_INDEPENDENT=y -+CONFIG_ARCH_MEDIATEK=y -+CONFIG_TARGET_MT7986=y -+CONFIG_TEXT_BASE=0x41e00000 -+CONFIG_SYS_MALLOC_F_LEN=0x4000 -+CONFIG_SYS_HAS_NONCACHED_MEMORY=y -+CONFIG_NR_DRAM_BANKS=1 -+CONFIG_DEFAULT_DEVICE_TREE="mt7986a-bpi-r3-sd" -+CONFIG_DEFAULT_ENV_FILE="bananapi_bpi-r3_sdmmc_env" -+CONFIG_DEFAULT_FDT_FILE="mediatek/mt7986a-bpi-r3-sd.dtb" -+CONFIG_OF_LIBFDT_OVERLAY=y -+CONFIG_OF_SYSTEM_SETUP=y -+CONFIG_DEBUG_UART_BASE=0x11002000 -+CONFIG_DEBUG_UART_CLOCK=40000000 -+CONFIG_DEBUG_UART=y -+CONFIG_SYS_LOAD_ADDR=0x46000000 -+CONFIG_SMBIOS_PRODUCT_NAME="" -+CONFIG_AUTOBOOT_KEYED=y -+CONFIG_BOOTDELAY=30 -+CONFIG_AUTOBOOT_MENU_SHOW=y -+CONFIG_CFB_CONSOLE_ANSI=y -+CONFIG_BOARD_LATE_INIT=y -+CONFIG_BUTTON=y -+CONFIG_BUTTON_GPIO=y -+CONFIG_GPIO_HOG=y -+CONFIG_CMD_ENV_FLAGS=y -+CONFIG_FIT=y -+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y -+CONFIG_LED=y -+CONFIG_LED_BLINK=y -+CONFIG_LED_GPIO=y -+CONFIG_LOGLEVEL=7 -+CONFIG_LOG=y -+CONFIG_SYS_PROMPT="MT7986> " -+# CONFIG_CMD_BOOTEFI_BOOTMGR is not set -+CONFIG_CMD_BOOTMENU=y -+CONFIG_CMD_BOOTP=y -+CONFIG_CMD_BUTTON=y -+CONFIG_CMD_CACHE=y -+CONFIG_CMD_CDP=y -+CONFIG_CMD_CPU=y -+CONFIG_CMD_DHCP=y -+CONFIG_CMD_DM=y -+CONFIG_CMD_DNS=y -+CONFIG_CMD_ECHO=y -+CONFIG_CMD_ENV_READMEM=y -+CONFIG_CMD_ERASEENV=y -+CONFIG_CMD_EXT4=y -+CONFIG_CMD_FAT=y -+CONFIG_CMD_FDT=y -+CONFIG_CMD_FS_GENERIC=y -+CONFIG_CMD_FS_UUID=y -+CONFIG_CMD_GPIO=y -+CONFIG_CMD_GPT=y -+CONFIG_CMD_HASH=y -+CONFIG_CMD_ITEST=y -+CONFIG_CMD_LED=y -+CONFIG_CMD_LICENSE=y -+CONFIG_CMD_LINK_LOCAL=y -+# CONFIG_CMD_MBR is not set -+CONFIG_CMD_MMC=y -+CONFIG_CMD_MTD=y -+CONFIG_CMD_PCI=y -+CONFIG_CMD_PSTORE=y -+CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 -+CONFIG_CMD_SF_TEST=y -+CONFIG_CMD_PING=y -+CONFIG_CMD_PXE=y -+CONFIG_CMD_PWM=y -+CONFIG_CMD_SMC=y -+CONFIG_CMD_TFTPBOOT=y -+CONFIG_CMD_TFTPSRV=y -+CONFIG_CMD_UBI=y -+CONFIG_CMD_UBI_RENAME=y -+CONFIG_CMD_UBIFS=y -+CONFIG_CMD_ASKENV=y -+CONFIG_CMD_PART=y -+CONFIG_CMD_RARP=y -+CONFIG_CMD_SETEXPR=y -+CONFIG_CMD_SLEEP=y -+CONFIG_CMD_SNTP=y -+CONFIG_CMD_SOURCE=y -+CONFIG_CMD_STRINGS=y -+CONFIG_CMD_USB=y -+CONFIG_CMD_UUID=y -+CONFIG_DISPLAY_CPUINFO=y -+CONFIG_DM_MMC=y -+CONFIG_DM_MTD=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y +CONFIG_DM_REGULATOR_GPIO=y -+CONFIG_DM_USB=y +CONFIG_DM_PWM=y +CONFIG_PWM_MTK=y -+CONFIG_HUSH_PARSER=y -+CONFIG_SYS_REDUNDAND_ENVIRONMENT=y -+CONFIG_SYS_RELOC_GD_ENV_ADDR=y -+CONFIG_VERSION_VARIABLE=y -+CONFIG_PARTITION_UUIDS=y -+CONFIG_NETCONSOLE=y -+CONFIG_REGMAP=y -+CONFIG_SYSCON=y -+CONFIG_CLK=y -+CONFIG_DM_GPIO=y -+CONFIG_DM_SCSI=y -+CONFIG_AHCI=y -+CONFIG_AHCI_PCI=y -+CONFIG_SCSI_AHCI=y -+CONFIG_SCSI=y -+CONFIG_CMD_SCSI=y -+CONFIG_PHY=y -+CONFIG_PHY_MTK_TPHY=y -+CONFIG_PHY_FIXED=y -+CONFIG_MTK_AHCI=y -+CONFIG_DM_ETH=y -+CONFIG_MEDIATEK_ETH=y -+CONFIG_PCI=y -+CONFIG_MTD=y -+CONFIG_MTD_UBI_FASTMAP=y -+CONFIG_DM_PCI=y -+CONFIG_PCIE_MEDIATEK=y -+CONFIG_PINCTRL=y -+CONFIG_PINCONF=y -+CONFIG_PINCTRL_MT7622=y -+CONFIG_POWER_DOMAIN=y -+CONFIG_PRE_CONSOLE_BUFFER=y -+CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 -+CONFIG_MTK_POWER_DOMAIN=y +CONFIG_RAM=y ++CONFIG_SCSI=y +CONFIG_DM_SERIAL=y +CONFIG_MTK_SERIAL=y -+CONFIG_MMC=y -+CONFIG_MMC_DEFAULT_DEV=1 -+CONFIG_MMC_HS200_SUPPORT=y -+CONFIG_MMC_MTK=y -+CONFIG_MMC_SUPPORTS_TUNING=y -+CONFIG_SUPPORT_EMMC_BOOT=y +CONFIG_SPI=y +CONFIG_DM_SPI=y -+CONFIG_MTK_SPI_NAND=y -+CONFIG_MTK_SPI_NAND_MTD=y -+CONFIG_SYSRESET_WATCHDOG=y -+CONFIG_WDT_MTK=y -+CONFIG_LZO=y -+CONFIG_ZSTD=y -+CONFIG_HEXDUMP=y -+CONFIG_RANDOM_UUID=y -+CONFIG_REGEX=y ++CONFIG_MTK_SPIM=y +CONFIG_USB=y -+CONFIG_USB_HOST=y +CONFIG_USB_XHCI_HCD=y +CONFIG_USB_XHCI_MTK=y +CONFIG_USB_STORAGE=y ++CONFIG_LZO=y ++CONFIG_ZSTD=y ++CONFIG_HEXDUMP=y ++CONFIG_LMB_MAX_REGIONS=64 +--- /dev/null ++++ b/configs/mt7986a_bpi-r3-sd_defconfig +@@ -0,0 +1,139 @@ ++CONFIG_ARM=y ++CONFIG_SYS_HAS_NONCACHED_MEMORY=y ++CONFIG_POSITION_INDEPENDENT=y ++CONFIG_ARCH_MEDIATEK=y ++CONFIG_TEXT_BASE=0x41e00000 ++CONFIG_SYS_MALLOC_F_LEN=0x4000 ++CONFIG_NR_DRAM_BANKS=1 ++CONFIG_ENV_SIZE=0x40000 ++CONFIG_ENV_OFFSET=0x400000 ++CONFIG_DEFAULT_DEVICE_TREE="mt7986a-bpi-r3-sd" ++CONFIG_OF_LIBFDT_OVERLAY=y ++CONFIG_TARGET_MT7986=y ++CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 ++CONFIG_DEBUG_UART_BASE=0x11002000 ++CONFIG_DEBUG_UART_CLOCK=40000000 ++CONFIG_ENV_OFFSET_REDUND=0x440000 ++CONFIG_SYS_LOAD_ADDR=0x46000000 ++CONFIG_PCI=y ++CONFIG_DEBUG_UART=y ++CONFIG_AHCI=y ++CONFIG_FIT=y ++CONFIG_BOOTDELAY=30 ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_MENU_SHOW=y ++CONFIG_OF_SYSTEM_SETUP=y ++CONFIG_DEFAULT_FDT_FILE="mediatek/mt7986a-bpi-r3-sd.dtb" ++CONFIG_LOGLEVEL=7 ++CONFIG_PRE_CONSOLE_BUFFER=y ++CONFIG_LOG=y ++CONFIG_BOARD_LATE_INIT=y ++CONFIG_HUSH_PARSER=y ++CONFIG_SYS_PROMPT="MT7986> " ++CONFIG_CMD_CPU=y ++CONFIG_CMD_LICENSE=y ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set ++CONFIG_CMD_BOOTMENU=y ++CONFIG_CMD_ASKENV=y ++CONFIG_CMD_ERASEENV=y ++CONFIG_CMD_ENV_FLAGS=y ++CONFIG_CMD_STRINGS=y ++CONFIG_CMD_DM=y ++CONFIG_CMD_GPIO=y ++CONFIG_CMD_PWM=y ++CONFIG_CMD_GPT=y ++CONFIG_CMD_MMC=y ++CONFIG_CMD_MTD=y ++CONFIG_CMD_PART=y ++CONFIG_CMD_PCI=y ++CONFIG_CMD_SF_TEST=y ++CONFIG_CMD_USB=y ++CONFIG_CMD_DHCP=y ++CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_RARP=y ++CONFIG_CMD_PING=y ++CONFIG_CMD_CDP=y ++CONFIG_CMD_SNTP=y ++CONFIG_CMD_DNS=y ++CONFIG_CMD_LINK_LOCAL=y ++CONFIG_CMD_PXE=y ++CONFIG_CMD_CACHE=y ++CONFIG_CMD_PSTORE=y ++CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 ++CONFIG_CMD_UUID=y ++CONFIG_CMD_HASH=y ++CONFIG_CMD_SMC=y ++CONFIG_CMD_EXT4=y ++CONFIG_CMD_FAT=y ++CONFIG_CMD_FS_GENERIC=y ++CONFIG_CMD_FS_UUID=y ++CONFIG_CMD_UBI=y ++CONFIG_CMD_UBI_RENAME=y +CONFIG_OF_EMBED=y +CONFIG_ENV_OVERWRITE=y +CONFIG_ENV_IS_IN_MMC=y -+CONFIG_ENV_OFFSET=0x400000 -+CONFIG_ENV_OFFSET_REDUND=0x440000 -+CONFIG_ENV_SIZE=0x40000 -+CONFIG_ENV_SIZE_REDUND=0x40000 -+CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y -+CONFIG_NET_RANDOM_ETHADDR=y -+CONFIG_REGMAP=y -+CONFIG_SYSCON=y -+CONFIG_CLK=y -+CONFIG_SUPPORT_EMMC_BOOT=y -+CONFIG_MMC_HS200_SUPPORT=y -+CONFIG_MMC_MTK=y -+CONFIG_PHY_FIXED=y -+CONFIG_DM_ETH=y -+CONFIG_MEDIATEK_ETH=y -+CONFIG_PINCTRL=y -+CONFIG_PINCONF=y -+CONFIG_PINCTRL_MT7986=y -+CONFIG_POWER_DOMAIN=y -+CONFIG_MTK_POWER_DOMAIN=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_SERIAL=y -+CONFIG_MTK_SERIAL=y -+CONFIG_HEXDUMP=y ++CONFIG_SYS_REDUNDAND_ENVIRONMENT=y ++CONFIG_SYS_RELOC_GD_ENV_ADDR=y +CONFIG_USE_DEFAULT_ENV_FILE=y -+CONFIG_MTD_SPI_NAND=y -+CONFIG_MTK_SPIM=y -+#CONFIG_MTK_SNOR=y -+CONFIG_DM_SPI_FLASH=y -+CONFIG_SPI_FLASH_MTD=y -+CONFIG_SPI_FLASH_WINBOND=y -+# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set -+CONFIG_CMD_SF=y -+CONFIG_CMD_NAND=y -+CONFIG_CMD_NAND_TRIMFFS=y -+CONFIG_LMB_MAX_REGIONS=64 ++CONFIG_DEFAULT_ENV_FILE="bananapi_bpi-r3_sdmmc_env" ++CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y ++CONFIG_VERSION_VARIABLE=y ++CONFIG_NET_RANDOM_ETHADDR=y ++CONFIG_NETCONSOLE=y +CONFIG_USE_IPADDR=y +CONFIG_IPADDR="192.168.1.1" +CONFIG_USE_SERVERIP=y +CONFIG_SERVERIP="192.168.1.254" ---- /dev/null -+++ b/configs/mt7986a_bpi-r3-snand_defconfig -@@ -0,0 +1,199 @@ -+CONFIG_ARM=y -+CONFIG_POSITION_INDEPENDENT=y -+CONFIG_ARCH_MEDIATEK=y -+CONFIG_TARGET_MT7986=y -+CONFIG_TEXT_BASE=0x41e00000 -+CONFIG_SYS_MALLOC_F_LEN=0x4000 -+CONFIG_SYS_HAS_NONCACHED_MEMORY=y -+CONFIG_NR_DRAM_BANKS=1 -+CONFIG_DEFAULT_DEVICE_TREE="mt7986a-bpi-r3-emmc" -+CONFIG_DEFAULT_ENV_FILE="bananapi_bpi-r3_snand_env" -+CONFIG_DEFAULT_FDT_FILE="mediatek/mt7986a-bpi-r3-emmc.dtb" -+CONFIG_OF_LIBFDT_OVERLAY=y -+CONFIG_OF_SYSTEM_SETUP=y -+CONFIG_DEBUG_UART_BASE=0x11002000 -+CONFIG_DEBUG_UART_CLOCK=40000000 -+CONFIG_DEBUG_UART=y -+CONFIG_SYS_LOAD_ADDR=0x46000000 -+CONFIG_SMBIOS_PRODUCT_NAME="" -+CONFIG_AUTOBOOT_KEYED=y -+CONFIG_BOOTDELAY=30 -+CONFIG_AUTOBOOT_MENU_SHOW=y -+CONFIG_CFB_CONSOLE_ANSI=y -+CONFIG_BOARD_LATE_INIT=y ++CONFIG_REGMAP=y ++CONFIG_SYSCON=y ++CONFIG_SCSI_AHCI=y ++CONFIG_AHCI_PCI=y ++CONFIG_MTK_AHCI=y +CONFIG_BUTTON=y +CONFIG_BUTTON_GPIO=y ++CONFIG_CLK=y +CONFIG_GPIO_HOG=y -+CONFIG_CMD_ENV_FLAGS=y -+CONFIG_FIT=y -+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y +CONFIG_LED=y +CONFIG_LED_BLINK=y +CONFIG_LED_GPIO=y -+CONFIG_LOGLEVEL=7 -+CONFIG_LOG=y -+CONFIG_SYS_PROMPT="MT7986> " -+# CONFIG_CMD_BOOTEFI_BOOTMGR is not set -+CONFIG_CMD_BOOTMENU=y -+CONFIG_CMD_BOOTP=y -+CONFIG_CMD_BUTTON=y -+CONFIG_CMD_CACHE=y -+CONFIG_CMD_CDP=y -+CONFIG_CMD_CPU=y -+CONFIG_CMD_DHCP=y -+CONFIG_CMD_DM=y -+CONFIG_CMD_DNS=y -+CONFIG_CMD_ECHO=y -+CONFIG_CMD_ENV_READMEM=y -+CONFIG_CMD_ERASEENV=y -+CONFIG_CMD_EXT4=y -+CONFIG_CMD_FAT=y -+CONFIG_CMD_FDT=y -+CONFIG_CMD_FS_GENERIC=y -+CONFIG_CMD_FS_UUID=y -+CONFIG_CMD_GPIO=y -+CONFIG_CMD_GPT=y -+CONFIG_CMD_HASH=y -+CONFIG_CMD_ITEST=y -+CONFIG_CMD_LED=y -+CONFIG_CMD_LICENSE=y -+CONFIG_CMD_LINK_LOCAL=y -+# CONFIG_CMD_MBR is not set -+CONFIG_CMD_MMC=y -+CONFIG_CMD_MTD=y -+CONFIG_CMD_PCI=y -+CONFIG_CMD_PSTORE=y -+CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 -+CONFIG_CMD_SF_TEST=y -+CONFIG_CMD_PING=y -+CONFIG_CMD_PXE=y -+CONFIG_CMD_PWM=y -+CONFIG_CMD_SMC=y -+CONFIG_CMD_TFTPBOOT=y -+CONFIG_CMD_TFTPSRV=y -+CONFIG_CMD_UBI=y -+CONFIG_CMD_UBI_RENAME=y -+CONFIG_CMD_UBIFS=y -+CONFIG_CMD_ASKENV=y -+CONFIG_CMD_PART=y -+CONFIG_CMD_RARP=y -+CONFIG_CMD_SETEXPR=y -+CONFIG_CMD_SLEEP=y -+CONFIG_CMD_SNTP=y -+CONFIG_CMD_SOURCE=y -+CONFIG_CMD_STRINGS=y -+CONFIG_CMD_USB=y -+CONFIG_CMD_UUID=y -+CONFIG_DISPLAY_CPUINFO=y -+CONFIG_DM_MMC=y ++CONFIG_SUPPORT_EMMC_BOOT=y ++CONFIG_MMC_HS200_SUPPORT=y ++CONFIG_MMC_MTK=y ++CONFIG_MTD=y +CONFIG_DM_MTD=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_REGULATOR_GPIO=y -+CONFIG_DM_USB=y -+CONFIG_DM_PWM=y -+CONFIG_PWM_MTK=y -+CONFIG_HUSH_PARSER=y -+CONFIG_SYS_REDUNDAND_ENVIRONMENT=y -+CONFIG_SYS_RELOC_GD_ENV_ADDR=y -+CONFIG_VERSION_VARIABLE=y -+CONFIG_PARTITION_UUIDS=y -+CONFIG_NETCONSOLE=y -+CONFIG_REGMAP=y -+CONFIG_SYSCON=y -+CONFIG_CLK=y -+CONFIG_DM_GPIO=y -+CONFIG_DM_SCSI=y -+CONFIG_AHCI=y -+CONFIG_AHCI_PCI=y -+CONFIG_SCSI_AHCI=y -+CONFIG_SCSI=y -+CONFIG_CMD_SCSI=y ++CONFIG_MTD_SPI_NAND=y ++CONFIG_DM_SPI_FLASH=y ++CONFIG_SPI_FLASH_WINBOND=y ++# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set ++CONFIG_SPI_FLASH_MTD=y ++CONFIG_MTD_UBI_FASTMAP=y ++CONFIG_PHY_FIXED=y ++CONFIG_MEDIATEK_ETH=y ++CONFIG_PCIE_MEDIATEK=y +CONFIG_PHY=y +CONFIG_PHY_MTK_TPHY=y -+CONFIG_PHY_FIXED=y -+CONFIG_MTK_AHCI=y -+CONFIG_DM_ETH=y -+CONFIG_MEDIATEK_ETH=y -+CONFIG_PCI=y -+CONFIG_MTD=y -+CONFIG_MTD_UBI_FASTMAP=y -+CONFIG_DM_PCI=y -+CONFIG_PCIE_MEDIATEK=y +CONFIG_PINCTRL=y +CONFIG_PINCONF=y +CONFIG_PINCTRL_MT7622=y -+CONFIG_POWER_DOMAIN=y -+CONFIG_PRE_CONSOLE_BUFFER=y -+CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 -+CONFIG_MTK_POWER_DOMAIN=y -+CONFIG_RAM=y -+CONFIG_DM_SERIAL=y -+CONFIG_MTK_SERIAL=y -+CONFIG_MMC=y -+CONFIG_MMC_DEFAULT_DEV=1 -+CONFIG_MMC_HS200_SUPPORT=y -+CONFIG_MMC_MTK=y -+CONFIG_MMC_SUPPORTS_TUNING=y -+CONFIG_SUPPORT_EMMC_BOOT=y -+CONFIG_SPI=y -+CONFIG_DM_SPI=y -+CONFIG_MTK_SPI_NAND=y -+CONFIG_MTK_SPI_NAND_MTD=y -+CONFIG_SYSRESET_WATCHDOG=y -+CONFIG_WDT_MTK=y -+CONFIG_LZO=y -+CONFIG_ZSTD=y -+CONFIG_HEXDUMP=y -+CONFIG_RANDOM_UUID=y -+CONFIG_REGEX=y -+CONFIG_USB=y -+CONFIG_USB_HOST=y -+CONFIG_USB_XHCI_HCD=y -+CONFIG_USB_XHCI_MTK=y -+CONFIG_USB_STORAGE=y -+CONFIG_OF_EMBED=y -+CONFIG_ENV_OVERWRITE=y -+CONFIG_ENV_IS_IN_UBI=y -+CONFIG_ENV_UBI_PART="ubi" -+CONFIG_ENV_SIZE=0x1f000 -+CONFIG_ENV_SIZE_REDUND=0x1f000 -+CONFIG_ENV_UBI_VOLUME="ubootenv" -+CONFIG_ENV_UBI_VOLUME_REDUND="ubootenv2" -+CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y -+CONFIG_NET_RANDOM_ETHADDR=y -+CONFIG_REGMAP=y -+CONFIG_SYSCON=y -+CONFIG_CLK=y -+CONFIG_SUPPORT_EMMC_BOOT=y -+CONFIG_MMC_HS200_SUPPORT=y -+CONFIG_MMC_MTK=y -+CONFIG_PHY_FIXED=y -+CONFIG_DM_ETH=y -+CONFIG_MEDIATEK_ETH=y -+CONFIG_PINCTRL=y -+CONFIG_PINCONF=y +CONFIG_PINCTRL_MT7986=y +CONFIG_POWER_DOMAIN=y +CONFIG_MTK_POWER_DOMAIN=y +CONFIG_DM_REGULATOR=y +CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_REGULATOR_GPIO=y ++CONFIG_DM_PWM=y ++CONFIG_PWM_MTK=y ++CONFIG_RAM=y ++CONFIG_SCSI=y +CONFIG_DM_SERIAL=y +CONFIG_MTK_SERIAL=y -+CONFIG_HEXDUMP=y -+CONFIG_USE_DEFAULT_ENV_FILE=y -+CONFIG_MTD_SPI_NAND=y ++CONFIG_SPI=y ++CONFIG_DM_SPI=y +CONFIG_MTK_SPIM=y -+#CONFIG_MTK_SNOR=y -+#CONFIG_DM_SPI_FLASH=y -+#CONFIG_SPI_FLASH_MTD=y -+#CONFIG_SPI_FLASH_WINBOND=y -+# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set -+#CONFIG_CMD_SF=y -+CONFIG_CMD_NAND=y -+CONFIG_CMD_NAND_TRIMFFS=y ++CONFIG_USB=y ++CONFIG_USB_XHCI_HCD=y ++CONFIG_USB_XHCI_MTK=y ++CONFIG_USB_STORAGE=y ++CONFIG_ZSTD=y ++CONFIG_HEXDUMP=y +CONFIG_LMB_MAX_REGIONS=64 +--- /dev/null ++++ b/configs/mt7986a_bpi-r3-snand_defconfig +@@ -0,0 +1,134 @@ ++CONFIG_ARM=y ++CONFIG_SYS_HAS_NONCACHED_MEMORY=y ++CONFIG_POSITION_INDEPENDENT=y ++CONFIG_ARCH_MEDIATEK=y ++CONFIG_TEXT_BASE=0x41e00000 ++CONFIG_SYS_MALLOC_F_LEN=0x4000 ++CONFIG_NR_DRAM_BANKS=1 ++CONFIG_DEFAULT_DEVICE_TREE="mt7986a-bpi-r3-emmc" ++CONFIG_OF_LIBFDT_OVERLAY=y ++CONFIG_TARGET_MT7986=y ++CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 ++CONFIG_DEBUG_UART_BASE=0x11002000 ++CONFIG_DEBUG_UART_CLOCK=40000000 ++CONFIG_SYS_LOAD_ADDR=0x46000000 ++CONFIG_PCI=y ++CONFIG_DEBUG_UART=y ++CONFIG_AHCI=y ++CONFIG_FIT=y ++CONFIG_BOOTDELAY=30 ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_MENU_SHOW=y ++CONFIG_OF_SYSTEM_SETUP=y ++CONFIG_DEFAULT_FDT_FILE="mediatek/mt7986a-bpi-r3-emmc.dtb" ++CONFIG_LOGLEVEL=7 ++CONFIG_PRE_CONSOLE_BUFFER=y ++CONFIG_LOG=y ++CONFIG_BOARD_LATE_INIT=y ++CONFIG_HUSH_PARSER=y ++CONFIG_SYS_PROMPT="MT7986> " ++CONFIG_CMD_CPU=y ++CONFIG_CMD_LICENSE=y ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set ++CONFIG_CMD_BOOTMENU=y ++CONFIG_CMD_ASKENV=y ++CONFIG_CMD_ERASEENV=y ++CONFIG_CMD_ENV_FLAGS=y ++CONFIG_CMD_STRINGS=y ++CONFIG_CMD_DM=y ++CONFIG_CMD_GPIO=y ++CONFIG_CMD_PWM=y ++CONFIG_CMD_GPT=y ++CONFIG_CMD_MMC=y ++CONFIG_CMD_MTD=y ++CONFIG_CMD_PART=y ++CONFIG_CMD_PCI=y ++CONFIG_CMD_USB=y ++CONFIG_CMD_DHCP=y ++CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_RARP=y ++CONFIG_CMD_PING=y ++CONFIG_CMD_CDP=y ++CONFIG_CMD_SNTP=y ++CONFIG_CMD_DNS=y ++CONFIG_CMD_LINK_LOCAL=y ++CONFIG_CMD_PXE=y ++CONFIG_CMD_CACHE=y ++CONFIG_CMD_PSTORE=y ++CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 ++CONFIG_CMD_UUID=y ++CONFIG_CMD_HASH=y ++CONFIG_CMD_SMC=y ++CONFIG_CMD_EXT4=y ++CONFIG_CMD_FAT=y ++CONFIG_CMD_FS_GENERIC=y ++CONFIG_CMD_FS_UUID=y ++CONFIG_CMD_UBI=y ++CONFIG_CMD_UBI_RENAME=y ++CONFIG_OF_EMBED=y ++CONFIG_ENV_OVERWRITE=y ++CONFIG_ENV_IS_IN_UBI=y ++CONFIG_SYS_REDUNDAND_ENVIRONMENT=y ++CONFIG_ENV_UBI_PART="ubi" ++CONFIG_ENV_UBI_VOLUME="ubootenv" ++CONFIG_ENV_UBI_VOLUME_REDUND="ubootenv2" ++CONFIG_SYS_RELOC_GD_ENV_ADDR=y ++CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_DEFAULT_ENV_FILE="bananapi_bpi-r3_snand_env" ++CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y ++CONFIG_VERSION_VARIABLE=y ++CONFIG_NET_RANDOM_ETHADDR=y ++CONFIG_NETCONSOLE=y +CONFIG_USE_IPADDR=y +CONFIG_IPADDR="192.168.1.1" +CONFIG_USE_SERVERIP=y +CONFIG_SERVERIP="192.168.1.254" ++CONFIG_REGMAP=y ++CONFIG_SYSCON=y ++CONFIG_SCSI_AHCI=y ++CONFIG_AHCI_PCI=y ++CONFIG_MTK_AHCI=y ++CONFIG_BUTTON=y ++CONFIG_BUTTON_GPIO=y ++CONFIG_CLK=y ++CONFIG_GPIO_HOG=y ++CONFIG_LED=y ++CONFIG_LED_BLINK=y ++CONFIG_LED_GPIO=y ++CONFIG_SUPPORT_EMMC_BOOT=y ++CONFIG_MMC_HS200_SUPPORT=y ++CONFIG_MMC_MTK=y ++CONFIG_MTD=y ++CONFIG_DM_MTD=y ++CONFIG_MTD_SPI_NAND=y ++CONFIG_MTD_UBI_FASTMAP=y ++CONFIG_PHY_FIXED=y ++CONFIG_MEDIATEK_ETH=y ++CONFIG_PCIE_MEDIATEK=y ++CONFIG_PHY=y ++CONFIG_PHY_MTK_TPHY=y ++CONFIG_PINCTRL=y ++CONFIG_PINCONF=y ++CONFIG_PINCTRL_MT7622=y ++CONFIG_PINCTRL_MT7986=y ++CONFIG_POWER_DOMAIN=y ++CONFIG_MTK_POWER_DOMAIN=y ++CONFIG_DM_REGULATOR=y ++CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_REGULATOR_GPIO=y ++CONFIG_DM_PWM=y ++CONFIG_PWM_MTK=y ++CONFIG_RAM=y ++CONFIG_SCSI=y ++CONFIG_DM_SERIAL=y ++CONFIG_MTK_SERIAL=y ++CONFIG_SPI=y ++CONFIG_DM_SPI=y ++CONFIG_MTK_SPIM=y ++CONFIG_USB=y ++CONFIG_USB_XHCI_HCD=y ++CONFIG_USB_XHCI_MTK=y ++CONFIG_USB_STORAGE=y ++CONFIG_ZSTD=y ++CONFIG_HEXDUMP=y ++CONFIG_LMB_MAX_REGIONS=64 --- /dev/null +++ b/bananapi_bpi-r3_sdmmc_env @@ -0,0 +1,81 @@ diff --git a/package/boot/uboot-mediatek/patches/431-add-xiaomi_redmi-ax6000.patch b/package/boot/uboot-mediatek/patches/431-add-xiaomi_redmi-ax6000.patch index 6ccf11d24c..a1f58b1682 100644 --- a/package/boot/uboot-mediatek/patches/431-add-xiaomi_redmi-ax6000.patch +++ b/package/boot/uboot-mediatek/patches/431-add-xiaomi_redmi-ax6000.patch @@ -1,166 +1,92 @@ --- /dev/null +++ b/configs/mt7986_xiaomi_redmi-ax6000_defconfig -@@ -0,0 +1,180 @@ +@@ -0,0 +1,104 @@ +CONFIG_ARM=y ++CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y -+CONFIG_TARGET_MT7986=y +CONFIG_TEXT_BASE=0x41e00000 +CONFIG_SYS_MALLOC_F_LEN=0x4000 -+CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_NR_DRAM_BANKS=1 +CONFIG_DEFAULT_DEVICE_TREE="mt7986a-xiaomi_redmi-ax6000" -+CONFIG_DEFAULT_ENV_FILE="xiaomi_redmi-ax6000_env" -+CONFIG_DEFAULT_FDT_FILE="mediatek/mt7986a-xiaomi_redmi-ax6000.dtb" +CONFIG_OF_LIBFDT_OVERLAY=y ++CONFIG_TARGET_MT7986=y ++CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 +CONFIG_DEBUG_UART_BASE=0x11002000 +CONFIG_DEBUG_UART_CLOCK=40000000 -+CONFIG_DEBUG_UART=y +CONFIG_SYS_LOAD_ADDR=0x46000000 -+CONFIG_SMBIOS_PRODUCT_NAME="" -+CONFIG_AUTOBOOT_KEYED=y -+CONFIG_BOOTDELAY=30 -+CONFIG_AUTOBOOT_MENU_SHOW=y -+CONFIG_CFB_CONSOLE_ANSI=y -+CONFIG_BOARD_LATE_INIT=y -+CONFIG_BUTTON=y -+CONFIG_BUTTON_GPIO=y -+CONFIG_GPIO_HOG=y -+CONFIG_CMD_ENV_FLAGS=y ++CONFIG_DEBUG_UART=y +CONFIG_FIT=y -+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y -+# CONFIG_LED is not set -+# CONFIG_LED_BLINK is not set -+# CONFIG_LED_GPIO is not set ++CONFIG_BOOTDELAY=30 ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_MENU_SHOW=y ++CONFIG_DEFAULT_FDT_FILE="mediatek/mt7986a-xiaomi_redmi-ax6000.dtb" +CONFIG_LOGLEVEL=7 ++CONFIG_PRE_CONSOLE_BUFFER=y +CONFIG_LOG=y ++CONFIG_BOARD_LATE_INIT=y ++CONFIG_HUSH_PARSER=y +CONFIG_SYS_PROMPT="MT7986> " -+# CONFIG_CMD_BOOTEFI_BOOTMGR is not set -+CONFIG_CMD_BOOTMENU=y -+CONFIG_CMD_BOOTP=y -+CONFIG_CMD_BUTTON=y -+CONFIG_CMD_CACHE=y -+CONFIG_CMD_CDP=y +CONFIG_CMD_CPU=y -+CONFIG_CMD_DHCP=y -+CONFIG_CMD_DM=y -+CONFIG_CMD_DNS=y -+CONFIG_CMD_ECHO=y -+CONFIG_CMD_ENV_READMEM=y -+CONFIG_CMD_ERASEENV=y -+# CONFIG_CMD_EXT4 is not set -+# CONFIG_CMD_FAT is not set -+CONFIG_CMD_FDT=y -+# CONFIG_CMD_FS_GENERIC is not set -+# CONFIG_CMD_FS_UUID is not set -+CONFIG_CMD_GPIO=y -+# CONFIG_CMD_GPT is not set -+CONFIG_CMD_HASH=y -+CONFIG_CMD_ITEST=y -+# CONFIG_CMD_LED is not set +CONFIG_CMD_LICENSE=y -+CONFIG_CMD_LINK_LOCAL=y -+# CONFIG_CMD_MBR is not set ++CONFIG_CMD_BOOTMENU=y ++CONFIG_CMD_ASKENV=y ++CONFIG_CMD_ERASEENV=y ++CONFIG_CMD_ENV_FLAGS=y ++CONFIG_CMD_STRINGS=y ++CONFIG_CMD_DM=y ++CONFIG_CMD_GPIO=y +CONFIG_CMD_MTD=y -+# CONFIG_CMD_PCI is not set ++CONFIG_CMD_DHCP=y ++CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_RARP=y ++CONFIG_CMD_PING=y ++CONFIG_CMD_CDP=y ++CONFIG_CMD_SNTP=y ++CONFIG_CMD_DNS=y ++CONFIG_CMD_LINK_LOCAL=y ++CONFIG_CMD_PXE=y ++CONFIG_CMD_CACHE=y +CONFIG_CMD_PSTORE=y +CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 -+CONFIG_CMD_SF_TEST=y -+CONFIG_CMD_PING=y -+CONFIG_CMD_PXE=y -+# CONFIG_CMD_PWM is not set ++CONFIG_CMD_UUID=y ++CONFIG_CMD_HASH=y +CONFIG_CMD_SMC=y -+CONFIG_CMD_TFTPBOOT=y -+CONFIG_CMD_TFTPSRV=y +CONFIG_CMD_UBI=y +CONFIG_CMD_UBI_RENAME=y -+CONFIG_CMD_UBIFS=y -+CONFIG_CMD_ASKENV=y -+CONFIG_CMD_PART=y -+CONFIG_CMD_RARP=y -+CONFIG_CMD_SETEXPR=y -+CONFIG_CMD_SLEEP=y -+CONFIG_CMD_SNTP=y -+CONFIG_CMD_SOURCE=y -+CONFIG_CMD_STRINGS=y -+# CONFIG_CMD_USB is not set -+# CONFIG_CMD_FLASH is not set -+CONFIG_CMD_UUID=y -+CONFIG_DISPLAY_CPUINFO=y -+CONFIG_DM_MTD=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_REGULATOR_GPIO=y -+# CONFIG_DM_USB is not set -+# CONFIG_DM_PWM is not set -+# CONFIG_PWM_MTK is not set -+CONFIG_HUSH_PARSER=y -+CONFIG_SYS_REDUNDAND_ENVIRONMENT=y -+CONFIG_SYS_RELOC_GD_ENV_ADDR=y -+CONFIG_VERSION_VARIABLE=y -+CONFIG_PARTITION_UUIDS=y -+CONFIG_NETCONSOLE=y -+CONFIG_REGMAP=y -+CONFIG_SYSCON=y -+CONFIG_CLK=y -+CONFIG_DM_GPIO=y -+# CONFIG_DM_SCSI is not set -+# CONFIG_AHCI is not set -+CONFIG_PHY=y -+# CONFIG_PHY_MTK_TPHY is not set -+CONFIG_PHY_FIXED=y -+CONFIG_DM_ETH=y -+CONFIG_MEDIATEK_ETH=y -+# CONFIG_PCI is not set -+# CONFIG_MMC is not set -+# CONFIG_DM_MMC is not set -+CONFIG_MTD=y -+CONFIG_MTD_UBI_FASTMAP=y -+# CONFIG_DM_PCI is not set -+# CONFIG_PCIE_MEDIATEK is not set -+CONFIG_PINCTRL=y -+CONFIG_PINCONF=y -+# CONFIG_PINCTRL_MT7622 is not set -+CONFIG_POWER_DOMAIN=y -+CONFIG_PRE_CONSOLE_BUFFER=y -+CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 -+CONFIG_MTK_POWER_DOMAIN=y -+CONFIG_RAM=y -+CONFIG_DM_SERIAL=y -+CONFIG_MTK_SERIAL=y -+CONFIG_SPI=y -+# CONFIG_I2C is not set -+CONFIG_DM_SPI=y -+CONFIG_MTK_SPI_NAND=y -+CONFIG_MTK_SPI_NAND_MTD=y -+CONFIG_SYSRESET_WATCHDOG=y -+CONFIG_WDT_MTK=y -+CONFIG_LZO=y -+CONFIG_ZSTD=y -+CONFIG_HEXDUMP=y -+CONFIG_RANDOM_UUID=y -+CONFIG_REGEX=y -+# CONFIG_USB is not set -+# CONFIG_USB_HOST is not set -+# CONFIG_USB_XHCI_HCD is not set -+# CONFIG_USB_XHCI_MTK is not set -+# CONFIG_USB_STORAGE is not set +CONFIG_OF_EMBED=y +CONFIG_ENV_OVERWRITE=y +CONFIG_ENV_IS_IN_UBI=y ++CONFIG_SYS_REDUNDAND_ENVIRONMENT=y +CONFIG_ENV_UBI_PART="ubi" -+CONFIG_ENV_SIZE=0x1f000 -+CONFIG_ENV_SIZE_REDUND=0x1f000 +CONFIG_ENV_UBI_VOLUME="ubootenv" +CONFIG_ENV_UBI_VOLUME_REDUND="ubootenv2" ++CONFIG_SYS_RELOC_GD_ENV_ADDR=y ++CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_DEFAULT_ENV_FILE="xiaomi_redmi-ax6000_env" +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y ++CONFIG_VERSION_VARIABLE=y +CONFIG_NET_RANDOM_ETHADDR=y ++CONFIG_NETCONSOLE=y ++CONFIG_USE_IPADDR=y ++CONFIG_IPADDR="192.168.1.1" ++CONFIG_USE_SERVERIP=y ++CONFIG_SERVERIP="192.168.1.254" +CONFIG_REGMAP=y +CONFIG_SYSCON=y ++CONFIG_BUTTON=y ++CONFIG_BUTTON_GPIO=y +CONFIG_CLK=y ++CONFIG_GPIO_HOG=y ++# CONFIG_I2C is not set ++# CONFIG_MMC is not set ++CONFIG_MTD=y ++CONFIG_DM_MTD=y ++CONFIG_MTD_SPI_NAND=y ++CONFIG_MTD_UBI_FASTMAP=y +CONFIG_PHY_FIXED=y -+CONFIG_DM_ETH=y +CONFIG_MEDIATEK_ETH=y ++CONFIG_PHY=y +CONFIG_PINCTRL=y +CONFIG_PINCONF=y +CONFIG_PINCTRL_MT7986=y @@ -168,19 +94,17 @@ +CONFIG_MTK_POWER_DOMAIN=y +CONFIG_DM_REGULATOR=y +CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_REGULATOR_GPIO=y ++CONFIG_RAM=y +CONFIG_DM_SERIAL=y +CONFIG_MTK_SERIAL=y -+CONFIG_HEXDUMP=y -+CONFIG_USE_DEFAULT_ENV_FILE=y -+CONFIG_MTD_SPI_NAND=y ++CONFIG_SPI=y ++CONFIG_DM_SPI=y +CONFIG_MTK_SPIM=y -+CONFIG_CMD_NAND=y -+CONFIG_CMD_NAND_TRIMFFS=y ++CONFIG_RANDOM_UUID=y ++CONFIG_ZSTD=y ++CONFIG_HEXDUMP=y +CONFIG_LMB_MAX_REGIONS=64 -+CONFIG_USE_IPADDR=y -+CONFIG_IPADDR="192.168.1.1" -+CONFIG_USE_SERVERIP=y -+CONFIG_SERVERIP="192.168.1.254" --- /dev/null +++ b/arch/arm/dts/mt7986a-xiaomi_redmi-ax6000.dts @@ -0,0 +1,161 @@ diff --git a/package/boot/uboot-mediatek/patches/432-add-tplink-xdr608x.patch b/package/boot/uboot-mediatek/patches/432-add-tplink-xdr608x.patch index 315d4be1fe..b75856752d 100644 --- a/package/boot/uboot-mediatek/patches/432-add-tplink-xdr608x.patch +++ b/package/boot/uboot-mediatek/patches/432-add-tplink-xdr608x.patch @@ -1,561 +1,402 @@ --- /dev/null +++ b/configs/mt7986_tplink_tl-xdr4288_defconfig -@@ -0,0 +1,183 @@ +@@ -0,0 +1,130 @@ +CONFIG_ARM=y ++CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y -+CONFIG_TARGET_MT7986=y +CONFIG_TEXT_BASE=0x41e00000 +CONFIG_SYS_MALLOC_F_LEN=0x4000 -+CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_NR_DRAM_BANKS=1 +CONFIG_DEFAULT_DEVICE_TREE="mt7986a-tplink-tl-xdr608x" -+CONFIG_DEFAULT_ENV_FILE="tplink_tl-xdr4288_env" -+CONFIG_DEFAULT_FDT_FILE="mediatek/mt7986a-tplink-tl-xdr608x.dtb" +CONFIG_OF_LIBFDT_OVERLAY=y ++CONFIG_TARGET_MT7986=y ++CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 +CONFIG_DEBUG_UART_BASE=0x11002000 +CONFIG_DEBUG_UART_CLOCK=40000000 -+CONFIG_DEBUG_UART=y +CONFIG_SYS_LOAD_ADDR=0x46000000 -+CONFIG_SMBIOS_PRODUCT_NAME="" -+CONFIG_AUTOBOOT_KEYED=y -+CONFIG_BOOTDELAY=30 -+CONFIG_AUTOBOOT_MENU_SHOW=y -+CONFIG_CFB_CONSOLE_ANSI=y -+CONFIG_BOARD_LATE_INIT=y -+CONFIG_BUTTON=y -+CONFIG_BUTTON_GPIO=y -+CONFIG_GPIO_HOG=y -+CONFIG_CMD_ENV_FLAGS=y ++CONFIG_PCI=y ++CONFIG_DEBUG_UART=y ++CONFIG_AHCI=y +CONFIG_FIT=y -+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y -+CONFIG_LED=y -+CONFIG_LED_BLINK=y -+CONFIG_LED_GPIO=y ++CONFIG_BOOTDELAY=30 ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_MENU_SHOW=y ++CONFIG_DEFAULT_FDT_FILE="mediatek/mt7986a-tplink-tl-xdr608x.dtb" +CONFIG_LOGLEVEL=7 ++CONFIG_PRE_CONSOLE_BUFFER=y +CONFIG_LOG=y ++CONFIG_BOARD_LATE_INIT=y ++CONFIG_HUSH_PARSER=y +CONFIG_SYS_PROMPT="MT7986> " ++CONFIG_CMD_CPU=y ++CONFIG_CMD_LICENSE=y +# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y -+CONFIG_CMD_BOOTP=y -+CONFIG_CMD_BUTTON=y -+CONFIG_CMD_CACHE=y -+CONFIG_CMD_CDP=y -+CONFIG_CMD_CPU=y -+CONFIG_CMD_DHCP=y -+CONFIG_CMD_DM=y -+CONFIG_CMD_DNS=y -+CONFIG_CMD_ECHO=y -+CONFIG_CMD_ENV_READMEM=y ++CONFIG_CMD_ASKENV=y +CONFIG_CMD_ERASEENV=y -+CONFIG_CMD_EXT4=y -+CONFIG_CMD_FAT=y -+CONFIG_CMD_FDT=y -+CONFIG_CMD_FS_GENERIC=y -+CONFIG_CMD_FS_UUID=y ++CONFIG_CMD_ENV_FLAGS=y ++CONFIG_CMD_STRINGS=y ++CONFIG_CMD_DM=y +CONFIG_CMD_GPIO=y ++CONFIG_CMD_PWM=y +CONFIG_CMD_GPT=y -+CONFIG_CMD_HASH=y -+CONFIG_CMD_ITEST=y -+CONFIG_CMD_LED=y -+CONFIG_CMD_LICENSE=y -+CONFIG_CMD_LINK_LOCAL=y -+# CONFIG_CMD_MBR is not set ++CONFIG_CMD_MTD=y ++CONFIG_CMD_PART=y +CONFIG_CMD_PCI=y ++CONFIG_CMD_USB=y ++CONFIG_CMD_DHCP=y ++CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_RARP=y ++CONFIG_CMD_PING=y ++CONFIG_CMD_CDP=y ++CONFIG_CMD_SNTP=y ++CONFIG_CMD_DNS=y ++CONFIG_CMD_LINK_LOCAL=y ++CONFIG_CMD_PXE=y ++CONFIG_CMD_CACHE=y +CONFIG_CMD_PSTORE=y +CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 -+CONFIG_CMD_SF_TEST=y -+CONFIG_CMD_PING=y -+CONFIG_CMD_PXE=y -+CONFIG_CMD_PWM=y ++CONFIG_CMD_UUID=y ++CONFIG_CMD_HASH=y +CONFIG_CMD_SMC=y -+CONFIG_CMD_TFTPBOOT=y -+CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_EXT4=y ++CONFIG_CMD_FAT=y ++CONFIG_CMD_FS_GENERIC=y ++CONFIG_CMD_FS_UUID=y +CONFIG_CMD_UBI=y +CONFIG_CMD_UBI_RENAME=y -+CONFIG_CMD_UBIFS=y -+CONFIG_CMD_ASKENV=y -+CONFIG_CMD_PART=y -+CONFIG_CMD_RARP=y -+CONFIG_CMD_SETEXPR=y -+CONFIG_CMD_SLEEP=y -+CONFIG_CMD_SNTP=y -+CONFIG_CMD_SOURCE=y -+CONFIG_CMD_STRINGS=y -+CONFIG_CMD_USB=y -+CONFIG_CMD_UUID=y -+CONFIG_DISPLAY_CPUINFO=y -+CONFIG_DM_MTD=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_REGULATOR_GPIO=y -+CONFIG_DM_USB=y -+CONFIG_DM_PWM=y -+CONFIG_PWM_MTK=y -+CONFIG_HUSH_PARSER=y -+CONFIG_SYS_REDUNDAND_ENVIRONMENT=y -+CONFIG_SYS_RELOC_GD_ENV_ADDR=y -+CONFIG_VERSION_VARIABLE=y -+CONFIG_PARTITION_UUIDS=y -+CONFIG_NETCONSOLE=y -+CONFIG_REGMAP=y -+CONFIG_SYSCON=y -+CONFIG_CLK=y -+CONFIG_DM_GPIO=y -+CONFIG_DM_SCSI=y -+CONFIG_AHCI=y -+CONFIG_AHCI_PCI=y -+CONFIG_SCSI_AHCI=y -+CONFIG_SCSI=y -+CONFIG_CMD_SCSI=y -+CONFIG_PHY=y -+CONFIG_PHY_MTK_TPHY=y -+CONFIG_PHY_FIXED=y -+CONFIG_MTK_AHCI=y -+CONFIG_DM_ETH=y -+CONFIG_MEDIATEK_ETH=y -+CONFIG_PCI=y -+# CONFIG_MMC is not set -+# CONFIG_DM_MMC is not set -+CONFIG_MTD=y -+CONFIG_MTD_UBI_FASTMAP=y -+CONFIG_DM_PCI=y -+CONFIG_PCIE_MEDIATEK=y -+CONFIG_PINCTRL=y -+CONFIG_PINCONF=y -+CONFIG_PINCTRL_MT7622=y -+CONFIG_POWER_DOMAIN=y -+CONFIG_PRE_CONSOLE_BUFFER=y -+CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 -+CONFIG_MTK_POWER_DOMAIN=y -+CONFIG_RAM=y -+CONFIG_DM_SERIAL=y -+CONFIG_MTK_SERIAL=y -+CONFIG_SPI=y -+CONFIG_DM_SPI=y -+CONFIG_MTK_SPI_NAND=y -+CONFIG_MTK_SPI_NAND_MTD=y -+CONFIG_SYSRESET_WATCHDOG=y -+CONFIG_WDT_MTK=y -+CONFIG_LZO=y -+CONFIG_ZSTD=y -+CONFIG_HEXDUMP=y -+CONFIG_RANDOM_UUID=y -+CONFIG_REGEX=y -+CONFIG_USB=y -+CONFIG_USB_HOST=y -+CONFIG_USB_XHCI_HCD=y -+CONFIG_USB_XHCI_MTK=y -+CONFIG_USB_STORAGE=y +CONFIG_OF_EMBED=y +CONFIG_ENV_OVERWRITE=y +CONFIG_ENV_IS_IN_UBI=y ++CONFIG_SYS_REDUNDAND_ENVIRONMENT=y +CONFIG_ENV_UBI_PART="ubi" -+CONFIG_ENV_SIZE=0x1f000 -+CONFIG_ENV_SIZE_REDUND=0x1f000 +CONFIG_ENV_UBI_VOLUME="ubootenv" +CONFIG_ENV_UBI_VOLUME_REDUND="ubootenv2" ++CONFIG_SYS_RELOC_GD_ENV_ADDR=y ++CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_DEFAULT_ENV_FILE="tplink_tl-xdr4288_env" +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y ++CONFIG_VERSION_VARIABLE=y +CONFIG_NET_RANDOM_ETHADDR=y ++CONFIG_NETCONSOLE=y ++CONFIG_USE_IPADDR=y ++CONFIG_IPADDR="192.168.1.1" ++CONFIG_USE_SERVERIP=y ++CONFIG_SERVERIP="192.168.1.254" +CONFIG_REGMAP=y +CONFIG_SYSCON=y ++CONFIG_SCSI_AHCI=y ++CONFIG_AHCI_PCI=y ++CONFIG_MTK_AHCI=y ++CONFIG_BUTTON=y ++CONFIG_BUTTON_GPIO=y +CONFIG_CLK=y ++CONFIG_GPIO_HOG=y ++CONFIG_LED=y ++CONFIG_LED_BLINK=y ++CONFIG_LED_GPIO=y ++# CONFIG_MMC is not set ++CONFIG_MTD=y ++CONFIG_DM_MTD=y ++CONFIG_MTD_SPI_NAND=y ++CONFIG_MTD_UBI_FASTMAP=y +CONFIG_PHY_FIXED=y -+CONFIG_DM_ETH=y +CONFIG_MEDIATEK_ETH=y ++CONFIG_PCIE_MEDIATEK=y ++CONFIG_PHY=y ++CONFIG_PHY_MTK_TPHY=y +CONFIG_PINCTRL=y +CONFIG_PINCONF=y ++CONFIG_PINCTRL_MT7622=y +CONFIG_PINCTRL_MT7986=y +CONFIG_POWER_DOMAIN=y +CONFIG_MTK_POWER_DOMAIN=y +CONFIG_DM_REGULATOR=y +CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_REGULATOR_GPIO=y ++CONFIG_DM_PWM=y ++CONFIG_PWM_MTK=y ++CONFIG_RAM=y ++CONFIG_SCSI=y +CONFIG_DM_SERIAL=y +CONFIG_MTK_SERIAL=y -+CONFIG_HEXDUMP=y -+CONFIG_USE_DEFAULT_ENV_FILE=y -+CONFIG_MTD_SPI_NAND=y ++CONFIG_SPI=y ++CONFIG_DM_SPI=y +CONFIG_MTK_SPIM=y -+CONFIG_CMD_MTD=y -+CONFIG_CMD_NAND=y -+CONFIG_CMD_NAND_TRIMFFS=y ++CONFIG_USB=y ++CONFIG_USB_XHCI_HCD=y ++CONFIG_USB_XHCI_MTK=y ++CONFIG_USB_STORAGE=y ++CONFIG_ZSTD=y ++CONFIG_HEXDUMP=y +CONFIG_LMB_MAX_REGIONS=64 -+CONFIG_USE_IPADDR=y -+CONFIG_IPADDR="192.168.1.1" -+CONFIG_USE_SERVERIP=y -+CONFIG_SERVERIP="192.168.1.254" --- /dev/null +++ b/configs/mt7986_tplink_tl-xdr6086_defconfig -@@ -0,0 +1,183 @@ +@@ -0,0 +1,130 @@ +CONFIG_ARM=y ++CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y -+CONFIG_TARGET_MT7986=y +CONFIG_TEXT_BASE=0x41e00000 +CONFIG_SYS_MALLOC_F_LEN=0x4000 -+CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_NR_DRAM_BANKS=1 +CONFIG_DEFAULT_DEVICE_TREE="mt7986a-tplink-tl-xdr608x" -+CONFIG_DEFAULT_ENV_FILE="tplink_tl-xdr6086_env" -+CONFIG_DEFAULT_FDT_FILE="mediatek/mt7986a-tplink-tl-xdr608x.dtb" +CONFIG_OF_LIBFDT_OVERLAY=y ++CONFIG_TARGET_MT7986=y ++CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 +CONFIG_DEBUG_UART_BASE=0x11002000 +CONFIG_DEBUG_UART_CLOCK=40000000 -+CONFIG_DEBUG_UART=y +CONFIG_SYS_LOAD_ADDR=0x46000000 -+CONFIG_SMBIOS_PRODUCT_NAME="" -+CONFIG_AUTOBOOT_KEYED=y -+CONFIG_BOOTDELAY=30 -+CONFIG_AUTOBOOT_MENU_SHOW=y -+CONFIG_CFB_CONSOLE_ANSI=y -+CONFIG_BOARD_LATE_INIT=y -+CONFIG_BUTTON=y -+CONFIG_BUTTON_GPIO=y -+CONFIG_GPIO_HOG=y -+CONFIG_CMD_ENV_FLAGS=y ++CONFIG_PCI=y ++CONFIG_DEBUG_UART=y ++CONFIG_AHCI=y +CONFIG_FIT=y -+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y -+CONFIG_LED=y -+CONFIG_LED_BLINK=y -+CONFIG_LED_GPIO=y ++CONFIG_BOOTDELAY=30 ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_MENU_SHOW=y ++CONFIG_DEFAULT_FDT_FILE="mediatek/mt7986a-tplink-tl-xdr608x.dtb" +CONFIG_LOGLEVEL=7 ++CONFIG_PRE_CONSOLE_BUFFER=y +CONFIG_LOG=y ++CONFIG_BOARD_LATE_INIT=y ++CONFIG_HUSH_PARSER=y +CONFIG_SYS_PROMPT="MT7986> " ++CONFIG_CMD_CPU=y ++CONFIG_CMD_LICENSE=y +# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y -+CONFIG_CMD_BOOTP=y -+CONFIG_CMD_BUTTON=y -+CONFIG_CMD_CACHE=y -+CONFIG_CMD_CDP=y -+CONFIG_CMD_CPU=y -+CONFIG_CMD_DHCP=y -+CONFIG_CMD_DM=y -+CONFIG_CMD_DNS=y -+CONFIG_CMD_ECHO=y -+CONFIG_CMD_ENV_READMEM=y ++CONFIG_CMD_ASKENV=y +CONFIG_CMD_ERASEENV=y -+CONFIG_CMD_EXT4=y -+CONFIG_CMD_FAT=y -+CONFIG_CMD_FDT=y -+CONFIG_CMD_FS_GENERIC=y -+CONFIG_CMD_FS_UUID=y ++CONFIG_CMD_ENV_FLAGS=y ++CONFIG_CMD_STRINGS=y ++CONFIG_CMD_DM=y +CONFIG_CMD_GPIO=y ++CONFIG_CMD_PWM=y +CONFIG_CMD_GPT=y -+CONFIG_CMD_HASH=y -+CONFIG_CMD_ITEST=y -+CONFIG_CMD_LED=y -+CONFIG_CMD_LICENSE=y -+CONFIG_CMD_LINK_LOCAL=y -+# CONFIG_CMD_MBR is not set ++CONFIG_CMD_MTD=y ++CONFIG_CMD_PART=y +CONFIG_CMD_PCI=y ++CONFIG_CMD_USB=y ++CONFIG_CMD_DHCP=y ++CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_RARP=y ++CONFIG_CMD_PING=y ++CONFIG_CMD_CDP=y ++CONFIG_CMD_SNTP=y ++CONFIG_CMD_DNS=y ++CONFIG_CMD_LINK_LOCAL=y ++CONFIG_CMD_PXE=y ++CONFIG_CMD_CACHE=y +CONFIG_CMD_PSTORE=y +CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 -+CONFIG_CMD_SF_TEST=y -+CONFIG_CMD_PING=y -+CONFIG_CMD_PXE=y -+CONFIG_CMD_PWM=y ++CONFIG_CMD_UUID=y ++CONFIG_CMD_HASH=y +CONFIG_CMD_SMC=y -+CONFIG_CMD_TFTPBOOT=y -+CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_EXT4=y ++CONFIG_CMD_FAT=y ++CONFIG_CMD_FS_GENERIC=y ++CONFIG_CMD_FS_UUID=y +CONFIG_CMD_UBI=y +CONFIG_CMD_UBI_RENAME=y -+CONFIG_CMD_UBIFS=y -+CONFIG_CMD_ASKENV=y -+CONFIG_CMD_PART=y -+CONFIG_CMD_RARP=y -+CONFIG_CMD_SETEXPR=y -+CONFIG_CMD_SLEEP=y -+CONFIG_CMD_SNTP=y -+CONFIG_CMD_SOURCE=y -+CONFIG_CMD_STRINGS=y -+CONFIG_CMD_USB=y -+CONFIG_CMD_UUID=y -+CONFIG_DISPLAY_CPUINFO=y -+CONFIG_DM_MTD=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_REGULATOR_GPIO=y -+CONFIG_DM_USB=y -+CONFIG_DM_PWM=y -+CONFIG_PWM_MTK=y -+CONFIG_HUSH_PARSER=y -+CONFIG_SYS_REDUNDAND_ENVIRONMENT=y -+CONFIG_SYS_RELOC_GD_ENV_ADDR=y -+CONFIG_VERSION_VARIABLE=y -+CONFIG_PARTITION_UUIDS=y -+CONFIG_NETCONSOLE=y -+CONFIG_REGMAP=y -+CONFIG_SYSCON=y -+CONFIG_CLK=y -+CONFIG_DM_GPIO=y -+CONFIG_DM_SCSI=y -+CONFIG_AHCI=y -+CONFIG_AHCI_PCI=y -+CONFIG_SCSI_AHCI=y -+CONFIG_SCSI=y -+CONFIG_CMD_SCSI=y -+CONFIG_PHY=y -+CONFIG_PHY_MTK_TPHY=y -+CONFIG_PHY_FIXED=y -+CONFIG_MTK_AHCI=y -+CONFIG_DM_ETH=y -+CONFIG_MEDIATEK_ETH=y -+CONFIG_PCI=y -+# CONFIG_MMC is not set -+# CONFIG_DM_MMC is not set -+CONFIG_MTD=y -+CONFIG_MTD_UBI_FASTMAP=y -+CONFIG_DM_PCI=y -+CONFIG_PCIE_MEDIATEK=y -+CONFIG_PINCTRL=y -+CONFIG_PINCONF=y -+CONFIG_PINCTRL_MT7622=y -+CONFIG_POWER_DOMAIN=y -+CONFIG_PRE_CONSOLE_BUFFER=y -+CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 -+CONFIG_MTK_POWER_DOMAIN=y -+CONFIG_RAM=y -+CONFIG_DM_SERIAL=y -+CONFIG_MTK_SERIAL=y -+CONFIG_SPI=y -+CONFIG_DM_SPI=y -+CONFIG_MTK_SPI_NAND=y -+CONFIG_MTK_SPI_NAND_MTD=y -+CONFIG_SYSRESET_WATCHDOG=y -+CONFIG_WDT_MTK=y -+CONFIG_LZO=y -+CONFIG_ZSTD=y -+CONFIG_HEXDUMP=y -+CONFIG_RANDOM_UUID=y -+CONFIG_REGEX=y -+CONFIG_USB=y -+CONFIG_USB_HOST=y -+CONFIG_USB_XHCI_HCD=y -+CONFIG_USB_XHCI_MTK=y -+CONFIG_USB_STORAGE=y +CONFIG_OF_EMBED=y +CONFIG_ENV_OVERWRITE=y +CONFIG_ENV_IS_IN_UBI=y ++CONFIG_SYS_REDUNDAND_ENVIRONMENT=y +CONFIG_ENV_UBI_PART="ubi" -+CONFIG_ENV_SIZE=0x1f000 -+CONFIG_ENV_SIZE_REDUND=0x1f000 +CONFIG_ENV_UBI_VOLUME="ubootenv" +CONFIG_ENV_UBI_VOLUME_REDUND="ubootenv2" ++CONFIG_SYS_RELOC_GD_ENV_ADDR=y ++CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_DEFAULT_ENV_FILE="tplink_tl-xdr6086_env" +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y ++CONFIG_VERSION_VARIABLE=y +CONFIG_NET_RANDOM_ETHADDR=y ++CONFIG_NETCONSOLE=y ++CONFIG_USE_IPADDR=y ++CONFIG_IPADDR="192.168.1.1" ++CONFIG_USE_SERVERIP=y ++CONFIG_SERVERIP="192.168.1.254" +CONFIG_REGMAP=y +CONFIG_SYSCON=y ++CONFIG_SCSI_AHCI=y ++CONFIG_AHCI_PCI=y ++CONFIG_MTK_AHCI=y ++CONFIG_BUTTON=y ++CONFIG_BUTTON_GPIO=y +CONFIG_CLK=y ++CONFIG_GPIO_HOG=y ++CONFIG_LED=y ++CONFIG_LED_BLINK=y ++CONFIG_LED_GPIO=y ++# CONFIG_MMC is not set ++CONFIG_MTD=y ++CONFIG_DM_MTD=y ++CONFIG_MTD_SPI_NAND=y ++CONFIG_MTD_UBI_FASTMAP=y +CONFIG_PHY_FIXED=y -+CONFIG_DM_ETH=y +CONFIG_MEDIATEK_ETH=y ++CONFIG_PCIE_MEDIATEK=y ++CONFIG_PHY=y ++CONFIG_PHY_MTK_TPHY=y +CONFIG_PINCTRL=y +CONFIG_PINCONF=y ++CONFIG_PINCTRL_MT7622=y +CONFIG_PINCTRL_MT7986=y +CONFIG_POWER_DOMAIN=y +CONFIG_MTK_POWER_DOMAIN=y +CONFIG_DM_REGULATOR=y +CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_REGULATOR_GPIO=y ++CONFIG_DM_PWM=y ++CONFIG_PWM_MTK=y ++CONFIG_RAM=y ++CONFIG_SCSI=y +CONFIG_DM_SERIAL=y +CONFIG_MTK_SERIAL=y -+CONFIG_HEXDUMP=y -+CONFIG_USE_DEFAULT_ENV_FILE=y -+CONFIG_MTD_SPI_NAND=y ++CONFIG_SPI=y ++CONFIG_DM_SPI=y +CONFIG_MTK_SPIM=y -+CONFIG_CMD_MTD=y -+CONFIG_CMD_NAND=y -+CONFIG_CMD_NAND_TRIMFFS=y ++CONFIG_USB=y ++CONFIG_USB_XHCI_HCD=y ++CONFIG_USB_XHCI_MTK=y ++CONFIG_USB_STORAGE=y ++CONFIG_ZSTD=y ++CONFIG_HEXDUMP=y +CONFIG_LMB_MAX_REGIONS=64 -+CONFIG_USE_IPADDR=y -+CONFIG_IPADDR="192.168.1.1" -+CONFIG_USE_SERVERIP=y -+CONFIG_SERVERIP="192.168.1.254" --- /dev/null +++ b/configs/mt7986_tplink_tl-xdr6088_defconfig -@@ -0,0 +1,183 @@ +@@ -0,0 +1,130 @@ +CONFIG_ARM=y ++CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y -+CONFIG_TARGET_MT7986=y +CONFIG_TEXT_BASE=0x41e00000 -+CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_SYS_MALLOC_F_LEN=0x4000 +CONFIG_NR_DRAM_BANKS=1 +CONFIG_DEFAULT_DEVICE_TREE="mt7986a-tplink-tl-xdr608x" -+CONFIG_DEFAULT_ENV_FILE="tplink_tl-xdr6088_env" -+CONFIG_DEFAULT_FDT_FILE="mediatek/mt7986a-tplink-tl-xdr608x.dtb" +CONFIG_OF_LIBFDT_OVERLAY=y ++CONFIG_TARGET_MT7986=y ++CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 +CONFIG_DEBUG_UART_BASE=0x11002000 +CONFIG_DEBUG_UART_CLOCK=40000000 -+CONFIG_DEBUG_UART=y +CONFIG_SYS_LOAD_ADDR=0x46000000 -+CONFIG_SMBIOS_PRODUCT_NAME="" -+CONFIG_AUTOBOOT_KEYED=y -+CONFIG_BOOTDELAY=30 -+CONFIG_AUTOBOOT_MENU_SHOW=y -+CONFIG_CFB_CONSOLE_ANSI=y -+CONFIG_BOARD_LATE_INIT=y -+CONFIG_BUTTON=y -+CONFIG_BUTTON_GPIO=y -+CONFIG_GPIO_HOG=y -+CONFIG_CMD_ENV_FLAGS=y ++CONFIG_PCI=y ++CONFIG_DEBUG_UART=y ++CONFIG_AHCI=y +CONFIG_FIT=y -+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y -+CONFIG_LED=y -+CONFIG_LED_BLINK=y -+CONFIG_LED_GPIO=y ++CONFIG_BOOTDELAY=30 ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_MENU_SHOW=y ++CONFIG_DEFAULT_FDT_FILE="mediatek/mt7986a-tplink-tl-xdr608x.dtb" +CONFIG_LOGLEVEL=7 ++CONFIG_PRE_CONSOLE_BUFFER=y +CONFIG_LOG=y ++CONFIG_BOARD_LATE_INIT=y ++CONFIG_HUSH_PARSER=y +CONFIG_SYS_PROMPT="MT7986> " ++CONFIG_CMD_CPU=y ++CONFIG_CMD_LICENSE=y +# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y -+CONFIG_CMD_BOOTP=y -+CONFIG_CMD_BUTTON=y -+CONFIG_CMD_CACHE=y -+CONFIG_CMD_CDP=y -+CONFIG_CMD_CPU=y -+CONFIG_CMD_DHCP=y -+CONFIG_CMD_DM=y -+CONFIG_CMD_DNS=y -+CONFIG_CMD_ECHO=y -+CONFIG_CMD_ENV_READMEM=y ++CONFIG_CMD_ASKENV=y +CONFIG_CMD_ERASEENV=y -+CONFIG_CMD_EXT4=y -+CONFIG_CMD_FAT=y -+CONFIG_CMD_FDT=y -+CONFIG_CMD_FS_GENERIC=y -+CONFIG_CMD_FS_UUID=y ++CONFIG_CMD_ENV_FLAGS=y ++CONFIG_CMD_STRINGS=y ++CONFIG_CMD_DM=y +CONFIG_CMD_GPIO=y ++CONFIG_CMD_PWM=y +CONFIG_CMD_GPT=y -+CONFIG_CMD_HASH=y -+CONFIG_CMD_ITEST=y -+CONFIG_CMD_LED=y -+CONFIG_CMD_LICENSE=y -+CONFIG_CMD_LINK_LOCAL=y -+# CONFIG_CMD_MBR is not set ++CONFIG_CMD_MTD=y ++CONFIG_CMD_PART=y +CONFIG_CMD_PCI=y ++CONFIG_CMD_USB=y ++CONFIG_CMD_DHCP=y ++CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_RARP=y ++CONFIG_CMD_PING=y ++CONFIG_CMD_CDP=y ++CONFIG_CMD_SNTP=y ++CONFIG_CMD_DNS=y ++CONFIG_CMD_LINK_LOCAL=y ++CONFIG_CMD_PXE=y ++CONFIG_CMD_CACHE=y +CONFIG_CMD_PSTORE=y +CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 -+CONFIG_CMD_SF_TEST=y -+CONFIG_CMD_PING=y -+CONFIG_CMD_PXE=y -+CONFIG_CMD_PWM=y ++CONFIG_CMD_UUID=y ++CONFIG_CMD_HASH=y +CONFIG_CMD_SMC=y -+CONFIG_CMD_TFTPBOOT=y -+CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_EXT4=y ++CONFIG_CMD_FAT=y ++CONFIG_CMD_FS_GENERIC=y ++CONFIG_CMD_FS_UUID=y +CONFIG_CMD_UBI=y +CONFIG_CMD_UBI_RENAME=y -+CONFIG_CMD_UBIFS=y -+CONFIG_CMD_ASKENV=y -+CONFIG_CMD_PART=y -+CONFIG_CMD_RARP=y -+CONFIG_CMD_SETEXPR=y -+CONFIG_CMD_SLEEP=y -+CONFIG_CMD_SNTP=y -+CONFIG_CMD_SOURCE=y -+CONFIG_CMD_STRINGS=y -+CONFIG_CMD_USB=y -+CONFIG_CMD_UUID=y -+CONFIG_DISPLAY_CPUINFO=y -+CONFIG_DM_MTD=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_REGULATOR_GPIO=y -+CONFIG_DM_USB=y -+CONFIG_DM_PWM=y -+CONFIG_PWM_MTK=y -+CONFIG_HUSH_PARSER=y -+CONFIG_SYS_REDUNDAND_ENVIRONMENT=y -+CONFIG_SYS_RELOC_GD_ENV_ADDR=y -+CONFIG_VERSION_VARIABLE=y -+CONFIG_PARTITION_UUIDS=y -+CONFIG_NETCONSOLE=y -+CONFIG_REGMAP=y -+CONFIG_SYSCON=y -+CONFIG_CLK=y -+CONFIG_DM_GPIO=y -+CONFIG_DM_SCSI=y -+CONFIG_AHCI=y -+CONFIG_AHCI_PCI=y -+CONFIG_SCSI_AHCI=y -+CONFIG_SCSI=y -+CONFIG_CMD_SCSI=y -+CONFIG_PHY=y -+CONFIG_PHY_MTK_TPHY=y -+CONFIG_PHY_FIXED=y -+CONFIG_MTK_AHCI=y -+CONFIG_DM_ETH=y -+CONFIG_MEDIATEK_ETH=y -+CONFIG_PCI=y -+# CONFIG_MMC is not set -+# CONFIG_DM_MMC is not set -+CONFIG_MTD=y -+CONFIG_MTD_UBI_FASTMAP=y -+CONFIG_DM_PCI=y -+CONFIG_PCIE_MEDIATEK=y -+CONFIG_PINCTRL=y -+CONFIG_PINCONF=y -+CONFIG_PINCTRL_MT7622=y -+CONFIG_POWER_DOMAIN=y -+CONFIG_PRE_CONSOLE_BUFFER=y -+CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 -+CONFIG_MTK_POWER_DOMAIN=y -+CONFIG_RAM=y -+CONFIG_DM_SERIAL=y -+CONFIG_MTK_SERIAL=y -+CONFIG_SPI=y -+CONFIG_DM_SPI=y -+CONFIG_MTK_SPI_NAND=y -+CONFIG_MTK_SPI_NAND_MTD=y -+CONFIG_SYSRESET_WATCHDOG=y -+CONFIG_WDT_MTK=y -+CONFIG_LZO=y -+CONFIG_ZSTD=y -+CONFIG_HEXDUMP=y -+CONFIG_RANDOM_UUID=y -+CONFIG_REGEX=y -+CONFIG_USB=y -+CONFIG_USB_HOST=y -+CONFIG_USB_XHCI_HCD=y -+CONFIG_USB_XHCI_MTK=y -+CONFIG_USB_STORAGE=y +CONFIG_OF_EMBED=y +CONFIG_ENV_OVERWRITE=y +CONFIG_ENV_IS_IN_UBI=y ++CONFIG_SYS_REDUNDAND_ENVIRONMENT=y +CONFIG_ENV_UBI_PART="ubi" -+CONFIG_ENV_SIZE=0x1f000 -+CONFIG_ENV_SIZE_REDUND=0x1f000 +CONFIG_ENV_UBI_VOLUME="ubootenv" +CONFIG_ENV_UBI_VOLUME_REDUND="ubootenv2" ++CONFIG_SYS_RELOC_GD_ENV_ADDR=y ++CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_DEFAULT_ENV_FILE="tplink_tl-xdr6088_env" +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y ++CONFIG_VERSION_VARIABLE=y +CONFIG_NET_RANDOM_ETHADDR=y ++CONFIG_NETCONSOLE=y ++CONFIG_USE_IPADDR=y ++CONFIG_IPADDR="192.168.1.1" ++CONFIG_USE_SERVERIP=y ++CONFIG_SERVERIP="192.168.1.254" +CONFIG_REGMAP=y +CONFIG_SYSCON=y ++CONFIG_SCSI_AHCI=y ++CONFIG_AHCI_PCI=y ++CONFIG_MTK_AHCI=y ++CONFIG_BUTTON=y ++CONFIG_BUTTON_GPIO=y +CONFIG_CLK=y ++CONFIG_GPIO_HOG=y ++CONFIG_LED=y ++CONFIG_LED_BLINK=y ++CONFIG_LED_GPIO=y ++# CONFIG_MMC is not set ++CONFIG_MTD=y ++CONFIG_DM_MTD=y ++CONFIG_MTD_SPI_NAND=y ++CONFIG_MTD_UBI_FASTMAP=y +CONFIG_PHY_FIXED=y -+CONFIG_DM_ETH=y +CONFIG_MEDIATEK_ETH=y ++CONFIG_PCIE_MEDIATEK=y ++CONFIG_PHY=y ++CONFIG_PHY_MTK_TPHY=y +CONFIG_PINCTRL=y +CONFIG_PINCONF=y ++CONFIG_PINCTRL_MT7622=y +CONFIG_PINCTRL_MT7986=y +CONFIG_POWER_DOMAIN=y +CONFIG_MTK_POWER_DOMAIN=y +CONFIG_DM_REGULATOR=y +CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_REGULATOR_GPIO=y ++CONFIG_DM_PWM=y ++CONFIG_PWM_MTK=y ++CONFIG_RAM=y ++CONFIG_SCSI=y +CONFIG_DM_SERIAL=y +CONFIG_MTK_SERIAL=y -+CONFIG_HEXDUMP=y -+CONFIG_USE_DEFAULT_ENV_FILE=y -+CONFIG_MTD_SPI_NAND=y ++CONFIG_SPI=y ++CONFIG_DM_SPI=y +CONFIG_MTK_SPIM=y -+CONFIG_CMD_MTD=y -+CONFIG_CMD_NAND=y -+CONFIG_CMD_NAND_TRIMFFS=y ++CONFIG_USB=y ++CONFIG_USB_XHCI_HCD=y ++CONFIG_USB_XHCI_MTK=y ++CONFIG_USB_STORAGE=y ++CONFIG_ZSTD=y ++CONFIG_HEXDUMP=y +CONFIG_LMB_MAX_REGIONS=64 -+CONFIG_USE_IPADDR=y -+CONFIG_IPADDR="192.168.1.1" -+CONFIG_USE_SERVERIP=y -+CONFIG_SERVERIP="192.168.1.254" --- /dev/null +++ b/arch/arm/dts/mt7986a-tplink-tl-xdr608x.dts @@ -0,0 +1,196 @@ diff --git a/package/boot/uboot-mediatek/patches/433-add-qihoo_360t7.patch b/package/boot/uboot-mediatek/patches/433-add-qihoo_360t7.patch index 289efbfa77..18c535540d 100644 --- a/package/boot/uboot-mediatek/patches/433-add-qihoo_360t7.patch +++ b/package/boot/uboot-mediatek/patches/433-add-qihoo_360t7.patch @@ -1,182 +1,131 @@ --- /dev/null +++ b/configs/mt7981_qihoo-360t7_defconfig -@@ -0,0 +1,176 @@ +@@ -0,0 +1,125 @@ +CONFIG_ARM=y ++CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y -+CONFIG_TARGET_MT7981=y +CONFIG_TEXT_BASE=0x41e00000 +CONFIG_SYS_MALLOC_F_LEN=0x4000 -+CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_NR_DRAM_BANKS=1 +CONFIG_DEFAULT_DEVICE_TREE="mt7981_qihoo-360t7" -+CONFIG_DEFAULT_ENV_FILE="qihoo-360t7_env" -+CONFIG_DEFAULT_FDT_FILE="mediatek/mt7981_qihoo-360t7.dtb" +CONFIG_OF_LIBFDT_OVERLAY=y ++CONFIG_TARGET_MT7981=y ++CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 +CONFIG_DEBUG_UART_BASE=0x11002000 +CONFIG_DEBUG_UART_CLOCK=40000000 -+CONFIG_DEBUG_UART=y +CONFIG_SYS_LOAD_ADDR=0x46000000 -+CONFIG_SMBIOS_PRODUCT_NAME="" -+CONFIG_AUTOBOOT_KEYED=y -+CONFIG_BOOTDELAY=30 -+CONFIG_AUTOBOOT_MENU_SHOW=y -+CONFIG_CFB_CONSOLE_ANSI=y -+CONFIG_BOARD_LATE_INIT=y -+CONFIG_BUTTON=y -+CONFIG_BUTTON_GPIO=y -+CONFIG_GPIO_HOG=y -+CONFIG_CMD_ENV_FLAGS=y ++CONFIG_PCI=y ++CONFIG_DEBUG_UART=y ++CONFIG_AHCI=y +CONFIG_FIT=y -+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y -+CONFIG_LED=y -+CONFIG_LED_BLINK=y -+CONFIG_LED_GPIO=y ++CONFIG_BOOTDELAY=30 ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_MENU_SHOW=y ++CONFIG_DEFAULT_FDT_FILE="mediatek/mt7981_qihoo-360t7.dtb" +CONFIG_LOGLEVEL=7 ++CONFIG_PRE_CONSOLE_BUFFER=y +CONFIG_LOG=y ++CONFIG_BOARD_LATE_INIT=y ++CONFIG_HUSH_PARSER=y +CONFIG_SYS_PROMPT="MT7981> " ++CONFIG_CMD_CPU=y ++CONFIG_CMD_LICENSE=y +# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y -+CONFIG_CMD_BOOTP=y -+CONFIG_CMD_BUTTON=y -+CONFIG_CMD_CACHE=y -+CONFIG_CMD_CDP=y -+CONFIG_CMD_CPU=y -+CONFIG_CMD_DHCP=y -+CONFIG_CMD_DM=y -+CONFIG_CMD_DNS=y -+CONFIG_CMD_ECHO=y -+CONFIG_CMD_ENV_READMEM=y ++CONFIG_CMD_ASKENV=y +CONFIG_CMD_ERASEENV=y -+CONFIG_CMD_EXT4=y -+CONFIG_CMD_FAT=y -+CONFIG_CMD_FDT=y -+CONFIG_CMD_FS_GENERIC=y -+CONFIG_CMD_FS_UUID=y ++CONFIG_CMD_ENV_FLAGS=y ++CONFIG_CMD_STRINGS=y ++CONFIG_CMD_DM=y +CONFIG_CMD_GPIO=y ++CONFIG_CMD_PWM=y +CONFIG_CMD_GPT=y -+CONFIG_CMD_HASH=y -+CONFIG_CMD_ITEST=y -+CONFIG_CMD_LED=y -+CONFIG_CMD_LICENSE=y -+CONFIG_CMD_LINK_LOCAL=y -+# CONFIG_CMD_MBR is not set ++CONFIG_CMD_MTD=y ++CONFIG_CMD_PART=y +CONFIG_CMD_PCI=y ++CONFIG_CMD_DHCP=y ++CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_RARP=y ++CONFIG_CMD_PING=y ++CONFIG_CMD_CDP=y ++CONFIG_CMD_SNTP=y ++CONFIG_CMD_DNS=y ++CONFIG_CMD_LINK_LOCAL=y ++CONFIG_CMD_PXE=y ++CONFIG_CMD_CACHE=y +CONFIG_CMD_PSTORE=y +CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 -+CONFIG_CMD_SF_TEST=y -+CONFIG_CMD_PING=y -+CONFIG_CMD_PXE=y -+CONFIG_CMD_PWM=y ++CONFIG_CMD_UUID=y ++CONFIG_CMD_HASH=y +CONFIG_CMD_SMC=y -+CONFIG_CMD_TFTPBOOT=y -+CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_EXT4=y ++CONFIG_CMD_FAT=y ++CONFIG_CMD_FS_GENERIC=y ++CONFIG_CMD_FS_UUID=y +CONFIG_CMD_UBI=y +CONFIG_CMD_UBI_RENAME=y -+CONFIG_CMD_UBIFS=y -+CONFIG_CMD_ASKENV=y -+CONFIG_CMD_PART=y -+CONFIG_CMD_RARP=y -+CONFIG_CMD_SETEXPR=y -+CONFIG_CMD_SLEEP=y -+CONFIG_CMD_SNTP=y -+CONFIG_CMD_SOURCE=y -+CONFIG_CMD_STRINGS=y -+CONFIG_CMD_UUID=y -+CONFIG_DISPLAY_CPUINFO=y -+CONFIG_DM_MTD=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_REGULATOR_GPIO=y -+CONFIG_DM_PWM=y -+CONFIG_PWM_MTK=y -+CONFIG_HUSH_PARSER=y -+CONFIG_SYS_REDUNDAND_ENVIRONMENT=y -+CONFIG_SYS_RELOC_GD_ENV_ADDR=y -+CONFIG_VERSION_VARIABLE=y -+CONFIG_PARTITION_UUIDS=y -+CONFIG_NETCONSOLE=y -+CONFIG_REGMAP=y -+CONFIG_SYSCON=y -+CONFIG_CLK=y -+CONFIG_DM_GPIO=y -+CONFIG_DM_SCSI=y -+CONFIG_AHCI=y -+CONFIG_AHCI_PCI=y -+CONFIG_SCSI_AHCI=y -+CONFIG_SCSI=y -+CONFIG_CMD_SCSI=y -+CONFIG_PHY=y -+CONFIG_PHY_MTK_TPHY=y -+CONFIG_PHY_FIXED=y -+CONFIG_MTK_AHCI=y -+CONFIG_DM_ETH=y -+CONFIG_MEDIATEK_ETH=y -+CONFIG_PCI=y -+# CONFIG_MMC is not set -+# CONFIG_DM_MMC is not set -+CONFIG_MTD=y -+CONFIG_MTD_UBI_FASTMAP=y -+CONFIG_DM_PCI=y -+CONFIG_PCIE_MEDIATEK=y -+CONFIG_PINCTRL=y -+CONFIG_PINCONF=y -+CONFIG_PINCTRL_MT7622=y -+CONFIG_POWER_DOMAIN=y -+CONFIG_PRE_CONSOLE_BUFFER=y -+CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 -+CONFIG_MTK_POWER_DOMAIN=y -+CONFIG_RAM=y -+CONFIG_DM_SERIAL=y -+CONFIG_MTK_SERIAL=y -+CONFIG_SPI=y -+CONFIG_DM_SPI=y -+CONFIG_MTK_SPI_NAND=y -+CONFIG_MTK_SPI_NAND_MTD=y -+CONFIG_SYSRESET_WATCHDOG=y -+CONFIG_WDT_MTK=y -+CONFIG_LZO=y -+CONFIG_ZSTD=y -+CONFIG_HEXDUMP=y -+CONFIG_RANDOM_UUID=y -+CONFIG_REGEX=y +CONFIG_OF_EMBED=y +CONFIG_ENV_OVERWRITE=y +CONFIG_ENV_IS_IN_UBI=y ++CONFIG_SYS_REDUNDAND_ENVIRONMENT=y +CONFIG_ENV_UBI_PART="ubi" -+CONFIG_ENV_SIZE=0x1f000 -+CONFIG_ENV_SIZE_REDUND=0x1f000 +CONFIG_ENV_UBI_VOLUME="ubootenv" +CONFIG_ENV_UBI_VOLUME_REDUND="ubootenv2" ++CONFIG_SYS_RELOC_GD_ENV_ADDR=y ++CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_DEFAULT_ENV_FILE="qihoo-360t7_env" +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y ++CONFIG_VERSION_VARIABLE=y +CONFIG_NET_RANDOM_ETHADDR=y ++CONFIG_NETCONSOLE=y ++CONFIG_USE_IPADDR=y ++CONFIG_IPADDR="192.168.1.1" ++CONFIG_USE_SERVERIP=y ++CONFIG_SERVERIP="192.168.1.254" +CONFIG_REGMAP=y +CONFIG_SYSCON=y ++CONFIG_SCSI_AHCI=y ++CONFIG_AHCI_PCI=y ++CONFIG_MTK_AHCI=y ++CONFIG_BUTTON=y ++CONFIG_BUTTON_GPIO=y +CONFIG_CLK=y ++CONFIG_GPIO_HOG=y ++CONFIG_LED=y ++CONFIG_LED_BLINK=y ++CONFIG_LED_GPIO=y ++# CONFIG_MMC is not set ++CONFIG_MTD=y ++CONFIG_DM_MTD=y ++CONFIG_MTD_SPI_NAND=y ++CONFIG_MTD_UBI_FASTMAP=y +CONFIG_PHY_FIXED=y -+CONFIG_DM_ETH=y +CONFIG_MEDIATEK_ETH=y ++CONFIG_PCIE_MEDIATEK=y ++CONFIG_PHY=y ++CONFIG_PHY_MTK_TPHY=y +CONFIG_PINCTRL=y +CONFIG_PINCONF=y ++CONFIG_PINCTRL_MT7622=y +CONFIG_PINCTRL_MT7981=y +CONFIG_POWER_DOMAIN=y +CONFIG_MTK_POWER_DOMAIN=y +CONFIG_DM_REGULATOR=y +CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_REGULATOR_GPIO=y ++CONFIG_DM_PWM=y ++CONFIG_PWM_MTK=y ++CONFIG_RAM=y ++CONFIG_SCSI=y +CONFIG_DM_SERIAL=y +CONFIG_MTK_SERIAL=y -+CONFIG_HEXDUMP=y -+CONFIG_USE_DEFAULT_ENV_FILE=y -+CONFIG_MTD_SPI_NAND=y ++CONFIG_SPI=y ++CONFIG_DM_SPI=y +CONFIG_MTK_SPIM=y -+CONFIG_CMD_MTD=y -+CONFIG_CMD_NAND=y -+CONFIG_CMD_NAND_TRIMFFS=y ++CONFIG_ZSTD=y ++CONFIG_HEXDUMP=y +CONFIG_LMB_MAX_REGIONS=64 -+CONFIG_USE_IPADDR=y -+CONFIG_IPADDR="192.168.1.1" -+CONFIG_USE_SERVERIP=y -+CONFIG_SERVERIP="192.168.1.254" --- /dev/null +++ b/arch/arm/dts/mt7981_qihoo-360t7.dts @@ -0,0 +1,185 @@ diff --git a/package/boot/uboot-mediatek/patches/434-add-xiaomi_mi-router-wr30u.patch b/package/boot/uboot-mediatek/patches/434-add-xiaomi_mi-router-wr30u.patch index c435d01887..aefdea3d5a 100644 --- a/package/boot/uboot-mediatek/patches/434-add-xiaomi_mi-router-wr30u.patch +++ b/package/boot/uboot-mediatek/patches/434-add-xiaomi_mi-router-wr30u.patch @@ -1,182 +1,131 @@ --- /dev/null +++ b/configs/mt7981_xiaomi_mi-router-wr30u_defconfig -@@ -0,0 +1,176 @@ +@@ -0,0 +1,125 @@ +CONFIG_ARM=y ++CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y -+CONFIG_TARGET_MT7981=y +CONFIG_TEXT_BASE=0x41e00000 +CONFIG_SYS_MALLOC_F_LEN=0x4000 -+CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_NR_DRAM_BANKS=1 +CONFIG_DEFAULT_DEVICE_TREE="mt7981_xiaomi_mi-router-wr30u" -+CONFIG_DEFAULT_ENV_FILE="xiaomi_mi-router-wr30u_env" -+CONFIG_DEFAULT_FDT_FILE="mediatek/mt7981_xiaomi_mi-router-wr30u.dtb" +CONFIG_OF_LIBFDT_OVERLAY=y ++CONFIG_TARGET_MT7981=y ++CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 +CONFIG_DEBUG_UART_BASE=0x11002000 +CONFIG_DEBUG_UART_CLOCK=40000000 -+CONFIG_DEBUG_UART=y +CONFIG_SYS_LOAD_ADDR=0x46000000 -+CONFIG_SMBIOS_PRODUCT_NAME="" -+CONFIG_AUTOBOOT_KEYED=y -+CONFIG_BOOTDELAY=30 -+CONFIG_AUTOBOOT_MENU_SHOW=y -+CONFIG_CFB_CONSOLE_ANSI=y -+CONFIG_BOARD_LATE_INIT=y -+CONFIG_BUTTON=y -+CONFIG_BUTTON_GPIO=y -+CONFIG_GPIO_HOG=y -+CONFIG_CMD_ENV_FLAGS=y ++CONFIG_PCI=y ++CONFIG_DEBUG_UART=y ++CONFIG_AHCI=y +CONFIG_FIT=y -+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y -+CONFIG_LED=y -+CONFIG_LED_BLINK=y -+CONFIG_LED_GPIO=y ++CONFIG_BOOTDELAY=30 ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_MENU_SHOW=y ++CONFIG_DEFAULT_FDT_FILE="mediatek/mt7981_xiaomi_mi-router-wr30u.dtb" +CONFIG_LOGLEVEL=7 ++CONFIG_PRE_CONSOLE_BUFFER=y +CONFIG_LOG=y ++CONFIG_BOARD_LATE_INIT=y ++CONFIG_HUSH_PARSER=y +CONFIG_SYS_PROMPT="MT7981> " ++CONFIG_CMD_CPU=y ++CONFIG_CMD_LICENSE=y +# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y -+CONFIG_CMD_BOOTP=y -+CONFIG_CMD_BUTTON=y -+CONFIG_CMD_CACHE=y -+CONFIG_CMD_CDP=y -+CONFIG_CMD_CPU=y -+CONFIG_CMD_DHCP=y -+CONFIG_CMD_DM=y -+CONFIG_CMD_DNS=y -+CONFIG_CMD_ECHO=y -+CONFIG_CMD_ENV_READMEM=y ++CONFIG_CMD_ASKENV=y +CONFIG_CMD_ERASEENV=y -+CONFIG_CMD_EXT4=y -+CONFIG_CMD_FAT=y -+CONFIG_CMD_FDT=y -+CONFIG_CMD_FS_GENERIC=y -+CONFIG_CMD_FS_UUID=y ++CONFIG_CMD_ENV_FLAGS=y ++CONFIG_CMD_STRINGS=y ++CONFIG_CMD_DM=y +CONFIG_CMD_GPIO=y ++CONFIG_CMD_PWM=y +CONFIG_CMD_GPT=y -+CONFIG_CMD_HASH=y -+CONFIG_CMD_ITEST=y -+CONFIG_CMD_LED=y -+CONFIG_CMD_LICENSE=y -+CONFIG_CMD_LINK_LOCAL=y -+# CONFIG_CMD_MBR is not set ++CONFIG_CMD_MTD=y ++CONFIG_CMD_PART=y +CONFIG_CMD_PCI=y ++CONFIG_CMD_DHCP=y ++CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_RARP=y ++CONFIG_CMD_PING=y ++CONFIG_CMD_CDP=y ++CONFIG_CMD_SNTP=y ++CONFIG_CMD_DNS=y ++CONFIG_CMD_LINK_LOCAL=y ++CONFIG_CMD_PXE=y ++CONFIG_CMD_CACHE=y +CONFIG_CMD_PSTORE=y +CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 -+CONFIG_CMD_SF_TEST=y -+CONFIG_CMD_PING=y -+CONFIG_CMD_PXE=y -+CONFIG_CMD_PWM=y ++CONFIG_CMD_UUID=y ++CONFIG_CMD_HASH=y +CONFIG_CMD_SMC=y -+CONFIG_CMD_TFTPBOOT=y -+CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_EXT4=y ++CONFIG_CMD_FAT=y ++CONFIG_CMD_FS_GENERIC=y ++CONFIG_CMD_FS_UUID=y +CONFIG_CMD_UBI=y +CONFIG_CMD_UBI_RENAME=y -+CONFIG_CMD_UBIFS=y -+CONFIG_CMD_ASKENV=y -+CONFIG_CMD_PART=y -+CONFIG_CMD_RARP=y -+CONFIG_CMD_SETEXPR=y -+CONFIG_CMD_SLEEP=y -+CONFIG_CMD_SNTP=y -+CONFIG_CMD_SOURCE=y -+CONFIG_CMD_STRINGS=y -+CONFIG_CMD_UUID=y -+CONFIG_DISPLAY_CPUINFO=y -+CONFIG_DM_MTD=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_REGULATOR_GPIO=y -+CONFIG_DM_PWM=y -+CONFIG_PWM_MTK=y -+CONFIG_HUSH_PARSER=y -+CONFIG_SYS_REDUNDAND_ENVIRONMENT=y -+CONFIG_SYS_RELOC_GD_ENV_ADDR=y -+CONFIG_VERSION_VARIABLE=y -+CONFIG_PARTITION_UUIDS=y -+CONFIG_NETCONSOLE=y -+CONFIG_REGMAP=y -+CONFIG_SYSCON=y -+CONFIG_CLK=y -+CONFIG_DM_GPIO=y -+CONFIG_DM_SCSI=y -+CONFIG_AHCI=y -+CONFIG_AHCI_PCI=y -+CONFIG_SCSI_AHCI=y -+CONFIG_SCSI=y -+CONFIG_CMD_SCSI=y -+CONFIG_PHY=y -+CONFIG_PHY_MTK_TPHY=y -+CONFIG_PHY_FIXED=y -+CONFIG_MTK_AHCI=y -+CONFIG_DM_ETH=y -+CONFIG_MEDIATEK_ETH=y -+CONFIG_PCI=y -+# CONFIG_MMC is not set -+# CONFIG_DM_MMC is not set -+CONFIG_MTD=y -+CONFIG_MTD_UBI_FASTMAP=y -+CONFIG_DM_PCI=y -+CONFIG_PCIE_MEDIATEK=y -+CONFIG_PINCTRL=y -+CONFIG_PINCONF=y -+CONFIG_PINCTRL_MT7622=y -+CONFIG_POWER_DOMAIN=y -+CONFIG_PRE_CONSOLE_BUFFER=y -+CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 -+CONFIG_MTK_POWER_DOMAIN=y -+CONFIG_RAM=y -+CONFIG_DM_SERIAL=y -+CONFIG_MTK_SERIAL=y -+CONFIG_SPI=y -+CONFIG_DM_SPI=y -+CONFIG_MTK_SPI_NAND=y -+CONFIG_MTK_SPI_NAND_MTD=y -+CONFIG_SYSRESET_WATCHDOG=y -+CONFIG_WDT_MTK=y -+CONFIG_LZO=y -+CONFIG_ZSTD=y -+CONFIG_HEXDUMP=y -+CONFIG_RANDOM_UUID=y -+CONFIG_REGEX=y +CONFIG_OF_EMBED=y +CONFIG_ENV_OVERWRITE=y +CONFIG_ENV_IS_IN_UBI=y ++CONFIG_SYS_REDUNDAND_ENVIRONMENT=y +CONFIG_ENV_UBI_PART="ubi" -+CONFIG_ENV_SIZE=0x1f000 -+CONFIG_ENV_SIZE_REDUND=0x1f000 +CONFIG_ENV_UBI_VOLUME="ubootenv" +CONFIG_ENV_UBI_VOLUME_REDUND="ubootenv2" ++CONFIG_SYS_RELOC_GD_ENV_ADDR=y ++CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_DEFAULT_ENV_FILE="xiaomi_mi-router-wr30u_env" +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y ++CONFIG_VERSION_VARIABLE=y +CONFIG_NET_RANDOM_ETHADDR=y ++CONFIG_NETCONSOLE=y ++CONFIG_USE_IPADDR=y ++CONFIG_IPADDR="192.168.1.1" ++CONFIG_USE_SERVERIP=y ++CONFIG_SERVERIP="192.168.1.254" +CONFIG_REGMAP=y +CONFIG_SYSCON=y ++CONFIG_SCSI_AHCI=y ++CONFIG_AHCI_PCI=y ++CONFIG_MTK_AHCI=y ++CONFIG_BUTTON=y ++CONFIG_BUTTON_GPIO=y +CONFIG_CLK=y ++CONFIG_GPIO_HOG=y ++CONFIG_LED=y ++CONFIG_LED_BLINK=y ++CONFIG_LED_GPIO=y ++# CONFIG_MMC is not set ++CONFIG_MTD=y ++CONFIG_DM_MTD=y ++CONFIG_MTD_SPI_NAND=y ++CONFIG_MTD_UBI_FASTMAP=y +CONFIG_PHY_FIXED=y -+CONFIG_DM_ETH=y +CONFIG_MEDIATEK_ETH=y ++CONFIG_PCIE_MEDIATEK=y ++CONFIG_PHY=y ++CONFIG_PHY_MTK_TPHY=y +CONFIG_PINCTRL=y +CONFIG_PINCONF=y ++CONFIG_PINCTRL_MT7622=y +CONFIG_PINCTRL_MT7981=y +CONFIG_POWER_DOMAIN=y +CONFIG_MTK_POWER_DOMAIN=y +CONFIG_DM_REGULATOR=y +CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_REGULATOR_GPIO=y ++CONFIG_DM_PWM=y ++CONFIG_PWM_MTK=y ++CONFIG_RAM=y ++CONFIG_SCSI=y +CONFIG_DM_SERIAL=y +CONFIG_MTK_SERIAL=y -+CONFIG_HEXDUMP=y -+CONFIG_USE_DEFAULT_ENV_FILE=y -+CONFIG_MTD_SPI_NAND=y ++CONFIG_SPI=y ++CONFIG_DM_SPI=y +CONFIG_MTK_SPIM=y -+CONFIG_CMD_MTD=y -+CONFIG_CMD_NAND=y -+CONFIG_CMD_NAND_TRIMFFS=y ++CONFIG_ZSTD=y ++CONFIG_HEXDUMP=y +CONFIG_LMB_MAX_REGIONS=64 -+CONFIG_USE_IPADDR=y -+CONFIG_IPADDR="192.168.1.1" -+CONFIG_USE_SERVERIP=y -+CONFIG_SERVERIP="192.168.1.254" --- /dev/null +++ b/arch/arm/dts/mt7981_xiaomi_mi-router-wr30u.dts @@ -0,0 +1,221 @@ diff --git a/package/boot/uboot-mediatek/patches/435-add-h3c_magic-nx30-pro.patch b/package/boot/uboot-mediatek/patches/435-add-h3c_magic-nx30-pro.patch index 75256c3f0f..dad12684d9 100644 --- a/package/boot/uboot-mediatek/patches/435-add-h3c_magic-nx30-pro.patch +++ b/package/boot/uboot-mediatek/patches/435-add-h3c_magic-nx30-pro.patch @@ -1,182 +1,131 @@ --- /dev/null +++ b/configs/mt7981_h3c_magic-nx30-pro_defconfig -@@ -0,0 +1,176 @@ +@@ -0,0 +1,125 @@ +CONFIG_ARM=y ++CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y -+CONFIG_TARGET_MT7981=y +CONFIG_TEXT_BASE=0x41e00000 +CONFIG_SYS_MALLOC_F_LEN=0x4000 -+CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_NR_DRAM_BANKS=1 +CONFIG_DEFAULT_DEVICE_TREE="mt7981_h3c_magic-nx30-pro" -+CONFIG_DEFAULT_ENV_FILE="h3c_magic-nx30-pro_env" -+CONFIG_DEFAULT_FDT_FILE="mediatek/mt7981_h3c_magic-nx30-pro.dtb" +CONFIG_OF_LIBFDT_OVERLAY=y ++CONFIG_TARGET_MT7981=y ++CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 +CONFIG_DEBUG_UART_BASE=0x11002000 +CONFIG_DEBUG_UART_CLOCK=40000000 -+CONFIG_DEBUG_UART=y +CONFIG_SYS_LOAD_ADDR=0x46000000 -+CONFIG_SMBIOS_PRODUCT_NAME="" -+CONFIG_AUTOBOOT_KEYED=y -+CONFIG_BOOTDELAY=30 -+CONFIG_AUTOBOOT_MENU_SHOW=y -+CONFIG_CFB_CONSOLE_ANSI=y -+CONFIG_BOARD_LATE_INIT=y -+CONFIG_BUTTON=y -+CONFIG_BUTTON_GPIO=y -+CONFIG_GPIO_HOG=y -+CONFIG_CMD_ENV_FLAGS=y ++CONFIG_PCI=y ++CONFIG_DEBUG_UART=y ++CONFIG_AHCI=y +CONFIG_FIT=y -+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y -+CONFIG_LED=y -+CONFIG_LED_BLINK=y -+CONFIG_LED_GPIO=y ++CONFIG_BOOTDELAY=30 ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_MENU_SHOW=y ++CONFIG_DEFAULT_FDT_FILE="mediatek/mt7981_h3c_magic-nx30-pro.dtb" +CONFIG_LOGLEVEL=7 ++CONFIG_PRE_CONSOLE_BUFFER=y +CONFIG_LOG=y ++CONFIG_BOARD_LATE_INIT=y ++CONFIG_HUSH_PARSER=y +CONFIG_SYS_PROMPT="MT7981> " ++CONFIG_CMD_CPU=y ++CONFIG_CMD_LICENSE=y +# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y -+CONFIG_CMD_BOOTP=y -+CONFIG_CMD_BUTTON=y -+CONFIG_CMD_CACHE=y -+CONFIG_CMD_CDP=y -+CONFIG_CMD_CPU=y -+CONFIG_CMD_DHCP=y -+CONFIG_CMD_DM=y -+CONFIG_CMD_DNS=y -+CONFIG_CMD_ECHO=y -+CONFIG_CMD_ENV_READMEM=y ++CONFIG_CMD_ASKENV=y +CONFIG_CMD_ERASEENV=y -+CONFIG_CMD_EXT4=y -+CONFIG_CMD_FAT=y -+CONFIG_CMD_FDT=y -+CONFIG_CMD_FS_GENERIC=y -+CONFIG_CMD_FS_UUID=y ++CONFIG_CMD_ENV_FLAGS=y ++CONFIG_CMD_STRINGS=y ++CONFIG_CMD_DM=y +CONFIG_CMD_GPIO=y ++CONFIG_CMD_PWM=y +CONFIG_CMD_GPT=y -+CONFIG_CMD_HASH=y -+CONFIG_CMD_ITEST=y -+CONFIG_CMD_LED=y -+CONFIG_CMD_LICENSE=y -+CONFIG_CMD_LINK_LOCAL=y -+# CONFIG_CMD_MBR is not set ++CONFIG_CMD_MTD=y ++CONFIG_CMD_PART=y +CONFIG_CMD_PCI=y ++CONFIG_CMD_DHCP=y ++CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_RARP=y ++CONFIG_CMD_PING=y ++CONFIG_CMD_CDP=y ++CONFIG_CMD_SNTP=y ++CONFIG_CMD_DNS=y ++CONFIG_CMD_LINK_LOCAL=y ++CONFIG_CMD_PXE=y ++CONFIG_CMD_CACHE=y +CONFIG_CMD_PSTORE=y +CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 -+CONFIG_CMD_SF_TEST=y -+CONFIG_CMD_PING=y -+CONFIG_CMD_PXE=y -+CONFIG_CMD_PWM=y ++CONFIG_CMD_UUID=y ++CONFIG_CMD_HASH=y +CONFIG_CMD_SMC=y -+CONFIG_CMD_TFTPBOOT=y -+CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_EXT4=y ++CONFIG_CMD_FAT=y ++CONFIG_CMD_FS_GENERIC=y ++CONFIG_CMD_FS_UUID=y +CONFIG_CMD_UBI=y +CONFIG_CMD_UBI_RENAME=y -+CONFIG_CMD_UBIFS=y -+CONFIG_CMD_ASKENV=y -+CONFIG_CMD_PART=y -+CONFIG_CMD_RARP=y -+CONFIG_CMD_SETEXPR=y -+CONFIG_CMD_SLEEP=y -+CONFIG_CMD_SNTP=y -+CONFIG_CMD_SOURCE=y -+CONFIG_CMD_STRINGS=y -+CONFIG_CMD_UUID=y -+CONFIG_DISPLAY_CPUINFO=y -+CONFIG_DM_MTD=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_REGULATOR_GPIO=y -+CONFIG_DM_PWM=y -+CONFIG_PWM_MTK=y -+CONFIG_HUSH_PARSER=y -+CONFIG_SYS_REDUNDAND_ENVIRONMENT=y -+CONFIG_SYS_RELOC_GD_ENV_ADDR=y -+CONFIG_VERSION_VARIABLE=y -+CONFIG_PARTITION_UUIDS=y -+CONFIG_NETCONSOLE=y -+CONFIG_REGMAP=y -+CONFIG_SYSCON=y -+CONFIG_CLK=y -+CONFIG_DM_GPIO=y -+CONFIG_DM_SCSI=y -+CONFIG_AHCI=y -+CONFIG_AHCI_PCI=y -+CONFIG_SCSI_AHCI=y -+CONFIG_SCSI=y -+CONFIG_CMD_SCSI=y -+CONFIG_PHY=y -+CONFIG_PHY_MTK_TPHY=y -+CONFIG_PHY_FIXED=y -+CONFIG_MTK_AHCI=y -+CONFIG_DM_ETH=y -+CONFIG_MEDIATEK_ETH=y -+CONFIG_PCI=y -+# CONFIG_MMC is not set -+# CONFIG_DM_MMC is not set -+CONFIG_MTD=y -+CONFIG_MTD_UBI_FASTMAP=y -+CONFIG_DM_PCI=y -+CONFIG_PCIE_MEDIATEK=y -+CONFIG_PINCTRL=y -+CONFIG_PINCONF=y -+CONFIG_PINCTRL_MT7622=y -+CONFIG_POWER_DOMAIN=y -+CONFIG_PRE_CONSOLE_BUFFER=y -+CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 -+CONFIG_MTK_POWER_DOMAIN=y -+CONFIG_RAM=y -+CONFIG_DM_SERIAL=y -+CONFIG_MTK_SERIAL=y -+CONFIG_SPI=y -+CONFIG_DM_SPI=y -+CONFIG_MTK_SPI_NAND=y -+CONFIG_MTK_SPI_NAND_MTD=y -+CONFIG_SYSRESET_WATCHDOG=y -+CONFIG_WDT_MTK=y -+CONFIG_LZO=y -+CONFIG_ZSTD=y -+CONFIG_HEXDUMP=y -+CONFIG_RANDOM_UUID=y -+CONFIG_REGEX=y +CONFIG_OF_EMBED=y +CONFIG_ENV_OVERWRITE=y +CONFIG_ENV_IS_IN_UBI=y ++CONFIG_SYS_REDUNDAND_ENVIRONMENT=y +CONFIG_ENV_UBI_PART="ubi" -+CONFIG_ENV_SIZE=0x1f000 -+CONFIG_ENV_SIZE_REDUND=0x1f000 +CONFIG_ENV_UBI_VOLUME="ubootenv" +CONFIG_ENV_UBI_VOLUME_REDUND="ubootenv2" ++CONFIG_SYS_RELOC_GD_ENV_ADDR=y ++CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_DEFAULT_ENV_FILE="h3c_magic-nx30-pro_env" +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y ++CONFIG_VERSION_VARIABLE=y +CONFIG_NET_RANDOM_ETHADDR=y ++CONFIG_NETCONSOLE=y ++CONFIG_USE_IPADDR=y ++CONFIG_IPADDR="192.168.1.1" ++CONFIG_USE_SERVERIP=y ++CONFIG_SERVERIP="192.168.1.254" +CONFIG_REGMAP=y +CONFIG_SYSCON=y ++CONFIG_SCSI_AHCI=y ++CONFIG_AHCI_PCI=y ++CONFIG_MTK_AHCI=y ++CONFIG_BUTTON=y ++CONFIG_BUTTON_GPIO=y +CONFIG_CLK=y ++CONFIG_GPIO_HOG=y ++CONFIG_LED=y ++CONFIG_LED_BLINK=y ++CONFIG_LED_GPIO=y ++# CONFIG_MMC is not set ++CONFIG_MTD=y ++CONFIG_DM_MTD=y ++CONFIG_MTD_SPI_NAND=y ++CONFIG_MTD_UBI_FASTMAP=y +CONFIG_PHY_FIXED=y -+CONFIG_DM_ETH=y +CONFIG_MEDIATEK_ETH=y ++CONFIG_PCIE_MEDIATEK=y ++CONFIG_PHY=y ++CONFIG_PHY_MTK_TPHY=y +CONFIG_PINCTRL=y +CONFIG_PINCONF=y ++CONFIG_PINCTRL_MT7622=y +CONFIG_PINCTRL_MT7981=y +CONFIG_POWER_DOMAIN=y +CONFIG_MTK_POWER_DOMAIN=y +CONFIG_DM_REGULATOR=y +CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_REGULATOR_GPIO=y ++CONFIG_DM_PWM=y ++CONFIG_PWM_MTK=y ++CONFIG_RAM=y ++CONFIG_SCSI=y +CONFIG_DM_SERIAL=y +CONFIG_MTK_SERIAL=y -+CONFIG_HEXDUMP=y -+CONFIG_USE_DEFAULT_ENV_FILE=y -+CONFIG_MTD_SPI_NAND=y ++CONFIG_SPI=y ++CONFIG_DM_SPI=y +CONFIG_MTK_SPIM=y -+CONFIG_CMD_MTD=y -+CONFIG_CMD_NAND=y -+CONFIG_CMD_NAND_TRIMFFS=y ++CONFIG_ZSTD=y ++CONFIG_HEXDUMP=y +CONFIG_LMB_MAX_REGIONS=64 -+CONFIG_USE_IPADDR=y -+CONFIG_IPADDR="192.168.1.1" -+CONFIG_USE_SERVERIP=y -+CONFIG_SERVERIP="192.168.1.254" --- /dev/null +++ b/arch/arm/dts/mt7981_h3c_magic-nx30-pro.dts @@ -0,0 +1,205 @@ diff --git a/package/boot/uboot-mediatek/patches/436-add-glinet-mt6000.patch b/package/boot/uboot-mediatek/patches/436-add-glinet-mt6000.patch index dd68a81137..d87d77a018 100644 --- a/package/boot/uboot-mediatek/patches/436-add-glinet-mt6000.patch +++ b/package/boot/uboot-mediatek/patches/436-add-glinet-mt6000.patch @@ -149,7 +149,6 @@ +CONFIG_ENV_SIZE=0x80000 +CONFIG_ENV_OFFSET=0x400000 +CONFIG_DEFAULT_DEVICE_TREE="mt7986a-glinet-gl-mt6000" -+CONFIG_SYS_PROMPT="MT7986> " +CONFIG_OF_LIBFDT_OVERLAY=y +CONFIG_TARGET_MT7986=y +CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 @@ -167,6 +166,7 @@ +CONFIG_LOG=y +CONFIG_BOARD_LATE_INIT=y +CONFIG_HUSH_PARSER=y ++CONFIG_SYS_PROMPT="MT7986> " +CONFIG_CMD_CPU=y +CONFIG_CMD_LICENSE=y +# CONFIG_CMD_BOOTEFI_BOOTMGR is not set diff --git a/package/boot/uboot-mediatek/patches/437-add-cmcc_rax3000m.patch b/package/boot/uboot-mediatek/patches/437-add-cmcc_rax3000m.patch index 1cf98f2074..394345f83a 100644 --- a/package/boot/uboot-mediatek/patches/437-add-cmcc_rax3000m.patch +++ b/package/boot/uboot-mediatek/patches/437-add-cmcc_rax3000m.patch @@ -1,361 +1,259 @@ --- /dev/null +++ b/configs/mt7981_cmcc_rax3000m-emmc_defconfig -@@ -0,0 +1,176 @@ +@@ -0,0 +1,125 @@ +CONFIG_ARM=y ++CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y -+CONFIG_TARGET_MT7981=y +CONFIG_TEXT_BASE=0x41e00000 +CONFIG_SYS_MALLOC_F_LEN=0x4000 -+CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_NR_DRAM_BANKS=1 ++CONFIG_ENV_SIZE=0x40000 ++CONFIG_ENV_OFFSET=0x400000 +CONFIG_DEFAULT_DEVICE_TREE="mt7981-cmcc-rax3000m-emmc" -+CONFIG_DEFAULT_ENV_FILE="cmcc_rax3000m-emmc_env" -+CONFIG_DEFAULT_FDT_FILE="mediatek/mt7981-cmcc-rax3000m-emmc.dtb" +CONFIG_OF_LIBFDT_OVERLAY=y ++CONFIG_TARGET_MT7981=y ++CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 +CONFIG_DEBUG_UART_BASE=0x11002000 +CONFIG_DEBUG_UART_CLOCK=40000000 -+CONFIG_DEBUG_UART=y ++CONFIG_ENV_OFFSET_REDUND=0x440000 +CONFIG_SYS_LOAD_ADDR=0x46000000 -+CONFIG_SMBIOS_PRODUCT_NAME="" -+CONFIG_AUTOBOOT_KEYED=y -+CONFIG_BOOTDELAY=30 -+CONFIG_AUTOBOOT_MENU_SHOW=y -+CONFIG_CFB_CONSOLE_ANSI=y -+CONFIG_BOARD_LATE_INIT=y -+CONFIG_BUTTON=y -+CONFIG_BUTTON_GPIO=y -+CONFIG_GPIO_HOG=y -+CONFIG_CMD_ENV_FLAGS=y ++CONFIG_PCI=y ++CONFIG_DEBUG_UART=y ++CONFIG_AHCI=y +CONFIG_FIT=y -+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y -+CONFIG_LED=y -+CONFIG_LED_BLINK=y -+CONFIG_LED_GPIO=y ++CONFIG_BOOTDELAY=30 ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_MENU_SHOW=y ++CONFIG_DEFAULT_FDT_FILE="mediatek/mt7981-cmcc-rax3000m-emmc.dtb" +CONFIG_LOGLEVEL=7 ++CONFIG_PRE_CONSOLE_BUFFER=y +CONFIG_LOG=y ++CONFIG_BOARD_LATE_INIT=y ++CONFIG_HUSH_PARSER=y +CONFIG_SYS_PROMPT="MT7981> " ++CONFIG_CMD_CPU=y ++CONFIG_CMD_LICENSE=y +# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y -+CONFIG_CMD_BOOTP=y -+CONFIG_CMD_BUTTON=y -+CONFIG_CMD_CACHE=y -+CONFIG_CMD_CDP=y -+CONFIG_CMD_CPU=y -+CONFIG_CMD_DHCP=y -+CONFIG_CMD_DM=y -+CONFIG_CMD_DNS=y -+CONFIG_CMD_ECHO=y -+CONFIG_CMD_ENV_READMEM=y ++CONFIG_CMD_ASKENV=y +CONFIG_CMD_ERASEENV=y -+CONFIG_CMD_EXT4=y -+CONFIG_CMD_FAT=y -+CONFIG_CMD_FDT=y -+CONFIG_CMD_FS_GENERIC=y -+CONFIG_CMD_FS_UUID=y ++CONFIG_CMD_ENV_FLAGS=y ++CONFIG_CMD_STRINGS=y ++CONFIG_CMD_DM=y +CONFIG_CMD_GPIO=y ++CONFIG_CMD_PWM=y +CONFIG_CMD_GPT=y -+CONFIG_CMD_HASH=y -+CONFIG_CMD_ITEST=y -+CONFIG_CMD_LED=y -+CONFIG_CMD_LICENSE=y -+CONFIG_CMD_LINK_LOCAL=y -+# CONFIG_CMD_MBR is not set +CONFIG_CMD_MMC=y ++CONFIG_CMD_PART=y +CONFIG_CMD_PCI=y ++CONFIG_CMD_USB=y ++CONFIG_CMD_DHCP=y ++CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_RARP=y ++CONFIG_CMD_PING=y ++CONFIG_CMD_CDP=y ++CONFIG_CMD_SNTP=y ++CONFIG_CMD_DNS=y ++CONFIG_CMD_LINK_LOCAL=y ++CONFIG_CMD_PXE=y ++CONFIG_CMD_CACHE=y +CONFIG_CMD_PSTORE=y +CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 -+CONFIG_CMD_SF_TEST=y -+CONFIG_CMD_PING=y -+CONFIG_CMD_PXE=y -+CONFIG_CMD_PWM=y -+CONFIG_CMD_SMC=y -+CONFIG_CMD_TFTPBOOT=y -+CONFIG_CMD_TFTPSRV=y -+CONFIG_CMD_ASKENV=y -+CONFIG_CMD_PART=y -+CONFIG_CMD_RARP=y -+CONFIG_CMD_SETEXPR=y -+CONFIG_CMD_SLEEP=y -+CONFIG_CMD_SNTP=y -+CONFIG_CMD_SOURCE=y -+CONFIG_CMD_STRINGS=y -+CONFIG_CMD_USB=y +CONFIG_CMD_UUID=y -+CONFIG_DISPLAY_CPUINFO=y -+CONFIG_DM_MMC=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_REGULATOR_GPIO=y -+CONFIG_DM_USB=y -+CONFIG_DM_PWM=y -+CONFIG_PWM_MTK=y -+CONFIG_HUSH_PARSER=y -+CONFIG_SYS_REDUNDAND_ENVIRONMENT=y -+CONFIG_SYS_RELOC_GD_ENV_ADDR=y -+CONFIG_VERSION_VARIABLE=y -+CONFIG_PARTITION_UUIDS=y -+CONFIG_NETCONSOLE=y -+CONFIG_REGMAP=y -+CONFIG_SYSCON=y -+CONFIG_CLK=y -+CONFIG_DM_GPIO=y -+CONFIG_DM_SCSI=y -+CONFIG_AHCI=y -+CONFIG_AHCI_PCI=y -+CONFIG_SCSI_AHCI=y -+CONFIG_SCSI=y -+CONFIG_CMD_SCSI=y -+CONFIG_PHY=y -+CONFIG_PHY_MTK_TPHY=y -+CONFIG_PHY_FIXED=y -+CONFIG_MTK_AHCI=y -+CONFIG_DM_ETH=y -+CONFIG_MEDIATEK_ETH=y -+CONFIG_PCI=y -+CONFIG_DM_PCI=y -+CONFIG_PCIE_MEDIATEK=y -+CONFIG_PINCTRL=y -+CONFIG_PINCONF=y -+CONFIG_PINCTRL_MT7622=y -+CONFIG_POWER_DOMAIN=y -+CONFIG_PRE_CONSOLE_BUFFER=y -+CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 -+CONFIG_MTK_POWER_DOMAIN=y -+CONFIG_RAM=y -+CONFIG_DM_SERIAL=y -+CONFIG_MTK_SERIAL=y -+CONFIG_MMC=y -+CONFIG_MMC_DEFAULT_DEV=1 -+CONFIG_MMC_HS200_SUPPORT=y -+CONFIG_MMC_MTK=y -+CONFIG_MMC_SUPPORTS_TUNING=y -+CONFIG_SUPPORT_EMMC_BOOT=y -+CONFIG_SPI=y -+CONFIG_SYSRESET_WATCHDOG=y -+CONFIG_WDT_MTK=y -+CONFIG_LZO=y -+CONFIG_ZSTD=y -+CONFIG_HEXDUMP=y -+CONFIG_RANDOM_UUID=y -+CONFIG_REGEX=y -+CONFIG_USB=y -+CONFIG_USB_HOST=y -+CONFIG_USB_XHCI_HCD=y -+CONFIG_USB_XHCI_MTK=y -+CONFIG_USB_STORAGE=y ++CONFIG_CMD_HASH=y ++CONFIG_CMD_SMC=y ++CONFIG_CMD_EXT4=y ++CONFIG_CMD_FAT=y ++CONFIG_CMD_FS_GENERIC=y ++CONFIG_CMD_FS_UUID=y +CONFIG_OF_EMBED=y +CONFIG_ENV_OVERWRITE=y +CONFIG_ENV_IS_IN_MMC=y -+CONFIG_ENV_OFFSET=0x400000 -+CONFIG_ENV_OFFSET_REDUND=0x440000 -+CONFIG_ENV_SIZE=0x40000 -+CONFIG_ENV_SIZE_REDUND=0x40000 ++CONFIG_SYS_REDUNDAND_ENVIRONMENT=y ++CONFIG_SYS_RELOC_GD_ENV_ADDR=y ++CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_DEFAULT_ENV_FILE="cmcc_rax3000m-emmc_env" +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y ++CONFIG_VERSION_VARIABLE=y +CONFIG_NET_RANDOM_ETHADDR=y ++CONFIG_NETCONSOLE=y ++CONFIG_USE_IPADDR=y ++CONFIG_IPADDR="192.168.1.1" ++CONFIG_USE_SERVERIP=y ++CONFIG_SERVERIP="192.168.1.254" +CONFIG_REGMAP=y +CONFIG_SYSCON=y ++CONFIG_SCSI_AHCI=y ++CONFIG_AHCI_PCI=y ++CONFIG_MTK_AHCI=y ++CONFIG_BUTTON=y ++CONFIG_BUTTON_GPIO=y +CONFIG_CLK=y ++CONFIG_GPIO_HOG=y ++CONFIG_LED=y ++CONFIG_LED_BLINK=y ++CONFIG_LED_GPIO=y +CONFIG_SUPPORT_EMMC_BOOT=y ++CONFIG_MMC_HS200_SUPPORT=y ++CONFIG_MMC_MTK=y +CONFIG_PHY_FIXED=y -+CONFIG_DM_ETH=y +CONFIG_MEDIATEK_ETH=y ++CONFIG_PCIE_MEDIATEK=y ++CONFIG_PHY=y ++CONFIG_PHY_MTK_TPHY=y +CONFIG_PINCTRL=y +CONFIG_PINCONF=y ++CONFIG_PINCTRL_MT7622=y +CONFIG_PINCTRL_MT7981=y +CONFIG_POWER_DOMAIN=y +CONFIG_MTK_POWER_DOMAIN=y +CONFIG_DM_REGULATOR=y +CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_REGULATOR_GPIO=y ++CONFIG_DM_PWM=y ++CONFIG_PWM_MTK=y ++CONFIG_RAM=y ++CONFIG_SCSI=y +CONFIG_DM_SERIAL=y +CONFIG_MTK_SERIAL=y ++CONFIG_SPI=y ++CONFIG_USB=y ++CONFIG_USB_XHCI_HCD=y ++CONFIG_USB_XHCI_MTK=y ++CONFIG_USB_STORAGE=y ++CONFIG_LZO=y ++CONFIG_ZSTD=y +CONFIG_HEXDUMP=y -+CONFIG_USE_DEFAULT_ENV_FILE=y -+CONFIG_CMD_SF=y +CONFIG_LMB_MAX_REGIONS=64 +--- /dev/null ++++ b/configs/mt7981_cmcc_rax3000m-nand_defconfig +@@ -0,0 +1,125 @@ ++CONFIG_ARM=y ++CONFIG_SYS_HAS_NONCACHED_MEMORY=y ++CONFIG_POSITION_INDEPENDENT=y ++CONFIG_ARCH_MEDIATEK=y ++CONFIG_TEXT_BASE=0x41e00000 ++CONFIG_SYS_MALLOC_F_LEN=0x4000 ++CONFIG_NR_DRAM_BANKS=1 ++CONFIG_DEFAULT_DEVICE_TREE="mt7981-cmcc-rax3000m-nand" ++CONFIG_OF_LIBFDT_OVERLAY=y ++CONFIG_TARGET_MT7981=y ++CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 ++CONFIG_DEBUG_UART_BASE=0x11002000 ++CONFIG_DEBUG_UART_CLOCK=40000000 ++CONFIG_SYS_LOAD_ADDR=0x46000000 ++CONFIG_PCI=y ++CONFIG_DEBUG_UART=y ++CONFIG_AHCI=y ++CONFIG_FIT=y ++CONFIG_BOOTDELAY=30 ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_MENU_SHOW=y ++CONFIG_DEFAULT_FDT_FILE="mediatek/mt7981-cmcc-rax3000m-nand.dtb" ++CONFIG_LOGLEVEL=7 ++CONFIG_PRE_CONSOLE_BUFFER=y ++CONFIG_LOG=y ++CONFIG_BOARD_LATE_INIT=y ++CONFIG_HUSH_PARSER=y ++CONFIG_SYS_PROMPT="MT7981> " ++CONFIG_CMD_CPU=y ++CONFIG_CMD_LICENSE=y ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set ++CONFIG_CMD_BOOTMENU=y ++CONFIG_CMD_ASKENV=y ++CONFIG_CMD_ERASEENV=y ++CONFIG_CMD_ENV_FLAGS=y ++CONFIG_CMD_STRINGS=y ++CONFIG_CMD_DM=y ++CONFIG_CMD_GPIO=y ++CONFIG_CMD_PWM=y ++CONFIG_CMD_GPT=y ++CONFIG_CMD_MTD=y ++CONFIG_CMD_PART=y ++CONFIG_CMD_PCI=y ++CONFIG_CMD_DHCP=y ++CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_RARP=y ++CONFIG_CMD_PING=y ++CONFIG_CMD_CDP=y ++CONFIG_CMD_SNTP=y ++CONFIG_CMD_DNS=y ++CONFIG_CMD_LINK_LOCAL=y ++CONFIG_CMD_PXE=y ++CONFIG_CMD_CACHE=y ++CONFIG_CMD_PSTORE=y ++CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 ++CONFIG_CMD_UUID=y ++CONFIG_CMD_HASH=y ++CONFIG_CMD_SMC=y ++CONFIG_CMD_EXT4=y ++CONFIG_CMD_FAT=y ++CONFIG_CMD_FS_GENERIC=y ++CONFIG_CMD_FS_UUID=y ++CONFIG_CMD_UBI=y ++CONFIG_CMD_UBI_RENAME=y ++CONFIG_OF_EMBED=y ++CONFIG_ENV_OVERWRITE=y ++CONFIG_ENV_IS_IN_UBI=y ++CONFIG_SYS_REDUNDAND_ENVIRONMENT=y ++CONFIG_ENV_UBI_PART="ubi" ++CONFIG_ENV_UBI_VOLUME="ubootenv" ++CONFIG_ENV_UBI_VOLUME_REDUND="ubootenv2" ++CONFIG_SYS_RELOC_GD_ENV_ADDR=y ++CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_DEFAULT_ENV_FILE="cmcc_rax3000m-nand_env" ++CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y ++CONFIG_VERSION_VARIABLE=y ++CONFIG_NET_RANDOM_ETHADDR=y ++CONFIG_NETCONSOLE=y +CONFIG_USE_IPADDR=y +CONFIG_IPADDR="192.168.1.1" +CONFIG_USE_SERVERIP=y +CONFIG_SERVERIP="192.168.1.254" ---- /dev/null -+++ b/configs/mt7981_cmcc_rax3000m-nand_defconfig -@@ -0,0 +1,176 @@ -+CONFIG_ARM=y -+CONFIG_POSITION_INDEPENDENT=y -+CONFIG_ARCH_MEDIATEK=y -+CONFIG_TARGET_MT7981=y -+CONFIG_TEXT_BASE=0x41e00000 -+CONFIG_SYS_MALLOC_F_LEN=0x4000 -+CONFIG_SYS_HAS_NONCACHED_MEMORY=y -+CONFIG_NR_DRAM_BANKS=1 -+CONFIG_DEFAULT_DEVICE_TREE="mt7981-cmcc-rax3000m-nand" -+CONFIG_DEFAULT_ENV_FILE="cmcc_rax3000m-nand_env" -+CONFIG_DEFAULT_FDT_FILE="mediatek/mt7981-cmcc-rax3000m-nand.dtb" -+CONFIG_OF_LIBFDT_OVERLAY=y -+CONFIG_DEBUG_UART_BASE=0x11002000 -+CONFIG_DEBUG_UART_CLOCK=40000000 -+CONFIG_DEBUG_UART=y -+CONFIG_SYS_LOAD_ADDR=0x46000000 -+CONFIG_SMBIOS_PRODUCT_NAME="" -+CONFIG_AUTOBOOT_KEYED=y -+CONFIG_BOOTDELAY=30 -+CONFIG_AUTOBOOT_MENU_SHOW=y -+CONFIG_CFB_CONSOLE_ANSI=y -+CONFIG_BOARD_LATE_INIT=y ++CONFIG_REGMAP=y ++CONFIG_SYSCON=y ++CONFIG_SCSI_AHCI=y ++CONFIG_AHCI_PCI=y ++CONFIG_MTK_AHCI=y +CONFIG_BUTTON=y +CONFIG_BUTTON_GPIO=y ++CONFIG_CLK=y +CONFIG_GPIO_HOG=y -+CONFIG_CMD_ENV_FLAGS=y -+CONFIG_FIT=y -+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y +CONFIG_LED=y +CONFIG_LED_BLINK=y +CONFIG_LED_GPIO=y -+CONFIG_LOGLEVEL=7 -+CONFIG_LOG=y -+CONFIG_SYS_PROMPT="MT7981> " -+# CONFIG_CMD_BOOTEFI_BOOTMGR is not set -+CONFIG_CMD_BOOTMENU=y -+CONFIG_CMD_BOOTP=y -+CONFIG_CMD_BUTTON=y -+CONFIG_CMD_CACHE=y -+CONFIG_CMD_CDP=y -+CONFIG_CMD_CPU=y -+CONFIG_CMD_DHCP=y -+CONFIG_CMD_DM=y -+CONFIG_CMD_DNS=y -+CONFIG_CMD_ECHO=y -+CONFIG_CMD_ENV_READMEM=y -+CONFIG_CMD_ERASEENV=y -+CONFIG_CMD_EXT4=y -+CONFIG_CMD_FAT=y -+CONFIG_CMD_FDT=y -+CONFIG_CMD_FS_GENERIC=y -+CONFIG_CMD_FS_UUID=y -+CONFIG_CMD_GPIO=y -+CONFIG_CMD_GPT=y -+CONFIG_CMD_HASH=y -+CONFIG_CMD_ITEST=y -+CONFIG_CMD_LED=y -+CONFIG_CMD_LICENSE=y -+CONFIG_CMD_LINK_LOCAL=y -+# CONFIG_CMD_MBR is not set -+CONFIG_CMD_PCI=y -+CONFIG_CMD_PSTORE=y -+CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 -+CONFIG_CMD_SF_TEST=y -+CONFIG_CMD_PING=y -+CONFIG_CMD_PXE=y -+CONFIG_CMD_PWM=y -+CONFIG_CMD_SMC=y -+CONFIG_CMD_TFTPBOOT=y -+CONFIG_CMD_TFTPSRV=y -+CONFIG_CMD_UBI=y -+CONFIG_CMD_UBI_RENAME=y -+CONFIG_CMD_UBIFS=y -+CONFIG_CMD_ASKENV=y -+CONFIG_CMD_PART=y -+CONFIG_CMD_RARP=y -+CONFIG_CMD_SETEXPR=y -+CONFIG_CMD_SLEEP=y -+CONFIG_CMD_SNTP=y -+CONFIG_CMD_SOURCE=y -+CONFIG_CMD_STRINGS=y -+CONFIG_CMD_UUID=y -+CONFIG_DISPLAY_CPUINFO=y ++# CONFIG_MMC is not set ++CONFIG_MTD=y +CONFIG_DM_MTD=y ++CONFIG_MTD_SPI_NAND=y ++CONFIG_MTD_UBI_FASTMAP=y ++CONFIG_PHY_FIXED=y ++CONFIG_MEDIATEK_ETH=y ++CONFIG_PCIE_MEDIATEK=y ++CONFIG_PHY=y ++CONFIG_PHY_MTK_TPHY=y ++CONFIG_PINCTRL=y ++CONFIG_PINCONF=y ++CONFIG_PINCTRL_MT7622=y ++CONFIG_PINCTRL_MT7981=y ++CONFIG_POWER_DOMAIN=y ++CONFIG_MTK_POWER_DOMAIN=y +CONFIG_DM_REGULATOR=y +CONFIG_DM_REGULATOR_FIXED=y +CONFIG_DM_REGULATOR_GPIO=y +CONFIG_DM_PWM=y +CONFIG_PWM_MTK=y -+CONFIG_HUSH_PARSER=y -+CONFIG_SYS_REDUNDAND_ENVIRONMENT=y -+CONFIG_SYS_RELOC_GD_ENV_ADDR=y -+CONFIG_VERSION_VARIABLE=y -+CONFIG_PARTITION_UUIDS=y -+CONFIG_NETCONSOLE=y -+CONFIG_REGMAP=y -+CONFIG_SYSCON=y -+CONFIG_CLK=y -+CONFIG_DM_GPIO=y -+CONFIG_DM_SCSI=y -+CONFIG_AHCI=y -+CONFIG_AHCI_PCI=y -+CONFIG_SCSI_AHCI=y -+CONFIG_SCSI=y -+CONFIG_CMD_SCSI=y -+CONFIG_PHY=y -+CONFIG_PHY_MTK_TPHY=y -+CONFIG_PHY_FIXED=y -+CONFIG_MTK_AHCI=y -+CONFIG_DM_ETH=y -+CONFIG_MEDIATEK_ETH=y -+CONFIG_PCI=y -+# CONFIG_MMC is not set -+# CONFIG_DM_MMC is not set -+CONFIG_MTD=y -+CONFIG_MTD_UBI_FASTMAP=y -+CONFIG_DM_PCI=y -+CONFIG_PCIE_MEDIATEK=y -+CONFIG_PINCTRL=y -+CONFIG_PINCONF=y -+CONFIG_PINCTRL_MT7622=y -+CONFIG_POWER_DOMAIN=y -+CONFIG_PRE_CONSOLE_BUFFER=y -+CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 -+CONFIG_MTK_POWER_DOMAIN=y +CONFIG_RAM=y ++CONFIG_SCSI=y +CONFIG_DM_SERIAL=y +CONFIG_MTK_SERIAL=y +CONFIG_SPI=y +CONFIG_DM_SPI=y -+CONFIG_MTK_SPI_NAND=y -+CONFIG_MTK_SPI_NAND_MTD=y -+CONFIG_SYSRESET_WATCHDOG=y -+CONFIG_WDT_MTK=y -+CONFIG_LZO=y ++CONFIG_MTK_SPIM=y +CONFIG_ZSTD=y +CONFIG_HEXDUMP=y -+CONFIG_RANDOM_UUID=y -+CONFIG_REGEX=y -+CONFIG_OF_EMBED=y -+CONFIG_ENV_OVERWRITE=y -+CONFIG_ENV_IS_IN_UBI=y -+CONFIG_ENV_UBI_PART="ubi" -+CONFIG_ENV_SIZE=0x1f000 -+CONFIG_ENV_SIZE_REDUND=0x1f000 -+CONFIG_ENV_UBI_VOLUME="ubootenv" -+CONFIG_ENV_UBI_VOLUME_REDUND="ubootenv2" -+CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y -+CONFIG_NET_RANDOM_ETHADDR=y -+CONFIG_REGMAP=y -+CONFIG_SYSCON=y -+CONFIG_CLK=y -+CONFIG_PHY_FIXED=y -+CONFIG_DM_ETH=y -+CONFIG_MEDIATEK_ETH=y -+CONFIG_PINCTRL=y -+CONFIG_PINCONF=y -+CONFIG_PINCTRL_MT7981=y -+CONFIG_POWER_DOMAIN=y -+CONFIG_MTK_POWER_DOMAIN=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_SERIAL=y -+CONFIG_MTK_SERIAL=y -+CONFIG_HEXDUMP=y -+CONFIG_USE_DEFAULT_ENV_FILE=y -+CONFIG_MTD_SPI_NAND=y -+CONFIG_MTK_SPIM=y -+CONFIG_CMD_MTD=y -+CONFIG_CMD_NAND=y -+CONFIG_CMD_NAND_TRIMFFS=y +CONFIG_LMB_MAX_REGIONS=64 -+CONFIG_USE_IPADDR=y -+CONFIG_IPADDR="192.168.1.1" -+CONFIG_USE_SERVERIP=y -+CONFIG_SERVERIP="192.168.1.254" --- /dev/null +++ b/arch/arm/dts/mt7981-cmcc-rax3000m.dtsi @@ -0,0 +1,85 @@ diff --git a/package/boot/uboot-mediatek/patches/438-add-jcg_q30-pro.patch b/package/boot/uboot-mediatek/patches/438-add-jcg_q30-pro.patch index a8d49e70b8..ac5eee049b 100644 --- a/package/boot/uboot-mediatek/patches/438-add-jcg_q30-pro.patch +++ b/package/boot/uboot-mediatek/patches/438-add-jcg_q30-pro.patch @@ -1,182 +1,131 @@ --- /dev/null +++ b/configs/mt7981_jcg_q30-pro_defconfig -@@ -0,0 +1,176 @@ +@@ -0,0 +1,125 @@ +CONFIG_ARM=y ++CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y -+CONFIG_TARGET_MT7981=y +CONFIG_TEXT_BASE=0x41e00000 +CONFIG_SYS_MALLOC_F_LEN=0x4000 -+CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_NR_DRAM_BANKS=1 +CONFIG_DEFAULT_DEVICE_TREE="mt7981_jcg_q30-pro" -+CONFIG_DEFAULT_ENV_FILE="jcg_q30-pro_env" -+CONFIG_DEFAULT_FDT_FILE="mediatek/mt7981_jcg_q30-pro.dtb" +CONFIG_OF_LIBFDT_OVERLAY=y ++CONFIG_TARGET_MT7981=y ++CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 +CONFIG_DEBUG_UART_BASE=0x11002000 +CONFIG_DEBUG_UART_CLOCK=40000000 -+CONFIG_DEBUG_UART=y +CONFIG_SYS_LOAD_ADDR=0x46000000 -+CONFIG_SMBIOS_PRODUCT_NAME="" -+CONFIG_AUTOBOOT_KEYED=y -+CONFIG_BOOTDELAY=30 -+CONFIG_AUTOBOOT_MENU_SHOW=y -+CONFIG_CFB_CONSOLE_ANSI=y -+CONFIG_BOARD_LATE_INIT=y -+CONFIG_BUTTON=y -+CONFIG_BUTTON_GPIO=y -+CONFIG_GPIO_HOG=y -+CONFIG_CMD_ENV_FLAGS=y ++CONFIG_PCI=y ++CONFIG_DEBUG_UART=y ++CONFIG_AHCI=y +CONFIG_FIT=y -+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y -+CONFIG_LED=y -+CONFIG_LED_BLINK=y -+CONFIG_LED_GPIO=y ++CONFIG_BOOTDELAY=30 ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_MENU_SHOW=y ++CONFIG_DEFAULT_FDT_FILE="mediatek/mt7981_jcg_q30-pro.dtb" +CONFIG_LOGLEVEL=7 ++CONFIG_PRE_CONSOLE_BUFFER=y +CONFIG_LOG=y ++CONFIG_BOARD_LATE_INIT=y ++CONFIG_HUSH_PARSER=y +CONFIG_SYS_PROMPT="MT7981> " ++CONFIG_CMD_CPU=y ++CONFIG_CMD_LICENSE=y +# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y -+CONFIG_CMD_BOOTP=y -+CONFIG_CMD_BUTTON=y -+CONFIG_CMD_CACHE=y -+CONFIG_CMD_CDP=y -+CONFIG_CMD_CPU=y -+CONFIG_CMD_DHCP=y -+CONFIG_CMD_DM=y -+CONFIG_CMD_DNS=y -+CONFIG_CMD_ECHO=y -+CONFIG_CMD_ENV_READMEM=y ++CONFIG_CMD_ASKENV=y +CONFIG_CMD_ERASEENV=y -+CONFIG_CMD_EXT4=y -+CONFIG_CMD_FAT=y -+CONFIG_CMD_FDT=y -+CONFIG_CMD_FS_GENERIC=y -+CONFIG_CMD_FS_UUID=y ++CONFIG_CMD_ENV_FLAGS=y ++CONFIG_CMD_STRINGS=y ++CONFIG_CMD_DM=y +CONFIG_CMD_GPIO=y ++CONFIG_CMD_PWM=y +CONFIG_CMD_GPT=y -+CONFIG_CMD_HASH=y -+CONFIG_CMD_ITEST=y -+CONFIG_CMD_LED=y -+CONFIG_CMD_LICENSE=y -+CONFIG_CMD_LINK_LOCAL=y -+# CONFIG_CMD_MBR is not set ++CONFIG_CMD_MTD=y ++CONFIG_CMD_PART=y +CONFIG_CMD_PCI=y ++CONFIG_CMD_DHCP=y ++CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_RARP=y ++CONFIG_CMD_PING=y ++CONFIG_CMD_CDP=y ++CONFIG_CMD_SNTP=y ++CONFIG_CMD_DNS=y ++CONFIG_CMD_LINK_LOCAL=y ++CONFIG_CMD_PXE=y ++CONFIG_CMD_CACHE=y +CONFIG_CMD_PSTORE=y +CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 -+CONFIG_CMD_SF_TEST=y -+CONFIG_CMD_PING=y -+CONFIG_CMD_PXE=y -+CONFIG_CMD_PWM=y ++CONFIG_CMD_UUID=y ++CONFIG_CMD_HASH=y +CONFIG_CMD_SMC=y -+CONFIG_CMD_TFTPBOOT=y -+CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_EXT4=y ++CONFIG_CMD_FAT=y ++CONFIG_CMD_FS_GENERIC=y ++CONFIG_CMD_FS_UUID=y +CONFIG_CMD_UBI=y +CONFIG_CMD_UBI_RENAME=y -+CONFIG_CMD_UBIFS=y -+CONFIG_CMD_ASKENV=y -+CONFIG_CMD_PART=y -+CONFIG_CMD_RARP=y -+CONFIG_CMD_SETEXPR=y -+CONFIG_CMD_SLEEP=y -+CONFIG_CMD_SNTP=y -+CONFIG_CMD_SOURCE=y -+CONFIG_CMD_STRINGS=y -+CONFIG_CMD_UUID=y -+CONFIG_DISPLAY_CPUINFO=y -+CONFIG_DM_MTD=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_REGULATOR_GPIO=y -+CONFIG_DM_PWM=y -+CONFIG_PWM_MTK=y -+CONFIG_HUSH_PARSER=y -+CONFIG_SYS_REDUNDAND_ENVIRONMENT=y -+CONFIG_SYS_RELOC_GD_ENV_ADDR=y -+CONFIG_VERSION_VARIABLE=y -+CONFIG_PARTITION_UUIDS=y -+CONFIG_NETCONSOLE=y -+CONFIG_REGMAP=y -+CONFIG_SYSCON=y -+CONFIG_CLK=y -+CONFIG_DM_GPIO=y -+CONFIG_DM_SCSI=y -+CONFIG_AHCI=y -+CONFIG_AHCI_PCI=y -+CONFIG_SCSI_AHCI=y -+CONFIG_SCSI=y -+CONFIG_CMD_SCSI=y -+CONFIG_PHY=y -+CONFIG_PHY_MTK_TPHY=y -+CONFIG_PHY_FIXED=y -+CONFIG_MTK_AHCI=y -+CONFIG_DM_ETH=y -+CONFIG_MEDIATEK_ETH=y -+CONFIG_PCI=y -+# CONFIG_MMC is not set -+# CONFIG_DM_MMC is not set -+CONFIG_MTD=y -+CONFIG_MTD_UBI_FASTMAP=y -+CONFIG_DM_PCI=y -+CONFIG_PCIE_MEDIATEK=y -+CONFIG_PINCTRL=y -+CONFIG_PINCONF=y -+CONFIG_PINCTRL_MT7622=y -+CONFIG_POWER_DOMAIN=y -+CONFIG_PRE_CONSOLE_BUFFER=y -+CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 -+CONFIG_MTK_POWER_DOMAIN=y -+CONFIG_RAM=y -+CONFIG_DM_SERIAL=y -+CONFIG_MTK_SERIAL=y -+CONFIG_SPI=y -+CONFIG_DM_SPI=y -+CONFIG_MTK_SPI_NAND=y -+CONFIG_MTK_SPI_NAND_MTD=y -+CONFIG_SYSRESET_WATCHDOG=y -+CONFIG_WDT_MTK=y -+CONFIG_LZO=y -+CONFIG_ZSTD=y -+CONFIG_HEXDUMP=y -+CONFIG_RANDOM_UUID=y -+CONFIG_REGEX=y +CONFIG_OF_EMBED=y +CONFIG_ENV_OVERWRITE=y +CONFIG_ENV_IS_IN_UBI=y ++CONFIG_SYS_REDUNDAND_ENVIRONMENT=y +CONFIG_ENV_UBI_PART="ubi" -+CONFIG_ENV_SIZE=0x1f000 -+CONFIG_ENV_SIZE_REDUND=0x1f000 +CONFIG_ENV_UBI_VOLUME="ubootenv" +CONFIG_ENV_UBI_VOLUME_REDUND="ubootenv2" ++CONFIG_SYS_RELOC_GD_ENV_ADDR=y ++CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_DEFAULT_ENV_FILE="jcg_q30-pro_env" +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y ++CONFIG_VERSION_VARIABLE=y +CONFIG_NET_RANDOM_ETHADDR=y ++CONFIG_NETCONSOLE=y ++CONFIG_USE_IPADDR=y ++CONFIG_IPADDR="192.168.1.1" ++CONFIG_USE_SERVERIP=y ++CONFIG_SERVERIP="192.168.1.254" +CONFIG_REGMAP=y +CONFIG_SYSCON=y ++CONFIG_SCSI_AHCI=y ++CONFIG_AHCI_PCI=y ++CONFIG_MTK_AHCI=y ++CONFIG_BUTTON=y ++CONFIG_BUTTON_GPIO=y +CONFIG_CLK=y ++CONFIG_GPIO_HOG=y ++CONFIG_LED=y ++CONFIG_LED_BLINK=y ++CONFIG_LED_GPIO=y ++# CONFIG_MMC is not set ++CONFIG_MTD=y ++CONFIG_DM_MTD=y ++CONFIG_MTD_SPI_NAND=y ++CONFIG_MTD_UBI_FASTMAP=y +CONFIG_PHY_FIXED=y -+CONFIG_DM_ETH=y +CONFIG_MEDIATEK_ETH=y ++CONFIG_PCIE_MEDIATEK=y ++CONFIG_PHY=y ++CONFIG_PHY_MTK_TPHY=y +CONFIG_PINCTRL=y +CONFIG_PINCONF=y ++CONFIG_PINCTRL_MT7622=y +CONFIG_PINCTRL_MT7981=y +CONFIG_POWER_DOMAIN=y +CONFIG_MTK_POWER_DOMAIN=y +CONFIG_DM_REGULATOR=y +CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_REGULATOR_GPIO=y ++CONFIG_DM_PWM=y ++CONFIG_PWM_MTK=y ++CONFIG_RAM=y ++CONFIG_SCSI=y +CONFIG_DM_SERIAL=y +CONFIG_MTK_SERIAL=y -+CONFIG_HEXDUMP=y -+CONFIG_USE_DEFAULT_ENV_FILE=y -+CONFIG_MTD_SPI_NAND=y ++CONFIG_SPI=y ++CONFIG_DM_SPI=y +CONFIG_MTK_SPIM=y -+CONFIG_CMD_MTD=y -+CONFIG_CMD_NAND=y -+CONFIG_CMD_NAND_TRIMFFS=y ++CONFIG_ZSTD=y ++CONFIG_HEXDUMP=y +CONFIG_LMB_MAX_REGIONS=64 -+CONFIG_USE_IPADDR=y -+CONFIG_IPADDR="192.168.1.1" -+CONFIG_USE_SERVERIP=y -+CONFIG_SERVERIP="192.168.1.254" --- /dev/null +++ b/arch/arm/dts/mt7981_jcg_q30-pro.dts @@ -0,0 +1,179 @@ diff --git a/package/boot/uboot-mediatek/patches/439-add-zyxel_ex5601-t0.patch b/package/boot/uboot-mediatek/patches/439-add-zyxel_ex5601-t0.patch index 06e4217375..0509d8167a 100644 --- a/package/boot/uboot-mediatek/patches/439-add-zyxel_ex5601-t0.patch +++ b/package/boot/uboot-mediatek/patches/439-add-zyxel_ex5601-t0.patch @@ -1,193 +1,136 @@ --- /dev/null +++ b/configs/mt7986_zyxel_ex5601-t0_defconfig -@@ -0,0 +1,187 @@ +@@ -0,0 +1,130 @@ +CONFIG_ARM=y ++CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y -+CONFIG_TARGET_MT7986=y +CONFIG_TEXT_BASE=0x41e00000 +CONFIG_SYS_MALLOC_F_LEN=0x4000 -+CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_NR_DRAM_BANKS=1 +CONFIG_DEFAULT_DEVICE_TREE="mt7986a-zyxel_ex5601-t0" -+CONFIG_DEFAULT_ENV_FILE="zyxel_ex5601-t0_env" -+CONFIG_DEFAULT_FDT_FILE="mediatek/mt7986a-zyxel_ex5601-t0.dtb" +CONFIG_OF_LIBFDT_OVERLAY=y ++CONFIG_TARGET_MT7986=y ++CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 +CONFIG_DEBUG_UART_BASE=0x11002000 +CONFIG_DEBUG_UART_CLOCK=40000000 -+CONFIG_DEBUG_UART=y +CONFIG_SYS_LOAD_ADDR=0x46000000 -+CONFIG_SMBIOS_PRODUCT_NAME="" -+CONFIG_AUTOBOOT_KEYED=y -+CONFIG_BOOTDELAY=30 -+CONFIG_AUTOBOOT_MENU_SHOW=y -+CONFIG_CFB_CONSOLE_ANSI=y -+CONFIG_BOARD_LATE_INIT=y -+CONFIG_BUTTON=y -+CONFIG_BUTTON_GPIO=y -+CONFIG_GPIO_HOG=y -+CONFIG_CMD_ENV_FLAGS=y ++CONFIG_PCI=y ++CONFIG_DEBUG_UART=y ++CONFIG_AHCI=y +CONFIG_FIT=y -+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y -+CONFIG_LED=y -+CONFIG_LED_BLINK=y -+CONFIG_LED_GPIO=y ++CONFIG_BOOTDELAY=30 ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_MENU_SHOW=y ++CONFIG_DEFAULT_FDT_FILE="mediatek/mt7986a-zyxel_ex5601-t0.dtb" +CONFIG_LOGLEVEL=7 ++CONFIG_PRE_CONSOLE_BUFFER=y +CONFIG_LOG=y ++CONFIG_BOARD_LATE_INIT=y ++CONFIG_HUSH_PARSER=y +CONFIG_SYS_PROMPT="EX5601> " ++CONFIG_CMD_CPU=y ++CONFIG_CMD_LICENSE=y +# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y -+CONFIG_CMD_BOOTP=y -+CONFIG_CMD_BUTTON=y -+CONFIG_CMD_CACHE=y -+CONFIG_CMD_CDP=y -+CONFIG_CMD_CPU=y -+CONFIG_CMD_DHCP=y -+CONFIG_CMD_DM=y -+CONFIG_CMD_DNS=y -+CONFIG_CMD_ECHO=y -+CONFIG_CMD_ENV_READMEM=y ++CONFIG_CMD_ASKENV=y +CONFIG_CMD_ERASEENV=y -+CONFIG_CMD_EXT4=y -+CONFIG_CMD_FAT=y -+CONFIG_CMD_FDT=y -+CONFIG_CMD_FS_GENERIC=y -+CONFIG_CMD_FS_UUID=y ++CONFIG_CMD_ENV_FLAGS=y ++CONFIG_CMD_STRINGS=y ++CONFIG_CMD_DM=y +CONFIG_CMD_GPIO=y ++CONFIG_CMD_PWM=y +CONFIG_CMD_GPT=y -+CONFIG_CMD_HASH=y -+CONFIG_CMD_ITEST=y -+CONFIG_CMD_LED=y -+CONFIG_CMD_LICENSE=y -+CONFIG_CMD_LINK_LOCAL=y -+# CONFIG_CMD_MBR is not set +CONFIG_CMD_MTD=y ++CONFIG_CMD_PART=y +CONFIG_CMD_PCI=y ++CONFIG_CMD_USB=y ++CONFIG_CMD_DHCP=y ++CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_RARP=y ++CONFIG_CMD_PING=y ++CONFIG_CMD_CDP=y ++CONFIG_CMD_SNTP=y ++CONFIG_CMD_DNS=y ++CONFIG_CMD_LINK_LOCAL=y ++CONFIG_CMD_PXE=y ++CONFIG_CMD_CACHE=y +CONFIG_CMD_PSTORE=y +CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 -+CONFIG_CMD_SF_TEST=y -+CONFIG_CMD_PING=y -+CONFIG_CMD_PXE=y -+CONFIG_CMD_PWM=y ++CONFIG_CMD_UUID=y ++CONFIG_CMD_HASH=y +CONFIG_CMD_SMC=y -+CONFIG_CMD_TFTPBOOT=y -+CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_EXT4=y ++CONFIG_CMD_FAT=y ++CONFIG_CMD_FS_GENERIC=y ++CONFIG_CMD_FS_UUID=y +CONFIG_CMD_UBI=y +CONFIG_CMD_UBI_RENAME=y -+CONFIG_CMD_UBIFS=y -+CONFIG_CMD_ASKENV=y -+CONFIG_CMD_PART=y -+CONFIG_CMD_RARP=y -+CONFIG_CMD_SETEXPR=y -+CONFIG_CMD_SLEEP=y -+CONFIG_CMD_SNTP=y -+CONFIG_CMD_SOURCE=y -+CONFIG_CMD_STRINGS=y -+CONFIG_CMD_USB=y -+# CONFIG_CMD_FLASH is not set -+CONFIG_CMD_UUID=y -+CONFIG_DISPLAY_CPUINFO=y -+CONFIG_DM_MTD=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_REGULATOR_GPIO=y -+CONFIG_DM_USB=y -+CONFIG_DM_PWM=y -+CONFIG_PWM_MTK=y -+CONFIG_HUSH_PARSER=y -+CONFIG_SYS_REDUNDAND_ENVIRONMENT=y -+CONFIG_SYS_RELOC_GD_ENV_ADDR=y -+CONFIG_VERSION_VARIABLE=y -+CONFIG_PARTITION_UUIDS=y -+CONFIG_NETCONSOLE=y -+CONFIG_REGMAP=y -+CONFIG_SYSCON=y -+CONFIG_CLK=y -+CONFIG_DM_GPIO=y -+CONFIG_DM_SCSI=y -+CONFIG_AHCI=y -+CONFIG_AHCI_PCI=y -+CONFIG_SCSI_AHCI=y -+CONFIG_SCSI=y -+CONFIG_CMD_SCSI=y -+CONFIG_PHY=y -+CONFIG_PHY_MTK_TPHY=y -+CONFIG_PHY_FIXED=y -+CONFIG_MTK_AHCI=y -+CONFIG_DM_ETH=y -+CONFIG_MEDIATEK_ETH=y -+CONFIG_PCI=y -+CONFIG_DM_PCI=y -+CONFIG_PCIE_MEDIATEK=y -+# CONFIG_MMC is not set -+# CONFIG_DM_MMC is not set -+CONFIG_MTD=y -+CONFIG_MTD_UBI_FASTMAP=y -+# CONFIG_DM_PCI is not set -+# CONFIG_PCIE_MEDIATEK is not set -+CONFIG_PINCTRL=y -+CONFIG_PINCONF=y -+CONFIG_PINCTRL_MT7622=y -+CONFIG_POWER_DOMAIN=y -+CONFIG_PRE_CONSOLE_BUFFER=y -+CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 -+CONFIG_MTK_POWER_DOMAIN=y -+CONFIG_RAM=y -+CONFIG_DM_SERIAL=y -+CONFIG_MTK_SERIAL=y -+CONFIG_SPI=y -+# CONFIG_I2C is not set -+CONFIG_DM_SPI=y -+CONFIG_MTK_SPI_NAND=y -+CONFIG_MTK_SPI_NAND_MTD=y -+CONFIG_SYSRESET_WATCHDOG=y -+CONFIG_WDT_MTK=y -+CONFIG_LZO=y -+CONFIG_ZSTD=y -+CONFIG_HEXDUMP=y -+CONFIG_RANDOM_UUID=y -+CONFIG_REGEX=y -+CONFIG_USB=y -+CONFIG_USB_HOST=y -+CONFIG_USB_XHCI_HCD=y -+CONFIG_USB_XHCI_MTK=y -+CONFIG_USB_STORAGE=y +CONFIG_OF_EMBED=y +CONFIG_ENV_OVERWRITE=y +CONFIG_ENV_IS_IN_UBI=y ++CONFIG_SYS_REDUNDAND_ENVIRONMENT=y +CONFIG_ENV_UBI_PART="ubi" -+CONFIG_ENV_SIZE=0x1f000 -+CONFIG_ENV_SIZE_REDUND=0x1f000 +CONFIG_ENV_UBI_VOLUME="ubootenv" +CONFIG_ENV_UBI_VOLUME_REDUND="ubootenv2" ++CONFIG_SYS_RELOC_GD_ENV_ADDR=y ++CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_DEFAULT_ENV_FILE="zyxel_ex5601-t0_env" +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y ++CONFIG_VERSION_VARIABLE=y +CONFIG_NET_RANDOM_ETHADDR=y ++CONFIG_NETCONSOLE=y ++CONFIG_USE_IPADDR=y ++CONFIG_IPADDR="192.168.1.1" ++CONFIG_USE_SERVERIP=y ++CONFIG_SERVERIP="192.168.1.254" +CONFIG_REGMAP=y +CONFIG_SYSCON=y ++CONFIG_SCSI_AHCI=y ++CONFIG_AHCI_PCI=y ++CONFIG_MTK_AHCI=y ++CONFIG_BUTTON=y ++CONFIG_BUTTON_GPIO=y +CONFIG_CLK=y ++CONFIG_GPIO_HOG=y ++# CONFIG_I2C is not set ++CONFIG_LED=y ++CONFIG_LED_BLINK=y ++CONFIG_LED_GPIO=y ++# CONFIG_MMC is not set ++CONFIG_MTD=y ++CONFIG_DM_MTD=y ++CONFIG_MTD_SPI_NAND=y ++CONFIG_MTD_UBI_FASTMAP=y +CONFIG_PHY_FIXED=y -+CONFIG_DM_ETH=y +CONFIG_MEDIATEK_ETH=y ++CONFIG_PHY=y ++CONFIG_PHY_MTK_TPHY=y +CONFIG_PINCTRL=y +CONFIG_PINCONF=y ++CONFIG_PINCTRL_MT7622=y +CONFIG_PINCTRL_MT7986=y +CONFIG_POWER_DOMAIN=y +CONFIG_MTK_POWER_DOMAIN=y +CONFIG_DM_REGULATOR=y +CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_REGULATOR_GPIO=y ++CONFIG_DM_PWM=y ++CONFIG_PWM_MTK=y ++CONFIG_RAM=y ++CONFIG_SCSI=y +CONFIG_DM_SERIAL=y +CONFIG_MTK_SERIAL=y -+CONFIG_HEXDUMP=y -+CONFIG_USE_DEFAULT_ENV_FILE=y -+CONFIG_MTD_SPI_NAND=y ++CONFIG_SPI=y ++CONFIG_DM_SPI=y +CONFIG_MTK_SPIM=y -+CONFIG_CMD_NAND=y -+CONFIG_CMD_NAND_TRIMFFS=y ++CONFIG_USB=y ++CONFIG_USB_XHCI_HCD=y ++CONFIG_USB_XHCI_MTK=y ++CONFIG_USB_STORAGE=y ++CONFIG_ZSTD=y ++CONFIG_HEXDUMP=y +CONFIG_LMB_MAX_REGIONS=64 -+CONFIG_USE_IPADDR=y -+CONFIG_IPADDR="192.168.1.1" -+CONFIG_USE_SERVERIP=y -+CONFIG_SERVERIP="192.168.1.254" --- /dev/null +++ b/arch/arm/dts/mt7986a-zyxel_ex5601-t0.dts @@ -0,0 +1,181 @@ diff --git a/package/boot/uboot-mediatek/patches/440-add-xiaomi_mi-router-ax3000t.patch b/package/boot/uboot-mediatek/patches/440-add-xiaomi_mi-router-ax3000t.patch index 9e4643f97a..62b9fb8a4d 100644 --- a/package/boot/uboot-mediatek/patches/440-add-xiaomi_mi-router-ax3000t.patch +++ b/package/boot/uboot-mediatek/patches/440-add-xiaomi_mi-router-ax3000t.patch @@ -1,170 +1,113 @@ --- /dev/null +++ b/configs/mt7981_xiaomi_mi-router-ax3000t_defconfig -@@ -0,0 +1,164 @@ +@@ -0,0 +1,107 @@ +CONFIG_ARM=y ++CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y -+CONFIG_TARGET_MT7981=y +CONFIG_TEXT_BASE=0x41e00000 +CONFIG_SYS_MALLOC_F_LEN=0x4000 -+CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_NR_DRAM_BANKS=1 +CONFIG_DEFAULT_DEVICE_TREE="mt7981_xiaomi_mi-router-ax3000t" -+CONFIG_DEFAULT_ENV_FILE="xiaomi_mi-router-ax3000t_env" -+CONFIG_DEFAULT_FDT_FILE="mediatek/mt7981_xiaomi_mi-router-ax3000t.dtb" +CONFIG_OF_LIBFDT_OVERLAY=y ++CONFIG_TARGET_MT7981=y ++CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 +CONFIG_DEBUG_UART_BASE=0x11002000 +CONFIG_DEBUG_UART_CLOCK=40000000 -+CONFIG_DEBUG_UART=y +CONFIG_SYS_LOAD_ADDR=0x46000000 -+CONFIG_SMBIOS_PRODUCT_NAME="" -+CONFIG_AUTOBOOT_KEYED=y ++CONFIG_DEBUG_UART=y ++CONFIG_FIT=y +CONFIG_BOOTDELAY=30 ++CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_MENU_SHOW=y -+CONFIG_CFB_CONSOLE_ANSI=y ++CONFIG_DEFAULT_FDT_FILE="mediatek/mt7981_xiaomi_mi-router-ax3000t.dtb" ++CONFIG_LOGLEVEL=7 ++CONFIG_PRE_CONSOLE_BUFFER=y ++CONFIG_LOG=y +CONFIG_BOARD_LATE_INIT=y ++CONFIG_HUSH_PARSER=y ++CONFIG_SYS_PROMPT="MT7981> " ++CONFIG_CMD_CPU=y ++CONFIG_CMD_LICENSE=y ++CONFIG_CMD_BOOTMENU=y ++CONFIG_CMD_ASKENV=y ++CONFIG_CMD_ERASEENV=y ++CONFIG_CMD_ENV_FLAGS=y ++CONFIG_CMD_STRINGS=y ++CONFIG_CMD_DM=y ++CONFIG_CMD_GPIO=y ++CONFIG_CMD_GPT=y ++CONFIG_CMD_MTD=y ++CONFIG_CMD_PART=y ++CONFIG_CMD_DHCP=y ++CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_RARP=y ++CONFIG_CMD_PING=y ++CONFIG_CMD_CDP=y ++CONFIG_CMD_SNTP=y ++CONFIG_CMD_DNS=y ++CONFIG_CMD_LINK_LOCAL=y ++CONFIG_CMD_PXE=y ++CONFIG_CMD_CACHE=y ++CONFIG_CMD_PSTORE=y ++CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 ++CONFIG_CMD_UUID=y ++CONFIG_CMD_HASH=y ++CONFIG_CMD_SMC=y ++CONFIG_CMD_UBI=y ++CONFIG_CMD_UBI_RENAME=y ++CONFIG_OF_EMBED=y ++CONFIG_ENV_OVERWRITE=y ++CONFIG_ENV_IS_IN_UBI=y ++CONFIG_SYS_REDUNDAND_ENVIRONMENT=y ++CONFIG_ENV_UBI_PART="ubi" ++CONFIG_ENV_UBI_VOLUME="ubootenv" ++CONFIG_ENV_UBI_VOLUME_REDUND="ubootenv2" ++CONFIG_SYS_RELOC_GD_ENV_ADDR=y ++CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_DEFAULT_ENV_FILE="xiaomi_mi-router-ax3000t_env" ++CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y ++CONFIG_VERSION_VARIABLE=y ++CONFIG_NET_RANDOM_ETHADDR=y ++CONFIG_NETCONSOLE=y ++CONFIG_USE_IPADDR=y ++CONFIG_IPADDR="192.168.1.1" ++CONFIG_USE_SERVERIP=y ++CONFIG_SERVERIP="192.168.1.254" ++CONFIG_REGMAP=y ++CONFIG_SYSCON=y +CONFIG_BUTTON=y +CONFIG_BUTTON_GPIO=y ++CONFIG_CLK=y +CONFIG_GPIO_HOG=y -+CONFIG_CMD_ENV_FLAGS=y -+CONFIG_FIT=y -+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y +CONFIG_LED=y +CONFIG_LED_BLINK=y +CONFIG_LED_GPIO=y -+CONFIG_LOGLEVEL=7 -+CONFIG_LOG=y -+CONFIG_SYS_PROMPT="MT7981> " -+# CONFIG_CMD_BOOTEFI_BOOTMGR is not set -+CONFIG_CMD_BOOTMENU=y -+CONFIG_CMD_BOOTP=y -+CONFIG_CMD_BUTTON=y -+CONFIG_CMD_CACHE=y -+CONFIG_CMD_CDP=y -+CONFIG_CMD_CPU=y -+CONFIG_CMD_DHCP=y -+CONFIG_CMD_DM=y -+CONFIG_CMD_DNS=y -+CONFIG_CMD_ECHO=y -+CONFIG_CMD_ENV_READMEM=y -+CONFIG_CMD_ERASEENV=y -+# CONFIG_CMD_EXT4 is not set -+# CONFIG_CMD_FAT is not set -+CONFIG_CMD_FDT=y -+# CONFIG_CMD_FS_GENERIC is not set -+# CONFIG_CMD_FS_UUID is not set -+CONFIG_CMD_GPIO=y -+CONFIG_CMD_GPT=y -+CONFIG_CMD_HASH=y -+CONFIG_CMD_ITEST=y -+CONFIG_CMD_LED=y -+CONFIG_CMD_LICENSE=y -+CONFIG_CMD_LINK_LOCAL=y -+# CONFIG_CMD_MBR is not set -+CONFIG_CMD_MTD=y -+# CONFIG_CMD_PCI is not set -+CONFIG_CMD_PSTORE=y -+CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 -+CONFIG_CMD_SF_TEST=y -+CONFIG_CMD_PING=y -+CONFIG_CMD_PXE=y -+# CONFIG_CMD_PWM is not set -+CONFIG_CMD_SMC=y -+CONFIG_CMD_TFTPBOOT=y -+CONFIG_CMD_TFTPSRV=y -+CONFIG_CMD_UBI=y -+CONFIG_CMD_UBI_RENAME=y -+CONFIG_CMD_UBIFS=y -+CONFIG_CMD_ASKENV=y -+CONFIG_CMD_PART=y -+CONFIG_CMD_RARP=y -+CONFIG_CMD_SETEXPR=y -+CONFIG_CMD_SLEEP=y -+CONFIG_CMD_SNTP=y -+CONFIG_CMD_SOURCE=y -+CONFIG_CMD_STRINGS=y -+# CONFIG_CMD_USB is not set -+# CONFIG_CMD_FLASH is not set -+CONFIG_CMD_UUID=y -+CONFIG_DISPLAY_CPUINFO=y -+CONFIG_DM_MTD=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_REGULATOR_GPIO=y -+# CONFIG_DM_USB is not set -+# CONFIG_DM_PWM is not set -+# CONFIG_PWM_MTK is not set -+CONFIG_HUSH_PARSER=y -+CONFIG_SYS_REDUNDAND_ENVIRONMENT=y -+CONFIG_SYS_RELOC_GD_ENV_ADDR=y -+CONFIG_VERSION_VARIABLE=y -+CONFIG_PARTITION_UUIDS=y -+CONFIG_NETCONSOLE=y -+CONFIG_REGMAP=y -+CONFIG_SYSCON=y -+CONFIG_CLK=y -+CONFIG_DM_GPIO=y -+# CONFIG_DM_SCSI is not set -+# CONFIG_AHCI is not set -+CONFIG_PHY=y -+# CONFIG_PHY_MTK_TPHY is not set -+CONFIG_PHY_FIXED=y -+CONFIG_MTK_AHCI=y -+CONFIG_DM_ETH=y -+CONFIG_MEDIATEK_ETH=y -+# CONFIG_PCI is not set +# CONFIG_MMC is not set -+# CONFIG_DM_MMC is not set +CONFIG_MTD=y ++CONFIG_DM_MTD=y ++CONFIG_MTD_SPI_NAND=y +CONFIG_MTD_UBI_FASTMAP=y -+# CONFIG_DM_PCI is not set -+# CONFIG_PCIE_MEDIATEK is not set ++CONFIG_PHY_FIXED=y ++CONFIG_MEDIATEK_ETH=y ++CONFIG_PHY=y +CONFIG_PINCTRL=y +CONFIG_PINCONF=y +CONFIG_PINCTRL_MT7981=y +CONFIG_POWER_DOMAIN=y -+CONFIG_PRE_CONSOLE_BUFFER=y -+CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 +CONFIG_MTK_POWER_DOMAIN=y ++CONFIG_DM_REGULATOR=y ++CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_REGULATOR_GPIO=y +CONFIG_RAM=y +CONFIG_DM_SERIAL=y +CONFIG_MTK_SERIAL=y +CONFIG_SPI=y +CONFIG_DM_SPI=y -+CONFIG_MTK_SPI_NAND=y -+CONFIG_MTK_SPI_NAND_MTD=y -+CONFIG_SYSRESET_WATCHDOG=y -+CONFIG_WDT_MTK=y -+CONFIG_LZO=y ++CONFIG_MTK_SPIM=y +CONFIG_ZSTD=y +CONFIG_HEXDUMP=y -+CONFIG_RANDOM_UUID=y -+CONFIG_REGEX=y -+# CONFIG_USB is not set -+# CONFIG_USB_HOST is not set -+# CONFIG_USB_XHCI_HCD is not set -+# CONFIG_USB_XHCI_MTK is not set -+# CONFIG_USB_STORAGE is not set -+CONFIG_OF_EMBED=y -+CONFIG_ENV_OVERWRITE=y -+CONFIG_ENV_IS_IN_UBI=y -+CONFIG_ENV_UBI_PART="ubi" -+CONFIG_ENV_SIZE=0x1f000 -+CONFIG_ENV_SIZE_REDUND=0x1f000 -+CONFIG_ENV_UBI_VOLUME="ubootenv" -+CONFIG_ENV_UBI_VOLUME_REDUND="ubootenv2" -+CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y -+CONFIG_NET_RANDOM_ETHADDR=y -+CONFIG_USE_DEFAULT_ENV_FILE=y -+CONFIG_MTD_SPI_NAND=y -+CONFIG_MTK_SPIM=y -+CONFIG_CMD_NAND=y -+CONFIG_CMD_NAND_TRIMFFS=y +CONFIG_LMB_MAX_REGIONS=64 -+CONFIG_USE_IPADDR=y -+CONFIG_IPADDR="192.168.1.1" -+CONFIG_USE_SERVERIP=y -+CONFIG_SERVERIP="192.168.1.254" --- /dev/null +++ b/arch/arm/dts/mt7981_xiaomi_mi-router-ax3000t.dts @@ -0,0 +1,187 @@ diff --git a/package/boot/uboot-mediatek/patches/441-add-jdcloud_re-cp-03.patch b/package/boot/uboot-mediatek/patches/441-add-jdcloud_re-cp-03.patch index 2d46f3c02b..1da0553f23 100644 --- a/package/boot/uboot-mediatek/patches/441-add-jdcloud_re-cp-03.patch +++ b/package/boot/uboot-mediatek/patches/441-add-jdcloud_re-cp-03.patch @@ -1,6 +1,6 @@ --- /dev/null +++ b/configs/mt7986a_jdcloud_re-cp-03_defconfig -@@ -0,0 +1,113 @@ +@@ -0,0 +1,112 @@ +CONFIG_ARM=y +CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y @@ -11,7 +11,6 @@ +CONFIG_ENV_SIZE=0x40000 +CONFIG_ENV_OFFSET=0x400000 +CONFIG_DEFAULT_DEVICE_TREE="mt7986a-jdcloud_re-cp-03" -+CONFIG_SYS_PROMPT="MT7986> " +CONFIG_OF_LIBFDT_OVERLAY=y +CONFIG_TARGET_MT7986=y +CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 @@ -30,6 +29,7 @@ +CONFIG_LOG=y +CONFIG_BOARD_LATE_INIT=y +CONFIG_HUSH_PARSER=y ++CONFIG_SYS_PROMPT="MT7986> " +CONFIG_CMD_CPU=y +CONFIG_CMD_LICENSE=y +# CONFIG_CMD_BOOTEFI_BOOTMGR is not set @@ -108,7 +108,6 @@ +CONFIG_PWM_MTK=y +CONFIG_RAM=y +CONFIG_SCSI=y -+CONFIG_DM_SCSI=y +CONFIG_DM_SERIAL=y +CONFIG_MTK_SERIAL=y +CONFIG_ZSTD=y diff --git a/package/boot/uboot-mediatek/patches/442-add-bpi-r3-mini.patch b/package/boot/uboot-mediatek/patches/442-add-bpi-r3-mini.patch index 91757476b6..95c9bec731 100644 --- a/package/boot/uboot-mediatek/patches/442-add-bpi-r3-mini.patch +++ b/package/boot/uboot-mediatek/patches/442-add-bpi-r3-mini.patch @@ -1,417 +1,294 @@ --- /dev/null +++ b/configs/mt7986a_bpi-r3-mini-emmc_defconfig -@@ -0,0 +1,204 @@ +@@ -0,0 +1,146 @@ +CONFIG_ARM=y ++CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y -+CONFIG_TARGET_MT7986=y +CONFIG_TEXT_BASE=0x41e00000 +CONFIG_SYS_MALLOC_F_LEN=0x4000 -+CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_NR_DRAM_BANKS=1 ++CONFIG_ENV_SIZE=0x40000 ++CONFIG_ENV_OFFSET=0x400000 +CONFIG_DEFAULT_DEVICE_TREE="mt7986a-bpi-r3-mini" -+CONFIG_DEFAULT_ENV_FILE="bananapi_bpi-r3-mini_emmc_env" -+CONFIG_DEFAULT_FDT_FILE="mediatek/mt7986a-bpi-r3-mini.dtb" +CONFIG_OF_LIBFDT_OVERLAY=y -+CONFIG_OF_SYSTEM_SETUP=y ++CONFIG_TARGET_MT7986=y ++CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 +CONFIG_DEBUG_UART_BASE=0x11002000 +CONFIG_DEBUG_UART_CLOCK=40000000 -+CONFIG_DEBUG_UART=y ++CONFIG_ENV_OFFSET_REDUND=0x440000 +CONFIG_SYS_LOAD_ADDR=0x46000000 -+CONFIG_SMBIOS_PRODUCT_NAME="" -+CONFIG_AUTOBOOT_KEYED=y -+CONFIG_BOOTDELAY=30 -+CONFIG_AUTOBOOT_MENU_SHOW=y -+CONFIG_CFB_CONSOLE_ANSI=y -+CONFIG_BOARD_LATE_INIT=y -+CONFIG_BUTTON=y -+CONFIG_BUTTON_GPIO=y -+CONFIG_GPIO_HOG=y -+CONFIG_CMD_ENV_FLAGS=y ++CONFIG_PCI=y ++CONFIG_DEBUG_UART=y ++CONFIG_AHCI=y +CONFIG_FIT=y -+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y -+CONFIG_LED=y -+CONFIG_LED_BLINK=y -+CONFIG_LED_GPIO=y ++CONFIG_BOOTDELAY=30 ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_MENU_SHOW=y ++CONFIG_OF_SYSTEM_SETUP=y ++CONFIG_DEFAULT_FDT_FILE="mediatek/mt7986a-bpi-r3-mini.dtb" +CONFIG_LOGLEVEL=7 ++CONFIG_PRE_CONSOLE_BUFFER=y +CONFIG_LOG=y ++CONFIG_BOARD_LATE_INIT=y ++CONFIG_HUSH_PARSER=y +CONFIG_SYS_PROMPT="MT7986> " ++CONFIG_CMD_CPU=y ++CONFIG_CMD_LICENSE=y +# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y -+CONFIG_CMD_BOOTP=y -+CONFIG_CMD_BUTTON=y -+CONFIG_CMD_CACHE=y -+CONFIG_CMD_CDP=y -+CONFIG_CMD_CPU=y -+CONFIG_CMD_DHCP=y -+CONFIG_CMD_DM=y -+CONFIG_CMD_DNS=y -+CONFIG_CMD_ECHO=y -+CONFIG_CMD_ENV_READMEM=y ++CONFIG_CMD_ASKENV=y +CONFIG_CMD_ERASEENV=y -+CONFIG_CMD_EXT4=y -+CONFIG_CMD_FAT=y -+CONFIG_CMD_FDT=y -+CONFIG_CMD_FS_GENERIC=y -+CONFIG_CMD_FS_UUID=y ++CONFIG_CMD_ENV_FLAGS=y ++CONFIG_CMD_STRINGS=y ++CONFIG_CMD_DM=y +CONFIG_CMD_GPIO=y ++CONFIG_CMD_PWM=y +CONFIG_CMD_GPT=y -+CONFIG_CMD_HASH=y -+CONFIG_CMD_ITEST=y -+CONFIG_CMD_LED=y -+CONFIG_CMD_LICENSE=y -+CONFIG_CMD_LINK_LOCAL=y -+# CONFIG_CMD_MBR is not set -+CONFIG_CMD_MDIO=y -+CONFIG_CMD_MII=y +CONFIG_CMD_MMC=y +CONFIG_CMD_MTD=y ++CONFIG_CMD_PART=y +CONFIG_CMD_PCI=y ++CONFIG_CMD_SF_TEST=y ++CONFIG_CMD_USB=y ++CONFIG_CMD_DHCP=y ++CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_RARP=y ++CONFIG_CMD_MII=y ++CONFIG_CMD_PING=y ++CONFIG_CMD_CDP=y ++CONFIG_CMD_SNTP=y ++CONFIG_CMD_DNS=y ++CONFIG_CMD_LINK_LOCAL=y ++CONFIG_CMD_PXE=y ++CONFIG_CMD_CACHE=y +CONFIG_CMD_PSTORE=y +CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 -+CONFIG_CMD_SF_TEST=y -+CONFIG_CMD_PING=y -+CONFIG_CMD_PXE=y -+CONFIG_CMD_PWM=y ++CONFIG_CMD_UUID=y ++CONFIG_CMD_HASH=y +CONFIG_CMD_SMC=y -+CONFIG_CMD_TFTPBOOT=y -+CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_EXT4=y ++CONFIG_CMD_FAT=y ++CONFIG_CMD_FS_GENERIC=y ++CONFIG_CMD_FS_UUID=y +CONFIG_CMD_UBI=y +CONFIG_CMD_UBI_RENAME=y -+CONFIG_CMD_UBIFS=y -+CONFIG_CMD_ASKENV=y -+CONFIG_CMD_PART=y -+CONFIG_CMD_RARP=y -+CONFIG_CMD_SETEXPR=y -+CONFIG_CMD_SLEEP=y -+CONFIG_CMD_SNTP=y -+CONFIG_CMD_SOURCE=y -+CONFIG_CMD_STRINGS=y -+CONFIG_CMD_USB=y -+CONFIG_CMD_UUID=y -+CONFIG_DISPLAY_CPUINFO=y -+CONFIG_DM_MDIO=y -+CONFIG_DM_MMC=y -+CONFIG_DM_MTD=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_REGULATOR_GPIO=y -+CONFIG_DM_USB=y -+CONFIG_DM_PWM=y -+CONFIG_PWM_MTK=y -+CONFIG_HUSH_PARSER=y -+CONFIG_SYS_REDUNDAND_ENVIRONMENT=y -+CONFIG_SYS_RELOC_GD_ENV_ADDR=y -+CONFIG_VERSION_VARIABLE=y -+CONFIG_PARTITION_UUIDS=y -+CONFIG_NETCONSOLE=y -+CONFIG_REGMAP=y -+CONFIG_SYSCON=y -+CONFIG_CLK=y -+CONFIG_DM_GPIO=y -+CONFIG_DM_SCSI=y -+CONFIG_AHCI=y -+CONFIG_AHCI_PCI=y -+CONFIG_SCSI_AHCI=y -+CONFIG_SCSI=y -+CONFIG_CMD_SCSI=y -+CONFIG_PHY=y -+CONFIG_PHY_MTK_TPHY=y -+CONFIG_PHY_ETHERNET_ID=y -+CONFIG_PHY_FIXED=y -+CONFIG_MTK_AHCI=y -+CONFIG_DM_ETH=y -+CONFIG_DM_ETH_PHY=y -+CONFIG_MEDIATEK_ETH=y -+CONFIG_PHY_AIROHA=y -+CONFIG_PHY_AIROHA_EN8811H=y -+CONFIG_PHY_AIROHA_FW_IN_MMC=y -+CONFIG_PCI=y -+CONFIG_MTD=y -+CONFIG_MTD_UBI_FASTMAP=y -+CONFIG_DM_PCI=y -+CONFIG_PCIE_MEDIATEK=y -+CONFIG_PINCTRL=y -+CONFIG_PINCONF=y -+CONFIG_PINCTRL_MT7622=y -+CONFIG_POWER_DOMAIN=y -+CONFIG_PRE_CONSOLE_BUFFER=y -+CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 -+CONFIG_MTK_POWER_DOMAIN=y -+CONFIG_RAM=y -+CONFIG_DM_SERIAL=y -+CONFIG_MTK_SERIAL=y -+CONFIG_MMC=y -+CONFIG_MMC_DEFAULT_DEV=1 -+CONFIG_MMC_HS200_SUPPORT=y -+CONFIG_MMC_MTK=y -+CONFIG_MMC_SUPPORTS_TUNING=y -+CONFIG_SUPPORT_EMMC_BOOT=y -+CONFIG_SPI=y -+CONFIG_DM_SPI=y -+CONFIG_MTK_SPI_NAND=y -+CONFIG_MTK_SPI_NAND_MTD=y -+CONFIG_SYSRESET_WATCHDOG=y -+CONFIG_WDT_MTK=y -+CONFIG_LZO=y -+CONFIG_ZSTD=y -+CONFIG_HEXDUMP=y -+CONFIG_RANDOM_UUID=y -+CONFIG_REGEX=y -+CONFIG_USB=y -+CONFIG_USB_HOST=y -+CONFIG_USB_XHCI_HCD=y -+CONFIG_USB_XHCI_MTK=y -+CONFIG_USB_STORAGE=y +CONFIG_OF_EMBED=y +CONFIG_ENV_OVERWRITE=y +CONFIG_ENV_IS_IN_MMC=y -+CONFIG_ENV_OFFSET=0x400000 -+CONFIG_ENV_OFFSET_REDUND=0x440000 -+CONFIG_ENV_SIZE=0x40000 -+CONFIG_ENV_SIZE_REDUND=0x40000 -+CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y -+CONFIG_NET_RANDOM_ETHADDR=y -+CONFIG_REGMAP=y -+CONFIG_SYSCON=y -+CONFIG_CLK=y -+CONFIG_SUPPORT_EMMC_BOOT=y -+CONFIG_MMC_HS200_SUPPORT=y -+CONFIG_MMC_MTK=y -+CONFIG_MEDIATEK_ETH=y -+CONFIG_PINCTRL=y -+CONFIG_PINCONF=y -+CONFIG_PINCTRL_MT7986=y -+CONFIG_POWER_DOMAIN=y -+CONFIG_MTK_POWER_DOMAIN=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_SERIAL=y -+CONFIG_MTK_SERIAL=y -+CONFIG_HEXDUMP=y ++CONFIG_SYS_REDUNDAND_ENVIRONMENT=y ++CONFIG_SYS_RELOC_GD_ENV_ADDR=y +CONFIG_USE_DEFAULT_ENV_FILE=y -+CONFIG_MTD_SPI_NAND=y -+CONFIG_MTK_SPIM=y -+#CONFIG_MTK_SNOR=y -+CONFIG_DM_SPI_FLASH=y -+CONFIG_SPI_FLASH_MTD=y -+CONFIG_SPI_FLASH_WINBOND=y -+# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set -+CONFIG_CMD_SF=y -+CONFIG_CMD_NAND=y -+CONFIG_CMD_NAND_TRIMFFS=y -+CONFIG_LMB_MAX_REGIONS=64 ++CONFIG_DEFAULT_ENV_FILE="bananapi_bpi-r3-mini_emmc_env" ++CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y ++CONFIG_VERSION_VARIABLE=y ++CONFIG_NET_RANDOM_ETHADDR=y ++CONFIG_NETCONSOLE=y +CONFIG_USE_IPADDR=y +CONFIG_IPADDR="192.168.1.1" +CONFIG_USE_SERVERIP=y +CONFIG_SERVERIP="192.168.1.254" ---- /dev/null -+++ b/configs/mt7986a_bpi-r3-mini-snand_defconfig -@@ -0,0 +1,204 @@ -+CONFIG_ARM=y -+CONFIG_POSITION_INDEPENDENT=y -+CONFIG_ARCH_MEDIATEK=y -+CONFIG_TARGET_MT7986=y -+CONFIG_TEXT_BASE=0x41e00000 -+CONFIG_SYS_MALLOC_F_LEN=0x4000 -+CONFIG_SYS_HAS_NONCACHED_MEMORY=y -+CONFIG_NR_DRAM_BANKS=1 -+CONFIG_DEFAULT_DEVICE_TREE="mt7986a-bpi-r3-mini" -+CONFIG_DEFAULT_ENV_FILE="bananapi_bpi-r3-mini_snand_env" -+CONFIG_DEFAULT_FDT_FILE="mediatek/mt7986a-bpi-r3-mini.dtb" -+CONFIG_OF_LIBFDT_OVERLAY=y -+CONFIG_OF_SYSTEM_SETUP=y -+CONFIG_DEBUG_UART_BASE=0x11002000 -+CONFIG_DEBUG_UART_CLOCK=40000000 -+CONFIG_DEBUG_UART=y -+CONFIG_SYS_LOAD_ADDR=0x46000000 -+CONFIG_SMBIOS_PRODUCT_NAME="" -+CONFIG_AUTOBOOT_KEYED=y -+CONFIG_BOOTDELAY=30 -+CONFIG_AUTOBOOT_MENU_SHOW=y -+CONFIG_CFB_CONSOLE_ANSI=y -+CONFIG_BOARD_LATE_INIT=y ++CONFIG_REGMAP=y ++CONFIG_SYSCON=y ++CONFIG_SCSI_AHCI=y ++CONFIG_AHCI_PCI=y ++CONFIG_MTK_AHCI=y +CONFIG_BUTTON=y +CONFIG_BUTTON_GPIO=y ++CONFIG_CLK=y +CONFIG_GPIO_HOG=y -+CONFIG_CMD_ENV_FLAGS=y -+CONFIG_FIT=y -+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y +CONFIG_LED=y +CONFIG_LED_BLINK=y +CONFIG_LED_GPIO=y -+CONFIG_LOGLEVEL=7 -+CONFIG_LOG=y -+CONFIG_SYS_PROMPT="MT7986> " -+# CONFIG_CMD_BOOTEFI_BOOTMGR is not set -+CONFIG_CMD_BOOTMENU=y -+CONFIG_CMD_BOOTP=y -+CONFIG_CMD_BUTTON=y -+CONFIG_CMD_CACHE=y -+CONFIG_CMD_CDP=y -+CONFIG_CMD_CPU=y -+CONFIG_CMD_DHCP=y -+CONFIG_CMD_DM=y -+CONFIG_CMD_DNS=y -+CONFIG_CMD_ECHO=y -+CONFIG_CMD_ENV_READMEM=y -+CONFIG_CMD_ERASEENV=y -+CONFIG_CMD_EXT4=y -+CONFIG_CMD_FAT=y -+CONFIG_CMD_FDT=y -+CONFIG_CMD_FS_GENERIC=y -+CONFIG_CMD_FS_UUID=y -+CONFIG_CMD_GPIO=y -+CONFIG_CMD_GPT=y -+CONFIG_CMD_HASH=y -+CONFIG_CMD_ITEST=y -+CONFIG_CMD_LED=y -+CONFIG_CMD_LICENSE=y -+CONFIG_CMD_LINK_LOCAL=y -+# CONFIG_CMD_MBR is not set -+CONFIG_CMD_MDIO=y -+CONFIG_CMD_MII=y -+CONFIG_CMD_MMC=y -+CONFIG_CMD_MTD=y -+CONFIG_CMD_PCI=y -+CONFIG_CMD_PSTORE=y -+CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 -+CONFIG_CMD_SF_TEST=y -+CONFIG_CMD_PING=y -+CONFIG_CMD_PXE=y -+CONFIG_CMD_PWM=y -+CONFIG_CMD_SMC=y -+CONFIG_CMD_TFTPBOOT=y -+CONFIG_CMD_TFTPSRV=y -+CONFIG_CMD_UBI=y -+CONFIG_CMD_UBI_RENAME=y -+CONFIG_CMD_UBIFS=y -+CONFIG_CMD_ASKENV=y -+CONFIG_CMD_PART=y -+CONFIG_CMD_RARP=y -+CONFIG_CMD_SETEXPR=y -+CONFIG_CMD_SLEEP=y -+CONFIG_CMD_SNTP=y -+CONFIG_CMD_SOURCE=y -+CONFIG_CMD_STRINGS=y -+CONFIG_CMD_USB=y -+CONFIG_CMD_UUID=y -+CONFIG_DISPLAY_CPUINFO=y -+CONFIG_DM_MMC=y ++CONFIG_SUPPORT_EMMC_BOOT=y ++CONFIG_MMC_HS200_SUPPORT=y ++CONFIG_MMC_MTK=y ++CONFIG_MTD=y +CONFIG_DM_MTD=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_REGULATOR_GPIO=y -+CONFIG_DM_USB=y -+CONFIG_DM_PWM=y -+CONFIG_PWM_MTK=y -+CONFIG_HUSH_PARSER=y -+CONFIG_SYS_REDUNDAND_ENVIRONMENT=y -+CONFIG_SYS_RELOC_GD_ENV_ADDR=y -+CONFIG_VERSION_VARIABLE=y -+CONFIG_PARTITION_UUIDS=y -+CONFIG_NETCONSOLE=y -+CONFIG_REGMAP=y -+CONFIG_SYSCON=y -+CONFIG_CLK=y -+CONFIG_DM_GPIO=y -+CONFIG_DM_SCSI=y -+CONFIG_AHCI=y -+CONFIG_AHCI_PCI=y -+CONFIG_SCSI_AHCI=y -+CONFIG_SCSI=y -+CONFIG_CMD_SCSI=y -+CONFIG_DM_MDIO=y -+CONFIG_PHY=y -+CONFIG_PHY_MTK_TPHY=y ++CONFIG_MTD_SPI_NAND=y ++CONFIG_DM_SPI_FLASH=y ++CONFIG_SPI_FLASH_WINBOND=y ++# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set ++CONFIG_SPI_FLASH_MTD=y ++CONFIG_MTD_UBI_FASTMAP=y ++CONFIG_PHY_AIROHA=y ++CONFIG_PHY_AIROHA_EN8811H=y ++CONFIG_PHY_AIROHA_FW_IN_MMC=y +CONFIG_PHY_ETHERNET_ID=y +CONFIG_PHY_FIXED=y -+CONFIG_MTK_AHCI=y -+CONFIG_DM_ETH=y ++CONFIG_DM_MDIO=y +CONFIG_DM_ETH_PHY=y +CONFIG_MEDIATEK_ETH=y -+CONFIG_PCI=y -+CONFIG_MTD=y -+CONFIG_MTD_UBI_FASTMAP=y -+CONFIG_DM_PCI=y +CONFIG_PCIE_MEDIATEK=y ++CONFIG_PHY=y ++CONFIG_PHY_MTK_TPHY=y +CONFIG_PINCTRL=y +CONFIG_PINCONF=y +CONFIG_PINCTRL_MT7622=y -+CONFIG_POWER_DOMAIN=y -+CONFIG_PRE_CONSOLE_BUFFER=y -+CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 -+CONFIG_MTK_POWER_DOMAIN=y -+CONFIG_RAM=y -+CONFIG_DM_SERIAL=y -+CONFIG_MTK_SERIAL=y -+CONFIG_MMC=y -+CONFIG_MMC_DEFAULT_DEV=1 -+CONFIG_MMC_HS200_SUPPORT=y -+CONFIG_MMC_MTK=y -+CONFIG_MMC_SUPPORTS_TUNING=y -+CONFIG_SUPPORT_EMMC_BOOT=y -+CONFIG_SPI=y -+CONFIG_DM_SPI=y -+CONFIG_MTK_SPI_NAND=y -+CONFIG_MTK_SPI_NAND_MTD=y -+CONFIG_SYSRESET_WATCHDOG=y -+CONFIG_WDT_MTK=y -+CONFIG_LZO=y -+CONFIG_ZSTD=y -+CONFIG_HEXDUMP=y -+CONFIG_RANDOM_UUID=y -+CONFIG_REGEX=y -+CONFIG_USB=y -+CONFIG_USB_HOST=y -+CONFIG_USB_XHCI_HCD=y -+CONFIG_USB_XHCI_MTK=y -+CONFIG_USB_STORAGE=y -+CONFIG_OF_EMBED=y -+CONFIG_ENV_OVERWRITE=y -+CONFIG_ENV_IS_IN_UBI=y -+CONFIG_ENV_UBI_PART="ubi" -+CONFIG_ENV_SIZE=0x1f000 -+CONFIG_ENV_SIZE_REDUND=0x1f000 -+CONFIG_ENV_UBI_VOLUME="ubootenv" -+CONFIG_ENV_UBI_VOLUME_REDUND="ubootenv2" -+CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y -+CONFIG_NET_RANDOM_ETHADDR=y -+CONFIG_REGMAP=y -+CONFIG_SYSCON=y -+CONFIG_CLK=y -+CONFIG_SUPPORT_EMMC_BOOT=y -+CONFIG_MMC_HS200_SUPPORT=y -+CONFIG_MMC_MTK=y -+CONFIG_MEDIATEK_ETH=y -+CONFIG_PHY_AIROHA=y -+CONFIG_PHY_AIROHA_EN8811H=y -+CONFIG_PHY_AIROHA_FW_IN_UBI=y -+CONFIG_PINCTRL=y -+CONFIG_PINCONF=y +CONFIG_PINCTRL_MT7986=y +CONFIG_POWER_DOMAIN=y +CONFIG_MTK_POWER_DOMAIN=y +CONFIG_DM_REGULATOR=y +CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_REGULATOR_GPIO=y ++CONFIG_DM_PWM=y ++CONFIG_PWM_MTK=y ++CONFIG_RAM=y ++CONFIG_SCSI=y +CONFIG_DM_SERIAL=y +CONFIG_MTK_SERIAL=y -+CONFIG_HEXDUMP=y -+CONFIG_USE_DEFAULT_ENV_FILE=y -+CONFIG_MTD_SPI_NAND=y ++CONFIG_SPI=y ++CONFIG_DM_SPI=y +CONFIG_MTK_SPIM=y -+#CONFIG_MTK_SNOR=y -+#CONFIG_DM_SPI_FLASH=y -+#CONFIG_SPI_FLASH_MTD=y -+#CONFIG_SPI_FLASH_WINBOND=y -+# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set -+#CONFIG_CMD_SF=y -+CONFIG_CMD_NAND=y -+CONFIG_CMD_NAND_TRIMFFS=y ++CONFIG_USB=y ++CONFIG_USB_XHCI_HCD=y ++CONFIG_USB_XHCI_MTK=y ++CONFIG_USB_STORAGE=y ++CONFIG_ZSTD=y ++CONFIG_HEXDUMP=y +CONFIG_LMB_MAX_REGIONS=64 +--- /dev/null ++++ b/configs/mt7986a_bpi-r3-mini-snand_defconfig +@@ -0,0 +1,139 @@ ++CONFIG_ARM=y ++CONFIG_SYS_HAS_NONCACHED_MEMORY=y ++CONFIG_POSITION_INDEPENDENT=y ++CONFIG_ARCH_MEDIATEK=y ++CONFIG_TEXT_BASE=0x41e00000 ++CONFIG_SYS_MALLOC_F_LEN=0x4000 ++CONFIG_NR_DRAM_BANKS=1 ++CONFIG_DEFAULT_DEVICE_TREE="mt7986a-bpi-r3-mini" ++CONFIG_OF_LIBFDT_OVERLAY=y ++CONFIG_TARGET_MT7986=y ++CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 ++CONFIG_DEBUG_UART_BASE=0x11002000 ++CONFIG_DEBUG_UART_CLOCK=40000000 ++CONFIG_SYS_LOAD_ADDR=0x46000000 ++CONFIG_PCI=y ++CONFIG_DEBUG_UART=y ++CONFIG_AHCI=y ++CONFIG_FIT=y ++CONFIG_BOOTDELAY=30 ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_MENU_SHOW=y ++CONFIG_OF_SYSTEM_SETUP=y ++CONFIG_DEFAULT_FDT_FILE="mediatek/mt7986a-bpi-r3-mini.dtb" ++CONFIG_LOGLEVEL=7 ++CONFIG_PRE_CONSOLE_BUFFER=y ++CONFIG_LOG=y ++CONFIG_BOARD_LATE_INIT=y ++CONFIG_HUSH_PARSER=y ++CONFIG_SYS_PROMPT="MT7986> " ++CONFIG_CMD_CPU=y ++CONFIG_CMD_LICENSE=y ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set ++CONFIG_CMD_BOOTMENU=y ++CONFIG_CMD_ASKENV=y ++CONFIG_CMD_ERASEENV=y ++CONFIG_CMD_ENV_FLAGS=y ++CONFIG_CMD_STRINGS=y ++CONFIG_CMD_DM=y ++CONFIG_CMD_GPIO=y ++CONFIG_CMD_PWM=y ++CONFIG_CMD_GPT=y ++CONFIG_CMD_MMC=y ++CONFIG_CMD_MTD=y ++CONFIG_CMD_PART=y ++CONFIG_CMD_PCI=y ++CONFIG_CMD_USB=y ++CONFIG_CMD_DHCP=y ++CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_RARP=y ++CONFIG_CMD_MII=y ++CONFIG_CMD_PING=y ++CONFIG_CMD_CDP=y ++CONFIG_CMD_SNTP=y ++CONFIG_CMD_DNS=y ++CONFIG_CMD_LINK_LOCAL=y ++CONFIG_CMD_PXE=y ++CONFIG_CMD_CACHE=y ++CONFIG_CMD_PSTORE=y ++CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 ++CONFIG_CMD_UUID=y ++CONFIG_CMD_HASH=y ++CONFIG_CMD_SMC=y ++CONFIG_CMD_EXT4=y ++CONFIG_CMD_FAT=y ++CONFIG_CMD_FS_GENERIC=y ++CONFIG_CMD_FS_UUID=y ++CONFIG_CMD_UBI=y ++CONFIG_CMD_UBI_RENAME=y ++CONFIG_OF_EMBED=y ++CONFIG_ENV_OVERWRITE=y ++CONFIG_ENV_IS_IN_UBI=y ++CONFIG_SYS_REDUNDAND_ENVIRONMENT=y ++CONFIG_ENV_UBI_PART="ubi" ++CONFIG_ENV_UBI_VOLUME="ubootenv" ++CONFIG_ENV_UBI_VOLUME_REDUND="ubootenv2" ++CONFIG_SYS_RELOC_GD_ENV_ADDR=y ++CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_DEFAULT_ENV_FILE="bananapi_bpi-r3-mini_snand_env" ++CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y ++CONFIG_VERSION_VARIABLE=y ++CONFIG_NET_RANDOM_ETHADDR=y ++CONFIG_NETCONSOLE=y +CONFIG_USE_IPADDR=y +CONFIG_IPADDR="192.168.1.1" +CONFIG_USE_SERVERIP=y ++CONFIG_REGMAP=y ++CONFIG_SYSCON=y ++CONFIG_SCSI_AHCI=y ++CONFIG_AHCI_PCI=y ++CONFIG_MTK_AHCI=y ++CONFIG_BUTTON=y ++CONFIG_BUTTON_GPIO=y ++CONFIG_CLK=y ++CONFIG_GPIO_HOG=y ++CONFIG_LED=y ++CONFIG_LED_BLINK=y ++CONFIG_LED_GPIO=y ++CONFIG_SUPPORT_EMMC_BOOT=y ++CONFIG_MMC_HS200_SUPPORT=y ++CONFIG_MMC_MTK=y ++CONFIG_MTD=y ++CONFIG_DM_MTD=y ++CONFIG_MTD_SPI_NAND=y ++CONFIG_MTD_UBI_FASTMAP=y ++CONFIG_PHY_AIROHA=y ++CONFIG_PHY_AIROHA_EN8811H=y ++CONFIG_PHY_ETHERNET_ID=y ++CONFIG_PHY_FIXED=y ++CONFIG_DM_MDIO=y ++CONFIG_DM_ETH_PHY=y ++CONFIG_MEDIATEK_ETH=y ++CONFIG_PCIE_MEDIATEK=y ++CONFIG_PHY=y ++CONFIG_PHY_MTK_TPHY=y ++CONFIG_PINCTRL=y ++CONFIG_PINCONF=y ++CONFIG_PINCTRL_MT7622=y ++CONFIG_PINCTRL_MT7986=y ++CONFIG_POWER_DOMAIN=y ++CONFIG_MTK_POWER_DOMAIN=y ++CONFIG_DM_REGULATOR=y ++CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_REGULATOR_GPIO=y ++CONFIG_DM_PWM=y ++CONFIG_PWM_MTK=y ++CONFIG_RAM=y ++CONFIG_SCSI=y ++CONFIG_DM_SERIAL=y ++CONFIG_MTK_SERIAL=y ++CONFIG_SPI=y ++CONFIG_DM_SPI=y ++CONFIG_MTK_SPIM=y ++CONFIG_USB=y ++CONFIG_USB_XHCI_HCD=y ++CONFIG_USB_XHCI_MTK=y ++CONFIG_USB_STORAGE=y ++CONFIG_ZSTD=y ++CONFIG_HEXDUMP=y ++CONFIG_LMB_MAX_REGIONS=64 --- /dev/null +++ b/bananapi_bpi-r3-mini_snand_env @@ -0,0 +1,61 @@ diff --git a/package/boot/uboot-mediatek/patches/443-add-nokia_ea0326gmp.patch b/package/boot/uboot-mediatek/patches/443-add-nokia_ea0326gmp.patch index fa92a09eeb..64bccd8027 100644 --- a/package/boot/uboot-mediatek/patches/443-add-nokia_ea0326gmp.patch +++ b/package/boot/uboot-mediatek/patches/443-add-nokia_ea0326gmp.patch @@ -1,170 +1,113 @@ --- /dev/null +++ b/configs/mt7981_nokia_ea0326gmp_defconfig -@@ -0,0 +1,164 @@ +@@ -0,0 +1,107 @@ +CONFIG_ARM=y ++CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y +CONFIG_ARCH_MEDIATEK=y -+CONFIG_TARGET_MT7981=y +CONFIG_TEXT_BASE=0x41e00000 +CONFIG_SYS_MALLOC_F_LEN=0x4000 -+CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_NR_DRAM_BANKS=1 +CONFIG_DEFAULT_DEVICE_TREE="mt7981-nokia-ea0326gmp" -+CONFIG_DEFAULT_ENV_FILE="nokia_ea0326gmp_env" -+CONFIG_DEFAULT_FDT_FILE="mediatek/mt7981-nokia-ea0326gmp.dtb" +CONFIG_OF_LIBFDT_OVERLAY=y ++CONFIG_TARGET_MT7981=y ++CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 +CONFIG_DEBUG_UART_BASE=0x11002000 +CONFIG_DEBUG_UART_CLOCK=40000000 -+CONFIG_DEBUG_UART=y +CONFIG_SYS_LOAD_ADDR=0x46000000 -+CONFIG_SMBIOS_PRODUCT_NAME="" -+CONFIG_AUTOBOOT_KEYED=y ++CONFIG_DEBUG_UART=y ++CONFIG_FIT=y +CONFIG_BOOTDELAY=30 ++CONFIG_AUTOBOOT_KEYED=y +CONFIG_AUTOBOOT_MENU_SHOW=y -+CONFIG_CFB_CONSOLE_ANSI=y ++CONFIG_DEFAULT_FDT_FILE="mediatek/mt7981-nokia-ea0326gmp.dtb" ++CONFIG_LOGLEVEL=7 ++CONFIG_PRE_CONSOLE_BUFFER=y ++CONFIG_LOG=y +CONFIG_BOARD_LATE_INIT=y ++CONFIG_HUSH_PARSER=y ++CONFIG_SYS_PROMPT="MT7981> " ++CONFIG_CMD_CPU=y ++CONFIG_CMD_LICENSE=y ++CONFIG_CMD_BOOTMENU=y ++CONFIG_CMD_ASKENV=y ++CONFIG_CMD_ERASEENV=y ++CONFIG_CMD_ENV_FLAGS=y ++CONFIG_CMD_STRINGS=y ++CONFIG_CMD_DM=y ++CONFIG_CMD_GPIO=y ++CONFIG_CMD_GPT=y ++CONFIG_CMD_MTD=y ++CONFIG_CMD_PART=y ++CONFIG_CMD_DHCP=y ++CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_RARP=y ++CONFIG_CMD_PING=y ++CONFIG_CMD_CDP=y ++CONFIG_CMD_SNTP=y ++CONFIG_CMD_DNS=y ++CONFIG_CMD_LINK_LOCAL=y ++CONFIG_CMD_PXE=y ++CONFIG_CMD_CACHE=y ++CONFIG_CMD_PSTORE=y ++CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 ++CONFIG_CMD_UUID=y ++CONFIG_CMD_HASH=y ++CONFIG_CMD_SMC=y ++CONFIG_CMD_UBI=y ++CONFIG_CMD_UBI_RENAME=y ++CONFIG_OF_EMBED=y ++CONFIG_ENV_OVERWRITE=y ++CONFIG_ENV_IS_IN_UBI=y ++CONFIG_SYS_REDUNDAND_ENVIRONMENT=y ++CONFIG_ENV_UBI_PART="ubi" ++CONFIG_ENV_UBI_VOLUME="ubootenv" ++CONFIG_ENV_UBI_VOLUME_REDUND="ubootenv2" ++CONFIG_SYS_RELOC_GD_ENV_ADDR=y ++CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_DEFAULT_ENV_FILE="nokia_ea0326gmp_env" ++CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y ++CONFIG_VERSION_VARIABLE=y ++CONFIG_NET_RANDOM_ETHADDR=y ++CONFIG_NETCONSOLE=y ++CONFIG_USE_IPADDR=y ++CONFIG_IPADDR="192.168.1.1" ++CONFIG_USE_SERVERIP=y ++CONFIG_SERVERIP="192.168.1.254" ++CONFIG_REGMAP=y ++CONFIG_SYSCON=y +CONFIG_BUTTON=y +CONFIG_BUTTON_GPIO=y ++CONFIG_CLK=y +CONFIG_GPIO_HOG=y -+CONFIG_CMD_ENV_FLAGS=y -+CONFIG_FIT=y -+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y +CONFIG_LED=y +CONFIG_LED_BLINK=y +CONFIG_LED_GPIO=y -+CONFIG_LOGLEVEL=7 -+CONFIG_LOG=y -+CONFIG_SYS_PROMPT="MT7981> " -+# CONFIG_CMD_BOOTEFI_BOOTMGR is not set -+CONFIG_CMD_BOOTMENU=y -+CONFIG_CMD_BOOTP=y -+CONFIG_CMD_BUTTON=y -+CONFIG_CMD_CACHE=y -+CONFIG_CMD_CDP=y -+CONFIG_CMD_CPU=y -+CONFIG_CMD_DHCP=y -+CONFIG_CMD_DM=y -+CONFIG_CMD_DNS=y -+CONFIG_CMD_ECHO=y -+CONFIG_CMD_ENV_READMEM=y -+CONFIG_CMD_ERASEENV=y -+# CONFIG_CMD_EXT4 is not set -+# CONFIG_CMD_FAT is not set -+CONFIG_CMD_FDT=y -+# CONFIG_CMD_FS_GENERIC is not set -+# CONFIG_CMD_FS_UUID is not set -+CONFIG_CMD_GPIO=y -+CONFIG_CMD_GPT=y -+CONFIG_CMD_HASH=y -+CONFIG_CMD_ITEST=y -+CONFIG_CMD_LED=y -+CONFIG_CMD_LICENSE=y -+CONFIG_CMD_LINK_LOCAL=y -+# CONFIG_CMD_MBR is not set -+CONFIG_CMD_MTD=y -+# CONFIG_CMD_PCI is not set -+CONFIG_CMD_PSTORE=y -+CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 -+CONFIG_CMD_SF_TEST=y -+CONFIG_CMD_PING=y -+CONFIG_CMD_PXE=y -+# CONFIG_CMD_PWM is not set -+CONFIG_CMD_SMC=y -+CONFIG_CMD_TFTPBOOT=y -+CONFIG_CMD_TFTPSRV=y -+CONFIG_CMD_UBI=y -+CONFIG_CMD_UBI_RENAME=y -+CONFIG_CMD_UBIFS=y -+CONFIG_CMD_ASKENV=y -+CONFIG_CMD_PART=y -+CONFIG_CMD_RARP=y -+CONFIG_CMD_SETEXPR=y -+CONFIG_CMD_SLEEP=y -+CONFIG_CMD_SNTP=y -+CONFIG_CMD_SOURCE=y -+CONFIG_CMD_STRINGS=y -+# CONFIG_CMD_USB is not set -+# CONFIG_CMD_FLASH is not set -+CONFIG_CMD_UUID=y -+CONFIG_DISPLAY_CPUINFO=y -+CONFIG_DM_MTD=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_REGULATOR_GPIO=y -+# CONFIG_DM_USB is not set -+# CONFIG_DM_PWM is not set -+# CONFIG_PWM_MTK is not set -+CONFIG_HUSH_PARSER=y -+CONFIG_SYS_REDUNDAND_ENVIRONMENT=y -+CONFIG_SYS_RELOC_GD_ENV_ADDR=y -+CONFIG_VERSION_VARIABLE=y -+CONFIG_PARTITION_UUIDS=y -+CONFIG_NETCONSOLE=y -+CONFIG_REGMAP=y -+CONFIG_SYSCON=y -+CONFIG_CLK=y -+CONFIG_DM_GPIO=y -+# CONFIG_DM_SCSI is not set -+# CONFIG_AHCI is not set -+CONFIG_PHY=y -+# CONFIG_PHY_MTK_TPHY is not set -+CONFIG_PHY_FIXED=y -+CONFIG_MTK_AHCI=y -+CONFIG_DM_ETH=y -+CONFIG_MEDIATEK_ETH=y -+# CONFIG_PCI is not set +# CONFIG_MMC is not set -+# CONFIG_DM_MMC is not set +CONFIG_MTD=y ++CONFIG_DM_MTD=y ++CONFIG_MTD_SPI_NAND=y +CONFIG_MTD_UBI_FASTMAP=y -+# CONFIG_DM_PCI is not set -+# CONFIG_PCIE_MEDIATEK is not set ++CONFIG_PHY_FIXED=y ++CONFIG_MEDIATEK_ETH=y ++CONFIG_PHY=y +CONFIG_PINCTRL=y +CONFIG_PINCONF=y +CONFIG_PINCTRL_MT7981=y +CONFIG_POWER_DOMAIN=y -+CONFIG_PRE_CONSOLE_BUFFER=y -+CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 +CONFIG_MTK_POWER_DOMAIN=y ++CONFIG_DM_REGULATOR=y ++CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_REGULATOR_GPIO=y +CONFIG_RAM=y +CONFIG_DM_SERIAL=y +CONFIG_MTK_SERIAL=y +CONFIG_SPI=y +CONFIG_DM_SPI=y -+CONFIG_MTK_SPI_NAND=y -+CONFIG_MTK_SPI_NAND_MTD=y -+CONFIG_SYSRESET_WATCHDOG=y -+CONFIG_WDT_MTK=y -+CONFIG_LZO=y ++CONFIG_MTK_SPIM=y +CONFIG_ZSTD=y +CONFIG_HEXDUMP=y -+CONFIG_RANDOM_UUID=y -+CONFIG_REGEX=y -+# CONFIG_USB is not set -+# CONFIG_USB_HOST is not set -+# CONFIG_USB_XHCI_HCD is not set -+# CONFIG_USB_XHCI_MTK is not set -+# CONFIG_USB_STORAGE is not set -+CONFIG_OF_EMBED=y -+CONFIG_ENV_OVERWRITE=y -+CONFIG_ENV_IS_IN_UBI=y -+CONFIG_ENV_UBI_PART="ubi" -+CONFIG_ENV_SIZE=0x1f000 -+CONFIG_ENV_SIZE_REDUND=0x1f000 -+CONFIG_ENV_UBI_VOLUME="ubootenv" -+CONFIG_ENV_UBI_VOLUME_REDUND="ubootenv2" -+CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y -+CONFIG_NET_RANDOM_ETHADDR=y -+CONFIG_USE_DEFAULT_ENV_FILE=y -+CONFIG_MTD_SPI_NAND=y -+CONFIG_MTK_SPIM=y -+CONFIG_CMD_NAND=y -+CONFIG_CMD_NAND_TRIMFFS=y +CONFIG_LMB_MAX_REGIONS=64 -+CONFIG_USE_IPADDR=y -+CONFIG_IPADDR="192.168.1.1" -+CONFIG_USE_SERVERIP=y -+CONFIG_SERVERIP="192.168.1.254" --- /dev/null +++ b/arch/arm/dts/mt7981-nokia-ea0326gmp.dts @@ -0,0 +1,186 @@ diff --git a/package/boot/uboot-mediatek/patches/450-add-bpi-r4.patch b/package/boot/uboot-mediatek/patches/450-add-bpi-r4.patch index 24f533f0f2..bb6ceff5a8 100644 --- a/package/boot/uboot-mediatek/patches/450-add-bpi-r4.patch +++ b/package/boot/uboot-mediatek/patches/450-add-bpi-r4.patch @@ -1,6 +1,6 @@ --- /dev/null +++ b/configs/mt7988a_bananapi_bpi-r4-emmc_defconfig -@@ -0,0 +1,181 @@ +@@ -0,0 +1,140 @@ +CONFIG_ARM=y +CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y @@ -8,183 +8,142 @@ +CONFIG_TEXT_BASE=0x41e00000 +CONFIG_SYS_MALLOC_F_LEN=0x4000 +CONFIG_NR_DRAM_BANKS=1 -+CONFIG_SYS_PROMPT="MT7988> " ++CONFIG_ENV_SIZE=0x40000 ++CONFIG_ENV_OFFSET=0x400000 ++CONFIG_DEFAULT_DEVICE_TREE="mt7988a-bananapi-bpi-r4-emmc" ++CONFIG_OF_LIBFDT_OVERLAY=y +CONFIG_TARGET_MT7988=y ++CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 +CONFIG_DEBUG_UART_BASE=0x11000000 +CONFIG_DEBUG_UART_CLOCK=40000000 ++CONFIG_ENV_OFFSET_REDUND=0x440000 +CONFIG_SYS_LOAD_ADDR=0x50000000 ++CONFIG_PCI=y +CONFIG_DEBUG_UART=y ++CONFIG_AHCI=y ++CONFIG_FIT=y ++CONFIG_BOOTDELAY=30 ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_MENU_SHOW=y ++CONFIG_OF_SYSTEM_SETUP=y ++CONFIG_DEFAULT_FDT_FILE="mediatek/mt7988a-bpi-r4-emmc.dtb" +CONFIG_SYS_CBSIZE=512 +CONFIG_SYS_PBSIZE=1049 -+CONFIG_DEFAULT_DEVICE_TREE="mt7988a-bananapi-bpi-r4-emmc" -+CONFIG_DEFAULT_ENV_FILE="bananapi_bpi-r4_emmc_env" -+CONFIG_DEFAULT_FDT_FILE="mediatek/mt7988a-bpi-r4-emmc.dtb" -+CONFIG_OF_LIBFDT_OVERLAY=y -+CONFIG_OF_SYSTEM_SETUP=y -+CONFIG_SMBIOS_PRODUCT_NAME="" -+CONFIG_AUTOBOOT_KEYED=y -+CONFIG_BOOTDELAY=30 -+CONFIG_AUTOBOOT_MENU_SHOW=y -+CONFIG_CFB_CONSOLE_ANSI=y -+CONFIG_BOARD_LATE_INIT=y -+CONFIG_BUTTON=y -+CONFIG_BUTTON_GPIO=y -+CONFIG_GPIO_HOG=y -+CONFIG_CMD_ENV_FLAGS=y -+CONFIG_FIT=y -+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y -+CONFIG_LED=y -+CONFIG_LED_BLINK=y -+CONFIG_LED_GPIO=y +CONFIG_LOGLEVEL=7 ++CONFIG_PRE_CONSOLE_BUFFER=y +CONFIG_LOG=y ++CONFIG_BOARD_LATE_INIT=y ++CONFIG_HUSH_PARSER=y ++CONFIG_SYS_PROMPT="MT7988> " ++CONFIG_CMD_CPU=y ++CONFIG_CMD_LICENSE=y +# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y -+CONFIG_CMD_BOOTP=y -+CONFIG_CMD_BUTTON=y -+CONFIG_CMD_CACHE=y -+CONFIG_CMD_CDP=y -+CONFIG_CMD_CPU=y -+CONFIG_CMD_DHCP=y -+CONFIG_CMD_DM=y -+CONFIG_CMD_DNS=y -+CONFIG_CMD_ECHO=y -+CONFIG_CMD_ENV_READMEM=y ++CONFIG_CMD_ASKENV=y +CONFIG_CMD_ERASEENV=y -+CONFIG_CMD_EXT4=y -+CONFIG_CMD_FAT=y -+CONFIG_CMD_FDT=y -+CONFIG_CMD_FS_GENERIC=y -+CONFIG_CMD_FS_UUID=y ++CONFIG_CMD_ENV_FLAGS=y ++CONFIG_CMD_STRINGS=y ++CONFIG_CMD_DM=y +CONFIG_CMD_GPIO=y ++CONFIG_CMD_PWM=y +CONFIG_CMD_GPT=y -+CONFIG_CMD_HASH=y -+CONFIG_CMD_ITEST=y -+CONFIG_CMD_LED=y -+CONFIG_CMD_LICENSE=y -+CONFIG_CMD_LINK_LOCAL=y -+# CONFIG_CMD_MBR is not set +CONFIG_CMD_MMC=y +CONFIG_CMD_MTD=y ++CONFIG_CMD_PART=y +CONFIG_CMD_PCI=y ++CONFIG_CMD_SF_TEST=y ++CONFIG_CMD_USB=y ++CONFIG_CMD_DHCP=y ++CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_RARP=y ++CONFIG_CMD_PING=y ++CONFIG_CMD_CDP=y ++CONFIG_CMD_SNTP=y ++CONFIG_CMD_DNS=y ++CONFIG_CMD_LINK_LOCAL=y ++CONFIG_CMD_PXE=y ++CONFIG_CMD_CACHE=y +CONFIG_CMD_PSTORE=y +CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 -+CONFIG_CMD_SF_TEST=y -+CONFIG_CMD_PING=y -+CONFIG_CMD_PXE=y -+CONFIG_CMD_PWM=y ++CONFIG_CMD_UUID=y ++CONFIG_CMD_HASH=y +CONFIG_CMD_SMC=y -+CONFIG_CMD_TFTPBOOT=y -+CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_EXT4=y ++CONFIG_CMD_FAT=y ++CONFIG_CMD_FS_GENERIC=y ++CONFIG_CMD_FS_UUID=y +CONFIG_CMD_UBI=y +CONFIG_CMD_UBI_RENAME=y -+CONFIG_CMD_UBIFS=y -+CONFIG_CMD_ASKENV=y -+CONFIG_CMD_PART=y -+CONFIG_CMD_RARP=y -+CONFIG_CMD_SETEXPR=y -+CONFIG_CMD_SLEEP=y -+CONFIG_CMD_SNTP=y -+CONFIG_CMD_SOURCE=y -+CONFIG_CMD_STRINGS=y -+CONFIG_CMD_USB=y -+CONFIG_CMD_UUID=y -+CONFIG_DISPLAY_CPUINFO=y -+CONFIG_DM_MMC=y -+CONFIG_DM_MTD=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_REGULATOR_GPIO=y -+CONFIG_DM_USB=y -+CONFIG_DM_PWM=y -+CONFIG_PWM_MTK=y -+CONFIG_HUSH_PARSER=y -+CONFIG_SYS_REDUNDAND_ENVIRONMENT=y -+CONFIG_SYS_RELOC_GD_ENV_ADDR=y -+CONFIG_VERSION_VARIABLE=y -+CONFIG_PARTITION_UUIDS=y -+CONFIG_NETCONSOLE=y -+CONFIG_DM_GPIO=y -+CONFIG_DM_SCSI=y -+CONFIG_AHCI=y -+CONFIG_AHCI_PCI=y -+CONFIG_SCSI_AHCI=y -+CONFIG_SCSI=y -+CONFIG_CMD_SCSI=y -+CONFIG_PHY=y -+CONFIG_PHY_MTK_TPHY=y -+CONFIG_MTK_AHCI=y -+CONFIG_PCI=y -+CONFIG_MTD=y -+CONFIG_MTD_UBI_FASTMAP=y -+CONFIG_DM_PCI=y -+CONFIG_PCIE_MEDIATEK=y -+CONFIG_PRE_CONSOLE_BUFFER=y -+CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 -+CONFIG_RAM=y -+CONFIG_DM_SERIAL=y -+CONFIG_MTK_SERIAL=y -+CONFIG_MMC=y -+CONFIG_MMC_DEFAULT_DEV=1 -+CONFIG_MMC_SUPPORTS_TUNING=y -+CONFIG_SPI=y -+CONFIG_DM_SPI=y -+CONFIG_MTK_SPI_NAND=y -+CONFIG_MTK_SPI_NAND_MTD=y -+CONFIG_SYSRESET_WATCHDOG=y -+CONFIG_WDT_MTK=y -+CONFIG_LZO=y -+CONFIG_ZSTD=y -+CONFIG_HEXDUMP=y -+CONFIG_RANDOM_UUID=y -+CONFIG_REGEX=y -+CONFIG_USB=y -+CONFIG_USB_HOST=y -+CONFIG_USB_XHCI_HCD=y -+CONFIG_USB_XHCI_MTK=y -+CONFIG_USB_STORAGE=y +CONFIG_OF_EMBED=y +CONFIG_ENV_OVERWRITE=y +CONFIG_ENV_IS_IN_MMC=y -+CONFIG_ENV_OFFSET=0x400000 -+CONFIG_ENV_OFFSET_REDUND=0x440000 -+CONFIG_ENV_SIZE=0x40000 -+CONFIG_ENV_SIZE_REDUND=0x40000 ++CONFIG_SYS_REDUNDAND_ENVIRONMENT=y ++CONFIG_SYS_RELOC_GD_ENV_ADDR=y ++CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_DEFAULT_ENV_FILE="bananapi_bpi-r4_emmc_env" +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y ++CONFIG_VERSION_VARIABLE=y +CONFIG_NET_RANDOM_ETHADDR=y ++CONFIG_NETCONSOLE=y ++CONFIG_USE_IPADDR=y ++CONFIG_IPADDR="192.168.1.1" ++CONFIG_USE_SERVERIP=y ++CONFIG_SERVERIP="192.168.1.254" +CONFIG_REGMAP=y +CONFIG_SYSCON=y ++CONFIG_SCSI_AHCI=y ++CONFIG_AHCI_PCI=y ++CONFIG_MTK_AHCI=y ++CONFIG_BUTTON=y ++CONFIG_BUTTON_GPIO=y +CONFIG_CLK=y ++CONFIG_GPIO_HOG=y ++CONFIG_LED=y ++CONFIG_LED_BLINK=y ++CONFIG_LED_GPIO=y +CONFIG_SUPPORT_EMMC_BOOT=y +CONFIG_MMC_HS200_SUPPORT=y +CONFIG_MMC_MTK=y ++CONFIG_MTD=y ++CONFIG_DM_MTD=y ++CONFIG_MTD_SPI_NAND=y ++CONFIG_DM_SPI_FLASH=y ++CONFIG_SPI_FLASH_WINBOND=y ++# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set ++CONFIG_SPI_FLASH_MTD=y ++CONFIG_MTD_UBI_FASTMAP=y +CONFIG_PHY_FIXED=y -+CONFIG_DM_ETH=y +CONFIG_MEDIATEK_ETH=y ++CONFIG_PCIE_MEDIATEK=y ++CONFIG_PHY=y ++CONFIG_PHY_MTK_TPHY=y +CONFIG_PINCTRL=y +CONFIG_PINCONF=y +CONFIG_PINCTRL_MT7988=y +CONFIG_POWER_DOMAIN=y +CONFIG_MTK_POWER_DOMAIN=y -+CONFIG_USE_DEFAULT_ENV_FILE=y -+CONFIG_MTD_SPI_NAND=y ++CONFIG_DM_REGULATOR=y ++CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_REGULATOR_GPIO=y ++CONFIG_DM_PWM=y ++CONFIG_PWM_MTK=y ++CONFIG_RAM=y ++CONFIG_SCSI=y ++CONFIG_DM_SERIAL=y ++CONFIG_MTK_SERIAL=y ++CONFIG_SPI=y ++CONFIG_DM_SPI=y +CONFIG_MTK_SPIM=y -+#CONFIG_MTK_SNOR=y -+CONFIG_DM_SPI_FLASH=y -+CONFIG_SPI_FLASH_MTD=y -+CONFIG_SPI_FLASH_WINBOND=y -+# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set -+CONFIG_CMD_SF=y -+CONFIG_CMD_NAND=y -+CONFIG_CMD_NAND_TRIMFFS=y ++CONFIG_USB=y ++CONFIG_USB_XHCI_HCD=y ++CONFIG_USB_XHCI_MTK=y ++CONFIG_USB_STORAGE=y ++CONFIG_ZSTD=y ++CONFIG_HEXDUMP=y +CONFIG_LMB_MAX_REGIONS=64 -+CONFIG_USE_IPADDR=y -+CONFIG_IPADDR="192.168.1.1" -+CONFIG_USE_SERVERIP=y -+CONFIG_SERVERIP="192.168.1.254" --- /dev/null +++ b/configs/mt7988a_bananapi_bpi-r4-sdmmc_defconfig -@@ -0,0 +1,181 @@ +@@ -0,0 +1,140 @@ +CONFIG_ARM=y +CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y @@ -192,183 +151,142 @@ +CONFIG_TEXT_BASE=0x41e00000 +CONFIG_SYS_MALLOC_F_LEN=0x4000 +CONFIG_NR_DRAM_BANKS=1 -+CONFIG_SYS_PROMPT="MT7988> " ++CONFIG_ENV_SIZE=0x40000 ++CONFIG_ENV_OFFSET=0x400000 ++CONFIG_DEFAULT_DEVICE_TREE="mt7988a-bananapi-bpi-r4-sd" ++CONFIG_OF_LIBFDT_OVERLAY=y +CONFIG_TARGET_MT7988=y ++CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 +CONFIG_DEBUG_UART_BASE=0x11000000 +CONFIG_DEBUG_UART_CLOCK=40000000 ++CONFIG_ENV_OFFSET_REDUND=0x440000 +CONFIG_SYS_LOAD_ADDR=0x50000000 ++CONFIG_PCI=y +CONFIG_DEBUG_UART=y ++CONFIG_AHCI=y ++CONFIG_FIT=y ++CONFIG_BOOTDELAY=30 ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_MENU_SHOW=y ++CONFIG_OF_SYSTEM_SETUP=y ++CONFIG_DEFAULT_FDT_FILE="mediatek/mt7988a-bpi-r4-sd.dtb" +CONFIG_SYS_CBSIZE=512 +CONFIG_SYS_PBSIZE=1049 -+CONFIG_DEFAULT_DEVICE_TREE="mt7988a-bananapi-bpi-r4-sd" -+CONFIG_DEFAULT_ENV_FILE="bananapi_bpi-r4_sdmmc_env" -+CONFIG_DEFAULT_FDT_FILE="mediatek/mt7988a-bpi-r4-sd.dtb" -+CONFIG_OF_LIBFDT_OVERLAY=y -+CONFIG_OF_SYSTEM_SETUP=y -+CONFIG_SMBIOS_PRODUCT_NAME="" -+CONFIG_AUTOBOOT_KEYED=y -+CONFIG_BOOTDELAY=30 -+CONFIG_AUTOBOOT_MENU_SHOW=y -+CONFIG_CFB_CONSOLE_ANSI=y -+CONFIG_BOARD_LATE_INIT=y -+CONFIG_BUTTON=y -+CONFIG_BUTTON_GPIO=y -+CONFIG_GPIO_HOG=y -+CONFIG_CMD_ENV_FLAGS=y -+CONFIG_FIT=y -+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y -+CONFIG_LED=y -+CONFIG_LED_BLINK=y -+CONFIG_LED_GPIO=y +CONFIG_LOGLEVEL=7 ++CONFIG_PRE_CONSOLE_BUFFER=y +CONFIG_LOG=y ++CONFIG_BOARD_LATE_INIT=y ++CONFIG_HUSH_PARSER=y ++CONFIG_SYS_PROMPT="MT7988> " ++CONFIG_CMD_CPU=y ++CONFIG_CMD_LICENSE=y +# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y -+CONFIG_CMD_BOOTP=y -+CONFIG_CMD_BUTTON=y -+CONFIG_CMD_CACHE=y -+CONFIG_CMD_CDP=y -+CONFIG_CMD_CPU=y -+CONFIG_CMD_DHCP=y -+CONFIG_CMD_DM=y -+CONFIG_CMD_DNS=y -+CONFIG_CMD_ECHO=y -+CONFIG_CMD_ENV_READMEM=y ++CONFIG_CMD_ASKENV=y +CONFIG_CMD_ERASEENV=y -+CONFIG_CMD_EXT4=y -+CONFIG_CMD_FAT=y -+CONFIG_CMD_FDT=y -+CONFIG_CMD_FS_GENERIC=y -+CONFIG_CMD_FS_UUID=y ++CONFIG_CMD_ENV_FLAGS=y ++CONFIG_CMD_STRINGS=y ++CONFIG_CMD_DM=y +CONFIG_CMD_GPIO=y ++CONFIG_CMD_PWM=y +CONFIG_CMD_GPT=y -+CONFIG_CMD_HASH=y -+CONFIG_CMD_ITEST=y -+CONFIG_CMD_LED=y -+CONFIG_CMD_LICENSE=y -+CONFIG_CMD_LINK_LOCAL=y -+# CONFIG_CMD_MBR is not set +CONFIG_CMD_MMC=y +CONFIG_CMD_MTD=y ++CONFIG_CMD_PART=y +CONFIG_CMD_PCI=y ++CONFIG_CMD_SF_TEST=y ++CONFIG_CMD_USB=y ++CONFIG_CMD_DHCP=y ++CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_RARP=y ++CONFIG_CMD_PING=y ++CONFIG_CMD_CDP=y ++CONFIG_CMD_SNTP=y ++CONFIG_CMD_DNS=y ++CONFIG_CMD_LINK_LOCAL=y ++CONFIG_CMD_PXE=y ++CONFIG_CMD_CACHE=y +CONFIG_CMD_PSTORE=y +CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 -+CONFIG_CMD_SF_TEST=y -+CONFIG_CMD_PING=y -+CONFIG_CMD_PXE=y -+CONFIG_CMD_PWM=y ++CONFIG_CMD_UUID=y ++CONFIG_CMD_HASH=y +CONFIG_CMD_SMC=y -+CONFIG_CMD_TFTPBOOT=y -+CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_EXT4=y ++CONFIG_CMD_FAT=y ++CONFIG_CMD_FS_GENERIC=y ++CONFIG_CMD_FS_UUID=y +CONFIG_CMD_UBI=y +CONFIG_CMD_UBI_RENAME=y -+CONFIG_CMD_UBIFS=y -+CONFIG_CMD_ASKENV=y -+CONFIG_CMD_PART=y -+CONFIG_CMD_RARP=y -+CONFIG_CMD_SETEXPR=y -+CONFIG_CMD_SLEEP=y -+CONFIG_CMD_SNTP=y -+CONFIG_CMD_SOURCE=y -+CONFIG_CMD_STRINGS=y -+CONFIG_CMD_USB=y -+CONFIG_CMD_UUID=y -+CONFIG_DISPLAY_CPUINFO=y -+CONFIG_DM_MMC=y -+CONFIG_DM_MTD=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_REGULATOR_GPIO=y -+CONFIG_DM_USB=y -+CONFIG_DM_PWM=y -+CONFIG_PWM_MTK=y -+CONFIG_HUSH_PARSER=y -+CONFIG_SYS_REDUNDAND_ENVIRONMENT=y -+CONFIG_SYS_RELOC_GD_ENV_ADDR=y -+CONFIG_VERSION_VARIABLE=y -+CONFIG_PARTITION_UUIDS=y -+CONFIG_NETCONSOLE=y -+CONFIG_DM_GPIO=y -+CONFIG_DM_SCSI=y -+CONFIG_AHCI=y -+CONFIG_AHCI_PCI=y -+CONFIG_SCSI_AHCI=y -+CONFIG_SCSI=y -+CONFIG_CMD_SCSI=y -+CONFIG_PHY=y -+CONFIG_PHY_MTK_TPHY=y -+CONFIG_MTK_AHCI=y -+CONFIG_PCI=y -+CONFIG_MTD=y -+CONFIG_MTD_UBI_FASTMAP=y -+CONFIG_DM_PCI=y -+CONFIG_PCIE_MEDIATEK=y -+CONFIG_PRE_CONSOLE_BUFFER=y -+CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 -+CONFIG_RAM=y -+CONFIG_DM_SERIAL=y -+CONFIG_MTK_SERIAL=y -+CONFIG_MMC=y -+CONFIG_MMC_DEFAULT_DEV=1 -+CONFIG_MMC_SUPPORTS_TUNING=y -+CONFIG_SPI=y -+CONFIG_DM_SPI=y -+CONFIG_MTK_SPI_NAND=y -+CONFIG_MTK_SPI_NAND_MTD=y -+CONFIG_SYSRESET_WATCHDOG=y -+CONFIG_WDT_MTK=y -+CONFIG_LZO=y -+CONFIG_ZSTD=y -+CONFIG_HEXDUMP=y -+CONFIG_RANDOM_UUID=y -+CONFIG_REGEX=y -+CONFIG_USB=y -+CONFIG_USB_HOST=y -+CONFIG_USB_XHCI_HCD=y -+CONFIG_USB_XHCI_MTK=y -+CONFIG_USB_STORAGE=y +CONFIG_OF_EMBED=y +CONFIG_ENV_OVERWRITE=y +CONFIG_ENV_IS_IN_MMC=y -+CONFIG_ENV_OFFSET=0x400000 -+CONFIG_ENV_OFFSET_REDUND=0x440000 -+CONFIG_ENV_SIZE=0x40000 -+CONFIG_ENV_SIZE_REDUND=0x40000 ++CONFIG_SYS_REDUNDAND_ENVIRONMENT=y ++CONFIG_SYS_RELOC_GD_ENV_ADDR=y ++CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_DEFAULT_ENV_FILE="bananapi_bpi-r4_sdmmc_env" +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y ++CONFIG_VERSION_VARIABLE=y +CONFIG_NET_RANDOM_ETHADDR=y ++CONFIG_NETCONSOLE=y ++CONFIG_USE_IPADDR=y ++CONFIG_IPADDR="192.168.1.1" ++CONFIG_USE_SERVERIP=y ++CONFIG_SERVERIP="192.168.1.254" +CONFIG_REGMAP=y +CONFIG_SYSCON=y ++CONFIG_SCSI_AHCI=y ++CONFIG_AHCI_PCI=y ++CONFIG_MTK_AHCI=y ++CONFIG_BUTTON=y ++CONFIG_BUTTON_GPIO=y +CONFIG_CLK=y ++CONFIG_GPIO_HOG=y ++CONFIG_LED=y ++CONFIG_LED_BLINK=y ++CONFIG_LED_GPIO=y +CONFIG_SUPPORT_EMMC_BOOT=y +CONFIG_MMC_HS200_SUPPORT=y +CONFIG_MMC_MTK=y ++CONFIG_MTD=y ++CONFIG_DM_MTD=y ++CONFIG_MTD_SPI_NAND=y ++CONFIG_DM_SPI_FLASH=y ++CONFIG_SPI_FLASH_WINBOND=y ++# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set ++CONFIG_SPI_FLASH_MTD=y ++CONFIG_MTD_UBI_FASTMAP=y +CONFIG_PHY_FIXED=y -+CONFIG_DM_ETH=y +CONFIG_MEDIATEK_ETH=y ++CONFIG_PCIE_MEDIATEK=y ++CONFIG_PHY=y ++CONFIG_PHY_MTK_TPHY=y +CONFIG_PINCTRL=y +CONFIG_PINCONF=y +CONFIG_PINCTRL_MT7988=y +CONFIG_POWER_DOMAIN=y +CONFIG_MTK_POWER_DOMAIN=y -+CONFIG_USE_DEFAULT_ENV_FILE=y -+CONFIG_MTD_SPI_NAND=y ++CONFIG_DM_REGULATOR=y ++CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_REGULATOR_GPIO=y ++CONFIG_DM_PWM=y ++CONFIG_PWM_MTK=y ++CONFIG_RAM=y ++CONFIG_SCSI=y ++CONFIG_DM_SERIAL=y ++CONFIG_MTK_SERIAL=y ++CONFIG_SPI=y ++CONFIG_DM_SPI=y +CONFIG_MTK_SPIM=y -+#CONFIG_MTK_SNOR=y -+CONFIG_DM_SPI_FLASH=y -+CONFIG_SPI_FLASH_MTD=y -+CONFIG_SPI_FLASH_WINBOND=y -+# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set -+CONFIG_CMD_SF=y -+CONFIG_CMD_NAND=y -+CONFIG_CMD_NAND_TRIMFFS=y ++CONFIG_USB=y ++CONFIG_USB_XHCI_HCD=y ++CONFIG_USB_XHCI_MTK=y ++CONFIG_USB_STORAGE=y ++CONFIG_ZSTD=y ++CONFIG_HEXDUMP=y +CONFIG_LMB_MAX_REGIONS=64 -+CONFIG_USE_IPADDR=y -+CONFIG_IPADDR="192.168.1.1" -+CONFIG_USE_SERVERIP=y -+CONFIG_SERVERIP="192.168.1.254" --- /dev/null +++ b/configs/mt7988a_bananapi_bpi-r4-snand_defconfig -@@ -0,0 +1,183 @@ +@@ -0,0 +1,140 @@ +CONFIG_ARM=y +CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y @@ -376,182 +294,139 @@ +CONFIG_TEXT_BASE=0x41e00000 +CONFIG_SYS_MALLOC_F_LEN=0x4000 +CONFIG_NR_DRAM_BANKS=1 -+CONFIG_SYS_PROMPT="MT7988> " ++CONFIG_DEFAULT_DEVICE_TREE="mt7988a-bananapi-bpi-r4-emmc" ++CONFIG_OF_LIBFDT_OVERLAY=y +CONFIG_TARGET_MT7988=y ++CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 +CONFIG_DEBUG_UART_BASE=0x11000000 +CONFIG_DEBUG_UART_CLOCK=40000000 +CONFIG_SYS_LOAD_ADDR=0x50000000 ++CONFIG_PCI=y +CONFIG_DEBUG_UART=y ++CONFIG_AHCI=y ++CONFIG_FIT=y ++CONFIG_BOOTDELAY=30 ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_MENU_SHOW=y ++CONFIG_OF_SYSTEM_SETUP=y ++CONFIG_DEFAULT_FDT_FILE="mediatek/mt7988a-bpi-r4-emmc.dtb" +CONFIG_SYS_CBSIZE=512 +CONFIG_SYS_PBSIZE=1049 -+CONFIG_DEFAULT_DEVICE_TREE="mt7988a-bananapi-bpi-r4-emmc" -+CONFIG_DEFAULT_ENV_FILE="bananapi_bpi-r4_snand_env" -+CONFIG_DEFAULT_FDT_FILE="mediatek/mt7988a-bpi-r4-emmc.dtb" -+CONFIG_OF_LIBFDT_OVERLAY=y -+CONFIG_OF_SYSTEM_SETUP=y -+CONFIG_SMBIOS_PRODUCT_NAME="" -+CONFIG_AUTOBOOT_KEYED=y -+CONFIG_BOOTDELAY=30 -+CONFIG_AUTOBOOT_MENU_SHOW=y -+CONFIG_CFB_CONSOLE_ANSI=y -+CONFIG_BOARD_LATE_INIT=y -+CONFIG_BUTTON=y -+CONFIG_BUTTON_GPIO=y -+CONFIG_GPIO_HOG=y -+CONFIG_CMD_ENV_FLAGS=y -+CONFIG_FIT=y -+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y -+CONFIG_LED=y -+CONFIG_LED_BLINK=y -+CONFIG_LED_GPIO=y +CONFIG_LOGLEVEL=7 ++CONFIG_PRE_CONSOLE_BUFFER=y +CONFIG_LOG=y ++CONFIG_BOARD_LATE_INIT=y ++CONFIG_HUSH_PARSER=y ++CONFIG_SYS_PROMPT="MT7988> " ++CONFIG_CMD_CPU=y ++CONFIG_CMD_LICENSE=y +# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y -+CONFIG_CMD_BOOTP=y -+CONFIG_CMD_BUTTON=y -+CONFIG_CMD_CACHE=y -+CONFIG_CMD_CDP=y -+CONFIG_CMD_CPU=y -+CONFIG_CMD_DHCP=y -+CONFIG_CMD_DM=y -+CONFIG_CMD_DNS=y -+CONFIG_CMD_ECHO=y -+CONFIG_CMD_ENV_READMEM=y ++CONFIG_CMD_ASKENV=y +CONFIG_CMD_ERASEENV=y -+CONFIG_CMD_EXT4=y -+CONFIG_CMD_FAT=y -+CONFIG_CMD_FDT=y -+CONFIG_CMD_FS_GENERIC=y -+CONFIG_CMD_FS_UUID=y ++CONFIG_CMD_ENV_FLAGS=y ++CONFIG_CMD_STRINGS=y ++CONFIG_CMD_DM=y +CONFIG_CMD_GPIO=y ++CONFIG_CMD_PWM=y +CONFIG_CMD_GPT=y -+CONFIG_CMD_HASH=y -+CONFIG_CMD_ITEST=y -+CONFIG_CMD_LED=y -+CONFIG_CMD_LICENSE=y -+CONFIG_CMD_LINK_LOCAL=y -+# CONFIG_CMD_MBR is not set +CONFIG_CMD_MMC=y +CONFIG_CMD_MTD=y ++CONFIG_CMD_PART=y +CONFIG_CMD_PCI=y ++CONFIG_CMD_SF_TEST=y ++CONFIG_CMD_USB=y ++CONFIG_CMD_DHCP=y ++CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_RARP=y ++CONFIG_CMD_PING=y ++CONFIG_CMD_CDP=y ++CONFIG_CMD_SNTP=y ++CONFIG_CMD_DNS=y ++CONFIG_CMD_LINK_LOCAL=y ++CONFIG_CMD_PXE=y ++CONFIG_CMD_CACHE=y +CONFIG_CMD_PSTORE=y +CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 -+CONFIG_CMD_SF_TEST=y -+CONFIG_CMD_PING=y -+CONFIG_CMD_PXE=y -+CONFIG_CMD_PWM=y ++CONFIG_CMD_UUID=y ++CONFIG_CMD_HASH=y +CONFIG_CMD_SMC=y -+CONFIG_CMD_TFTPBOOT=y -+CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_EXT4=y ++CONFIG_CMD_FAT=y ++CONFIG_CMD_FS_GENERIC=y ++CONFIG_CMD_FS_UUID=y +CONFIG_CMD_UBI=y +CONFIG_CMD_UBI_RENAME=y -+CONFIG_CMD_UBIFS=y -+CONFIG_CMD_ASKENV=y -+CONFIG_CMD_PART=y -+CONFIG_CMD_RARP=y -+CONFIG_CMD_SETEXPR=y -+CONFIG_CMD_SLEEP=y -+CONFIG_CMD_SNTP=y -+CONFIG_CMD_SOURCE=y -+CONFIG_CMD_STRINGS=y -+CONFIG_CMD_USB=y -+CONFIG_CMD_UUID=y -+CONFIG_DISPLAY_CPUINFO=y -+CONFIG_DM_MMC=y -+CONFIG_DM_MTD=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_REGULATOR_GPIO=y -+CONFIG_DM_USB=y -+CONFIG_DM_PWM=y -+CONFIG_PWM_MTK=y -+CONFIG_HUSH_PARSER=y -+CONFIG_SYS_REDUNDAND_ENVIRONMENT=y -+CONFIG_SYS_RELOC_GD_ENV_ADDR=y -+CONFIG_VERSION_VARIABLE=y -+CONFIG_PARTITION_UUIDS=y -+CONFIG_NETCONSOLE=y -+CONFIG_DM_GPIO=y -+CONFIG_DM_SCSI=y -+CONFIG_AHCI=y -+CONFIG_AHCI_PCI=y -+CONFIG_SCSI_AHCI=y -+CONFIG_SCSI=y -+CONFIG_CMD_SCSI=y -+CONFIG_PHY=y -+CONFIG_PHY_MTK_TPHY=y -+CONFIG_MTK_AHCI=y -+CONFIG_PCI=y -+CONFIG_MTD=y -+CONFIG_MTD_UBI_FASTMAP=y -+CONFIG_DM_PCI=y -+CONFIG_PCIE_MEDIATEK=y -+CONFIG_PINCTRL_MT7988=y -+CONFIG_PRE_CONSOLE_BUFFER=y -+CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 -+CONFIG_RAM=y -+CONFIG_DM_SERIAL=y -+CONFIG_MTK_SERIAL=y -+CONFIG_MMC=y -+CONFIG_MMC_DEFAULT_DEV=1 -+CONFIG_MMC_SUPPORTS_TUNING=y -+CONFIG_SPI=y -+CONFIG_DM_SPI=y -+CONFIG_MTK_SPI_NAND=y -+CONFIG_MTK_SPI_NAND_MTD=y -+CONFIG_SYSRESET_WATCHDOG=y -+CONFIG_WDT_MTK=y -+CONFIG_LZO=y -+CONFIG_ZSTD=y -+CONFIG_HEXDUMP=y -+CONFIG_RANDOM_UUID=y -+CONFIG_REGEX=y -+CONFIG_USB=y -+CONFIG_USB_HOST=y -+CONFIG_USB_XHCI_HCD=y -+CONFIG_USB_XHCI_MTK=y -+CONFIG_USB_STORAGE=y +CONFIG_OF_EMBED=y +CONFIG_ENV_OVERWRITE=y +CONFIG_ENV_IS_IN_UBI=y ++CONFIG_SYS_REDUNDAND_ENVIRONMENT=y +CONFIG_ENV_UBI_PART="ubi" -+CONFIG_ENV_SIZE=0x1f000 -+CONFIG_ENV_SIZE_REDUND=0x1f000 +CONFIG_ENV_UBI_VOLUME="ubootenv" +CONFIG_ENV_UBI_VOLUME_REDUND="ubootenv2" ++CONFIG_SYS_RELOC_GD_ENV_ADDR=y ++CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_DEFAULT_ENV_FILE="bananapi_bpi-r4_snand_env" +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y ++CONFIG_VERSION_VARIABLE=y +CONFIG_NET_RANDOM_ETHADDR=y ++CONFIG_NETCONSOLE=y ++CONFIG_USE_IPADDR=y ++CONFIG_IPADDR="192.168.1.1" ++CONFIG_USE_SERVERIP=y ++CONFIG_SERVERIP="192.168.1.254" +CONFIG_REGMAP=y +CONFIG_SYSCON=y ++CONFIG_SCSI_AHCI=y ++CONFIG_AHCI_PCI=y ++CONFIG_MTK_AHCI=y ++CONFIG_BUTTON=y ++CONFIG_BUTTON_GPIO=y +CONFIG_CLK=y ++CONFIG_GPIO_HOG=y ++CONFIG_LED=y ++CONFIG_LED_BLINK=y ++CONFIG_LED_GPIO=y +CONFIG_SUPPORT_EMMC_BOOT=y +CONFIG_MMC_HS200_SUPPORT=y +CONFIG_MMC_MTK=y ++CONFIG_MTD=y ++CONFIG_DM_MTD=y ++CONFIG_MTD_SPI_NAND=y ++CONFIG_DM_SPI_FLASH=y ++CONFIG_SPI_FLASH_WINBOND=y ++# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set ++CONFIG_SPI_FLASH_MTD=y ++CONFIG_MTD_UBI_FASTMAP=y +CONFIG_PHY_FIXED=y -+CONFIG_DM_ETH=y +CONFIG_MEDIATEK_ETH=y ++CONFIG_PCIE_MEDIATEK=y ++CONFIG_PHY=y ++CONFIG_PHY_MTK_TPHY=y +CONFIG_PINCTRL=y +CONFIG_PINCONF=y +CONFIG_PINCTRL_MT7988=y +CONFIG_POWER_DOMAIN=y +CONFIG_MTK_POWER_DOMAIN=y -+CONFIG_USE_DEFAULT_ENV_FILE=y -+CONFIG_MTD_SPI_NAND=y ++CONFIG_DM_REGULATOR=y ++CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_REGULATOR_GPIO=y ++CONFIG_DM_PWM=y ++CONFIG_PWM_MTK=y ++CONFIG_RAM=y ++CONFIG_SCSI=y ++CONFIG_DM_SERIAL=y ++CONFIG_MTK_SERIAL=y ++CONFIG_SPI=y ++CONFIG_DM_SPI=y +CONFIG_MTK_SPIM=y -+#CONFIG_MTK_SNOR=y -+CONFIG_DM_SPI_FLASH=y -+CONFIG_SPI_FLASH_MTD=y -+CONFIG_SPI_FLASH_WINBOND=y -+# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set -+CONFIG_CMD_SF=y -+CONFIG_CMD_NAND=y -+CONFIG_CMD_NAND_TRIMFFS=y ++CONFIG_USB=y ++CONFIG_USB_XHCI_HCD=y ++CONFIG_USB_XHCI_MTK=y ++CONFIG_USB_STORAGE=y ++CONFIG_ZSTD=y ++CONFIG_HEXDUMP=y +CONFIG_LMB_MAX_REGIONS=64 -+CONFIG_USE_IPADDR=y -+CONFIG_IPADDR="192.168.1.1" -+CONFIG_USE_SERVERIP=y -+CONFIG_SERVERIP="192.168.1.254" --- /dev/null +++ b/bananapi_bpi-r4_sdmmc_env @@ -0,0 +1,66 @@ @@ -1001,7 +876,7 @@ +}; --- /dev/null +++ b/configs/mt7988a_bananapi_bpi-r4-poe-emmc_defconfig -@@ -0,0 +1,181 @@ +@@ -0,0 +1,140 @@ +CONFIG_ARM=y +CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y @@ -1009,183 +884,142 @@ +CONFIG_TEXT_BASE=0x41e00000 +CONFIG_SYS_MALLOC_F_LEN=0x4000 +CONFIG_NR_DRAM_BANKS=1 -+CONFIG_SYS_PROMPT="MT7988> " ++CONFIG_ENV_SIZE=0x40000 ++CONFIG_ENV_OFFSET=0x400000 ++CONFIG_DEFAULT_DEVICE_TREE="mt7988a-bananapi-bpi-r4-emmc" ++CONFIG_OF_LIBFDT_OVERLAY=y +CONFIG_TARGET_MT7988=y ++CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 +CONFIG_DEBUG_UART_BASE=0x11000000 +CONFIG_DEBUG_UART_CLOCK=40000000 ++CONFIG_ENV_OFFSET_REDUND=0x440000 +CONFIG_SYS_LOAD_ADDR=0x50000000 ++CONFIG_PCI=y +CONFIG_DEBUG_UART=y ++CONFIG_AHCI=y ++CONFIG_FIT=y ++CONFIG_BOOTDELAY=30 ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_MENU_SHOW=y ++CONFIG_OF_SYSTEM_SETUP=y ++CONFIG_DEFAULT_FDT_FILE="mediatek/mt7988a-bpi-r4-emmc.dtb" +CONFIG_SYS_CBSIZE=512 +CONFIG_SYS_PBSIZE=1049 -+CONFIG_DEFAULT_DEVICE_TREE="mt7988a-bananapi-bpi-r4-emmc" -+CONFIG_DEFAULT_ENV_FILE="bananapi_bpi-r4-poe_emmc_env" -+CONFIG_DEFAULT_FDT_FILE="mediatek/mt7988a-bpi-r4-emmc.dtb" -+CONFIG_OF_LIBFDT_OVERLAY=y -+CONFIG_OF_SYSTEM_SETUP=y -+CONFIG_SMBIOS_PRODUCT_NAME="" -+CONFIG_AUTOBOOT_KEYED=y -+CONFIG_BOOTDELAY=30 -+CONFIG_AUTOBOOT_MENU_SHOW=y -+CONFIG_CFB_CONSOLE_ANSI=y -+CONFIG_BOARD_LATE_INIT=y -+CONFIG_BUTTON=y -+CONFIG_BUTTON_GPIO=y -+CONFIG_GPIO_HOG=y -+CONFIG_CMD_ENV_FLAGS=y -+CONFIG_FIT=y -+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y -+CONFIG_LED=y -+CONFIG_LED_BLINK=y -+CONFIG_LED_GPIO=y +CONFIG_LOGLEVEL=7 ++CONFIG_PRE_CONSOLE_BUFFER=y +CONFIG_LOG=y ++CONFIG_BOARD_LATE_INIT=y ++CONFIG_HUSH_PARSER=y ++CONFIG_SYS_PROMPT="MT7988> " ++CONFIG_CMD_CPU=y ++CONFIG_CMD_LICENSE=y +# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y -+CONFIG_CMD_BOOTP=y -+CONFIG_CMD_BUTTON=y -+CONFIG_CMD_CACHE=y -+CONFIG_CMD_CDP=y -+CONFIG_CMD_CPU=y -+CONFIG_CMD_DHCP=y -+CONFIG_CMD_DM=y -+CONFIG_CMD_DNS=y -+CONFIG_CMD_ECHO=y -+CONFIG_CMD_ENV_READMEM=y ++CONFIG_CMD_ASKENV=y +CONFIG_CMD_ERASEENV=y -+CONFIG_CMD_EXT4=y -+CONFIG_CMD_FAT=y -+CONFIG_CMD_FDT=y -+CONFIG_CMD_FS_GENERIC=y -+CONFIG_CMD_FS_UUID=y ++CONFIG_CMD_ENV_FLAGS=y ++CONFIG_CMD_STRINGS=y ++CONFIG_CMD_DM=y +CONFIG_CMD_GPIO=y ++CONFIG_CMD_PWM=y +CONFIG_CMD_GPT=y -+CONFIG_CMD_HASH=y -+CONFIG_CMD_ITEST=y -+CONFIG_CMD_LED=y -+CONFIG_CMD_LICENSE=y -+CONFIG_CMD_LINK_LOCAL=y -+# CONFIG_CMD_MBR is not set +CONFIG_CMD_MMC=y +CONFIG_CMD_MTD=y ++CONFIG_CMD_PART=y +CONFIG_CMD_PCI=y ++CONFIG_CMD_SF_TEST=y ++CONFIG_CMD_USB=y ++CONFIG_CMD_DHCP=y ++CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_RARP=y ++CONFIG_CMD_PING=y ++CONFIG_CMD_CDP=y ++CONFIG_CMD_SNTP=y ++CONFIG_CMD_DNS=y ++CONFIG_CMD_LINK_LOCAL=y ++CONFIG_CMD_PXE=y ++CONFIG_CMD_CACHE=y +CONFIG_CMD_PSTORE=y +CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 -+CONFIG_CMD_SF_TEST=y -+CONFIG_CMD_PING=y -+CONFIG_CMD_PXE=y -+CONFIG_CMD_PWM=y ++CONFIG_CMD_UUID=y ++CONFIG_CMD_HASH=y +CONFIG_CMD_SMC=y -+CONFIG_CMD_TFTPBOOT=y -+CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_EXT4=y ++CONFIG_CMD_FAT=y ++CONFIG_CMD_FS_GENERIC=y ++CONFIG_CMD_FS_UUID=y +CONFIG_CMD_UBI=y +CONFIG_CMD_UBI_RENAME=y -+CONFIG_CMD_UBIFS=y -+CONFIG_CMD_ASKENV=y -+CONFIG_CMD_PART=y -+CONFIG_CMD_RARP=y -+CONFIG_CMD_SETEXPR=y -+CONFIG_CMD_SLEEP=y -+CONFIG_CMD_SNTP=y -+CONFIG_CMD_SOURCE=y -+CONFIG_CMD_STRINGS=y -+CONFIG_CMD_USB=y -+CONFIG_CMD_UUID=y -+CONFIG_DISPLAY_CPUINFO=y -+CONFIG_DM_MMC=y -+CONFIG_DM_MTD=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_REGULATOR_GPIO=y -+CONFIG_DM_USB=y -+CONFIG_DM_PWM=y -+CONFIG_PWM_MTK=y -+CONFIG_HUSH_PARSER=y -+CONFIG_SYS_REDUNDAND_ENVIRONMENT=y -+CONFIG_SYS_RELOC_GD_ENV_ADDR=y -+CONFIG_VERSION_VARIABLE=y -+CONFIG_PARTITION_UUIDS=y -+CONFIG_NETCONSOLE=y -+CONFIG_DM_GPIO=y -+CONFIG_DM_SCSI=y -+CONFIG_AHCI=y -+CONFIG_AHCI_PCI=y -+CONFIG_SCSI_AHCI=y -+CONFIG_SCSI=y -+CONFIG_CMD_SCSI=y -+CONFIG_PHY=y -+CONFIG_PHY_MTK_TPHY=y -+CONFIG_MTK_AHCI=y -+CONFIG_PCI=y -+CONFIG_MTD=y -+CONFIG_MTD_UBI_FASTMAP=y -+CONFIG_DM_PCI=y -+CONFIG_PCIE_MEDIATEK=y -+CONFIG_PRE_CONSOLE_BUFFER=y -+CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 -+CONFIG_RAM=y -+CONFIG_DM_SERIAL=y -+CONFIG_MTK_SERIAL=y -+CONFIG_MMC=y -+CONFIG_MMC_DEFAULT_DEV=1 -+CONFIG_MMC_SUPPORTS_TUNING=y -+CONFIG_SPI=y -+CONFIG_DM_SPI=y -+CONFIG_MTK_SPI_NAND=y -+CONFIG_MTK_SPI_NAND_MTD=y -+CONFIG_SYSRESET_WATCHDOG=y -+CONFIG_WDT_MTK=y -+CONFIG_LZO=y -+CONFIG_ZSTD=y -+CONFIG_HEXDUMP=y -+CONFIG_RANDOM_UUID=y -+CONFIG_REGEX=y -+CONFIG_USB=y -+CONFIG_USB_HOST=y -+CONFIG_USB_XHCI_HCD=y -+CONFIG_USB_XHCI_MTK=y -+CONFIG_USB_STORAGE=y +CONFIG_OF_EMBED=y +CONFIG_ENV_OVERWRITE=y +CONFIG_ENV_IS_IN_MMC=y -+CONFIG_ENV_OFFSET=0x400000 -+CONFIG_ENV_OFFSET_REDUND=0x440000 -+CONFIG_ENV_SIZE=0x40000 -+CONFIG_ENV_SIZE_REDUND=0x40000 ++CONFIG_SYS_REDUNDAND_ENVIRONMENT=y ++CONFIG_SYS_RELOC_GD_ENV_ADDR=y ++CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_DEFAULT_ENV_FILE="bananapi_bpi-r4-poe_emmc_env" +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y ++CONFIG_VERSION_VARIABLE=y +CONFIG_NET_RANDOM_ETHADDR=y ++CONFIG_NETCONSOLE=y ++CONFIG_USE_IPADDR=y ++CONFIG_IPADDR="192.168.1.1" ++CONFIG_USE_SERVERIP=y ++CONFIG_SERVERIP="192.168.1.254" +CONFIG_REGMAP=y +CONFIG_SYSCON=y ++CONFIG_SCSI_AHCI=y ++CONFIG_AHCI_PCI=y ++CONFIG_MTK_AHCI=y ++CONFIG_BUTTON=y ++CONFIG_BUTTON_GPIO=y +CONFIG_CLK=y ++CONFIG_GPIO_HOG=y ++CONFIG_LED=y ++CONFIG_LED_BLINK=y ++CONFIG_LED_GPIO=y +CONFIG_SUPPORT_EMMC_BOOT=y +CONFIG_MMC_HS200_SUPPORT=y +CONFIG_MMC_MTK=y ++CONFIG_MTD=y ++CONFIG_DM_MTD=y ++CONFIG_MTD_SPI_NAND=y ++CONFIG_DM_SPI_FLASH=y ++CONFIG_SPI_FLASH_WINBOND=y ++# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set ++CONFIG_SPI_FLASH_MTD=y ++CONFIG_MTD_UBI_FASTMAP=y +CONFIG_PHY_FIXED=y -+CONFIG_DM_ETH=y +CONFIG_MEDIATEK_ETH=y ++CONFIG_PCIE_MEDIATEK=y ++CONFIG_PHY=y ++CONFIG_PHY_MTK_TPHY=y +CONFIG_PINCTRL=y +CONFIG_PINCONF=y +CONFIG_PINCTRL_MT7988=y +CONFIG_POWER_DOMAIN=y +CONFIG_MTK_POWER_DOMAIN=y -+CONFIG_USE_DEFAULT_ENV_FILE=y -+CONFIG_MTD_SPI_NAND=y ++CONFIG_DM_REGULATOR=y ++CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_REGULATOR_GPIO=y ++CONFIG_DM_PWM=y ++CONFIG_PWM_MTK=y ++CONFIG_RAM=y ++CONFIG_SCSI=y ++CONFIG_DM_SERIAL=y ++CONFIG_MTK_SERIAL=y ++CONFIG_SPI=y ++CONFIG_DM_SPI=y +CONFIG_MTK_SPIM=y -+#CONFIG_MTK_SNOR=y -+CONFIG_DM_SPI_FLASH=y -+CONFIG_SPI_FLASH_MTD=y -+CONFIG_SPI_FLASH_WINBOND=y -+# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set -+CONFIG_CMD_SF=y -+CONFIG_CMD_NAND=y -+CONFIG_CMD_NAND_TRIMFFS=y ++CONFIG_USB=y ++CONFIG_USB_XHCI_HCD=y ++CONFIG_USB_XHCI_MTK=y ++CONFIG_USB_STORAGE=y ++CONFIG_ZSTD=y ++CONFIG_HEXDUMP=y +CONFIG_LMB_MAX_REGIONS=64 -+CONFIG_USE_IPADDR=y -+CONFIG_IPADDR="192.168.1.1" -+CONFIG_USE_SERVERIP=y -+CONFIG_SERVERIP="192.168.1.254" --- /dev/null +++ b/configs/mt7988a_bananapi_bpi-r4-poe-sdmmc_defconfig -@@ -0,0 +1,181 @@ +@@ -0,0 +1,140 @@ +CONFIG_ARM=y +CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y @@ -1193,183 +1027,142 @@ +CONFIG_TEXT_BASE=0x41e00000 +CONFIG_SYS_MALLOC_F_LEN=0x4000 +CONFIG_NR_DRAM_BANKS=1 -+CONFIG_SYS_PROMPT="MT7988> " ++CONFIG_ENV_SIZE=0x40000 ++CONFIG_ENV_OFFSET=0x400000 ++CONFIG_DEFAULT_DEVICE_TREE="mt7988a-bananapi-bpi-r4-sd" ++CONFIG_OF_LIBFDT_OVERLAY=y +CONFIG_TARGET_MT7988=y ++CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 +CONFIG_DEBUG_UART_BASE=0x11000000 +CONFIG_DEBUG_UART_CLOCK=40000000 ++CONFIG_ENV_OFFSET_REDUND=0x440000 +CONFIG_SYS_LOAD_ADDR=0x50000000 ++CONFIG_PCI=y +CONFIG_DEBUG_UART=y ++CONFIG_AHCI=y ++CONFIG_FIT=y ++CONFIG_BOOTDELAY=30 ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_MENU_SHOW=y ++CONFIG_OF_SYSTEM_SETUP=y ++CONFIG_DEFAULT_FDT_FILE="mediatek/mt7988a-bpi-r4-sd.dtb" +CONFIG_SYS_CBSIZE=512 +CONFIG_SYS_PBSIZE=1049 -+CONFIG_DEFAULT_DEVICE_TREE="mt7988a-bananapi-bpi-r4-sd" -+CONFIG_DEFAULT_ENV_FILE="bananapi_bpi-r4-poe_sdmmc_env" -+CONFIG_DEFAULT_FDT_FILE="mediatek/mt7988a-bpi-r4-sd.dtb" -+CONFIG_OF_LIBFDT_OVERLAY=y -+CONFIG_OF_SYSTEM_SETUP=y -+CONFIG_SMBIOS_PRODUCT_NAME="" -+CONFIG_AUTOBOOT_KEYED=y -+CONFIG_BOOTDELAY=30 -+CONFIG_AUTOBOOT_MENU_SHOW=y -+CONFIG_CFB_CONSOLE_ANSI=y -+CONFIG_BOARD_LATE_INIT=y -+CONFIG_BUTTON=y -+CONFIG_BUTTON_GPIO=y -+CONFIG_GPIO_HOG=y -+CONFIG_CMD_ENV_FLAGS=y -+CONFIG_FIT=y -+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y -+CONFIG_LED=y -+CONFIG_LED_BLINK=y -+CONFIG_LED_GPIO=y +CONFIG_LOGLEVEL=7 ++CONFIG_PRE_CONSOLE_BUFFER=y +CONFIG_LOG=y ++CONFIG_BOARD_LATE_INIT=y ++CONFIG_HUSH_PARSER=y ++CONFIG_SYS_PROMPT="MT7988> " ++CONFIG_CMD_CPU=y ++CONFIG_CMD_LICENSE=y +# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y -+CONFIG_CMD_BOOTP=y -+CONFIG_CMD_BUTTON=y -+CONFIG_CMD_CACHE=y -+CONFIG_CMD_CDP=y -+CONFIG_CMD_CPU=y -+CONFIG_CMD_DHCP=y -+CONFIG_CMD_DM=y -+CONFIG_CMD_DNS=y -+CONFIG_CMD_ECHO=y -+CONFIG_CMD_ENV_READMEM=y ++CONFIG_CMD_ASKENV=y +CONFIG_CMD_ERASEENV=y -+CONFIG_CMD_EXT4=y -+CONFIG_CMD_FAT=y -+CONFIG_CMD_FDT=y -+CONFIG_CMD_FS_GENERIC=y -+CONFIG_CMD_FS_UUID=y ++CONFIG_CMD_ENV_FLAGS=y ++CONFIG_CMD_STRINGS=y ++CONFIG_CMD_DM=y +CONFIG_CMD_GPIO=y ++CONFIG_CMD_PWM=y +CONFIG_CMD_GPT=y -+CONFIG_CMD_HASH=y -+CONFIG_CMD_ITEST=y -+CONFIG_CMD_LED=y -+CONFIG_CMD_LICENSE=y -+CONFIG_CMD_LINK_LOCAL=y -+# CONFIG_CMD_MBR is not set +CONFIG_CMD_MMC=y +CONFIG_CMD_MTD=y ++CONFIG_CMD_PART=y +CONFIG_CMD_PCI=y ++CONFIG_CMD_SF_TEST=y ++CONFIG_CMD_USB=y ++CONFIG_CMD_DHCP=y ++CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_RARP=y ++CONFIG_CMD_PING=y ++CONFIG_CMD_CDP=y ++CONFIG_CMD_SNTP=y ++CONFIG_CMD_DNS=y ++CONFIG_CMD_LINK_LOCAL=y ++CONFIG_CMD_PXE=y ++CONFIG_CMD_CACHE=y +CONFIG_CMD_PSTORE=y +CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 -+CONFIG_CMD_SF_TEST=y -+CONFIG_CMD_PING=y -+CONFIG_CMD_PXE=y -+CONFIG_CMD_PWM=y ++CONFIG_CMD_UUID=y ++CONFIG_CMD_HASH=y +CONFIG_CMD_SMC=y -+CONFIG_CMD_TFTPBOOT=y -+CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_EXT4=y ++CONFIG_CMD_FAT=y ++CONFIG_CMD_FS_GENERIC=y ++CONFIG_CMD_FS_UUID=y +CONFIG_CMD_UBI=y +CONFIG_CMD_UBI_RENAME=y -+CONFIG_CMD_UBIFS=y -+CONFIG_CMD_ASKENV=y -+CONFIG_CMD_PART=y -+CONFIG_CMD_RARP=y -+CONFIG_CMD_SETEXPR=y -+CONFIG_CMD_SLEEP=y -+CONFIG_CMD_SNTP=y -+CONFIG_CMD_SOURCE=y -+CONFIG_CMD_STRINGS=y -+CONFIG_CMD_USB=y -+CONFIG_CMD_UUID=y -+CONFIG_DISPLAY_CPUINFO=y -+CONFIG_DM_MMC=y -+CONFIG_DM_MTD=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_REGULATOR_GPIO=y -+CONFIG_DM_USB=y -+CONFIG_DM_PWM=y -+CONFIG_PWM_MTK=y -+CONFIG_HUSH_PARSER=y -+CONFIG_SYS_REDUNDAND_ENVIRONMENT=y -+CONFIG_SYS_RELOC_GD_ENV_ADDR=y -+CONFIG_VERSION_VARIABLE=y -+CONFIG_PARTITION_UUIDS=y -+CONFIG_NETCONSOLE=y -+CONFIG_DM_GPIO=y -+CONFIG_DM_SCSI=y -+CONFIG_AHCI=y -+CONFIG_AHCI_PCI=y -+CONFIG_SCSI_AHCI=y -+CONFIG_SCSI=y -+CONFIG_CMD_SCSI=y -+CONFIG_PHY=y -+CONFIG_PHY_MTK_TPHY=y -+CONFIG_MTK_AHCI=y -+CONFIG_PCI=y -+CONFIG_MTD=y -+CONFIG_MTD_UBI_FASTMAP=y -+CONFIG_DM_PCI=y -+CONFIG_PCIE_MEDIATEK=y -+CONFIG_PRE_CONSOLE_BUFFER=y -+CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 -+CONFIG_RAM=y -+CONFIG_DM_SERIAL=y -+CONFIG_MTK_SERIAL=y -+CONFIG_MMC=y -+CONFIG_MMC_DEFAULT_DEV=1 -+CONFIG_MMC_SUPPORTS_TUNING=y -+CONFIG_SPI=y -+CONFIG_DM_SPI=y -+CONFIG_MTK_SPI_NAND=y -+CONFIG_MTK_SPI_NAND_MTD=y -+CONFIG_SYSRESET_WATCHDOG=y -+CONFIG_WDT_MTK=y -+CONFIG_LZO=y -+CONFIG_ZSTD=y -+CONFIG_HEXDUMP=y -+CONFIG_RANDOM_UUID=y -+CONFIG_REGEX=y -+CONFIG_USB=y -+CONFIG_USB_HOST=y -+CONFIG_USB_XHCI_HCD=y -+CONFIG_USB_XHCI_MTK=y -+CONFIG_USB_STORAGE=y +CONFIG_OF_EMBED=y +CONFIG_ENV_OVERWRITE=y +CONFIG_ENV_IS_IN_MMC=y -+CONFIG_ENV_OFFSET=0x400000 -+CONFIG_ENV_OFFSET_REDUND=0x440000 -+CONFIG_ENV_SIZE=0x40000 -+CONFIG_ENV_SIZE_REDUND=0x40000 ++CONFIG_SYS_REDUNDAND_ENVIRONMENT=y ++CONFIG_SYS_RELOC_GD_ENV_ADDR=y ++CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_DEFAULT_ENV_FILE="bananapi_bpi-r4-poe_sdmmc_env" +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y ++CONFIG_VERSION_VARIABLE=y +CONFIG_NET_RANDOM_ETHADDR=y ++CONFIG_NETCONSOLE=y ++CONFIG_USE_IPADDR=y ++CONFIG_IPADDR="192.168.1.1" ++CONFIG_USE_SERVERIP=y ++CONFIG_SERVERIP="192.168.1.254" +CONFIG_REGMAP=y +CONFIG_SYSCON=y ++CONFIG_SCSI_AHCI=y ++CONFIG_AHCI_PCI=y ++CONFIG_MTK_AHCI=y ++CONFIG_BUTTON=y ++CONFIG_BUTTON_GPIO=y +CONFIG_CLK=y ++CONFIG_GPIO_HOG=y ++CONFIG_LED=y ++CONFIG_LED_BLINK=y ++CONFIG_LED_GPIO=y +CONFIG_SUPPORT_EMMC_BOOT=y +CONFIG_MMC_HS200_SUPPORT=y +CONFIG_MMC_MTK=y ++CONFIG_MTD=y ++CONFIG_DM_MTD=y ++CONFIG_MTD_SPI_NAND=y ++CONFIG_DM_SPI_FLASH=y ++CONFIG_SPI_FLASH_WINBOND=y ++# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set ++CONFIG_SPI_FLASH_MTD=y ++CONFIG_MTD_UBI_FASTMAP=y +CONFIG_PHY_FIXED=y -+CONFIG_DM_ETH=y +CONFIG_MEDIATEK_ETH=y ++CONFIG_PCIE_MEDIATEK=y ++CONFIG_PHY=y ++CONFIG_PHY_MTK_TPHY=y +CONFIG_PINCTRL=y +CONFIG_PINCONF=y +CONFIG_PINCTRL_MT7988=y +CONFIG_POWER_DOMAIN=y +CONFIG_MTK_POWER_DOMAIN=y -+CONFIG_USE_DEFAULT_ENV_FILE=y -+CONFIG_MTD_SPI_NAND=y ++CONFIG_DM_REGULATOR=y ++CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_REGULATOR_GPIO=y ++CONFIG_DM_PWM=y ++CONFIG_PWM_MTK=y ++CONFIG_RAM=y ++CONFIG_SCSI=y ++CONFIG_DM_SERIAL=y ++CONFIG_MTK_SERIAL=y ++CONFIG_SPI=y ++CONFIG_DM_SPI=y +CONFIG_MTK_SPIM=y -+#CONFIG_MTK_SNOR=y -+CONFIG_DM_SPI_FLASH=y -+CONFIG_SPI_FLASH_MTD=y -+CONFIG_SPI_FLASH_WINBOND=y -+# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set -+CONFIG_CMD_SF=y -+CONFIG_CMD_NAND=y -+CONFIG_CMD_NAND_TRIMFFS=y ++CONFIG_USB=y ++CONFIG_USB_XHCI_HCD=y ++CONFIG_USB_XHCI_MTK=y ++CONFIG_USB_STORAGE=y ++CONFIG_ZSTD=y ++CONFIG_HEXDUMP=y +CONFIG_LMB_MAX_REGIONS=64 -+CONFIG_USE_IPADDR=y -+CONFIG_IPADDR="192.168.1.1" -+CONFIG_USE_SERVERIP=y -+CONFIG_SERVERIP="192.168.1.254" --- /dev/null +++ b/configs/mt7988a_bananapi_bpi-r4-poe-snand_defconfig -@@ -0,0 +1,183 @@ +@@ -0,0 +1,140 @@ +CONFIG_ARM=y +CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y @@ -1377,182 +1170,139 @@ +CONFIG_TEXT_BASE=0x41e00000 +CONFIG_SYS_MALLOC_F_LEN=0x4000 +CONFIG_NR_DRAM_BANKS=1 -+CONFIG_SYS_PROMPT="MT7988> " ++CONFIG_DEFAULT_DEVICE_TREE="mt7988a-bananapi-bpi-r4-emmc" ++CONFIG_OF_LIBFDT_OVERLAY=y +CONFIG_TARGET_MT7988=y ++CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 +CONFIG_DEBUG_UART_BASE=0x11000000 +CONFIG_DEBUG_UART_CLOCK=40000000 +CONFIG_SYS_LOAD_ADDR=0x50000000 ++CONFIG_PCI=y +CONFIG_DEBUG_UART=y ++CONFIG_AHCI=y ++CONFIG_FIT=y ++CONFIG_BOOTDELAY=30 ++CONFIG_AUTOBOOT_KEYED=y ++CONFIG_AUTOBOOT_MENU_SHOW=y ++CONFIG_OF_SYSTEM_SETUP=y ++CONFIG_DEFAULT_FDT_FILE="mediatek/mt7988a-bpi-r4-emmc.dtb" +CONFIG_SYS_CBSIZE=512 +CONFIG_SYS_PBSIZE=1049 -+CONFIG_DEFAULT_DEVICE_TREE="mt7988a-bananapi-bpi-r4-emmc" -+CONFIG_DEFAULT_ENV_FILE="bananapi_bpi-r4-poe_snand_env" -+CONFIG_DEFAULT_FDT_FILE="mediatek/mt7988a-bpi-r4-emmc.dtb" -+CONFIG_OF_LIBFDT_OVERLAY=y -+CONFIG_OF_SYSTEM_SETUP=y -+CONFIG_SMBIOS_PRODUCT_NAME="" -+CONFIG_AUTOBOOT_KEYED=y -+CONFIG_BOOTDELAY=30 -+CONFIG_AUTOBOOT_MENU_SHOW=y -+CONFIG_CFB_CONSOLE_ANSI=y -+CONFIG_BOARD_LATE_INIT=y -+CONFIG_BUTTON=y -+CONFIG_BUTTON_GPIO=y -+CONFIG_GPIO_HOG=y -+CONFIG_CMD_ENV_FLAGS=y -+CONFIG_FIT=y -+CONFIG_FIT_ENABLE_SHA256_SUPPORT=y -+CONFIG_LED=y -+CONFIG_LED_BLINK=y -+CONFIG_LED_GPIO=y +CONFIG_LOGLEVEL=7 ++CONFIG_PRE_CONSOLE_BUFFER=y +CONFIG_LOG=y ++CONFIG_BOARD_LATE_INIT=y ++CONFIG_HUSH_PARSER=y ++CONFIG_SYS_PROMPT="MT7988> " ++CONFIG_CMD_CPU=y ++CONFIG_CMD_LICENSE=y +# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y -+CONFIG_CMD_BOOTP=y -+CONFIG_CMD_BUTTON=y -+CONFIG_CMD_CACHE=y -+CONFIG_CMD_CDP=y -+CONFIG_CMD_CPU=y -+CONFIG_CMD_DHCP=y -+CONFIG_CMD_DM=y -+CONFIG_CMD_DNS=y -+CONFIG_CMD_ECHO=y -+CONFIG_CMD_ENV_READMEM=y ++CONFIG_CMD_ASKENV=y +CONFIG_CMD_ERASEENV=y -+CONFIG_CMD_EXT4=y -+CONFIG_CMD_FAT=y -+CONFIG_CMD_FDT=y -+CONFIG_CMD_FS_GENERIC=y -+CONFIG_CMD_FS_UUID=y ++CONFIG_CMD_ENV_FLAGS=y ++CONFIG_CMD_STRINGS=y ++CONFIG_CMD_DM=y +CONFIG_CMD_GPIO=y ++CONFIG_CMD_PWM=y +CONFIG_CMD_GPT=y -+CONFIG_CMD_HASH=y -+CONFIG_CMD_ITEST=y -+CONFIG_CMD_LED=y -+CONFIG_CMD_LICENSE=y -+CONFIG_CMD_LINK_LOCAL=y -+# CONFIG_CMD_MBR is not set +CONFIG_CMD_MMC=y +CONFIG_CMD_MTD=y ++CONFIG_CMD_PART=y +CONFIG_CMD_PCI=y ++CONFIG_CMD_SF_TEST=y ++CONFIG_CMD_USB=y ++CONFIG_CMD_DHCP=y ++CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_RARP=y ++CONFIG_CMD_PING=y ++CONFIG_CMD_CDP=y ++CONFIG_CMD_SNTP=y ++CONFIG_CMD_DNS=y ++CONFIG_CMD_LINK_LOCAL=y ++CONFIG_CMD_PXE=y ++CONFIG_CMD_CACHE=y +CONFIG_CMD_PSTORE=y +CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 -+CONFIG_CMD_SF_TEST=y -+CONFIG_CMD_PING=y -+CONFIG_CMD_PXE=y -+CONFIG_CMD_PWM=y ++CONFIG_CMD_UUID=y ++CONFIG_CMD_HASH=y +CONFIG_CMD_SMC=y -+CONFIG_CMD_TFTPBOOT=y -+CONFIG_CMD_TFTPSRV=y ++CONFIG_CMD_EXT4=y ++CONFIG_CMD_FAT=y ++CONFIG_CMD_FS_GENERIC=y ++CONFIG_CMD_FS_UUID=y +CONFIG_CMD_UBI=y +CONFIG_CMD_UBI_RENAME=y -+CONFIG_CMD_UBIFS=y -+CONFIG_CMD_ASKENV=y -+CONFIG_CMD_PART=y -+CONFIG_CMD_RARP=y -+CONFIG_CMD_SETEXPR=y -+CONFIG_CMD_SLEEP=y -+CONFIG_CMD_SNTP=y -+CONFIG_CMD_SOURCE=y -+CONFIG_CMD_STRINGS=y -+CONFIG_CMD_USB=y -+CONFIG_CMD_UUID=y -+CONFIG_DISPLAY_CPUINFO=y -+CONFIG_DM_MMC=y -+CONFIG_DM_MTD=y -+CONFIG_DM_REGULATOR=y -+CONFIG_DM_REGULATOR_FIXED=y -+CONFIG_DM_REGULATOR_GPIO=y -+CONFIG_DM_USB=y -+CONFIG_DM_PWM=y -+CONFIG_PWM_MTK=y -+CONFIG_HUSH_PARSER=y -+CONFIG_SYS_REDUNDAND_ENVIRONMENT=y -+CONFIG_SYS_RELOC_GD_ENV_ADDR=y -+CONFIG_VERSION_VARIABLE=y -+CONFIG_PARTITION_UUIDS=y -+CONFIG_NETCONSOLE=y -+CONFIG_DM_GPIO=y -+CONFIG_DM_SCSI=y -+CONFIG_AHCI=y -+CONFIG_AHCI_PCI=y -+CONFIG_SCSI_AHCI=y -+CONFIG_SCSI=y -+CONFIG_CMD_SCSI=y -+CONFIG_PHY=y -+CONFIG_PHY_MTK_TPHY=y -+CONFIG_MTK_AHCI=y -+CONFIG_PCI=y -+CONFIG_MTD=y -+CONFIG_MTD_UBI_FASTMAP=y -+CONFIG_DM_PCI=y -+CONFIG_PCIE_MEDIATEK=y -+CONFIG_PINCTRL_MT7988=y -+CONFIG_PRE_CONSOLE_BUFFER=y -+CONFIG_PRE_CON_BUF_ADDR=0x4007EF00 -+CONFIG_RAM=y -+CONFIG_DM_SERIAL=y -+CONFIG_MTK_SERIAL=y -+CONFIG_MMC=y -+CONFIG_MMC_DEFAULT_DEV=1 -+CONFIG_MMC_SUPPORTS_TUNING=y -+CONFIG_SPI=y -+CONFIG_DM_SPI=y -+CONFIG_MTK_SPI_NAND=y -+CONFIG_MTK_SPI_NAND_MTD=y -+CONFIG_SYSRESET_WATCHDOG=y -+CONFIG_WDT_MTK=y -+CONFIG_LZO=y -+CONFIG_ZSTD=y -+CONFIG_HEXDUMP=y -+CONFIG_RANDOM_UUID=y -+CONFIG_REGEX=y -+CONFIG_USB=y -+CONFIG_USB_HOST=y -+CONFIG_USB_XHCI_HCD=y -+CONFIG_USB_XHCI_MTK=y -+CONFIG_USB_STORAGE=y +CONFIG_OF_EMBED=y +CONFIG_ENV_OVERWRITE=y +CONFIG_ENV_IS_IN_UBI=y ++CONFIG_SYS_REDUNDAND_ENVIRONMENT=y +CONFIG_ENV_UBI_PART="ubi" -+CONFIG_ENV_SIZE=0x1f000 -+CONFIG_ENV_SIZE_REDUND=0x1f000 +CONFIG_ENV_UBI_VOLUME="ubootenv" +CONFIG_ENV_UBI_VOLUME_REDUND="ubootenv2" ++CONFIG_SYS_RELOC_GD_ENV_ADDR=y ++CONFIG_USE_DEFAULT_ENV_FILE=y ++CONFIG_DEFAULT_ENV_FILE="bananapi_bpi-r4-poe_snand_env" +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y ++CONFIG_VERSION_VARIABLE=y +CONFIG_NET_RANDOM_ETHADDR=y ++CONFIG_NETCONSOLE=y ++CONFIG_USE_IPADDR=y ++CONFIG_IPADDR="192.168.1.1" ++CONFIG_USE_SERVERIP=y ++CONFIG_SERVERIP="192.168.1.254" +CONFIG_REGMAP=y +CONFIG_SYSCON=y ++CONFIG_SCSI_AHCI=y ++CONFIG_AHCI_PCI=y ++CONFIG_MTK_AHCI=y ++CONFIG_BUTTON=y ++CONFIG_BUTTON_GPIO=y +CONFIG_CLK=y ++CONFIG_GPIO_HOG=y ++CONFIG_LED=y ++CONFIG_LED_BLINK=y ++CONFIG_LED_GPIO=y +CONFIG_SUPPORT_EMMC_BOOT=y +CONFIG_MMC_HS200_SUPPORT=y +CONFIG_MMC_MTK=y ++CONFIG_MTD=y ++CONFIG_DM_MTD=y ++CONFIG_MTD_SPI_NAND=y ++CONFIG_DM_SPI_FLASH=y ++CONFIG_SPI_FLASH_WINBOND=y ++# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set ++CONFIG_SPI_FLASH_MTD=y ++CONFIG_MTD_UBI_FASTMAP=y +CONFIG_PHY_FIXED=y -+CONFIG_DM_ETH=y +CONFIG_MEDIATEK_ETH=y ++CONFIG_PCIE_MEDIATEK=y ++CONFIG_PHY=y ++CONFIG_PHY_MTK_TPHY=y +CONFIG_PINCTRL=y +CONFIG_PINCONF=y +CONFIG_PINCTRL_MT7988=y +CONFIG_POWER_DOMAIN=y +CONFIG_MTK_POWER_DOMAIN=y -+CONFIG_USE_DEFAULT_ENV_FILE=y -+CONFIG_MTD_SPI_NAND=y ++CONFIG_DM_REGULATOR=y ++CONFIG_DM_REGULATOR_FIXED=y ++CONFIG_DM_REGULATOR_GPIO=y ++CONFIG_DM_PWM=y ++CONFIG_PWM_MTK=y ++CONFIG_RAM=y ++CONFIG_SCSI=y ++CONFIG_DM_SERIAL=y ++CONFIG_MTK_SERIAL=y ++CONFIG_SPI=y ++CONFIG_DM_SPI=y +CONFIG_MTK_SPIM=y -+#CONFIG_MTK_SNOR=y -+CONFIG_DM_SPI_FLASH=y -+CONFIG_SPI_FLASH_MTD=y -+CONFIG_SPI_FLASH_WINBOND=y -+# CONFIG_SPI_FLASH_USE_4K_SECTORS is not set -+CONFIG_CMD_SF=y -+CONFIG_CMD_NAND=y -+CONFIG_CMD_NAND_TRIMFFS=y ++CONFIG_USB=y ++CONFIG_USB_XHCI_HCD=y ++CONFIG_USB_XHCI_MTK=y ++CONFIG_USB_STORAGE=y ++CONFIG_ZSTD=y ++CONFIG_HEXDUMP=y +CONFIG_LMB_MAX_REGIONS=64 -+CONFIG_USE_IPADDR=y -+CONFIG_IPADDR="192.168.1.1" -+CONFIG_USE_SERVERIP=y -+CONFIG_SERVERIP="192.168.1.254" --- /dev/null +++ b/bananapi_bpi-r4-poe_emmc_env @@ -0,0 +1,57 @@ diff --git a/package/boot/uboot-mediatek/patches/452-add-xiaomi-redmi-ax6s.patch b/package/boot/uboot-mediatek/patches/452-add-xiaomi-redmi-ax6s.patch index f671c53472..bfc4de5b8e 100644 --- a/package/boot/uboot-mediatek/patches/452-add-xiaomi-redmi-ax6s.patch +++ b/package/boot/uboot-mediatek/patches/452-add-xiaomi-redmi-ax6s.patch @@ -194,7 +194,7 @@ Subject: [PATCH] add xiaomi redmi ax6s +}; --- /dev/null +++ b/configs/mt7622_xiaomi_redmi-router-ax6s-ubi-loader_defconfig -@@ -0,0 +1,99 @@ +@@ -0,0 +1,98 @@ +CONFIG_ARM=y +CONFIG_SYS_HAS_NONCACHED_MEMORY=y +CONFIG_POSITION_INDEPENDENT=y @@ -221,7 +221,6 @@ Subject: [PATCH] add xiaomi redmi ax6s +CONFIG_HUSH_PARSER=y +# CONFIG_AUTO_COMPLETE is not set +CONFIG_SYS_PROMPT="MT7622> " -+# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_LICENSE=y +CONFIG_CMD_ASKENV=y +CONFIG_CMD_ERASEENV=y diff --git a/package/boot/uboot-mediatek/patches/453-add-openwrt-one.patch b/package/boot/uboot-mediatek/patches/453-add-openwrt-one.patch index 171a139d6d..b35203bc12 100644 --- a/package/boot/uboot-mediatek/patches/453-add-openwrt-one.patch +++ b/package/boot/uboot-mediatek/patches/453-add-openwrt-one.patch @@ -206,3636 +206,269 @@ +}; --- /dev/null +++ b/configs/mt7981_openwrt-one-nor_defconfig -@@ -0,0 +1,1811 @@ -+# -+# Automatically generated file; DO NOT EDIT. -+# U-Boot 2024.01 Configuration -+# -+ -+# -+# Compiler: aarch64-openwrt-linux-musl-gcc (OpenWrt GCC 13.2.0 r26144+12-219018185e) 13.2.0 -+# -+CONFIG_CREATE_ARCH_SYMLINK=y -+CONFIG_SYS_CACHE_SHIFT_6=y -+CONFIG_SYS_CACHELINE_SIZE=64 -+CONFIG_LINKER_LIST_ALIGN=8 -+# CONFIG_ARC is not set +@@ -0,0 +1,129 @@ +CONFIG_ARM=y -+# CONFIG_M68K is not set -+# CONFIG_MICROBLAZE is not set -+# CONFIG_MIPS is not set -+# CONFIG_NIOS2 is not set -+# CONFIG_PPC is not set -+# CONFIG_RISCV is not set -+# CONFIG_SANDBOX is not set -+# CONFIG_SH is not set -+# CONFIG_X86 is not set -+# CONFIG_XTENSA is not set -+CONFIG_SYS_ARCH="arm" -+CONFIG_SYS_CPU="armv8" -+CONFIG_SYS_SOC="mediatek" -+CONFIG_SYS_VENDOR="mediatek" -+CONFIG_SYS_BOARD="mt7981" -+CONFIG_SYS_CONFIG_NAME="mt7981" -+ -+# -+# Skipping low level initialization functions -+# -+# CONFIG_SKIP_LOWLEVEL_INIT is not set -+# CONFIG_SKIP_LOWLEVEL_INIT_ONLY is not set +CONFIG_SYS_HAS_NONCACHED_MEMORY=y -+CONFIG_SYS_NONCACHED_MEMORY=0x100000 -+# CONFIG_SYS_ICACHE_OFF is not set -+# CONFIG_SYS_DCACHE_OFF is not set -+ -+# -+# ARM architecture -+# -+CONFIG_ARM64=y -+CONFIG_ARM64_CRC32=y -+CONFIG_COUNTER_FREQUENCY=0 +CONFIG_POSITION_INDEPENDENT=y -+CONFIG_INIT_SP_RELATIVE=y -+CONFIG_SYS_INIT_SP_BSS_OFFSET=524288 -+# CONFIG_GIC_V3_ITS is not set -+CONFIG_STATIC_RELA=y -+CONFIG_DMA_ADDR_T_64BIT=y -+CONFIG_GPIO_EXTRA_HEADER=y -+CONFIG_ARM_ASM_UNIFIED=y -+# CONFIG_SYS_ARM_CACHE_CP15 is not set -+# CONFIG_SYS_ARM_MMU is not set -+# CONFIG_SYS_ARM_MPU is not set -+CONFIG_SYS_ARM_ARCH=8 -+CONFIG_SYS_ARM_CACHE_WRITEBACK=y -+# CONFIG_SYS_ARM_CACHE_WRITETHROUGH is not set -+# CONFIG_SYS_ARM_CACHE_WRITEALLOC is not set -+# CONFIG_ARCH_CPU_INIT is not set -+CONFIG_SYS_ARCH_TIMER=y -+CONFIG_ARM_SMCCC=y -+# CONFIG_SYS_L2_PL310 is not set -+# CONFIG_SPL_SYS_L2_PL310 is not set -+# CONFIG_SYS_L2CACHE_OFF is not set -+# CONFIG_ENABLE_ARM_SOC_BOOT0_HOOK is not set -+# CONFIG_USE_ARCH_MEMCPY is not set -+# CONFIG_USE_ARCH_MEMSET is not set -+CONFIG_ARM64_SUPPORT_AARCH32=y -+# CONFIG_ARCH_AT91 is not set -+# CONFIG_ARCH_DAVINCI is not set -+# CONFIG_ARCH_HISTB is not set -+# CONFIG_ARCH_KIRKWOOD is not set -+# CONFIG_ARCH_MVEBU is not set -+# CONFIG_ARCH_ORION5X is not set -+# CONFIG_TARGET_STV0991 is not set -+# CONFIG_ARCH_BCM283X is not set -+# CONFIG_ARCH_BCMSTB is not set -+# CONFIG_ARCH_BCMBCA is not set -+# CONFIG_TARGET_VEXPRESS_CA9X4 is not set -+# CONFIG_TARGET_BCMNS is not set -+# CONFIG_TARGET_BCMNS2 is not set -+# CONFIG_TARGET_BCMNS3 is not set -+# CONFIG_ARCH_EXYNOS is not set -+# CONFIG_ARCH_S5PC1XX is not set -+# CONFIG_ARCH_HIGHBANK is not set -+# CONFIG_ARCH_INTEGRATOR is not set -+# CONFIG_ARCH_IPQ40XX is not set -+# CONFIG_ARCH_KEYSTONE is not set -+# CONFIG_ARCH_K3 is not set -+# CONFIG_ARCH_OMAP2PLUS is not set -+# CONFIG_ARCH_MESON is not set +CONFIG_ARCH_MEDIATEK=y -+# CONFIG_ARCH_LPC32XX is not set -+# CONFIG_ARCH_IMX8 is not set -+# CONFIG_ARCH_IMX8M is not set -+# CONFIG_ARCH_IMX8ULP is not set -+# CONFIG_ARCH_IMX9 is not set -+# CONFIG_ARCH_IMXRT is not set -+# CONFIG_ARCH_MX23 is not set -+# CONFIG_ARCH_MX28 is not set -+# CONFIG_ARCH_MX31 is not set -+# CONFIG_ARCH_MX7ULP is not set -+# CONFIG_ARCH_MX7 is not set -+# CONFIG_ARCH_MX6 is not set -+# CONFIG_ARCH_MX5 is not set -+# CONFIG_ARCH_NEXELL is not set -+# CONFIG_ARCH_NPCM is not set -+# CONFIG_ARCH_APPLE is not set -+# CONFIG_ARCH_OWL is not set -+# CONFIG_ARCH_QEMU is not set -+# CONFIG_ARCH_RMOBILE is not set -+# CONFIG_ARCH_SNAPDRAGON is not set -+# CONFIG_ARCH_SOCFPGA is not set -+# CONFIG_ARCH_SUNXI is not set -+# CONFIG_ARCH_U8500 is not set -+# CONFIG_ARCH_VERSAL is not set -+# CONFIG_ARCH_VERSAL_NET is not set -+# CONFIG_ARCH_VF610 is not set -+# CONFIG_ARCH_ZYNQ is not set -+# CONFIG_ARCH_ZYNQMP_R5 is not set -+# CONFIG_ARCH_ZYNQMP is not set -+# CONFIG_ARCH_TEGRA is not set -+# CONFIG_ARCH_VEXPRESS64 is not set -+# CONFIG_TARGET_CORSTONE1000 is not set -+# CONFIG_TARGET_TOTAL_COMPUTE is not set -+# CONFIG_TARGET_LS2080A_EMU is not set -+# CONFIG_TARGET_LS1088AQDS is not set -+# CONFIG_TARGET_LS2080AQDS is not set -+# CONFIG_TARGET_LS2080ARDB is not set -+# CONFIG_TARGET_LS2081ARDB is not set -+# CONFIG_TARGET_LX2160ARDB is not set -+# CONFIG_TARGET_LX2160AQDS is not set -+# CONFIG_TARGET_LX2162AQDS is not set -+# CONFIG_TARGET_HIKEY is not set -+# CONFIG_TARGET_HIKEY960 is not set -+# CONFIG_TARGET_POPLAR is not set -+# CONFIG_TARGET_LS1012AQDS is not set -+# CONFIG_TARGET_LS1012ARDB is not set -+# CONFIG_TARGET_LS1012A2G5RDB is not set -+# CONFIG_TARGET_LS1012AFRWY is not set -+# CONFIG_TARGET_LS1012AFRDM is not set -+# CONFIG_TARGET_LS1028AQDS is not set -+# CONFIG_TARGET_LS1028ARDB is not set -+# CONFIG_TARGET_LS1088ARDB is not set -+# CONFIG_TARGET_LS1021AQDS is not set -+# CONFIG_TARGET_LS1021ATWR is not set -+# CONFIG_TARGET_PG_WCOM_SELI8 is not set -+# CONFIG_TARGET_PG_WCOM_EXPU1 is not set -+# CONFIG_TARGET_LS1021ATSN is not set -+# CONFIG_TARGET_LS1021AIOT is not set -+# CONFIG_TARGET_LS1043AQDS is not set -+# CONFIG_TARGET_LS1043ARDB is not set -+# CONFIG_TARGET_LS1046AQDS is not set -+# CONFIG_TARGET_LS1046ARDB is not set -+# CONFIG_TARGET_LS1046AFRWY is not set -+# CONFIG_TARGET_SL28 is not set -+# CONFIG_TARGET_TEN64 is not set -+# CONFIG_ARCH_UNIPHIER is not set -+# CONFIG_ARCH_SYNQUACER is not set -+# CONFIG_ARCH_STM32 is not set -+# CONFIG_ARCH_STI is not set -+# CONFIG_ARCH_STM32MP is not set -+# CONFIG_ARCH_ROCKCHIP is not set -+# CONFIG_ARCH_OCTEONTX is not set -+# CONFIG_ARCH_OCTEONTX2 is not set -+# CONFIG_TARGET_THUNDERX_88XX is not set -+# CONFIG_ARCH_ASPEED is not set -+# CONFIG_TARGET_DURIAN is not set -+# CONFIG_TARGET_POMELO is not set -+# CONFIG_TARGET_PRESIDIO_ASIC is not set -+# CONFIG_TARGET_XENGUEST_ARM64 is not set -+# CONFIG_ARCH_GXP is not set -+# CONFIG_STATIC_MACH_TYPE is not set +CONFIG_TEXT_BASE=0x41e00000 -+CONFIG_SYS_MALLOC_LEN=0x400000 +CONFIG_SYS_MALLOC_F_LEN=0x4000 +CONFIG_NR_DRAM_BANKS=1 -+CONFIG_ENV_SOURCE_FILE="" -+CONFIG_SF_DEFAULT_SPEED=1000000 -+CONFIG_SF_DEFAULT_MODE=0x0 +CONFIG_ENV_SIZE=0x8000 -+CONFIG_DM_GPIO=y +CONFIG_DEFAULT_DEVICE_TREE="openwrt-one" +CONFIG_OF_LIBFDT_OVERLAY=y -+CONFIG_MULTI_DTB_FIT_UNCOMPRESS_SZ=0x8000 -+CONFIG_DM_RESET=y -+CONFIG_SYS_MONITOR_LEN=0 -+# CONFIG_MT8512 is not set -+# CONFIG_TARGET_MT7622 is not set -+# CONFIG_TARGET_MT7623 is not set -+# CONFIG_TARGET_MT7629 is not set +CONFIG_TARGET_MT7981=y -+# CONFIG_TARGET_MT7986 is not set -+# CONFIG_TARGET_MT7988 is not set -+# CONFIG_TARGET_MT8183 is not set -+# CONFIG_TARGET_MT8512 is not set -+# CONFIG_TARGET_MT8516 is not set -+# CONFIG_TARGET_MT8518 is not set -+CONFIG_MTK_BROM_HEADER_INFO="media=snand;nandinfo=2k+64" +CONFIG_RESET_BUTTON_LABEL="back" -+CONFIG_RESET_BUTTON_SETTLE_DELAY=0 -+CONFIG_ERR_PTR_OFFSET=0x0 -+# CONFIG_SPL is not set -+CONFIG_BOOTSTAGE_STASH_ADDR=0x0 +CONFIG_DEBUG_UART_BASE=0x11002000 +CONFIG_DEBUG_UART_CLOCK=40000000 -+# CONFIG_DEBUG_UART_BOARD_INIT is not set -+CONFIG_IDENT_STRING="" -+CONFIG_SYS_CLK_FREQ=0 -+# CONFIG_CHIP_DIP_SCAN is not set -+# CONFIG_CMO_BY_VA_ONLY is not set -+# CONFIG_ARMV8_MULTIENTRY is not set -+# CONFIG_ARMV8_SET_SMPEN is not set -+# CONFIG_ARMV8_SWITCH_TO_EL1 is not set -+ -+# -+# ARMv8 secure monitor firmware -+# -+# CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT is not set -+CONFIG_PSCI_RESET=y -+# CONFIG_ARMV8_PSCI is not set -+# CONFIG_ARMV8_EA_EL3_FIRST is not set -+# CONFIG_ARMV8_CRYPTO is not set -+# CONFIG_CMD_DEKBLOB is not set -+# CONFIG_IMX_CAAM_DEK_ENCAP is not set -+# CONFIG_IMX_OPTEE_DEK_ENCAP is not set -+# CONFIG_IMX_SECO_DEK_ENCAP is not set -+# CONFIG_IMX_ELE_DEK_ENCAP is not set -+# CONFIG_CMD_HDMIDETECT is not set -+CONFIG_IMX_DCD_ADDR=0x00910000 -+CONFIG_SYS_MEM_TOP_HIDE=0x0 +CONFIG_SYS_LOAD_ADDR=0x46000000 -+ -+# -+# ARM debug -+# -+CONFIG_BUILD_TARGET="" -+# CONFIG_PCI is not set -+CONFIG_FWU_NUM_BANKS=2 -+CONFIG_FWU_NUM_IMAGES_PER_BANK=2 +CONFIG_DEBUG_UART=y -+# CONFIG_AHCI is not set -+# CONFIG_OF_BOARD_FIXUP is not set -+ -+# -+# Functionality shared between NXP SoCs -+# -+# CONFIG_NXP_ESBC is not set -+ -+# -+# General setup -+# -+CONFIG_LOCALVERSION="" -+CONFIG_LOCALVERSION_AUTO=y -+CONFIG_CC_IS_GCC=y -+CONFIG_GCC_VERSION=130200 -+CONFIG_CLANG_VERSION=0 -+CONFIG_CC_OPTIMIZE_FOR_SIZE=y -+# CONFIG_CC_OPTIMIZE_FOR_SPEED is not set -+# CONFIG_CC_OPTIMIZE_FOR_DEBUG is not set -+# CONFIG_OPTIMIZE_INLINING is not set -+CONFIG_ARCH_SUPPORTS_LTO=y -+# CONFIG_LTO is not set -+CONFIG_CC_HAS_ASM_INLINE=y -+# CONFIG_XEN is not set -+# CONFIG_ENV_VARS_UBOOT_CONFIG is not set -+# CONFIG_SYS_BOOT_GET_CMDLINE is not set -+# CONFIG_SYS_BOOT_GET_KBD is not set -+CONFIG_SYS_MALLOC_F=y -+# CONFIG_VALGRIND is not set -+CONFIG_EXPERT=y -+CONFIG_SYS_MALLOC_CLEAR_ON_INIT=y -+# CONFIG_SYS_MALLOC_DEFAULT_TO_INIT is not set -+# CONFIG_TOOLS_DEBUG is not set -+CONFIG_PHYS_64BIT=y -+CONFIG_FDT_64BIT=y -+# CONFIG_REMAKE_ELF is not set -+# CONFIG_HAS_BOARD_SIZE_LIMIT is not set -+# CONFIG_SYS_CUSTOM_LDSCRIPT is not set -+CONFIG_PLATFORM_ELFENTRY="_start" -+CONFIG_STACK_SIZE=0x1000000 -+CONFIG_SYS_SRAM_BASE=0x0 -+CONFIG_SYS_SRAM_SIZE=0x0 -+# CONFIG_MP is not set -+CONFIG_HAVE_TEXT_BASE=y -+# CONFIG_HAVE_SYS_UBOOT_START is not set -+CONFIG_SYS_UBOOT_START=0x41e00000 -+# CONFIG_DYNAMIC_SYS_CLK_FREQ is not set -+# CONFIG_API is not set -+ -+# -+# Boot options -+# -+ -+# -+# Boot images -+# -+# CONFIG_ANDROID_BOOT_IMAGE is not set -+# CONFIG_TIMESTAMP is not set +CONFIG_FIT=y -+CONFIG_FIT_EXTERNAL_OFFSET=0x0 -+CONFIG_FIT_FULL_CHECK=y -+# CONFIG_FIT_SIGNATURE is not set -+# CONFIG_FIT_CIPHER is not set -+# CONFIG_FIT_VERBOSE is not set -+# CONFIG_FIT_BEST_MATCH is not set -+CONFIG_FIT_PRINT=y -+# CONFIG_SPL_LOAD_FIT_FULL is not set -+CONFIG_PXE_UTILS=y -+CONFIG_BOOTSTD=y -+# CONFIG_BOOTSTD_FULL is not set -+# CONFIG_BOOTSTD_DEFAULTS is not set -+CONFIG_BOOTSTD_BOOTCOMMAND=y -+CONFIG_BOOTMETH_GLOBAL=y -+# CONFIG_BOOTMETH_CROS is not set -+CONFIG_BOOTMETH_EXTLINUX=y -+CONFIG_BOOTMETH_EXTLINUX_PXE=y -+CONFIG_BOOTMETH_EFILOADER=y -+CONFIG_BOOTMETH_VBE=y -+CONFIG_BOOTMETH_VBE_REQUEST=y -+CONFIG_BOOTMETH_VBE_SIMPLE=y -+CONFIG_BOOTMETH_VBE_SIMPLE_OS=y -+# CONFIG_BOOTMETH_SCRIPT is not set -+CONFIG_LEGACY_IMAGE_FORMAT=y -+# CONFIG_SUPPORT_RAW_INITRD is not set -+# CONFIG_CHROMEOS is not set -+# CONFIG_CHROMEOS_VBOOT is not set -+# CONFIG_RAMBOOT_PBL is not set -+CONFIG_SYS_BOOT_RAMDISK_HIGH=y -+# CONFIG_DISTRO_DEFAULTS is not set -+ -+# -+# Boot timing -+# -+# CONFIG_BOOTSTAGE is not set -+CONFIG_BOOTSTAGE_STASH_SIZE=0x1000 -+# CONFIG_SHOW_BOOT_PROGRESS is not set -+ -+# -+# Boot media -+# +CONFIG_NAND_BOOT=y -+# CONFIG_ONENAND_BOOT is not set -+# CONFIG_QSPI_BOOT is not set -+# CONFIG_SATA_BOOT is not set -+# CONFIG_SD_BOOT is not set -+# CONFIG_SD_BOOT_QSPI is not set +CONFIG_SPI_BOOT=y -+ -+# -+# Autoboot options -+# -+CONFIG_AUTOBOOT=y -+CONFIG_BOOTDELAY=2 -+# CONFIG_AUTOBOOT_KEYED is not set -+# CONFIG_AUTOBOOT_USE_MENUKEY is not set +CONFIG_AUTOBOOT_MENU_SHOW=y -+# CONFIG_BOOTMENU_DISABLE_UBOOT_CONSOLE is not set -+# CONFIG_BOOT_RETRY is not set -+ -+# -+# Image support -+# -+# CONFIG_IMAGE_PRE_LOAD is not set -+ -+# -+# Devicetree fixup -+# -+# CONFIG_OF_BOARD_SETUP is not set -+# CONFIG_OF_SYSTEM_SETUP is not set -+# CONFIG_OF_STDOUT_VIA_ALIAS is not set -+# CONFIG_FDT_FIXUP_PARTITIONS is not set -+# CONFIG_FDT_SIMPLEFB is not set -+CONFIG_ARCH_FIXUP_FDT_MEMORY=y -+# CONFIG_USE_BOOTARGS is not set -+# CONFIG_BOOTARGS_SUBST is not set -+# CONFIG_USE_BOOTCOMMAND is not set +CONFIG_USE_PREBOOT=y +CONFIG_DEFAULT_FDT_FILE="openwrt-one" -+# CONFIG_SAVE_PREV_BL_FDT_ADDR is not set -+# CONFIG_SAVE_PREV_BL_INITRAMFS_START_ADDR is not set -+ -+# -+# Configuration editor -+# -+# CONFIG_CEDIT is not set -+ -+# -+# Console -+# -+CONFIG_MENU=y -+# CONFIG_CONSOLE_RECORD is not set -+# CONFIG_DISABLE_CONSOLE is not set -+CONFIG_LOGLEVEL=7 -+# CONFIG_SILENT_CONSOLE is not set -+# CONFIG_SPL_SILENT_CONSOLE is not set -+# CONFIG_TPL_SILENT_CONSOLE is not set -+# CONFIG_PRE_CONSOLE_BUFFER is not set -+CONFIG_CONSOLE_FLUSH_SUPPORT=y -+# CONFIG_CONSOLE_FLUSH_ON_NEWLINE is not set -+# CONFIG_CONSOLE_MUX is not set -+# CONFIG_SYS_CONSOLE_IS_IN_ENV is not set -+# CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE is not set -+# CONFIG_SYS_CONSOLE_INFO_QUIET is not set -+# CONFIG_SYS_STDIO_DEREGISTER is not set -+# CONFIG_SPL_SYS_STDIO_DEREGISTER is not set -+# CONFIG_SYS_DEVICE_NULLDEV is not set -+ -+# -+# Logging -+# -+CONFIG_LOG=y -+CONFIG_LOG_MAX_LEVEL=6 -+CONFIG_LOG_DEFAULT_LEVEL=6 -+CONFIG_LOG_CONSOLE=y -+# CONFIG_LOGF_FILE is not set -+# CONFIG_LOGF_LINE is not set -+# CONFIG_LOGF_FUNC is not set -+CONFIG_LOGF_FUNC_PAD=20 -+# CONFIG_LOG_SYSLOG is not set -+# CONFIG_LOG_ERROR_RETURN is not set -+ -+# -+# Init options -+# -+# CONFIG_BOARD_TYPES is not set -+CONFIG_DISPLAY_CPUINFO=y -+CONFIG_DISPLAY_BOARDINFO=y -+# CONFIG_DISPLAY_BOARDINFO_LATE is not set -+ -+# -+# Start-up hooks -+# -+# CONFIG_CYCLIC is not set -+CONFIG_EVENT=y -+CONFIG_EVENT_DYNAMIC=y -+# CONFIG_EVENT_DEBUG is not set -+# CONFIG_ARCH_MISC_INIT is not set -+# CONFIG_BOARD_EARLY_INIT_F is not set -+# CONFIG_BOARD_EARLY_INIT_R is not set -+# CONFIG_BOARD_POSTCLK_INIT is not set -+CONFIG_BOARD_LATE_INIT=y -+# CONFIG_CLOCKS is not set -+# CONFIG_HWCONFIG is not set -+CONFIG_LAST_STAGE_INIT=y -+# CONFIG_MISC_INIT_R is not set -+# CONFIG_SYS_MALLOC_BOOTPARAMS is not set -+# CONFIG_ID_EEPROM is not set -+# CONFIG_RESET_PHY_R is not set -+ -+# -+# Security support -+# -+CONFIG_HASH=y -+# CONFIG_STACKPROTECTOR is not set -+# CONFIG_BOARD_RNG_SEED is not set -+ -+# -+# Update support -+# -+# CONFIG_UPDATE_TFTP is not set -+# CONFIG_ANDROID_AB is not set -+ -+# -+# Blob list -+# -+# CONFIG_BLOBLIST is not set -+CONFIG_SUPPORT_SPL=y -+# CONFIG_VPL is not set -+ -+# -+# Command line interface -+# -+CONFIG_CMDLINE=y -+CONFIG_HUSH_PARSER=y -+CONFIG_CMDLINE_EDITING=y -+# CONFIG_CMDLINE_PS_SUPPORT is not set -+CONFIG_AUTO_COMPLETE=y -+CONFIG_SYS_LONGHELP=y -+CONFIG_SYS_PROMPT="OpenWrt One> " -+CONFIG_SYS_PROMPT_HUSH_PS2="> " -+CONFIG_SYS_MAXARGS=16 +CONFIG_SYS_CBSIZE=512 +CONFIG_SYS_PBSIZE=1049 -+CONFIG_SYS_XTRACE=y -+CONFIG_BUILD_BIN2C=y -+ -+# -+# Commands -+# -+ -+# -+# Info commands -+# -+CONFIG_CMD_BDI=y -+# CONFIG_CMD_BDINFO_EXTRA is not set -+# CONFIG_CMD_CONFIG is not set -+CONFIG_CMD_CONSOLE=y ++CONFIG_LOGLEVEL=7 ++CONFIG_LOG=y ++CONFIG_BOARD_LATE_INIT=y ++CONFIG_HUSH_PARSER=y ++CONFIG_SYS_PROMPT="OpenWrt One> " ++CONFIG_SYS_MAXARGS=16 +CONFIG_CMD_CPU=y -+# CONFIG_CMD_HISTORY is not set +CONFIG_CMD_LICENSE=y -+# CONFIG_CMD_PMC is not set -+ -+# -+# Boot commands -+# -+CONFIG_CMD_BOOTD=y -+CONFIG_CMD_BOOTM=y -+# CONFIG_CMD_BOOTDEV is not set -+CONFIG_CMD_BOOTFLOW=y -+# CONFIG_CMD_BOOTMETH is not set -+CONFIG_BOOTM_EFI=y -+# CONFIG_CMD_BOOTZ is not set -+CONFIG_CMD_BOOTI=y -+CONFIG_BOOTM_LINUX=y +# CONFIG_BOOTM_NETBSD is not set -+# CONFIG_BOOTM_OPENRTOS is not set -+# CONFIG_BOOTM_OSE is not set +# CONFIG_BOOTM_PLAN9 is not set +# CONFIG_BOOTM_RTEMS is not set -+# CONFIG_CMD_VBE is not set +# CONFIG_BOOTM_VXWORKS is not set -+CONFIG_SYS_BOOTM_LEN=0x4000000 -+CONFIG_CMD_BOOTEFI=y -+CONFIG_CMD_BOOTEFI_HELLO_COMPILE=y -+# CONFIG_CMD_BOOTEFI_HELLO is not set -+# CONFIG_CMD_BOOTEFI_SELFTEST is not set ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y -+# CONFIG_CMD_ADTIMG is not set -+CONFIG_CMD_ELF=y -+CONFIG_CMD_FDT=y -+CONFIG_CMD_GO=y -+CONFIG_CMD_RUN=y -+CONFIG_CMD_IMI=y -+# CONFIG_CMD_IMLS is not set -+CONFIG_CMD_XIMG=y -+# CONFIG_CMD_ZBOOT is not set -+ -+# -+# Environment commands -+# +CONFIG_CMD_ASKENV=y -+CONFIG_CMD_EXPORTENV=y -+CONFIG_CMD_IMPORTENV=y -+CONFIG_CMD_EDITENV=y -+# CONFIG_CMD_GREPENV is not set -+CONFIG_CMD_SAVEENV=y +CONFIG_CMD_ERASEENV=y -+CONFIG_CMD_ENV_EXISTS=y -+CONFIG_CMD_ENV_READMEM=y -+# CONFIG_CMD_ENV_CALLBACK is not set +CONFIG_CMD_ENV_FLAGS=y -+# CONFIG_CMD_NVEDIT_EFI is not set -+# CONFIG_CMD_NVEDIT_INDIRECT is not set -+# CONFIG_CMD_NVEDIT_INFO is not set -+# CONFIG_CMD_NVEDIT_LOAD is not set -+# CONFIG_CMD_NVEDIT_SELECT is not set -+ -+# -+# Memory commands -+# -+# CONFIG_CMD_BINOP is not set -+# CONFIG_CMD_BLOBLIST is not set -+CONFIG_CMD_CRC32=y -+# CONFIG_CRC32_VERIFY is not set -+# CONFIG_CMD_EEPROM is not set -+# CONFIG_LOOPW is not set -+# CONFIG_CMD_MD5SUM is not set -+# CONFIG_CMD_MEMINFO is not set -+CONFIG_CMD_MEMORY=y -+# CONFIG_CMD_MEM_SEARCH is not set -+# CONFIG_CMD_MX_CYCLIC is not set -+CONFIG_CMD_RANDOM=y -+# CONFIG_CMD_MEMTEST is not set -+# CONFIG_CMD_SHA1SUM is not set +CONFIG_CMD_STRINGS=y -+ -+# -+# Compression commands -+# -+CONFIG_CMD_LZMADEC=y +# CONFIG_CMD_UNLZ4 is not set +# CONFIG_CMD_UNZIP is not set -+# CONFIG_CMD_ZIP is not set -+ -+# -+# Device access commands -+# -+# CONFIG_CMD_ARMFLASH is not set -+# CONFIG_CMD_BIND is not set -+# CONFIG_CMD_CLK is not set -+# CONFIG_CMD_DEMO is not set -+# CONFIG_CMD_DFU is not set +CONFIG_CMD_DM=y -+CONFIG_CMD_FLASH=y -+# CONFIG_CMD_FPGAD is not set -+# CONFIG_CMD_FUSE is not set +CONFIG_CMD_GPIO=y -+# CONFIG_CMD_GPIO_READ is not set +CONFIG_CMD_PWM=y -+# CONFIG_CMD_GPT is not set -+# CONFIG_RANDOM_UUID is not set -+# CONFIG_CMD_IDE is not set -+# CONFIG_CMD_IO is not set -+# CONFIG_CMD_IOTRACE is not set -+# CONFIG_CMD_I2C is not set -+CONFIG_CMD_LOADB=y -+# CONFIG_CMD_LOADM is not set -+CONFIG_CMD_LOADS=y -+# CONFIG_LOADS_ECHO is not set -+# CONFIG_CMD_SAVES is not set -+# CONFIG_SYS_LOADS_BAUD_CHANGE is not set -+CONFIG_CMD_LOADXY_TIMEOUT=90 -+# CONFIG_CMD_LSBLK is not set -+# CONFIG_CMD_MBR is not set -+# CONFIG_CMD_CLONE is not set +CONFIG_CMD_MTD=y -+CONFIG_CMD_NAND_EXT=y -+# CONFIG_CMD_ONENAND is not set -+# CONFIG_CMD_OSD is not set -+# CONFIG_CMD_PART is not set +CONFIG_CMD_PCI=y -+CONFIG_CMD_PINMUX=y -+# CONFIG_CMD_POWEROFF is not set -+# CONFIG_CMD_READ is not set -+# CONFIG_CMD_SATA is not set -+# CONFIG_CMD_SDRAM is not set -+CONFIG_CMD_SF=y +CONFIG_CMD_SF_TEST=y -+# CONFIG_CMD_SPI is not set -+# CONFIG_CMD_TSI148 is not set -+# CONFIG_CMD_UNIVERSE is not set +CONFIG_CMD_USB=y -+# CONFIG_CMD_USB_SDP is not set -+# CONFIG_CMD_RKMTD is not set -+# CONFIG_CMD_WRITE is not set -+ -+# -+# Shell scripting commands -+# -+# CONFIG_CMD_CAT is not set -+CONFIG_CMD_ECHO=y -+CONFIG_CMD_ITEST=y -+CONFIG_CMD_SOURCE=y -+CONFIG_CMD_SETEXPR=y -+# CONFIG_CMD_SETEXPR_FMT is not set -+# CONFIG_CMD_XXD is not set -+ -+# -+# Android support commands -+# -+CONFIG_CMD_NET=y -+CONFIG_CMD_BOOTP=y +CONFIG_CMD_DHCP=y -+# CONFIG_BOOTP_MAY_FAIL is not set -+CONFIG_BOOTP_BOOTPATH=y -+# CONFIG_BOOTP_VENDOREX is not set -+# CONFIG_BOOTP_BOOTFILESIZE is not set -+CONFIG_BOOTP_DNS=y -+# CONFIG_BOOTP_DNS2 is not set -+CONFIG_BOOTP_GATEWAY=y -+CONFIG_BOOTP_HOSTNAME=y -+# CONFIG_BOOTP_PREFER_SERVERIP is not set -+CONFIG_BOOTP_SUBNETMASK=y -+# CONFIG_BOOTP_NISDOMAIN is not set -+# CONFIG_BOOTP_NTPSERVER is not set -+# CONFIG_BOOTP_TIMEOFFSET is not set -+# CONFIG_CMD_PCAP is not set -+CONFIG_BOOTP_PXE=y -+CONFIG_BOOTP_PXE_CLIENTARCH=0x16 -+# CONFIG_BOOTP_PXE_DHCP_OPTION is not set -+CONFIG_BOOTP_VCI_STRING="U-Boot.armv8" -+CONFIG_CMD_TFTPBOOT=y -+# CONFIG_CMD_TFTPPUT is not set +CONFIG_CMD_TFTPSRV=y -+CONFIG_NET_TFTP_VARS=y +CONFIG_CMD_RARP=y -+# CONFIG_CMD_NFS is not set -+# CONFIG_SYS_DISABLE_AUTOLOAD is not set -+# CONFIG_CMD_WGET is not set -+# CONFIG_CMD_MII is not set -+# CONFIG_CMD_MDIO is not set +CONFIG_CMD_PING=y +CONFIG_CMD_CDP=y +CONFIG_CMD_SNTP=y +CONFIG_CMD_DNS=y +CONFIG_CMD_LINK_LOCAL=y -+# CONFIG_CMD_ETHSW is not set +CONFIG_CMD_PXE=y -+# CONFIG_CMD_WOL is not set -+ -+# -+# Misc commands -+# -+# CONFIG_CMD_2048 is not set -+# CONFIG_CMD_BSP is not set -+CONFIG_CMD_BLOCK_CACHE=y -+CONFIG_CMD_BUTTON=y +CONFIG_CMD_CACHE=y -+# CONFIG_CMD_CONITRACE is not set -+# CONFIG_CMD_CLS is not set -+# CONFIG_CMD_EFIDEBUG is not set -+CONFIG_CMD_EFICONFIG=y -+# CONFIG_CMD_EXCEPTION is not set -+CONFIG_CMD_LED=y -+# CONFIG_CMD_INI is not set -+# CONFIG_CMD_DATE is not set -+# CONFIG_CMD_TIME is not set -+# CONFIG_CMD_GETTIME is not set -+# CONFIG_CMD_PAUSE is not set -+CONFIG_CMD_SLEEP=y -+# CONFIG_CMD_TIMER is not set -+# CONFIG_CMD_SYSBOOT is not set -+# CONFIG_CMD_QFW is not set +CONFIG_CMD_PSTORE=y +CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 -+CONFIG_CMD_PSTORE_MEM_SIZE=0x10000 -+CONFIG_CMD_PSTORE_RECORD_SIZE=0x1000 -+CONFIG_CMD_PSTORE_CONSOLE_SIZE=0x1000 -+CONFIG_CMD_PSTORE_FTRACE_SIZE=0x1000 -+CONFIG_CMD_PSTORE_PMSG_SIZE=0x1000 -+CONFIG_CMD_PSTORE_ECC_SIZE=0 -+# CONFIG_CMD_TERMINAL is not set +CONFIG_CMD_UUID=y -+ -+# -+# TI specific command line interface -+# -+ -+# -+# Power commands -+# -+ -+# -+# Security commands -+# -+# CONFIG_CMD_AES is not set -+# CONFIG_CMD_BLOB is not set +CONFIG_CMD_HASH=y -+# CONFIG_CMD_HVC is not set +CONFIG_CMD_SMC=y -+# CONFIG_HASH_VERIFY is not set -+ -+# -+# Firmware commands -+# -+ -+# -+# Filesystem commands -+# -+# CONFIG_CMD_BTRFS is not set -+# CONFIG_CMD_EROFS is not set -+# CONFIG_CMD_EXT2 is not set -+# CONFIG_CMD_EXT4 is not set +CONFIG_CMD_FAT=y -+# CONFIG_CMD_SQUASHFS is not set +CONFIG_CMD_FS_GENERIC=y +CONFIG_CMD_FS_UUID=y -+# CONFIG_CMD_JFFS2 is not set -+# CONFIG_CMD_MTDPARTS is not set -+CONFIG_MTDIDS_DEFAULT="" -+CONFIG_MTDPARTS_DEFAULT="" -+# CONFIG_CMD_REISER is not set -+# CONFIG_CMD_ZFS is not set -+ -+# -+# Debug commands -+# -+# CONFIG_CMD_DIAG is not set -+# CONFIG_CMD_EVENT is not set -+# CONFIG_CMD_LOG is not set +CONFIG_CMD_UBI=y +CONFIG_CMD_UBI_RENAME=y -+CONFIG_CMD_UBIFS=y -+ -+# -+# Partition Types -+# -+CONFIG_PARTITIONS=y -+# CONFIG_MAC_PARTITION is not set -+CONFIG_DOS_PARTITION=y -+# CONFIG_ISO_PARTITION is not set -+# CONFIG_AMIGA_PARTITION is not set -+# CONFIG_EFI_PARTITION is not set -+CONFIG_PARTITION_UUIDS=y -+CONFIG_SUPPORT_OF_CONTROL=y -+ -+# -+# Device Tree Control -+# -+CONFIG_OF_CONTROL=y -+CONFIG_OF_REAL=y -+# CONFIG_OF_LIVE is not set -+CONFIG_OF_SEPARATE=y -+# CONFIG_OF_EMBED is not set -+# CONFIG_OF_BOARD is not set -+# CONFIG_OF_OMIT_DTB is not set -+CONFIG_DEVICE_TREE_INCLUDES="" -+CONFIG_OF_LIST="openwrt-one" -+# CONFIG_MULTI_DTB_FIT is not set -+CONFIG_OF_TAG_MIGRATE=y -+# CONFIG_OF_DTB_PROPS_REMOVE is not set -+ -+# -+# Environment -+# -+CONFIG_ENV_SUPPORT=y -+CONFIG_SAVEENV=y +CONFIG_ENV_OVERWRITE=y -+CONFIG_ENV_MIN_ENTRIES=64 -+CONFIG_ENV_MAX_ENTRIES=512 -+CONFIG_ENV_IS_DEFAULT=y -+CONFIG_ENV_IS_NOWHERE=y -+# CONFIG_ENV_IS_IN_EEPROM is not set -+# CONFIG_ENV_IS_IN_FAT is not set -+# CONFIG_ENV_IS_IN_EXT4 is not set -+# CONFIG_ENV_IS_IN_FLASH is not set -+# CONFIG_ENV_IS_IN_MTD is not set -+# CONFIG_ENV_IS_IN_NAND is not set -+# CONFIG_ENV_IS_IN_NVRAM is not set -+# CONFIG_ENV_IS_IN_ONENAND is not set -+# CONFIG_ENV_IS_IN_REMOTE is not set -+# CONFIG_ENV_IS_IN_SPI_FLASH is not set -+# CONFIG_ENV_IS_IN_UBI is not set +CONFIG_SYS_REDUNDAND_ENVIRONMENT=y +CONFIG_SYS_RELOC_GD_ENV_ADDR=y +CONFIG_USE_DEFAULT_ENV_FILE=y +CONFIG_DEFAULT_ENV_FILE="openwrt-one-nor_env" +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y -+# CONFIG_ENV_IMPORT_FDT is not set -+# CONFIG_ENV_APPEND is not set -+# CONFIG_ENV_WRITEABLE_LIST is not set -+# CONFIG_ENV_ACCESS_IGNORE_FORCE is not set -+# CONFIG_USE_BOOTFILE is not set -+# CONFIG_USE_ETHPRIME is not set -+# CONFIG_USE_HOSTNAME is not set +CONFIG_VERSION_VARIABLE=y -+CONFIG_NET=y -+CONFIG_ARP_TIMEOUT=5000 -+CONFIG_NET_RETRY_COUNT=5 -+CONFIG_PROT_UDP=y -+CONFIG_BOOTDEV_ETH=y -+# CONFIG_BOOTP_SEND_HOSTNAME is not set +CONFIG_NET_RANDOM_ETHADDR=y -+# CONFIG_NETCONSOLE is not set -+# CONFIG_IP_DEFRAG is not set -+# CONFIG_SYS_FAULT_ECHO_LINK_DOWN is not set -+CONFIG_TFTP_BLOCKSIZE=1468 -+# CONFIG_TFTP_PORT is not set -+CONFIG_TFTP_WINDOWSIZE=1 -+# CONFIG_TFTP_TSIZE is not set -+# CONFIG_SERVERIP_FROM_PROXYDHCP is not set -+CONFIG_SERVERIP_FROM_PROXYDHCP_DELAY_MS=100 -+# CONFIG_KEEP_SERVERADDR is not set -+# CONFIG_UDP_CHECKSUM is not set -+# CONFIG_BOOTP_SERVERIP is not set -+CONFIG_BOOTP_MAX_ROOT_PATH_LEN=64 -+# CONFIG_USE_GATEWAYIP is not set -+# CONFIG_USE_IPADDR is not set -+# CONFIG_USE_NETMASK is not set -+# CONFIG_USE_ROOTPATH is not set -+# CONFIG_USE_SERVERIP is not set -+# CONFIG_PROT_TCP is not set -+# CONFIG_IPV6 is not set -+CONFIG_SYS_RX_ETH_BUFFER=4 -+ -+# -+# Device Drivers -+# -+ -+# -+# Generic Driver Options -+# -+CONFIG_DM=y -+# CONFIG_DM_WARN is not set -+# CONFIG_DM_DEBUG is not set -+# CONFIG_DM_STATS is not set -+CONFIG_DM_DEVICE_REMOVE=y -+CONFIG_DM_EVENT=y -+CONFIG_DM_STDIO=y -+CONFIG_DM_SEQ_ALIAS=y -+# CONFIG_DM_DMA is not set +CONFIG_REGMAP=y +CONFIG_SYSCON=y -+# CONFIG_DEVRES is not set -+CONFIG_SIMPLE_BUS=y -+# CONFIG_SIMPLE_BUS_CORRECT_RANGE is not set -+# CONFIG_SIMPLE_PM_BUS is not set -+CONFIG_OF_TRANSLATE=y -+# CONFIG_TRANSLATION_OFFSET is not set -+CONFIG_DM_DEV_READ_INLINE=y -+# CONFIG_OFNODE_MULTI_TREE is not set -+# CONFIG_BOUNCE_BUFFER is not set -+# CONFIG_ADC is not set -+# CONFIG_ADC_EXYNOS is not set -+# CONFIG_ADC_SANDBOX is not set -+# CONFIG_SARADC_MESON is not set -+# CONFIG_SARADC_ROCKCHIP is not set -+# CONFIG_SATA is not set -+# CONFIG_SCSI_AHCI is not set -+ -+# -+# SATA/SCSI device support -+# -+# CONFIG_AXI is not set -+ -+# -+# Bus devices -+# -+CONFIG_BLK=y -+CONFIG_BLOCK_CACHE=y -+# CONFIG_BLKMAP is not set -+# CONFIG_EFI_MEDIA is not set -+# CONFIG_IDE is not set -+# CONFIG_LBA48 is not set -+# CONFIG_SYS_64BIT_LBA is not set -+# CONFIG_RKMTD is not set -+# CONFIG_BOOTCOUNT_LIMIT is not set -+ -+# -+# Button Support -+# +CONFIG_BUTTON=y -+# CONFIG_BUTTON_ADC is not set +CONFIG_BUTTON_GPIO=y -+ -+# -+# Cache Controller drivers -+# -+# CONFIG_CACHE is not set -+# CONFIG_L2X0_CACHE is not set -+# CONFIG_V5L2_CACHE is not set -+# CONFIG_NCORE_CACHE is not set -+# CONFIG_SIFIVE_CCACHE is not set -+ -+# -+# Clock -+# +CONFIG_CLK=y -+# CONFIG_CLK_CCF is not set -+# CONFIG_CLK_GPIO is not set -+# CONFIG_CLK_CDCE9XX is not set -+# CONFIG_CLK_ICS8N3QV01 is not set -+# CONFIG_CLK_K210 is not set -+# CONFIG_CLK_MPC83XX is not set -+# CONFIG_CLK_XLNX_CLKWZRD is not set -+# CONFIG_CLK_AT91 is not set -+# CONFIG_CLK_RCAR is not set -+# CONFIG_CLK_RCAR_CPG_LIB is not set -+# CONFIG_CLK_SIFIVE is not set -+# CONFIG_CLK_TI_AM3_DPLL is not set -+# CONFIG_CLK_TI_CTRL is not set -+# CONFIG_CLK_TI_GATE is not set -+# CONFIG_CLK_K3 is not set -+CONFIG_CPU=y -+# CONFIG_CPU_IMX is not set -+ -+# -+# Hardware crypto devices -+# -+# CONFIG_DM_HASH is not set -+# CONFIG_FSL_CAAM is not set -+CONFIG_CAAM_64BIT=y -+# CONFIG_SYS_FSL_SEC_BE is not set -+# CONFIG_SYS_FSL_SEC_LE is not set -+# CONFIG_NPCM_AES is not set -+# CONFIG_NPCM_SHA is not set -+# CONFIG_DDR_SPD is not set -+# CONFIG_IMX_SNPS_DDR_PHY is not set -+ -+# -+# Demo for driver model -+# -+# CONFIG_DM_DEMO is not set -+ -+# -+# DFU support -+# -+ -+# -+# DMA Support -+# -+# CONFIG_DMA is not set -+# CONFIG_DMA_LPC32XX is not set -+# CONFIG_TI_EDMA3 is not set -+# CONFIG_DMA_LEGACY is not set -+ -+# -+# Extcon Support -+# -+# CONFIG_EXTCON is not set -+ -+# -+# Fastboot support -+# -+# CONFIG_UDP_FUNCTION_FASTBOOT is not set -+# CONFIG_TCP_FUNCTION_FASTBOOT is not set -+CONFIG_FIRMWARE=y -+CONFIG_ARM_PSCI_FW=y -+# CONFIG_ZYNQMP_FIRMWARE is not set -+# CONFIG_ARM_SMCCC_FEATURES is not set -+# CONFIG_ARM_FFA_TRANSPORT is not set -+# CONFIG_SCMI_FIRMWARE is not set -+# CONFIG_DM_FUZZING_ENGINE is not set -+ -+# -+# FPGA support -+# -+# CONFIG_FPGA_ALTERA is not set -+# CONFIG_FPGA_SOCFPGA is not set -+# CONFIG_FPGA_LATTICE is not set -+# CONFIG_FPGA_XILINX is not set -+# CONFIG_DM_FPGA is not set -+# CONFIG_FWU_MDATA is not set -+CONFIG_GPIO=y +CONFIG_GPIO_HOG=y -+# CONFIG_DM_GPIO_LOOKUP_LABEL is not set -+# CONFIG_ALTERA_PIO is not set -+# CONFIG_BCM2835_GPIO is not set -+# CONFIG_DWAPB_GPIO is not set -+# CONFIG_AT91_GPIO is not set -+# CONFIG_ATMEL_PIO4 is not set -+# CONFIG_ASPEED_GPIO is not set -+# CONFIG_DA8XX_GPIO is not set -+# CONFIG_HIKEY_GPIO is not set -+# CONFIG_INTEL_BROADWELL_GPIO is not set -+# CONFIG_INTEL_GPIO is not set -+# CONFIG_INTEL_ICH6_GPIO is not set -+# CONFIG_IMX_RGPIO2P is not set -+# CONFIG_IPROC_GPIO is not set -+# CONFIG_HSDK_CREG_GPIO is not set -+# CONFIG_KIRKWOOD_GPIO is not set -+# CONFIG_LPC32XX_GPIO is not set -+# CONFIG_MCP230XX_GPIO is not set -+# CONFIG_MSM_GPIO is not set -+# CONFIG_MXC_GPIO is not set -+# CONFIG_MXS_GPIO is not set -+# CONFIG_NPCM_GPIO is not set -+# CONFIG_CMD_PCA953X is not set -+# CONFIG_ROCKCHIP_GPIO is not set -+# CONFIG_XILINX_GPIO is not set -+# CONFIG_TCA642X is not set -+# CONFIG_TEGRA_GPIO is not set -+# CONFIG_TEGRA186_GPIO is not set -+# CONFIG_VYBRID_GPIO is not set -+# CONFIG_SIFIVE_GPIO is not set -+# CONFIG_ZYNQ_GPIO is not set -+# CONFIG_DM_74X164 is not set -+# CONFIG_PCA953X is not set -+# CONFIG_MPC8XXX_GPIO is not set -+# CONFIG_MPC8XX_GPIO is not set -+# CONFIG_NX_GPIO is not set -+# CONFIG_NOMADIK_GPIO is not set -+# CONFIG_ZYNQMP_GPIO_MODEPIN is not set -+# CONFIG_SLG7XL45106_I2C_GPO is not set -+# CONFIG_TURRIS_OMNIA_MCU is not set -+# CONFIG_FTGPIO010 is not set -+ -+# -+# Hardware Spinlock Support -+# -+# CONFIG_DM_HWSPINLOCK is not set -+CONFIG_I2C=y -+# CONFIG_DM_I2C is not set -+# CONFIG_SYS_I2C_LEGACY is not set -+# CONFIG_SPL_SYS_I2C_LEGACY is not set -+# CONFIG_SYS_I2C_FSL is not set -+# CONFIG_SYS_I2C_DW is not set -+# CONFIG_SYS_I2C_IMX_LPI2C is not set -+# CONFIG_SYS_I2C_MTK is not set -+# CONFIG_SYS_I2C_MICROCHIP is not set -+# CONFIG_SYS_I2C_MXC is not set -+# CONFIG_SYS_I2C_NPCM is not set -+# CONFIG_SYS_I2C_SOFT is not set -+# CONFIG_SYS_I2C_MV is not set -+# CONFIG_SYS_I2C_MVTWSI is not set -+CONFIG_INPUT=y -+# CONFIG_DM_KEYBOARD is not set -+# CONFIG_CROS_EC_KEYB is not set -+# CONFIG_TEGRA_KEYBOARD is not set -+# CONFIG_TWL4030_INPUT is not set -+ -+# -+# IOMMU device drivers -+# -+# CONFIG_IOMMU is not set -+ -+# -+# LED Support -+# +CONFIG_LED=y -+# CONFIG_LED_PWM is not set +CONFIG_LED_BLINK=y +CONFIG_LED_GPIO=y -+# CONFIG_LED_STATUS is not set -+ -+# -+# Mailbox Controller Support -+# -+# CONFIG_DM_MAILBOX is not set -+ -+# -+# Memory Controller drivers -+# -+# CONFIG_MEMORY is not set -+# CONFIG_ATMEL_EBI is not set -+# CONFIG_MFD_ATMEL_SMC is not set -+ -+# -+# Multifunction device drivers -+# -+# CONFIG_MISC is not set -+# CONFIG_NVMEM is not set -+# CONFIG_SPL_NVMEM is not set -+# CONFIG_SMSC_LPC47M is not set -+# CONFIG_SMSC_SIO1007 is not set -+# CONFIG_CROS_EC is not set -+# CONFIG_DS4510 is not set -+# CONFIG_FSL_SEC_MON is not set -+# CONFIG_IRQ is not set -+# CONFIG_NPCM_HOST is not set -+# CONFIG_NUVOTON_NCT6102D is not set -+# CONFIG_PWRSEQ is not set -+# CONFIG_PCA9551_LED is not set -+# CONFIG_TEST_DRV is not set -+# CONFIG_USB_HUB_USB251XB is not set -+# CONFIG_TWL4030_LED is not set -+# CONFIG_WINBOND_W83627 is not set -+# CONFIG_FS_LOADER is not set -+ -+# -+# MMC Host controller Support -+# +# CONFIG_MMC is not set -+# CONFIG_MMC_BROKEN_CD is not set -+# CONFIG_DM_MMC is not set -+# CONFIG_FSL_ESDHC is not set -+# CONFIG_FSL_ESDHC_IMX is not set -+ -+# -+# MTD Support -+# -+CONFIG_MTD_PARTITIONS=y +CONFIG_MTD=y +CONFIG_DM_MTD=y -+# CONFIG_MTD_NOR_FLASH is not set -+# CONFIG_MTD_CONCAT is not set -+# CONFIG_SYS_MTDPARTS_RUNTIME is not set -+# CONFIG_FLASH_CFI_DRIVER is not set -+# CONFIG_CFI_FLASH is not set -+# CONFIG_ALTERA_QSPI is not set -+# CONFIG_HBMC_AM654 is not set -+# CONFIG_SAMSUNG_ONENAND is not set -+# CONFIG_USE_SYS_MAX_FLASH_BANKS is not set -+CONFIG_MTD_NAND_CORE=y +# CONFIG_MTD_RAW_NAND is not set +CONFIG_MTD_SPI_NAND=y -+ -+# -+# SPI Flash Support -+# +CONFIG_DM_SPI_FLASH=y -+CONFIG_SPI_FLASH=y -+CONFIG_SF_DEFAULT_BUS=0 -+CONFIG_SF_DEFAULT_CS=0 -+# CONFIG_BOOTDEV_SPI_FLASH is not set +CONFIG_SPI_FLASH_SFDP_SUPPORT=y -+CONFIG_SPI_FLASH_SMART_HWCAPS=y -+# CONFIG_SPI_NOR_BOOT_SOFT_RESET_EXT_INVERT is not set -+# CONFIG_SPI_FLASH_SOFT_RESET is not set -+# CONFIG_SPI_FLASH_BAR is not set -+CONFIG_SPI_FLASH_LOCK=y -+CONFIG_SPI_FLASH_UNLOCK_ALL=y -+# CONFIG_SPI_FLASH_ATMEL is not set +CONFIG_SPI_FLASH_EON=y +CONFIG_SPI_FLASH_GIGADEVICE=y +CONFIG_SPI_FLASH_ISSI=y +CONFIG_SPI_FLASH_MACRONIX=y +CONFIG_SPI_FLASH_SPANSION=y -+# CONFIG_SPI_FLASH_S28HX_T is not set +CONFIG_SPI_FLASH_STMICRO=y -+# CONFIG_SPI_FLASH_MT35XU is not set -+# CONFIG_SPI_FLASH_SST is not set +CONFIG_SPI_FLASH_WINBOND=y +CONFIG_SPI_FLASH_XMC=y +CONFIG_SPI_FLASH_XTX=y -+# CONFIG_SPI_FLASH_ZBIT is not set -+CONFIG_SPI_FLASH_USE_4K_SECTORS=y -+# CONFIG_SPI_FLASH_DATAFLASH is not set +CONFIG_SPI_FLASH_MTD=y -+ -+# -+# UBI support -+# +CONFIG_UBI_SILENCE_MSG=y -+CONFIG_MTD_UBI=y -+CONFIG_MTD_UBI_MODULE=y -+CONFIG_MTD_UBI_WL_THRESHOLD=4096 -+CONFIG_MTD_UBI_BEB_LIMIT=20 -+# CONFIG_MTD_UBI_FASTMAP is not set -+# CONFIG_NVMXIP is not set -+# CONFIG_NVMXIP_QSPI is not set -+# CONFIG_NMBM is not set -+ -+# -+# Multiplexer drivers -+# -+# CONFIG_MULTIPLEXER is not set -+# CONFIG_BITBANGMII is not set -+# CONFIG_MV88E6352_SWITCH is not set -+CONFIG_PHYLIB=y -+# CONFIG_PHY_ADDR_ENABLE is not set -+# CONFIG_B53_SWITCH is not set -+# CONFIG_MV88E61XX_SWITCH is not set -+# CONFIG_PHYLIB_10G is not set -+# CONFIG_PHY_ADIN is not set -+# CONFIG_PHY_AIROHA is not set -+# CONFIG_PHY_AQUANTIA is not set -+# CONFIG_PHY_ATHEROS is not set -+# CONFIG_SPL_PHY_ATHEROS is not set -+# CONFIG_PHY_BROADCOM is not set -+# CONFIG_PHY_CORTINA is not set -+# CONFIG_PHY_DAVICOM is not set -+# CONFIG_PHY_ET1011C is not set -+# CONFIG_PHY_LXT is not set -+# CONFIG_PHY_MARVELL is not set -+# CONFIG_PHY_MARVELL_10G is not set -+# CONFIG_PHY_MESON_GXL is not set -+# CONFIG_PHY_MICREL is not set -+# CONFIG_PHY_MOTORCOMM is not set -+# CONFIG_PHY_MSCC is not set -+# CONFIG_PHY_NATSEMI is not set -+# CONFIG_PHY_NXP_C45_TJA11XX is not set -+# CONFIG_PHY_NXP_TJA11XX is not set -+# CONFIG_PHY_REALTEK is not set -+# CONFIG_PHY_SMSC is not set -+# CONFIG_PHY_TERANETICS is not set -+# CONFIG_PHY_TI is not set -+# CONFIG_PHY_TI_DP83867 is not set -+# CONFIG_PHY_TI_DP83869 is not set -+# CONFIG_PHY_TI_GENERIC is not set -+# CONFIG_PHY_VITESSE is not set -+# CONFIG_PHY_XILINX is not set -+# CONFIG_PHY_XILINX_GMII2RGMII is not set -+# CONFIG_PHY_XWAY is not set -+# CONFIG_PHY_ETHERNET_ID is not set +CONFIG_PHY_FIXED=y -+# CONFIG_PHY_NCSI is not set -+# CONFIG_FSL_MEMAC is not set -+CONFIG_PHY_RESET_DELAY=0 -+# CONFIG_FSL_PFE is not set -+CONFIG_ETH=y -+CONFIG_DM_ETH=y -+# CONFIG_DM_MDIO is not set -+# CONFIG_DM_ETH_PHY is not set -+CONFIG_NETDEVICES=y -+# CONFIG_PHY_GIGE is not set -+# CONFIG_ALTERA_TSE is not set -+# CONFIG_BCM_SF2_ETH is not set -+# CONFIG_BCMGENET is not set -+# CONFIG_BNXT_ETH is not set -+# CONFIG_CALXEDA_XGMAC is not set -+# CONFIG_DRIVER_DM9000 is not set -+# CONFIG_DWC_ETH_QOS is not set -+# CONFIG_EEPRO100 is not set -+# CONFIG_ETH_DESIGNWARE is not set -+# CONFIG_ETH_DESIGNWARE_MESON8B is not set -+# CONFIG_ETHOC is not set -+# CONFIG_FMAN_ENET is not set -+# CONFIG_FTMAC100 is not set -+# CONFIG_FTGMAC100 is not set -+# CONFIG_MCFFEC is not set -+# CONFIG_FSLDMAFEC is not set -+# CONFIG_KS8851_MLL is not set -+# CONFIG_LITEETH is not set -+# CONFIG_MACB is not set -+# CONFIG_NET_NPCM750 is not set -+# CONFIG_PCH_GBE is not set -+# CONFIG_RGMII is not set -+# CONFIG_MII is not set -+# CONFIG_RMII is not set -+# CONFIG_PCNET is not set -+# CONFIG_QE_UEC is not set -+# CONFIG_RTL8139 is not set -+# CONFIG_SMC911X is not set -+# CONFIG_SUN7I_GMAC is not set -+# CONFIG_SUN4I_EMAC is not set -+# CONFIG_SUN8I_EMAC is not set -+# CONFIG_SH_ETHER is not set -+# CONFIG_DRIVER_TI_CPSW is not set -+# CONFIG_DRIVER_TI_EMAC is not set -+# CONFIG_DRIVER_TI_KEYSTONE_NET is not set -+# CONFIG_TULIP is not set -+# CONFIG_XILINX_AXIEMAC is not set -+# CONFIG_VSC7385_ENET is not set -+# CONFIG_XILINX_EMACLITE is not set -+# CONFIG_ZYNQ_GEM is not set -+# CONFIG_SYS_DPAA_QBMAN is not set -+# CONFIG_TSEC_ENET is not set +CONFIG_MEDIATEK_ETH=y -+# CONFIG_HIFEMAC_ETH is not set -+# CONFIG_HIGMACV300_ETH is not set -+# CONFIG_NVME is not set -+# CONFIG_NVME_APPLE is not set -+ -+# -+# PCI Endpoint -+# -+# CONFIG_PCI_ENDPOINT is not set -+# CONFIG_X86_PCH7 is not set -+# CONFIG_X86_PCH9 is not set -+ -+# -+# PHY Subsystem -+# +CONFIG_PHY=y -+# CONFIG_NOP_PHY is not set -+# CONFIG_MIPI_DPHY_HELPERS is not set -+# CONFIG_BCM_SR_PCIE_PHY is not set -+# CONFIG_OMAP_USB2_PHY is not set +CONFIG_PHY_MTK_TPHY=y -+ -+# -+# Rockchip PHY driver -+# -+# CONFIG_PHY_CADENCE_SIERRA is not set -+# CONFIG_PHY_CADENCE_TORRENT is not set -+# CONFIG_MSM8916_USB_PHY is not set -+# CONFIG_MVEBU_COMPHY_SUPPORT is not set -+ -+# -+# Pin controllers -+# +CONFIG_PINCTRL=y -+CONFIG_PINCTRL_FULL=y -+CONFIG_PINCTRL_GENERIC=y -+CONFIG_PINMUX=y +CONFIG_PINCONF=y -+CONFIG_PINCONF_RECURSIVE=y -+# CONFIG_PINCTRL_AT91 is not set -+# CONFIG_PINCTRL_AT91PIO4 is not set -+# CONFIG_PINCTRL_INTEL is not set -+# CONFIG_PINCTRL_QE is not set -+# CONFIG_PINCTRL_ROCKCHIP_RV1108 is not set -+# CONFIG_PINCTRL_SINGLE is not set -+# CONFIG_PINCTRL_STM32 is not set -+# CONFIG_PINCTRL_STMFX is not set -+# CONFIG_PINCTRL_K210 is not set -+CONFIG_PINCTRL_MTK=y -+# CONFIG_PINCTRL_MT7622 is not set -+# CONFIG_PINCTRL_MT7623 is not set -+# CONFIG_PINCTRL_MT7629 is not set +CONFIG_PINCTRL_MT7981=y -+# CONFIG_PINCTRL_MT7986 is not set -+# CONFIG_PINCTRL_MT7988 is not set -+# CONFIG_PINCTRL_MT8512 is not set -+# CONFIG_PINCTRL_MT8516 is not set -+# CONFIG_PINCTRL_MT8518 is not set -+CONFIG_POWER=y -+# CONFIG_POWER_LEGACY is not set -+# CONFIG_ACPI_PMC is not set -+ -+# -+# Power Domain Support -+# +CONFIG_POWER_DOMAIN=y -+# CONFIG_APPLE_PMGR_POWER_DOMAIN is not set +CONFIG_MTK_POWER_DOMAIN=y -+# CONFIG_DM_PMIC is not set -+# CONFIG_PMIC_TPS65217 is not set -+# CONFIG_POWER_TPS65218 is not set -+# CONFIG_POWER_TPS62362 is not set -+# CONFIG_DM_REGULATOR is not set -+# CONFIG_TPS6586X_POWER is not set -+# CONFIG_POWER_MT6323 is not set +CONFIG_DM_PWM=y -+# CONFIG_PWM_ASPEED is not set -+# CONFIG_PWM_CADENCE_TTC is not set -+# CONFIG_PWM_CROS_EC is not set -+# CONFIG_PWM_EXYNOS is not set -+# CONFIG_PWM_IMX is not set -+# CONFIG_PWM_MESON is not set +CONFIG_PWM_MTK=y -+# CONFIG_PWM_ROCKCHIP is not set -+# CONFIG_PWM_SANDBOX is not set -+# CONFIG_PWM_SIFIVE is not set -+# CONFIG_PWM_TEGRA is not set -+# CONFIG_PWM_SUNXI is not set -+# CONFIG_U_QE is not set -+# CONFIG_RAM is not set -+ -+# -+# Reboot Mode Support -+# -+# CONFIG_DM_REBOOT_MODE is not set -+ -+# -+# Remote Processor drivers -+# -+ -+# -+# Reset Controller Support -+# -+# CONFIG_RESET_AST2500 is not set -+# CONFIG_RESET_AST2600 is not set -+CONFIG_RESET_MEDIATEK=y -+# CONFIG_RESET_HISILICON is not set -+# CONFIG_RESET_SYSCON is not set -+# CONFIG_RESET_SCMI is not set -+# CONFIG_RESET_DRA7 is not set -+# CONFIG_DM_RNG is not set -+ -+# -+# Real Time Clock -+# -+# CONFIG_DM_RTC is not set -+# CONFIG_RTC_ENABLE_32KHZ_OUTPUT is not set -+# CONFIG_RTC_DS1337 is not set -+# CONFIG_RTC_DS1338 is not set -+# CONFIG_RTC_DS1374 is not set -+# CONFIG_RTC_DS3231 is not set -+# CONFIG_RTC_PCF8563 is not set -+# CONFIG_RTC_PT7C4338 is not set -+# CONFIG_RTC_PL031 is not set -+# CONFIG_RTC_S35392A is not set -+# CONFIG_RTC_MC13XXX is not set -+# CONFIG_RTC_MC146818 is not set -+# CONFIG_RTC_M41T62 is not set -+# CONFIG_SCSI is not set -+# CONFIG_DM_SCSI is not set -+CONFIG_SERIAL=y -+CONFIG_BAUDRATE=115200 -+# CONFIG_DEFAULT_ENV_IS_RW is not set -+CONFIG_REQUIRE_SERIAL_CONSOLE=y -+# CONFIG_SPECIFY_CONSOLE_INDEX is not set -+CONFIG_SERIAL_PRESENT=y +CONFIG_DM_SERIAL=y -+# CONFIG_SERIAL_RX_BUFFER is not set -+# CONFIG_SERIAL_PUTS is not set -+# CONFIG_SERIAL_SEARCH_ALL is not set -+# CONFIG_SERIAL_PROBE_ALL is not set -+# CONFIG_VPL_DM_SERIAL is not set -+CONFIG_DEBUG_UART_MTK=y -+CONFIG_DEBUG_UART_SHIFT=0 -+# CONFIG_DEBUG_UART_ANNOUNCE is not set -+# CONFIG_DEBUG_UART_SKIP_INIT is not set -+# CONFIG_ALTERA_JTAG_UART is not set -+# CONFIG_ALTERA_UART is not set -+# CONFIG_ARC_SERIAL is not set -+# CONFIG_ARM_DCC is not set -+# CONFIG_ATMEL_USART is not set -+# CONFIG_BCM6345_SERIAL is not set -+# CONFIG_COREBOOT_SERIAL is not set -+# CONFIG_CORTINA_UART is not set -+# CONFIG_FSL_LINFLEXUART is not set -+# CONFIG_FSL_LPUART is not set -+# CONFIG_MVEBU_A3700_UART is not set -+# CONFIG_MCFUART is not set -+# CONFIG_NULLDEV_SERIAL is not set -+# CONFIG_SYS_NS16550 is not set -+# CONFIG_PL01X_SERIAL is not set -+# CONFIG_ROCKCHIP_SERIAL is not set -+# CONFIG_XILINX_UARTLITE is not set -+# CONFIG_MSM_SERIAL is not set -+# CONFIG_MSM_GENI_SERIAL is not set -+# CONFIG_MXS_AUART_SERIAL is not set -+# CONFIG_OMAP_SERIAL is not set -+# CONFIG_SIFIVE_SERIAL is not set -+# CONFIG_ZYNQ_SERIAL is not set +CONFIG_MTK_SERIAL=y -+# CONFIG_MT7620_SERIAL is not set -+# CONFIG_NPCM_SERIAL is not set -+# CONFIG_SM is not set -+# CONFIG_MESON_SM is not set -+# CONFIG_SMEM is not set -+ -+# -+# Sound support -+# -+# CONFIG_SOUND is not set -+ -+# -+# SOC (System On Chip) specific Drivers -+# -+# CONFIG_SOC_DEVICE is not set -+# CONFIG_SOC_TI is not set +CONFIG_SPI=y +CONFIG_DM_SPI=y -+CONFIG_SPI_MEM=y -+# CONFIG_SPI_DIRMAP is not set -+# CONFIG_ALTERA_SPI is not set -+# CONFIG_APPLE_SPI is not set -+# CONFIG_ATCSPI200_SPI is not set -+# CONFIG_ATMEL_SPI is not set -+# CONFIG_BCMSTB_SPI is not set -+# CONFIG_CORTINA_SFLASH is not set -+# CONFIG_CADENCE_QSPI is not set -+# CONFIG_CF_SPI is not set -+# CONFIG_DESIGNWARE_SPI is not set -+# CONFIG_EXYNOS_SPI is not set -+# CONFIG_FSL_DSPI is not set -+# CONFIG_FSL_QSPI is not set -+# CONFIG_GXP_SPI is not set -+# CONFIG_ICH_SPI is not set -+# CONFIG_IPROC_QSPI is not set -+# CONFIG_KIRKWOOD_SPI is not set -+# CONFIG_MICROCHIP_COREQSPI is not set -+# CONFIG_MPC8XXX_SPI is not set -+# CONFIG_MTK_SNOR is not set -+# CONFIG_MTK_SNFI_SPI is not set +CONFIG_MTK_SPIM=y -+# CONFIG_MVEBU_A3700_SPI is not set -+# CONFIG_MXS_SPI is not set -+# CONFIG_SPI_MXIC is not set -+# CONFIG_NPCM_FIU_SPI is not set -+# CONFIG_NPCM_PSPI is not set -+# CONFIG_NXP_FSPI is not set -+# CONFIG_OMAP3_SPI is not set -+# CONFIG_PL022_SPI is not set -+# CONFIG_ROCKCHIP_SFC is not set -+# CONFIG_ROCKCHIP_SPI is not set -+# CONFIG_SPI_ASPEED_SMC is not set -+# CONFIG_SPI_SIFIVE is not set -+# CONFIG_SOFT_SPI is not set -+# CONFIG_SPI_SN_F_OSPI is not set -+# CONFIG_SPI_SUNXI is not set -+# CONFIG_TEGRA114_SPI is not set -+# CONFIG_TEGRA20_SFLASH is not set -+# CONFIG_TEGRA20_SLINK is not set -+# CONFIG_TEGRA210_QSPI is not set -+# CONFIG_TI_QSPI is not set -+# CONFIG_XILINX_SPI is not set -+# CONFIG_ZYNQ_SPI is not set -+# CONFIG_ZYNQ_QSPI is not set -+# CONFIG_ZYNQMP_GQSPI is not set -+# CONFIG_SH_QSPI is not set -+# CONFIG_MXC_SPI is not set -+ -+# -+# SPMI support -+# -+# CONFIG_SPMI is not set -+# CONFIG_SYSINFO is not set -+ -+# -+# System reset device drivers -+# -+# CONFIG_SYSRESET is not set -+# CONFIG_TEE is not set -+# CONFIG_DM_THERMAL is not set -+ -+# -+# Timer Support -+# -+# CONFIG_TIMER is not set -+ -+# -+# TPM support -+# +CONFIG_USB=y -+CONFIG_DM_USB=y -+# CONFIG_DM_USB_GADGET is not set -+ -+# -+# USB Host Controller Drivers -+# -+CONFIG_USB_HOST=y +CONFIG_USB_XHCI_HCD=y -+# CONFIG_USB_XHCI_DWC3 is not set -+# CONFIG_USB_XHCI_DWC3_OF_SIMPLE is not set +CONFIG_USB_XHCI_MTK=y -+# CONFIG_USB_XHCI_FSL is not set -+# CONFIG_USB_XHCI_BRCM is not set -+# CONFIG_USB_EHCI_HCD is not set -+# CONFIG_USB_OHCI_HCD is not set -+# CONFIG_USB_UHCI_HCD is not set -+# CONFIG_USB_DWC2 is not set -+# CONFIG_USB_R8A66597_HCD is not set -+# CONFIG_USB_ISP1760 is not set -+# CONFIG_USB_CDNS3 is not set -+# CONFIG_USB_DWC3 is not set -+# CONFIG_USB_MTU3 is not set -+ -+# -+# Legacy MUSB Support -+# -+# CONFIG_USB_MUSB_HCD is not set -+# CONFIG_USB_MUSB_UDC is not set -+ -+# -+# MUSB Controller Driver -+# -+# CONFIG_USB_MUSB_HOST is not set -+# CONFIG_USB_MUSB_PIO_ONLY is not set -+ -+# -+# USB Phy -+# -+# CONFIG_TWL4030_USB is not set -+# CONFIG_ROCKCHIP_USB2_PHY is not set -+ -+# -+# ULPI drivers -+# -+ -+# -+# USB peripherals -+# +CONFIG_USB_STORAGE=y -+# CONFIG_USB_KEYBOARD is not set -+# CONFIG_USB_ONBOARD_HUB is not set -+CONFIG_USB_HUB_DEBOUNCE_TIMEOUT=1000 -+# CONFIG_USB_HOST_ETHER is not set -+# CONFIG_USB_GADGET is not set -+# CONFIG_SPL_USB_GADGET is not set -+ -+# -+# UFS Host Controller Support -+# -+# CONFIG_TI_J721E_UFS is not set -+ -+# -+# Graphics support -+# -+# CONFIG_VIDEO is not set -+ -+# -+# VirtIO Drivers -+# -+# CONFIG_VIRTIO_MMIO is not set -+ -+# -+# 1-Wire support -+# -+# CONFIG_W1 is not set -+ -+# -+# 1-wire EEPROM support -+# -+# CONFIG_W1_EEPROM is not set -+ -+# -+# Watchdog Timer Support -+# -+# CONFIG_WATCHDOG is not set -+CONFIG_WATCHDOG_TIMEOUT_MSECS=60000 -+# CONFIG_IMX_WATCHDOG is not set -+# CONFIG_ULP_WATCHDOG is not set -+# CONFIG_WDT is not set -+# CONFIG_PHYS_TO_BUS is not set -+ -+# -+# File systems -+# -+# CONFIG_FS_BTRFS is not set -+# CONFIG_FS_CBFS is not set -+# CONFIG_FS_EXT4 is not set -+CONFIG_FS_FAT=y -+CONFIG_FAT_WRITE=y -+CONFIG_FS_FAT_MAX_CLUSTSIZE=65536 -+# CONFIG_FS_JFFS2 is not set +CONFIG_UBIFS_SILENCE_MSG=y -+CONFIG_UBIFS_SILENCE_DEBUG_DUMP=y -+# CONFIG_FS_CRAMFS is not set -+# CONFIG_YAFFS2 is not set -+# CONFIG_FS_SQUASHFS is not set -+# CONFIG_FS_EROFS is not set -+ -+# -+# Library routines -+# -+# CONFIG_ADDR_MAP is not set -+# CONFIG_SYS_TIMER_COUNTS_DOWN is not set -+# CONFIG_PHYSMEM is not set -+# CONFIG_BCH is not set -+# CONFIG_CC_OPTIMIZE_LIBS_FOR_SPEED is not set -+CONFIG_CHARSET=y -+# CONFIG_DYNAMIC_CRC_TABLE is not set -+CONFIG_LIB_UUID=y -+# CONFIG_SEMIHOSTING is not set -+CONFIG_PRINTF=y -+CONFIG_SPRINTF=y -+CONFIG_STRTO=y -+CONFIG_SYS_HZ=1000 -+# CONFIG_PANIC_HANG is not set -+CONFIG_REGEX=y -+CONFIG_LIB_RAND=y -+# CONFIG_LIB_HW_RAND is not set -+CONFIG_SUPPORT_ACPI=y -+# CONFIG_ACPI is not set -+CONFIG_RBTREE=y -+# CONFIG_BITREVERSE is not set -+# CONFIG_TRACE is not set -+# CONFIG_CIRCBUF is not set -+# CONFIG_CMD_DHRYSTONE is not set -+ -+# -+# Security support -+# -+# CONFIG_AES is not set -+# CONFIG_ECDSA is not set -+# CONFIG_RSA is not set -+# CONFIG_TPM is not set -+ -+# -+# Android Verified Boot -+# -+ -+# -+# Hashing Support -+# -+# CONFIG_BLAKE2 is not set -+CONFIG_SHA1=y -+CONFIG_SHA256=y -+# CONFIG_SHA512 is not set -+# CONFIG_SHA384 is not set -+# CONFIG_SHA_HW_ACCEL is not set -+CONFIG_MD5=y -+CONFIG_CRC8=y -+CONFIG_CRC32=y -+ -+# -+# Compression Support -+# -+# CONFIG_LZ4 is not set -+CONFIG_LZMA=y -+CONFIG_LZO=y -+CONFIG_GZIP=y -+# CONFIG_ZLIB_UNCOMPRESS is not set -+# CONFIG_BZIP2 is not set -+CONFIG_ZLIB=y -+# CONFIG_ZSTD is not set -+CONFIG_VPL_LZMA=y -+# CONFIG_SPL_GZIP is not set -+# CONFIG_ERRNO_STR is not set +CONFIG_HEXDUMP=y -+# CONFIG_GETOPT is not set -+CONFIG_OF_LIBFDT=y -+CONFIG_OF_LIBFDT_ASSUME_MASK=0x0 -+CONFIG_SYS_FDT_PAD=0x3000 -+ -+# -+# System tables -+# -+CONFIG_GENERATE_SMBIOS_TABLE=y -+# CONFIG_LIB_RATIONAL is not set -+CONFIG_SMBIOS=y -+# CONFIG_SMBIOS_PARSER is not set -+CONFIG_EFI_LOADER=y -+# CONFIG_CMD_BOOTEFI_BOOTMGR is not set -+CONFIG_EFI_VARIABLE_FILE_STORE=y -+# CONFIG_EFI_VARIABLE_NO_STORE is not set -+# CONFIG_EFI_VARIABLES_PRESEED is not set -+CONFIG_EFI_VAR_BUF_SIZE=131072 -+# CONFIG_EFI_SCROLL_ON_CLEAR_SCREEN is not set -+# CONFIG_EFI_RUNTIME_UPDATE_CAPSULE is not set -+CONFIG_EFI_CAPSULE_MAX=15 -+CONFIG_EFI_DEVICE_PATH_TO_TEXT=y -+CONFIG_EFI_DEVICE_PATH_UTIL=y -+CONFIG_EFI_DT_FIXUP=y -+CONFIG_EFI_LOADER_HII=y -+CONFIG_EFI_UNICODE_COLLATION_PROTOCOL2=y -+CONFIG_EFI_UNICODE_CAPITALIZATION=y -+# CONFIG_EFI_LOADER_BOUNCE_BUFFER is not set -+CONFIG_EFI_PLATFORM_LANG_CODES="en-US" -+CONFIG_EFI_HAVE_RUNTIME_RESET=y -+CONFIG_EFI_LOAD_FILE2_INITRD=y -+CONFIG_EFI_ECPT=y -+CONFIG_EFI_EBBR_2_1_CONFORMANCE=y -+# CONFIG_OPTEE_LIB is not set -+# CONFIG_OPTEE_IMAGE is not set -+# CONFIG_BOOTM_OPTEE is not set -+# CONFIG_TEST_FDTDEC is not set -+CONFIG_LIB_ELF=y -+CONFIG_LMB=y -+CONFIG_LMB_USE_MAX_REGIONS=y +CONFIG_LMB_MAX_REGIONS=64 -+# CONFIG_PHANDLE_CHECK_SEQ is not set -+ -+# -+# Testing -+# -+# CONFIG_UNIT_TEST is not set -+# CONFIG_POST is not set -+ -+# -+# Tools options -+# -+CONFIG_MKIMAGE_DTC_PATH="dtc" -+CONFIG_TOOLS_CRC32=y -+# CONFIG_TOOLS_LIBCRYPTO is not set -+CONFIG_TOOLS_FIT=y -+CONFIG_TOOLS_FIT_FULL_CHECK=y -+CONFIG_TOOLS_FIT_PRINT=y -+CONFIG_TOOLS_FIT_RSASSA_PSS=y -+CONFIG_TOOLS_FIT_SIGNATURE=y -+CONFIG_TOOLS_FIT_SIGNATURE_MAX_SIZE=0x10000000 -+CONFIG_TOOLS_FIT_VERBOSE=y -+CONFIG_TOOLS_MD5=y -+CONFIG_TOOLS_OF_LIBFDT=y -+CONFIG_TOOLS_SHA1=y -+CONFIG_TOOLS_SHA256=y -+CONFIG_TOOLS_SHA384=y -+CONFIG_TOOLS_SHA512=y -+# CONFIG_TOOLS_MKEFICAPSULE is not set -+# CONFIG_FSPI_CONF_HEADER is not set -+# CONFIG_TOOLS_MKFWUMDATA is not set --- /dev/null +++ b/configs/mt7981_openwrt-one-spi-nand_defconfig -@@ -0,0 +1,1815 @@ -+# -+# Automatically generated file; DO NOT EDIT. -+# U-Boot 2024.01 Configuration -+# -+ -+# -+# Compiler: aarch64-openwrt-linux-musl-gcc (OpenWrt GCC 12.3.0 r25206+8-d5e2177a6b) 12.3.0 -+# -+CONFIG_CREATE_ARCH_SYMLINK=y -+CONFIG_SYS_CACHE_SHIFT_6=y -+CONFIG_SYS_CACHELINE_SIZE=64 -+CONFIG_LINKER_LIST_ALIGN=8 -+# CONFIG_ARC is not set +@@ -0,0 +1,130 @@ +CONFIG_ARM=y -+# CONFIG_M68K is not set -+# CONFIG_MICROBLAZE is not set -+# CONFIG_MIPS is not set -+# CONFIG_NIOS2 is not set -+# CONFIG_PPC is not set -+# CONFIG_RISCV is not set -+# CONFIG_SANDBOX is not set -+# CONFIG_SH is not set -+# CONFIG_X86 is not set -+# CONFIG_XTENSA is not set -+CONFIG_SYS_ARCH="arm" -+CONFIG_SYS_CPU="armv8" -+CONFIG_SYS_SOC="mediatek" -+CONFIG_SYS_VENDOR="mediatek" -+CONFIG_SYS_BOARD="mt7981" -+CONFIG_SYS_CONFIG_NAME="mt7981" -+ -+# -+# Skipping low level initialization functions -+# -+# CONFIG_SKIP_LOWLEVEL_INIT is not set -+# CONFIG_SKIP_LOWLEVEL_INIT_ONLY is not set +CONFIG_SYS_HAS_NONCACHED_MEMORY=y -+CONFIG_SYS_NONCACHED_MEMORY=0x100000 -+# CONFIG_SYS_ICACHE_OFF is not set -+# CONFIG_SYS_DCACHE_OFF is not set -+ -+# -+# ARM architecture -+# -+CONFIG_ARM64=y -+CONFIG_ARM64_CRC32=y -+CONFIG_COUNTER_FREQUENCY=0 +CONFIG_POSITION_INDEPENDENT=y -+CONFIG_INIT_SP_RELATIVE=y -+CONFIG_SYS_INIT_SP_BSS_OFFSET=524288 -+# CONFIG_GIC_V3_ITS is not set -+CONFIG_STATIC_RELA=y -+CONFIG_DMA_ADDR_T_64BIT=y -+CONFIG_GPIO_EXTRA_HEADER=y -+CONFIG_ARM_ASM_UNIFIED=y -+# CONFIG_SYS_ARM_CACHE_CP15 is not set -+# CONFIG_SYS_ARM_MMU is not set -+# CONFIG_SYS_ARM_MPU is not set -+CONFIG_SYS_ARM_ARCH=8 -+CONFIG_SYS_ARM_CACHE_WRITEBACK=y -+# CONFIG_SYS_ARM_CACHE_WRITETHROUGH is not set -+# CONFIG_SYS_ARM_CACHE_WRITEALLOC is not set -+# CONFIG_ARCH_CPU_INIT is not set -+CONFIG_SYS_ARCH_TIMER=y -+CONFIG_ARM_SMCCC=y -+# CONFIG_SYS_L2_PL310 is not set -+# CONFIG_SPL_SYS_L2_PL310 is not set -+# CONFIG_SYS_L2CACHE_OFF is not set -+# CONFIG_ENABLE_ARM_SOC_BOOT0_HOOK is not set -+# CONFIG_USE_ARCH_MEMCPY is not set -+# CONFIG_USE_ARCH_MEMSET is not set -+CONFIG_ARM64_SUPPORT_AARCH32=y -+# CONFIG_ARCH_AT91 is not set -+# CONFIG_ARCH_DAVINCI is not set -+# CONFIG_ARCH_HISTB is not set -+# CONFIG_ARCH_KIRKWOOD is not set -+# CONFIG_ARCH_MVEBU is not set -+# CONFIG_ARCH_ORION5X is not set -+# CONFIG_TARGET_STV0991 is not set -+# CONFIG_ARCH_BCM283X is not set -+# CONFIG_ARCH_BCMSTB is not set -+# CONFIG_ARCH_BCMBCA is not set -+# CONFIG_TARGET_VEXPRESS_CA9X4 is not set -+# CONFIG_TARGET_BCMNS is not set -+# CONFIG_TARGET_BCMNS2 is not set -+# CONFIG_TARGET_BCMNS3 is not set -+# CONFIG_ARCH_EXYNOS is not set -+# CONFIG_ARCH_S5PC1XX is not set -+# CONFIG_ARCH_HIGHBANK is not set -+# CONFIG_ARCH_INTEGRATOR is not set -+# CONFIG_ARCH_IPQ40XX is not set -+# CONFIG_ARCH_KEYSTONE is not set -+# CONFIG_ARCH_K3 is not set -+# CONFIG_ARCH_OMAP2PLUS is not set -+# CONFIG_ARCH_MESON is not set +CONFIG_ARCH_MEDIATEK=y -+# CONFIG_ARCH_LPC32XX is not set -+# CONFIG_ARCH_IMX8 is not set -+# CONFIG_ARCH_IMX8M is not set -+# CONFIG_ARCH_IMX8ULP is not set -+# CONFIG_ARCH_IMX9 is not set -+# CONFIG_ARCH_IMXRT is not set -+# CONFIG_ARCH_MX23 is not set -+# CONFIG_ARCH_MX28 is not set -+# CONFIG_ARCH_MX31 is not set -+# CONFIG_ARCH_MX7ULP is not set -+# CONFIG_ARCH_MX7 is not set -+# CONFIG_ARCH_MX6 is not set -+# CONFIG_ARCH_MX5 is not set -+# CONFIG_ARCH_NEXELL is not set -+# CONFIG_ARCH_NPCM is not set -+# CONFIG_ARCH_APPLE is not set -+# CONFIG_ARCH_OWL is not set -+# CONFIG_ARCH_QEMU is not set -+# CONFIG_ARCH_RMOBILE is not set -+# CONFIG_ARCH_SNAPDRAGON is not set -+# CONFIG_ARCH_SOCFPGA is not set -+# CONFIG_ARCH_SUNXI is not set -+# CONFIG_ARCH_U8500 is not set -+# CONFIG_ARCH_VERSAL is not set -+# CONFIG_ARCH_VERSAL_NET is not set -+# CONFIG_ARCH_VF610 is not set -+# CONFIG_ARCH_ZYNQ is not set -+# CONFIG_ARCH_ZYNQMP_R5 is not set -+# CONFIG_ARCH_ZYNQMP is not set -+# CONFIG_ARCH_TEGRA is not set -+# CONFIG_ARCH_VEXPRESS64 is not set -+# CONFIG_TARGET_CORSTONE1000 is not set -+# CONFIG_TARGET_TOTAL_COMPUTE is not set -+# CONFIG_TARGET_LS2080A_EMU is not set -+# CONFIG_TARGET_LS1088AQDS is not set -+# CONFIG_TARGET_LS2080AQDS is not set -+# CONFIG_TARGET_LS2080ARDB is not set -+# CONFIG_TARGET_LS2081ARDB is not set -+# CONFIG_TARGET_LX2160ARDB is not set -+# CONFIG_TARGET_LX2160AQDS is not set -+# CONFIG_TARGET_LX2162AQDS is not set -+# CONFIG_TARGET_HIKEY is not set -+# CONFIG_TARGET_HIKEY960 is not set -+# CONFIG_TARGET_POPLAR is not set -+# CONFIG_TARGET_LS1012AQDS is not set -+# CONFIG_TARGET_LS1012ARDB is not set -+# CONFIG_TARGET_LS1012A2G5RDB is not set -+# CONFIG_TARGET_LS1012AFRWY is not set -+# CONFIG_TARGET_LS1012AFRDM is not set -+# CONFIG_TARGET_LS1028AQDS is not set -+# CONFIG_TARGET_LS1028ARDB is not set -+# CONFIG_TARGET_LS1088ARDB is not set -+# CONFIG_TARGET_LS1021AQDS is not set -+# CONFIG_TARGET_LS1021ATWR is not set -+# CONFIG_TARGET_PG_WCOM_SELI8 is not set -+# CONFIG_TARGET_PG_WCOM_EXPU1 is not set -+# CONFIG_TARGET_LS1021ATSN is not set -+# CONFIG_TARGET_LS1021AIOT is not set -+# CONFIG_TARGET_LS1043AQDS is not set -+# CONFIG_TARGET_LS1043ARDB is not set -+# CONFIG_TARGET_LS1046AQDS is not set -+# CONFIG_TARGET_LS1046ARDB is not set -+# CONFIG_TARGET_LS1046AFRWY is not set -+# CONFIG_TARGET_SL28 is not set -+# CONFIG_TARGET_TEN64 is not set -+# CONFIG_ARCH_UNIPHIER is not set -+# CONFIG_ARCH_SYNQUACER is not set -+# CONFIG_ARCH_STM32 is not set -+# CONFIG_ARCH_STI is not set -+# CONFIG_ARCH_STM32MP is not set -+# CONFIG_ARCH_ROCKCHIP is not set -+# CONFIG_ARCH_OCTEONTX is not set -+# CONFIG_ARCH_OCTEONTX2 is not set -+# CONFIG_TARGET_THUNDERX_88XX is not set -+# CONFIG_ARCH_ASPEED is not set -+# CONFIG_TARGET_DURIAN is not set -+# CONFIG_TARGET_POMELO is not set -+# CONFIG_TARGET_PRESIDIO_ASIC is not set -+# CONFIG_TARGET_XENGUEST_ARM64 is not set -+# CONFIG_ARCH_GXP is not set -+# CONFIG_STATIC_MACH_TYPE is not set +CONFIG_TEXT_BASE=0x41e00000 -+CONFIG_SYS_MALLOC_LEN=0x400000 +CONFIG_SYS_MALLOC_F_LEN=0x4000 +CONFIG_NR_DRAM_BANKS=1 -+CONFIG_ENV_SOURCE_FILE="" -+CONFIG_SF_DEFAULT_SPEED=1000000 -+CONFIG_SF_DEFAULT_MODE=0x0 -+CONFIG_ENV_SIZE=0x1f000 -+CONFIG_DM_GPIO=y +CONFIG_DEFAULT_DEVICE_TREE="openwrt-one" +CONFIG_OF_LIBFDT_OVERLAY=y -+CONFIG_MULTI_DTB_FIT_UNCOMPRESS_SZ=0x8000 -+CONFIG_DM_RESET=y -+CONFIG_SYS_MONITOR_LEN=0 -+# CONFIG_MT8512 is not set -+# CONFIG_TARGET_MT7622 is not set -+# CONFIG_TARGET_MT7623 is not set -+# CONFIG_TARGET_MT7629 is not set +CONFIG_TARGET_MT7981=y -+# CONFIG_TARGET_MT7986 is not set -+# CONFIG_TARGET_MT7988 is not set -+# CONFIG_TARGET_MT8183 is not set -+# CONFIG_TARGET_MT8512 is not set -+# CONFIG_TARGET_MT8516 is not set -+# CONFIG_TARGET_MT8518 is not set -+CONFIG_MTK_BROM_HEADER_INFO="media=snand;nandinfo=2k+64" +CONFIG_RESET_BUTTON_LABEL="back" -+CONFIG_RESET_BUTTON_SETTLE_DELAY=0 -+CONFIG_ERR_PTR_OFFSET=0x0 -+# CONFIG_SPL is not set -+CONFIG_BOOTSTAGE_STASH_ADDR=0x0 +CONFIG_DEBUG_UART_BASE=0x11002000 +CONFIG_DEBUG_UART_CLOCK=40000000 -+# CONFIG_DEBUG_UART_BOARD_INIT is not set -+CONFIG_IDENT_STRING="" -+CONFIG_SYS_CLK_FREQ=0 -+# CONFIG_CHIP_DIP_SCAN is not set -+# CONFIG_CMO_BY_VA_ONLY is not set -+# CONFIG_ARMV8_MULTIENTRY is not set -+# CONFIG_ARMV8_SET_SMPEN is not set -+# CONFIG_ARMV8_SWITCH_TO_EL1 is not set -+ -+# -+# ARMv8 secure monitor firmware -+# -+# CONFIG_ARMV8_SEC_FIRMWARE_SUPPORT is not set -+CONFIG_PSCI_RESET=y -+# CONFIG_ARMV8_PSCI is not set -+# CONFIG_ARMV8_EA_EL3_FIRST is not set -+# CONFIG_ARMV8_CRYPTO is not set -+# CONFIG_CMD_DEKBLOB is not set -+# CONFIG_IMX_CAAM_DEK_ENCAP is not set -+# CONFIG_IMX_OPTEE_DEK_ENCAP is not set -+# CONFIG_IMX_SECO_DEK_ENCAP is not set -+# CONFIG_IMX_ELE_DEK_ENCAP is not set -+# CONFIG_CMD_HDMIDETECT is not set -+CONFIG_IMX_DCD_ADDR=0x00910000 -+CONFIG_SYS_MEM_TOP_HIDE=0x0 +CONFIG_SYS_LOAD_ADDR=0x46000000 -+ -+# -+# ARM debug -+# -+CONFIG_BUILD_TARGET="" -+# CONFIG_PCI is not set -+CONFIG_FWU_NUM_BANKS=2 -+CONFIG_FWU_NUM_IMAGES_PER_BANK=2 +CONFIG_DEBUG_UART=y -+# CONFIG_AHCI is not set -+# CONFIG_OF_BOARD_FIXUP is not set -+ -+# -+# Functionality shared between NXP SoCs -+# -+# CONFIG_NXP_ESBC is not set -+ -+# -+# General setup -+# -+CONFIG_LOCALVERSION="" -+CONFIG_LOCALVERSION_AUTO=y -+CONFIG_CC_IS_GCC=y -+CONFIG_GCC_VERSION=120300 -+CONFIG_CLANG_VERSION=0 -+CONFIG_CC_OPTIMIZE_FOR_SIZE=y -+# CONFIG_CC_OPTIMIZE_FOR_SPEED is not set -+# CONFIG_CC_OPTIMIZE_FOR_DEBUG is not set -+# CONFIG_OPTIMIZE_INLINING is not set -+CONFIG_ARCH_SUPPORTS_LTO=y -+# CONFIG_LTO is not set -+CONFIG_CC_HAS_ASM_INLINE=y -+# CONFIG_XEN is not set -+# CONFIG_ENV_VARS_UBOOT_CONFIG is not set -+# CONFIG_SYS_BOOT_GET_CMDLINE is not set -+# CONFIG_SYS_BOOT_GET_KBD is not set -+CONFIG_SYS_MALLOC_F=y -+# CONFIG_VALGRIND is not set -+CONFIG_EXPERT=y -+CONFIG_SYS_MALLOC_CLEAR_ON_INIT=y -+# CONFIG_SYS_MALLOC_DEFAULT_TO_INIT is not set -+# CONFIG_TOOLS_DEBUG is not set -+CONFIG_PHYS_64BIT=y -+CONFIG_FDT_64BIT=y -+# CONFIG_REMAKE_ELF is not set -+# CONFIG_HAS_BOARD_SIZE_LIMIT is not set -+# CONFIG_SYS_CUSTOM_LDSCRIPT is not set -+CONFIG_PLATFORM_ELFENTRY="_start" -+CONFIG_STACK_SIZE=0x1000000 -+CONFIG_SYS_SRAM_BASE=0x0 -+CONFIG_SYS_SRAM_SIZE=0x0 -+# CONFIG_MP is not set -+CONFIG_HAVE_TEXT_BASE=y -+# CONFIG_HAVE_SYS_UBOOT_START is not set -+CONFIG_SYS_UBOOT_START=0x41e00000 -+# CONFIG_DYNAMIC_SYS_CLK_FREQ is not set -+# CONFIG_API is not set -+ -+# -+# Boot options -+# -+ -+# -+# Boot images -+# -+# CONFIG_ANDROID_BOOT_IMAGE is not set -+# CONFIG_TIMESTAMP is not set +CONFIG_FIT=y -+CONFIG_FIT_EXTERNAL_OFFSET=0x0 -+CONFIG_FIT_FULL_CHECK=y -+# CONFIG_FIT_SIGNATURE is not set -+# CONFIG_FIT_CIPHER is not set -+# CONFIG_FIT_VERBOSE is not set -+# CONFIG_FIT_BEST_MATCH is not set -+CONFIG_FIT_PRINT=y -+# CONFIG_SPL_LOAD_FIT_FULL is not set -+CONFIG_PXE_UTILS=y -+CONFIG_BOOTSTD=y -+# CONFIG_BOOTSTD_FULL is not set -+# CONFIG_BOOTSTD_DEFAULTS is not set -+CONFIG_BOOTSTD_BOOTCOMMAND=y -+CONFIG_BOOTMETH_GLOBAL=y -+# CONFIG_BOOTMETH_CROS is not set -+CONFIG_BOOTMETH_EXTLINUX=y -+CONFIG_BOOTMETH_EXTLINUX_PXE=y -+CONFIG_BOOTMETH_EFILOADER=y -+CONFIG_BOOTMETH_VBE=y -+CONFIG_BOOTMETH_VBE_REQUEST=y -+CONFIG_BOOTMETH_VBE_SIMPLE=y -+CONFIG_BOOTMETH_VBE_SIMPLE_OS=y -+# CONFIG_BOOTMETH_SCRIPT is not set -+CONFIG_LEGACY_IMAGE_FORMAT=y -+# CONFIG_SUPPORT_RAW_INITRD is not set -+# CONFIG_CHROMEOS is not set -+# CONFIG_CHROMEOS_VBOOT is not set -+# CONFIG_RAMBOOT_PBL is not set -+CONFIG_SYS_BOOT_RAMDISK_HIGH=y -+# CONFIG_DISTRO_DEFAULTS is not set -+ -+# -+# Boot timing -+# -+# CONFIG_BOOTSTAGE is not set -+CONFIG_BOOTSTAGE_STASH_SIZE=0x1000 -+# CONFIG_SHOW_BOOT_PROGRESS is not set -+ -+# -+# Boot media -+# +CONFIG_NAND_BOOT=y -+# CONFIG_ONENAND_BOOT is not set -+# CONFIG_QSPI_BOOT is not set -+# CONFIG_SATA_BOOT is not set -+# CONFIG_SD_BOOT is not set -+# CONFIG_SD_BOOT_QSPI is not set +CONFIG_SPI_BOOT=y -+ -+# -+# Autoboot options -+# -+CONFIG_AUTOBOOT=y -+CONFIG_BOOTDELAY=2 -+# CONFIG_AUTOBOOT_KEYED is not set -+# CONFIG_AUTOBOOT_USE_MENUKEY is not set +CONFIG_AUTOBOOT_MENU_SHOW=y -+# CONFIG_BOOTMENU_DISABLE_UBOOT_CONSOLE is not set -+# CONFIG_BOOT_RETRY is not set -+ -+# -+# Image support -+# -+# CONFIG_IMAGE_PRE_LOAD is not set -+ -+# -+# Devicetree fixup -+# -+# CONFIG_OF_BOARD_SETUP is not set -+# CONFIG_OF_SYSTEM_SETUP is not set -+# CONFIG_OF_STDOUT_VIA_ALIAS is not set -+# CONFIG_FDT_FIXUP_PARTITIONS is not set -+# CONFIG_FDT_SIMPLEFB is not set -+CONFIG_ARCH_FIXUP_FDT_MEMORY=y -+# CONFIG_USE_BOOTARGS is not set -+# CONFIG_BOOTARGS_SUBST is not set -+# CONFIG_USE_BOOTCOMMAND is not set +CONFIG_USE_PREBOOT=y +CONFIG_DEFAULT_FDT_FILE="openwrt-one" -+# CONFIG_SAVE_PREV_BL_FDT_ADDR is not set -+# CONFIG_SAVE_PREV_BL_INITRAMFS_START_ADDR is not set -+ -+# -+# Configuration editor -+# -+# CONFIG_CEDIT is not set -+ -+# -+# Console -+# -+CONFIG_MENU=y -+# CONFIG_CONSOLE_RECORD is not set -+# CONFIG_DISABLE_CONSOLE is not set -+CONFIG_LOGLEVEL=7 -+# CONFIG_SILENT_CONSOLE is not set -+# CONFIG_SPL_SILENT_CONSOLE is not set -+# CONFIG_TPL_SILENT_CONSOLE is not set -+# CONFIG_PRE_CONSOLE_BUFFER is not set -+CONFIG_CONSOLE_FLUSH_SUPPORT=y -+# CONFIG_CONSOLE_FLUSH_ON_NEWLINE is not set -+# CONFIG_CONSOLE_MUX is not set -+# CONFIG_SYS_CONSOLE_IS_IN_ENV is not set -+# CONFIG_SYS_CONSOLE_OVERWRITE_ROUTINE is not set -+# CONFIG_SYS_CONSOLE_INFO_QUIET is not set -+# CONFIG_SYS_STDIO_DEREGISTER is not set -+# CONFIG_SPL_SYS_STDIO_DEREGISTER is not set -+# CONFIG_SYS_DEVICE_NULLDEV is not set -+ -+# -+# Logging -+# -+CONFIG_LOG=y -+CONFIG_LOG_MAX_LEVEL=6 -+CONFIG_LOG_DEFAULT_LEVEL=6 -+CONFIG_LOG_CONSOLE=y -+# CONFIG_LOGF_FILE is not set -+# CONFIG_LOGF_LINE is not set -+# CONFIG_LOGF_FUNC is not set -+CONFIG_LOGF_FUNC_PAD=20 -+# CONFIG_LOG_SYSLOG is not set -+# CONFIG_LOG_ERROR_RETURN is not set -+ -+# -+# Init options -+# -+# CONFIG_BOARD_TYPES is not set -+CONFIG_DISPLAY_CPUINFO=y -+CONFIG_DISPLAY_BOARDINFO=y -+# CONFIG_DISPLAY_BOARDINFO_LATE is not set -+ -+# -+# Start-up hooks -+# -+# CONFIG_CYCLIC is not set -+CONFIG_EVENT=y -+CONFIG_EVENT_DYNAMIC=y -+# CONFIG_EVENT_DEBUG is not set -+# CONFIG_ARCH_MISC_INIT is not set -+# CONFIG_BOARD_EARLY_INIT_F is not set -+# CONFIG_BOARD_EARLY_INIT_R is not set -+# CONFIG_BOARD_POSTCLK_INIT is not set -+CONFIG_BOARD_LATE_INIT=y -+# CONFIG_CLOCKS is not set -+# CONFIG_HWCONFIG is not set -+CONFIG_LAST_STAGE_INIT=y -+# CONFIG_MISC_INIT_R is not set -+# CONFIG_SYS_MALLOC_BOOTPARAMS is not set -+# CONFIG_ID_EEPROM is not set -+# CONFIG_RESET_PHY_R is not set -+ -+# -+# Security support -+# -+CONFIG_HASH=y -+# CONFIG_STACKPROTECTOR is not set -+# CONFIG_BOARD_RNG_SEED is not set -+ -+# -+# Update support -+# -+# CONFIG_UPDATE_TFTP is not set -+# CONFIG_ANDROID_AB is not set -+ -+# -+# Blob list -+# -+# CONFIG_BLOBLIST is not set -+CONFIG_SUPPORT_SPL=y -+# CONFIG_VPL is not set -+ -+# -+# Command line interface -+# -+CONFIG_CMDLINE=y -+CONFIG_HUSH_PARSER=y -+CONFIG_CMDLINE_EDITING=y -+# CONFIG_CMDLINE_PS_SUPPORT is not set -+CONFIG_AUTO_COMPLETE=y -+CONFIG_SYS_LONGHELP=y -+CONFIG_SYS_PROMPT="OpenWrt One> " -+CONFIG_SYS_PROMPT_HUSH_PS2="> " -+CONFIG_SYS_MAXARGS=16 +CONFIG_SYS_CBSIZE=512 +CONFIG_SYS_PBSIZE=1049 -+CONFIG_SYS_XTRACE=y -+CONFIG_BUILD_BIN2C=y -+ -+# -+# Commands -+# -+ -+# -+# Info commands -+# -+CONFIG_CMD_BDI=y -+# CONFIG_CMD_BDINFO_EXTRA is not set -+# CONFIG_CMD_CONFIG is not set -+CONFIG_CMD_CONSOLE=y ++CONFIG_LOGLEVEL=7 ++CONFIG_LOG=y ++CONFIG_BOARD_LATE_INIT=y ++CONFIG_HUSH_PARSER=y ++CONFIG_SYS_PROMPT="OpenWrt One> " ++CONFIG_SYS_MAXARGS=16 +CONFIG_CMD_CPU=y -+# CONFIG_CMD_HISTORY is not set +CONFIG_CMD_LICENSE=y -+# CONFIG_CMD_PMC is not set -+ -+# -+# Boot commands -+# -+CONFIG_CMD_BOOTD=y -+CONFIG_CMD_BOOTM=y -+# CONFIG_CMD_BOOTDEV is not set -+CONFIG_CMD_BOOTFLOW=y -+# CONFIG_CMD_BOOTMETH is not set -+CONFIG_BOOTM_EFI=y -+# CONFIG_CMD_BOOTZ is not set -+CONFIG_CMD_BOOTI=y -+CONFIG_BOOTM_LINUX=y +# CONFIG_BOOTM_NETBSD is not set -+# CONFIG_BOOTM_OPENRTOS is not set -+# CONFIG_BOOTM_OSE is not set +# CONFIG_BOOTM_PLAN9 is not set +# CONFIG_BOOTM_RTEMS is not set -+# CONFIG_CMD_VBE is not set +# CONFIG_BOOTM_VXWORKS is not set -+CONFIG_SYS_BOOTM_LEN=0x4000000 -+CONFIG_CMD_BOOTEFI=y -+CONFIG_CMD_BOOTEFI_HELLO_COMPILE=y -+# CONFIG_CMD_BOOTEFI_HELLO is not set -+# CONFIG_CMD_BOOTEFI_SELFTEST is not set ++# CONFIG_CMD_BOOTEFI_BOOTMGR is not set +CONFIG_CMD_BOOTMENU=y -+# CONFIG_CMD_ADTIMG is not set -+CONFIG_CMD_ELF=y -+CONFIG_CMD_FDT=y -+CONFIG_CMD_GO=y -+CONFIG_CMD_RUN=y -+CONFIG_CMD_IMI=y -+# CONFIG_CMD_IMLS is not set -+CONFIG_CMD_XIMG=y -+# CONFIG_CMD_ZBOOT is not set -+ -+# -+# Environment commands -+# +CONFIG_CMD_ASKENV=y -+CONFIG_CMD_EXPORTENV=y -+CONFIG_CMD_IMPORTENV=y -+CONFIG_CMD_EDITENV=y -+# CONFIG_CMD_GREPENV is not set -+CONFIG_CMD_SAVEENV=y +CONFIG_CMD_ERASEENV=y -+CONFIG_CMD_ENV_EXISTS=y -+CONFIG_CMD_ENV_READMEM=y -+# CONFIG_CMD_ENV_CALLBACK is not set +CONFIG_CMD_ENV_FLAGS=y -+# CONFIG_CMD_NVEDIT_EFI is not set -+# CONFIG_CMD_NVEDIT_INDIRECT is not set -+# CONFIG_CMD_NVEDIT_INFO is not set -+# CONFIG_CMD_NVEDIT_LOAD is not set -+# CONFIG_CMD_NVEDIT_SELECT is not set -+ -+# -+# Memory commands -+# -+# CONFIG_CMD_BINOP is not set -+# CONFIG_CMD_BLOBLIST is not set -+CONFIG_CMD_CRC32=y -+# CONFIG_CRC32_VERIFY is not set -+# CONFIG_CMD_EEPROM is not set -+# CONFIG_LOOPW is not set -+# CONFIG_CMD_MD5SUM is not set -+# CONFIG_CMD_MEMINFO is not set -+CONFIG_CMD_MEMORY=y -+# CONFIG_CMD_MEM_SEARCH is not set -+# CONFIG_CMD_MX_CYCLIC is not set -+CONFIG_CMD_RANDOM=y -+# CONFIG_CMD_MEMTEST is not set -+# CONFIG_CMD_SHA1SUM is not set +CONFIG_CMD_STRINGS=y -+ -+# -+# Compression commands -+# -+CONFIG_CMD_LZMADEC=y +# CONFIG_CMD_UNLZ4 is not set +# CONFIG_CMD_UNZIP is not set -+# CONFIG_CMD_ZIP is not set -+ -+# -+# Device access commands -+# -+# CONFIG_CMD_ARMFLASH is not set -+# CONFIG_CMD_BIND is not set -+# CONFIG_CMD_CLK is not set -+# CONFIG_CMD_DEMO is not set -+# CONFIG_CMD_DFU is not set +CONFIG_CMD_DM=y -+CONFIG_CMD_FLASH=y -+# CONFIG_CMD_FPGAD is not set -+# CONFIG_CMD_FUSE is not set +CONFIG_CMD_GPIO=y -+# CONFIG_CMD_GPIO_READ is not set +CONFIG_CMD_PWM=y -+# CONFIG_CMD_GPT is not set -+# CONFIG_RANDOM_UUID is not set -+# CONFIG_CMD_IDE is not set -+# CONFIG_CMD_IO is not set -+# CONFIG_CMD_IOTRACE is not set -+# CONFIG_CMD_I2C is not set -+CONFIG_CMD_LOADB=y -+# CONFIG_CMD_LOADM is not set -+CONFIG_CMD_LOADS=y -+# CONFIG_LOADS_ECHO is not set -+# CONFIG_CMD_SAVES is not set -+# CONFIG_SYS_LOADS_BAUD_CHANGE is not set -+CONFIG_CMD_LOADXY_TIMEOUT=90 -+# CONFIG_CMD_LSBLK is not set -+# CONFIG_CMD_MBR is not set -+# CONFIG_CMD_CLONE is not set +CONFIG_CMD_MTD=y -+CONFIG_CMD_NAND_EXT=y -+# CONFIG_CMD_ONENAND is not set -+# CONFIG_CMD_OSD is not set -+# CONFIG_CMD_PART is not set +CONFIG_CMD_PCI=y -+CONFIG_CMD_PINMUX=y -+# CONFIG_CMD_POWEROFF is not set -+# CONFIG_CMD_READ is not set -+# CONFIG_CMD_SATA is not set -+# CONFIG_CMD_SDRAM is not set -+CONFIG_CMD_SF=y +CONFIG_CMD_SF_TEST=y -+# CONFIG_CMD_SPI is not set -+# CONFIG_CMD_TSI148 is not set -+# CONFIG_CMD_UNIVERSE is not set +CONFIG_CMD_USB=y -+# CONFIG_CMD_USB_SDP is not set -+# CONFIG_CMD_RKMTD is not set -+# CONFIG_CMD_WRITE is not set -+ -+# -+# Shell scripting commands -+# -+# CONFIG_CMD_CAT is not set -+CONFIG_CMD_ECHO=y -+CONFIG_CMD_ITEST=y -+CONFIG_CMD_SOURCE=y -+CONFIG_CMD_SETEXPR=y -+# CONFIG_CMD_SETEXPR_FMT is not set -+# CONFIG_CMD_XXD is not set -+ -+# -+# Android support commands -+# -+CONFIG_CMD_NET=y -+CONFIG_CMD_BOOTP=y +CONFIG_CMD_DHCP=y -+# CONFIG_BOOTP_MAY_FAIL is not set -+CONFIG_BOOTP_BOOTPATH=y -+# CONFIG_BOOTP_VENDOREX is not set -+# CONFIG_BOOTP_BOOTFILESIZE is not set -+CONFIG_BOOTP_DNS=y -+# CONFIG_BOOTP_DNS2 is not set -+CONFIG_BOOTP_GATEWAY=y -+CONFIG_BOOTP_HOSTNAME=y -+# CONFIG_BOOTP_PREFER_SERVERIP is not set -+CONFIG_BOOTP_SUBNETMASK=y -+# CONFIG_BOOTP_NISDOMAIN is not set -+# CONFIG_BOOTP_NTPSERVER is not set -+# CONFIG_BOOTP_TIMEOFFSET is not set -+# CONFIG_CMD_PCAP is not set -+CONFIG_BOOTP_PXE=y -+CONFIG_BOOTP_PXE_CLIENTARCH=0x16 -+# CONFIG_BOOTP_PXE_DHCP_OPTION is not set -+CONFIG_BOOTP_VCI_STRING="U-Boot.armv8" -+CONFIG_CMD_TFTPBOOT=y -+# CONFIG_CMD_TFTPPUT is not set +CONFIG_CMD_TFTPSRV=y -+CONFIG_NET_TFTP_VARS=y +CONFIG_CMD_RARP=y -+# CONFIG_CMD_NFS is not set -+# CONFIG_SYS_DISABLE_AUTOLOAD is not set -+# CONFIG_CMD_WGET is not set -+# CONFIG_CMD_MII is not set -+# CONFIG_CMD_MDIO is not set +CONFIG_CMD_PING=y +CONFIG_CMD_CDP=y +CONFIG_CMD_SNTP=y +CONFIG_CMD_DNS=y +CONFIG_CMD_LINK_LOCAL=y -+# CONFIG_CMD_ETHSW is not set +CONFIG_CMD_PXE=y -+# CONFIG_CMD_WOL is not set -+ -+# -+# Misc commands -+# -+# CONFIG_CMD_2048 is not set -+# CONFIG_CMD_BSP is not set -+CONFIG_CMD_BLOCK_CACHE=y -+CONFIG_CMD_BUTTON=y +CONFIG_CMD_CACHE=y -+# CONFIG_CMD_CONITRACE is not set -+# CONFIG_CMD_CLS is not set -+# CONFIG_CMD_EFIDEBUG is not set -+CONFIG_CMD_EFICONFIG=y -+# CONFIG_CMD_EXCEPTION is not set -+CONFIG_CMD_LED=y -+# CONFIG_CMD_INI is not set -+# CONFIG_CMD_DATE is not set -+# CONFIG_CMD_TIME is not set -+# CONFIG_CMD_GETTIME is not set -+# CONFIG_CMD_PAUSE is not set -+CONFIG_CMD_SLEEP=y -+# CONFIG_CMD_TIMER is not set -+# CONFIG_CMD_SYSBOOT is not set -+# CONFIG_CMD_QFW is not set +CONFIG_CMD_PSTORE=y +CONFIG_CMD_PSTORE_MEM_ADDR=0x42ff0000 -+CONFIG_CMD_PSTORE_MEM_SIZE=0x10000 -+CONFIG_CMD_PSTORE_RECORD_SIZE=0x1000 -+CONFIG_CMD_PSTORE_CONSOLE_SIZE=0x1000 -+CONFIG_CMD_PSTORE_FTRACE_SIZE=0x1000 -+CONFIG_CMD_PSTORE_PMSG_SIZE=0x1000 -+CONFIG_CMD_PSTORE_ECC_SIZE=0 -+# CONFIG_CMD_TERMINAL is not set +CONFIG_CMD_UUID=y -+ -+# -+# TI specific command line interface -+# -+ -+# -+# Power commands -+# -+ -+# -+# Security commands -+# -+# CONFIG_CMD_AES is not set -+# CONFIG_CMD_BLOB is not set +CONFIG_CMD_HASH=y -+# CONFIG_CMD_HVC is not set +CONFIG_CMD_SMC=y -+# CONFIG_HASH_VERIFY is not set -+ -+# -+# Firmware commands -+# -+ -+# -+# Filesystem commands -+# -+# CONFIG_CMD_BTRFS is not set -+# CONFIG_CMD_EROFS is not set -+# CONFIG_CMD_EXT2 is not set -+# CONFIG_CMD_EXT4 is not set +CONFIG_CMD_FAT=y -+# CONFIG_CMD_SQUASHFS is not set +CONFIG_CMD_FS_GENERIC=y +CONFIG_CMD_FS_UUID=y -+# CONFIG_CMD_JFFS2 is not set -+# CONFIG_CMD_MTDPARTS is not set -+CONFIG_MTDIDS_DEFAULT="" -+CONFIG_MTDPARTS_DEFAULT="" -+# CONFIG_CMD_REISER is not set -+# CONFIG_CMD_ZFS is not set -+ -+# -+# Debug commands -+# -+# CONFIG_CMD_DIAG is not set -+# CONFIG_CMD_EVENT is not set -+# CONFIG_CMD_LOG is not set +CONFIG_CMD_UBI=y +CONFIG_CMD_UBI_RENAME=y -+CONFIG_CMD_UBIFS=y -+ -+# -+# Partition Types -+# -+CONFIG_PARTITIONS=y -+# CONFIG_MAC_PARTITION is not set -+CONFIG_DOS_PARTITION=y -+# CONFIG_ISO_PARTITION is not set -+# CONFIG_AMIGA_PARTITION is not set -+# CONFIG_EFI_PARTITION is not set -+CONFIG_PARTITION_UUIDS=y -+CONFIG_SUPPORT_OF_CONTROL=y -+ -+# -+# Device Tree Control -+# -+CONFIG_OF_CONTROL=y -+CONFIG_OF_REAL=y -+# CONFIG_OF_LIVE is not set -+CONFIG_OF_SEPARATE=y -+# CONFIG_OF_EMBED is not set -+# CONFIG_OF_BOARD is not set -+# CONFIG_OF_OMIT_DTB is not set -+CONFIG_DEVICE_TREE_INCLUDES="" -+CONFIG_OF_LIST="openwrt-one" -+# CONFIG_MULTI_DTB_FIT is not set -+CONFIG_OF_TAG_MIGRATE=y -+# CONFIG_OF_DTB_PROPS_REMOVE is not set -+ -+# -+# Environment -+# -+CONFIG_ENV_SUPPORT=y -+CONFIG_SAVEENV=y +CONFIG_ENV_OVERWRITE=y -+CONFIG_ENV_MIN_ENTRIES=64 -+CONFIG_ENV_MAX_ENTRIES=512 -+# CONFIG_ENV_IS_NOWHERE is not set -+# CONFIG_ENV_IS_IN_EEPROM is not set -+# CONFIG_ENV_IS_IN_FAT is not set -+# CONFIG_ENV_IS_IN_EXT4 is not set -+# CONFIG_ENV_IS_IN_FLASH is not set -+# CONFIG_ENV_IS_IN_MTD is not set -+# CONFIG_ENV_IS_IN_NAND is not set -+# CONFIG_ENV_IS_IN_NVRAM is not set -+# CONFIG_ENV_IS_IN_ONENAND is not set -+# CONFIG_ENV_IS_IN_REMOTE is not set -+# CONFIG_ENV_IS_IN_SPI_FLASH is not set +CONFIG_ENV_IS_IN_UBI=y +CONFIG_SYS_REDUNDAND_ENVIRONMENT=y +CONFIG_ENV_UBI_PART="ubi" +CONFIG_ENV_UBI_VOLUME="ubootenv" +CONFIG_ENV_UBI_VOLUME_REDUND="ubootenv2" -+# CONFIG_ENV_UBI_VOLUME_CREATE is not set -+CONFIG_ENV_UBI_VID_OFFSET=0 +CONFIG_SYS_RELOC_GD_ENV_ADDR=y +CONFIG_USE_DEFAULT_ENV_FILE=y +CONFIG_DEFAULT_ENV_FILE="openwrt-one-spi-nand_env" +CONFIG_ENV_VARS_UBOOT_RUNTIME_CONFIG=y -+# CONFIG_ENV_IMPORT_FDT is not set -+# CONFIG_ENV_APPEND is not set -+# CONFIG_ENV_WRITEABLE_LIST is not set -+# CONFIG_ENV_ACCESS_IGNORE_FORCE is not set -+# CONFIG_USE_BOOTFILE is not set -+# CONFIG_USE_ETHPRIME is not set -+# CONFIG_USE_HOSTNAME is not set +CONFIG_VERSION_VARIABLE=y -+CONFIG_NET=y -+CONFIG_ARP_TIMEOUT=5000 -+CONFIG_NET_RETRY_COUNT=5 -+CONFIG_PROT_UDP=y -+CONFIG_BOOTDEV_ETH=y -+# CONFIG_BOOTP_SEND_HOSTNAME is not set +CONFIG_NET_RANDOM_ETHADDR=y -+# CONFIG_NETCONSOLE is not set -+# CONFIG_IP_DEFRAG is not set -+# CONFIG_SYS_FAULT_ECHO_LINK_DOWN is not set -+CONFIG_TFTP_BLOCKSIZE=1468 -+# CONFIG_TFTP_PORT is not set -+CONFIG_TFTP_WINDOWSIZE=1 -+# CONFIG_TFTP_TSIZE is not set -+# CONFIG_SERVERIP_FROM_PROXYDHCP is not set -+CONFIG_SERVERIP_FROM_PROXYDHCP_DELAY_MS=100 -+# CONFIG_KEEP_SERVERADDR is not set -+# CONFIG_UDP_CHECKSUM is not set -+# CONFIG_BOOTP_SERVERIP is not set -+CONFIG_BOOTP_MAX_ROOT_PATH_LEN=64 -+# CONFIG_USE_GATEWAYIP is not set -+# CONFIG_USE_IPADDR is not set -+# CONFIG_USE_NETMASK is not set -+# CONFIG_USE_ROOTPATH is not set -+# CONFIG_USE_SERVERIP is not set -+# CONFIG_PROT_TCP is not set -+# CONFIG_IPV6 is not set -+CONFIG_SYS_RX_ETH_BUFFER=4 -+ -+# -+# Device Drivers -+# -+ -+# -+# Generic Driver Options -+# -+CONFIG_DM=y -+# CONFIG_DM_WARN is not set -+# CONFIG_DM_DEBUG is not set -+# CONFIG_DM_STATS is not set -+CONFIG_DM_DEVICE_REMOVE=y -+CONFIG_DM_EVENT=y -+CONFIG_DM_STDIO=y -+CONFIG_DM_SEQ_ALIAS=y -+# CONFIG_DM_DMA is not set +CONFIG_REGMAP=y +CONFIG_SYSCON=y -+# CONFIG_DEVRES is not set -+CONFIG_SIMPLE_BUS=y -+# CONFIG_SIMPLE_BUS_CORRECT_RANGE is not set -+# CONFIG_SIMPLE_PM_BUS is not set -+CONFIG_OF_TRANSLATE=y -+# CONFIG_TRANSLATION_OFFSET is not set -+CONFIG_DM_DEV_READ_INLINE=y -+# CONFIG_OFNODE_MULTI_TREE is not set -+# CONFIG_BOUNCE_BUFFER is not set -+# CONFIG_ADC is not set -+# CONFIG_ADC_EXYNOS is not set -+# CONFIG_ADC_SANDBOX is not set -+# CONFIG_SARADC_MESON is not set -+# CONFIG_SARADC_ROCKCHIP is not set -+# CONFIG_SATA is not set -+# CONFIG_SCSI_AHCI is not set -+ -+# -+# SATA/SCSI device support -+# -+# CONFIG_AXI is not set -+ -+# -+# Bus devices -+# -+CONFIG_BLK=y -+CONFIG_BLOCK_CACHE=y -+# CONFIG_BLKMAP is not set -+# CONFIG_EFI_MEDIA is not set -+# CONFIG_IDE is not set -+# CONFIG_LBA48 is not set -+# CONFIG_SYS_64BIT_LBA is not set -+# CONFIG_RKMTD is not set -+# CONFIG_BOOTCOUNT_LIMIT is not set -+ -+# -+# Button Support -+# +CONFIG_BUTTON=y -+# CONFIG_BUTTON_ADC is not set +CONFIG_BUTTON_GPIO=y -+ -+# -+# Cache Controller drivers -+# -+# CONFIG_CACHE is not set -+# CONFIG_L2X0_CACHE is not set -+# CONFIG_V5L2_CACHE is not set -+# CONFIG_NCORE_CACHE is not set -+# CONFIG_SIFIVE_CCACHE is not set -+ -+# -+# Clock -+# +CONFIG_CLK=y -+# CONFIG_CLK_CCF is not set -+# CONFIG_CLK_GPIO is not set -+# CONFIG_CLK_CDCE9XX is not set -+# CONFIG_CLK_ICS8N3QV01 is not set -+# CONFIG_CLK_K210 is not set -+# CONFIG_CLK_MPC83XX is not set -+# CONFIG_CLK_XLNX_CLKWZRD is not set -+# CONFIG_CLK_AT91 is not set -+# CONFIG_CLK_RCAR is not set -+# CONFIG_CLK_RCAR_CPG_LIB is not set -+# CONFIG_CLK_SIFIVE is not set -+# CONFIG_CLK_TI_AM3_DPLL is not set -+# CONFIG_CLK_TI_CTRL is not set -+# CONFIG_CLK_TI_GATE is not set -+# CONFIG_CLK_K3 is not set -+CONFIG_CPU=y -+# CONFIG_CPU_IMX is not set -+ -+# -+# Hardware crypto devices -+# -+# CONFIG_DM_HASH is not set -+# CONFIG_FSL_CAAM is not set -+CONFIG_CAAM_64BIT=y -+# CONFIG_SYS_FSL_SEC_BE is not set -+# CONFIG_SYS_FSL_SEC_LE is not set -+# CONFIG_NPCM_AES is not set -+# CONFIG_NPCM_SHA is not set -+# CONFIG_DDR_SPD is not set -+# CONFIG_IMX_SNPS_DDR_PHY is not set -+ -+# -+# Demo for driver model -+# -+# CONFIG_DM_DEMO is not set -+ -+# -+# DFU support -+# -+ -+# -+# DMA Support -+# -+# CONFIG_DMA is not set -+# CONFIG_DMA_LPC32XX is not set -+# CONFIG_TI_EDMA3 is not set -+# CONFIG_DMA_LEGACY is not set -+ -+# -+# Extcon Support -+# -+# CONFIG_EXTCON is not set -+ -+# -+# Fastboot support -+# -+# CONFIG_UDP_FUNCTION_FASTBOOT is not set -+# CONFIG_TCP_FUNCTION_FASTBOOT is not set -+CONFIG_FIRMWARE=y -+CONFIG_ARM_PSCI_FW=y -+# CONFIG_ZYNQMP_FIRMWARE is not set -+# CONFIG_ARM_SMCCC_FEATURES is not set -+# CONFIG_ARM_FFA_TRANSPORT is not set -+# CONFIG_SCMI_FIRMWARE is not set -+# CONFIG_DM_FUZZING_ENGINE is not set -+ -+# -+# FPGA support -+# -+# CONFIG_FPGA_ALTERA is not set -+# CONFIG_FPGA_SOCFPGA is not set -+# CONFIG_FPGA_LATTICE is not set -+# CONFIG_FPGA_XILINX is not set -+# CONFIG_DM_FPGA is not set -+# CONFIG_FWU_MDATA is not set -+CONFIG_GPIO=y +CONFIG_GPIO_HOG=y -+# CONFIG_DM_GPIO_LOOKUP_LABEL is not set -+# CONFIG_ALTERA_PIO is not set -+# CONFIG_BCM2835_GPIO is not set -+# CONFIG_DWAPB_GPIO is not set -+# CONFIG_AT91_GPIO is not set -+# CONFIG_ATMEL_PIO4 is not set -+# CONFIG_ASPEED_GPIO is not set -+# CONFIG_DA8XX_GPIO is not set -+# CONFIG_HIKEY_GPIO is not set -+# CONFIG_INTEL_BROADWELL_GPIO is not set -+# CONFIG_INTEL_GPIO is not set -+# CONFIG_INTEL_ICH6_GPIO is not set -+# CONFIG_IMX_RGPIO2P is not set -+# CONFIG_IPROC_GPIO is not set -+# CONFIG_HSDK_CREG_GPIO is not set -+# CONFIG_KIRKWOOD_GPIO is not set -+# CONFIG_LPC32XX_GPIO is not set -+# CONFIG_MCP230XX_GPIO is not set -+# CONFIG_MSM_GPIO is not set -+# CONFIG_MXC_GPIO is not set -+# CONFIG_MXS_GPIO is not set -+# CONFIG_NPCM_GPIO is not set -+# CONFIG_CMD_PCA953X is not set -+# CONFIG_ROCKCHIP_GPIO is not set -+# CONFIG_XILINX_GPIO is not set -+# CONFIG_TCA642X is not set -+# CONFIG_TEGRA_GPIO is not set -+# CONFIG_TEGRA186_GPIO is not set -+# CONFIG_VYBRID_GPIO is not set -+# CONFIG_SIFIVE_GPIO is not set -+# CONFIG_ZYNQ_GPIO is not set -+# CONFIG_DM_74X164 is not set -+# CONFIG_PCA953X is not set -+# CONFIG_MPC8XXX_GPIO is not set -+# CONFIG_MPC8XX_GPIO is not set -+# CONFIG_NX_GPIO is not set -+# CONFIG_NOMADIK_GPIO is not set -+# CONFIG_ZYNQMP_GPIO_MODEPIN is not set -+# CONFIG_SLG7XL45106_I2C_GPO is not set -+# CONFIG_TURRIS_OMNIA_MCU is not set -+# CONFIG_FTGPIO010 is not set -+ -+# -+# Hardware Spinlock Support -+# -+# CONFIG_DM_HWSPINLOCK is not set -+CONFIG_I2C=y -+# CONFIG_DM_I2C is not set -+# CONFIG_SYS_I2C_LEGACY is not set -+# CONFIG_SPL_SYS_I2C_LEGACY is not set -+# CONFIG_SYS_I2C_FSL is not set -+# CONFIG_SYS_I2C_DW is not set -+# CONFIG_SYS_I2C_IMX_LPI2C is not set -+# CONFIG_SYS_I2C_MTK is not set -+# CONFIG_SYS_I2C_MICROCHIP is not set -+# CONFIG_SYS_I2C_MXC is not set -+# CONFIG_SYS_I2C_NPCM is not set -+# CONFIG_SYS_I2C_SOFT is not set -+# CONFIG_SYS_I2C_MV is not set -+# CONFIG_SYS_I2C_MVTWSI is not set -+CONFIG_INPUT=y -+# CONFIG_DM_KEYBOARD is not set -+# CONFIG_CROS_EC_KEYB is not set -+# CONFIG_TEGRA_KEYBOARD is not set -+# CONFIG_TWL4030_INPUT is not set -+ -+# -+# IOMMU device drivers -+# -+# CONFIG_IOMMU is not set -+ -+# -+# LED Support -+# +CONFIG_LED=y -+# CONFIG_LED_PWM is not set +CONFIG_LED_BLINK=y +CONFIG_LED_GPIO=y -+# CONFIG_LED_STATUS is not set -+ -+# -+# Mailbox Controller Support -+# -+# CONFIG_DM_MAILBOX is not set -+ -+# -+# Memory Controller drivers -+# -+# CONFIG_MEMORY is not set -+# CONFIG_ATMEL_EBI is not set -+# CONFIG_MFD_ATMEL_SMC is not set -+ -+# -+# Multifunction device drivers -+# -+# CONFIG_MISC is not set -+# CONFIG_NVMEM is not set -+# CONFIG_SPL_NVMEM is not set -+# CONFIG_SMSC_LPC47M is not set -+# CONFIG_SMSC_SIO1007 is not set -+# CONFIG_CROS_EC is not set -+# CONFIG_DS4510 is not set -+# CONFIG_FSL_SEC_MON is not set -+# CONFIG_IRQ is not set -+# CONFIG_NPCM_HOST is not set -+# CONFIG_NUVOTON_NCT6102D is not set -+# CONFIG_PWRSEQ is not set -+# CONFIG_PCA9551_LED is not set -+# CONFIG_TEST_DRV is not set -+# CONFIG_USB_HUB_USB251XB is not set -+# CONFIG_TWL4030_LED is not set -+# CONFIG_WINBOND_W83627 is not set -+# CONFIG_FS_LOADER is not set -+ -+# -+# MMC Host controller Support -+# +# CONFIG_MMC is not set -+# CONFIG_MMC_BROKEN_CD is not set -+# CONFIG_DM_MMC is not set -+# CONFIG_FSL_ESDHC is not set -+# CONFIG_FSL_ESDHC_IMX is not set -+ -+# -+# MTD Support -+# -+CONFIG_MTD_PARTITIONS=y +CONFIG_MTD=y +CONFIG_DM_MTD=y -+# CONFIG_MTD_NOR_FLASH is not set -+# CONFIG_MTD_CONCAT is not set -+# CONFIG_SYS_MTDPARTS_RUNTIME is not set -+# CONFIG_FLASH_CFI_DRIVER is not set -+# CONFIG_CFI_FLASH is not set -+# CONFIG_ALTERA_QSPI is not set -+# CONFIG_HBMC_AM654 is not set -+# CONFIG_SAMSUNG_ONENAND is not set -+# CONFIG_USE_SYS_MAX_FLASH_BANKS is not set -+CONFIG_MTD_NAND_CORE=y +# CONFIG_MTD_RAW_NAND is not set +CONFIG_MTD_SPI_NAND=y -+ -+# -+# SPI Flash Support -+# +CONFIG_DM_SPI_FLASH=y -+CONFIG_SPI_FLASH=y -+CONFIG_SF_DEFAULT_BUS=0 -+CONFIG_SF_DEFAULT_CS=0 -+# CONFIG_BOOTDEV_SPI_FLASH is not set +CONFIG_SPI_FLASH_SFDP_SUPPORT=y -+CONFIG_SPI_FLASH_SMART_HWCAPS=y -+# CONFIG_SPI_NOR_BOOT_SOFT_RESET_EXT_INVERT is not set -+# CONFIG_SPI_FLASH_SOFT_RESET is not set -+# CONFIG_SPI_FLASH_BAR is not set -+CONFIG_SPI_FLASH_LOCK=y -+CONFIG_SPI_FLASH_UNLOCK_ALL=y -+# CONFIG_SPI_FLASH_ATMEL is not set +CONFIG_SPI_FLASH_EON=y +CONFIG_SPI_FLASH_GIGADEVICE=y +CONFIG_SPI_FLASH_ISSI=y +CONFIG_SPI_FLASH_MACRONIX=y +CONFIG_SPI_FLASH_SPANSION=y -+# CONFIG_SPI_FLASH_S28HX_T is not set +CONFIG_SPI_FLASH_STMICRO=y -+# CONFIG_SPI_FLASH_MT35XU is not set -+# CONFIG_SPI_FLASH_SST is not set +CONFIG_SPI_FLASH_WINBOND=y +CONFIG_SPI_FLASH_XMC=y +CONFIG_SPI_FLASH_XTX=y -+# CONFIG_SPI_FLASH_ZBIT is not set -+CONFIG_SPI_FLASH_USE_4K_SECTORS=y -+# CONFIG_SPI_FLASH_DATAFLASH is not set +CONFIG_SPI_FLASH_MTD=y -+ -+# -+# UBI support -+# -+CONFIG_UBI_SILENCE_MSG=y -+CONFIG_MTD_UBI=y -+CONFIG_MTD_UBI_MODULE=y -+CONFIG_MTD_UBI_WL_THRESHOLD=4096 -+CONFIG_MTD_UBI_BEB_LIMIT=20 -+# CONFIG_MTD_UBI_FASTMAP is not set -+# CONFIG_NVMXIP is not set -+# CONFIG_NVMXIP_QSPI is not set -+# CONFIG_NMBM is not set -+ -+# -+# Multiplexer drivers -+# -+# CONFIG_MULTIPLEXER is not set -+# CONFIG_BITBANGMII is not set -+# CONFIG_MV88E6352_SWITCH is not set -+CONFIG_PHYLIB=y -+# CONFIG_PHY_ADDR_ENABLE is not set -+# CONFIG_B53_SWITCH is not set -+# CONFIG_MV88E61XX_SWITCH is not set -+# CONFIG_PHYLIB_10G is not set -+# CONFIG_PHY_ADIN is not set -+# CONFIG_PHY_AIROHA is not set -+# CONFIG_PHY_AQUANTIA is not set -+# CONFIG_PHY_ATHEROS is not set -+# CONFIG_SPL_PHY_ATHEROS is not set -+# CONFIG_PHY_BROADCOM is not set -+# CONFIG_PHY_CORTINA is not set -+# CONFIG_PHY_DAVICOM is not set -+# CONFIG_PHY_ET1011C is not set -+# CONFIG_PHY_LXT is not set -+# CONFIG_PHY_MARVELL is not set -+# CONFIG_PHY_MARVELL_10G is not set -+# CONFIG_PHY_MESON_GXL is not set -+# CONFIG_PHY_MICREL is not set -+# CONFIG_PHY_MOTORCOMM is not set -+# CONFIG_PHY_MSCC is not set -+# CONFIG_PHY_NATSEMI is not set -+# CONFIG_PHY_NXP_C45_TJA11XX is not set -+# CONFIG_PHY_NXP_TJA11XX is not set -+# CONFIG_PHY_REALTEK is not set -+# CONFIG_PHY_SMSC is not set -+# CONFIG_PHY_TERANETICS is not set -+# CONFIG_PHY_TI is not set -+# CONFIG_PHY_TI_DP83867 is not set -+# CONFIG_PHY_TI_DP83869 is not set -+# CONFIG_PHY_TI_GENERIC is not set -+# CONFIG_PHY_VITESSE is not set -+# CONFIG_PHY_XILINX is not set -+# CONFIG_PHY_XILINX_GMII2RGMII is not set -+# CONFIG_PHY_XWAY is not set -+# CONFIG_PHY_ETHERNET_ID is not set +CONFIG_PHY_FIXED=y -+# CONFIG_PHY_NCSI is not set -+# CONFIG_FSL_MEMAC is not set -+CONFIG_PHY_RESET_DELAY=0 -+# CONFIG_FSL_PFE is not set -+CONFIG_ETH=y -+CONFIG_DM_ETH=y -+# CONFIG_DM_MDIO is not set -+# CONFIG_DM_ETH_PHY is not set -+CONFIG_NETDEVICES=y -+# CONFIG_PHY_GIGE is not set -+# CONFIG_ALTERA_TSE is not set -+# CONFIG_BCM_SF2_ETH is not set -+# CONFIG_BCMGENET is not set -+# CONFIG_BNXT_ETH is not set -+# CONFIG_CALXEDA_XGMAC is not set -+# CONFIG_DRIVER_DM9000 is not set -+# CONFIG_DWC_ETH_QOS is not set -+# CONFIG_EEPRO100 is not set -+# CONFIG_ETH_DESIGNWARE is not set -+# CONFIG_ETH_DESIGNWARE_MESON8B is not set -+# CONFIG_ETHOC is not set -+# CONFIG_FMAN_ENET is not set -+# CONFIG_FTMAC100 is not set -+# CONFIG_FTGMAC100 is not set -+# CONFIG_MCFFEC is not set -+# CONFIG_FSLDMAFEC is not set -+# CONFIG_KS8851_MLL is not set -+# CONFIG_LITEETH is not set -+# CONFIG_MACB is not set -+# CONFIG_NET_NPCM750 is not set -+# CONFIG_PCH_GBE is not set -+# CONFIG_RGMII is not set -+# CONFIG_MII is not set -+# CONFIG_RMII is not set -+# CONFIG_PCNET is not set -+# CONFIG_QE_UEC is not set -+# CONFIG_RTL8139 is not set -+# CONFIG_SMC911X is not set -+# CONFIG_SUN7I_GMAC is not set -+# CONFIG_SUN4I_EMAC is not set -+# CONFIG_SUN8I_EMAC is not set -+# CONFIG_SH_ETHER is not set -+# CONFIG_DRIVER_TI_CPSW is not set -+# CONFIG_DRIVER_TI_EMAC is not set -+# CONFIG_DRIVER_TI_KEYSTONE_NET is not set -+# CONFIG_TULIP is not set -+# CONFIG_XILINX_AXIEMAC is not set -+# CONFIG_VSC7385_ENET is not set -+# CONFIG_XILINX_EMACLITE is not set -+# CONFIG_ZYNQ_GEM is not set -+# CONFIG_SYS_DPAA_QBMAN is not set -+# CONFIG_TSEC_ENET is not set +CONFIG_MEDIATEK_ETH=y -+# CONFIG_HIFEMAC_ETH is not set -+# CONFIG_HIGMACV300_ETH is not set -+# CONFIG_NVME is not set -+# CONFIG_NVME_APPLE is not set -+ -+# -+# PCI Endpoint -+# -+# CONFIG_PCI_ENDPOINT is not set -+# CONFIG_X86_PCH7 is not set -+# CONFIG_X86_PCH9 is not set -+ -+# -+# PHY Subsystem -+# +CONFIG_PHY=y -+# CONFIG_NOP_PHY is not set -+# CONFIG_MIPI_DPHY_HELPERS is not set -+# CONFIG_BCM_SR_PCIE_PHY is not set -+# CONFIG_OMAP_USB2_PHY is not set +CONFIG_PHY_MTK_TPHY=y -+ -+# -+# Rockchip PHY driver -+# -+# CONFIG_PHY_CADENCE_SIERRA is not set -+# CONFIG_PHY_CADENCE_TORRENT is not set -+# CONFIG_MSM8916_USB_PHY is not set -+# CONFIG_MVEBU_COMPHY_SUPPORT is not set -+ -+# -+# Pin controllers -+# +CONFIG_PINCTRL=y -+CONFIG_PINCTRL_FULL=y -+CONFIG_PINCTRL_GENERIC=y -+CONFIG_PINMUX=y +CONFIG_PINCONF=y -+CONFIG_PINCONF_RECURSIVE=y -+# CONFIG_PINCTRL_AT91 is not set -+# CONFIG_PINCTRL_AT91PIO4 is not set -+# CONFIG_PINCTRL_INTEL is not set -+# CONFIG_PINCTRL_QE is not set -+# CONFIG_PINCTRL_ROCKCHIP_RV1108 is not set -+# CONFIG_PINCTRL_SINGLE is not set -+# CONFIG_PINCTRL_STM32 is not set -+# CONFIG_PINCTRL_STMFX is not set -+# CONFIG_PINCTRL_K210 is not set -+CONFIG_PINCTRL_MTK=y -+# CONFIG_PINCTRL_MT7622 is not set -+# CONFIG_PINCTRL_MT7623 is not set -+# CONFIG_PINCTRL_MT7629 is not set +CONFIG_PINCTRL_MT7981=y -+# CONFIG_PINCTRL_MT7986 is not set -+# CONFIG_PINCTRL_MT7988 is not set -+# CONFIG_PINCTRL_MT8512 is not set -+# CONFIG_PINCTRL_MT8516 is not set -+# CONFIG_PINCTRL_MT8518 is not set -+CONFIG_POWER=y -+# CONFIG_POWER_LEGACY is not set -+# CONFIG_ACPI_PMC is not set -+ -+# -+# Power Domain Support -+# +CONFIG_POWER_DOMAIN=y -+# CONFIG_APPLE_PMGR_POWER_DOMAIN is not set +CONFIG_MTK_POWER_DOMAIN=y -+# CONFIG_DM_PMIC is not set -+# CONFIG_PMIC_TPS65217 is not set -+# CONFIG_POWER_TPS65218 is not set -+# CONFIG_POWER_TPS62362 is not set -+# CONFIG_DM_REGULATOR is not set -+# CONFIG_TPS6586X_POWER is not set -+# CONFIG_POWER_MT6323 is not set +CONFIG_DM_PWM=y -+# CONFIG_PWM_ASPEED is not set -+# CONFIG_PWM_CADENCE_TTC is not set -+# CONFIG_PWM_CROS_EC is not set -+# CONFIG_PWM_EXYNOS is not set -+# CONFIG_PWM_IMX is not set -+# CONFIG_PWM_MESON is not set +CONFIG_PWM_MTK=y -+# CONFIG_PWM_ROCKCHIP is not set -+# CONFIG_PWM_SANDBOX is not set -+# CONFIG_PWM_SIFIVE is not set -+# CONFIG_PWM_TEGRA is not set -+# CONFIG_PWM_SUNXI is not set -+# CONFIG_U_QE is not set -+# CONFIG_RAM is not set -+ -+# -+# Reboot Mode Support -+# -+# CONFIG_DM_REBOOT_MODE is not set -+ -+# -+# Remote Processor drivers -+# -+ -+# -+# Reset Controller Support -+# -+# CONFIG_RESET_AST2500 is not set -+# CONFIG_RESET_AST2600 is not set -+CONFIG_RESET_MEDIATEK=y -+# CONFIG_RESET_HISILICON is not set -+# CONFIG_RESET_SYSCON is not set -+# CONFIG_RESET_SCMI is not set -+# CONFIG_RESET_DRA7 is not set -+# CONFIG_DM_RNG is not set -+ -+# -+# Real Time Clock -+# -+# CONFIG_DM_RTC is not set -+# CONFIG_RTC_ENABLE_32KHZ_OUTPUT is not set -+# CONFIG_RTC_DS1337 is not set -+# CONFIG_RTC_DS1338 is not set -+# CONFIG_RTC_DS1374 is not set -+# CONFIG_RTC_DS3231 is not set -+# CONFIG_RTC_PCF8563 is not set -+# CONFIG_RTC_PT7C4338 is not set -+# CONFIG_RTC_PL031 is not set -+# CONFIG_RTC_S35392A is not set -+# CONFIG_RTC_MC13XXX is not set -+# CONFIG_RTC_MC146818 is not set -+# CONFIG_RTC_M41T62 is not set -+# CONFIG_SCSI is not set -+# CONFIG_DM_SCSI is not set -+CONFIG_SERIAL=y -+CONFIG_BAUDRATE=115200 -+# CONFIG_DEFAULT_ENV_IS_RW is not set -+CONFIG_REQUIRE_SERIAL_CONSOLE=y -+# CONFIG_SPECIFY_CONSOLE_INDEX is not set -+CONFIG_SERIAL_PRESENT=y +CONFIG_DM_SERIAL=y -+# CONFIG_SERIAL_RX_BUFFER is not set -+# CONFIG_SERIAL_PUTS is not set -+# CONFIG_SERIAL_SEARCH_ALL is not set -+# CONFIG_SERIAL_PROBE_ALL is not set -+# CONFIG_VPL_DM_SERIAL is not set -+CONFIG_DEBUG_UART_MTK=y -+CONFIG_DEBUG_UART_SHIFT=0 -+# CONFIG_DEBUG_UART_ANNOUNCE is not set -+# CONFIG_DEBUG_UART_SKIP_INIT is not set -+# CONFIG_ALTERA_JTAG_UART is not set -+# CONFIG_ALTERA_UART is not set -+# CONFIG_ARC_SERIAL is not set -+# CONFIG_ARM_DCC is not set -+# CONFIG_ATMEL_USART is not set -+# CONFIG_BCM6345_SERIAL is not set -+# CONFIG_COREBOOT_SERIAL is not set -+# CONFIG_CORTINA_UART is not set -+# CONFIG_FSL_LINFLEXUART is not set -+# CONFIG_FSL_LPUART is not set -+# CONFIG_MVEBU_A3700_UART is not set -+# CONFIG_MCFUART is not set -+# CONFIG_NULLDEV_SERIAL is not set -+# CONFIG_SYS_NS16550 is not set -+# CONFIG_PL01X_SERIAL is not set -+# CONFIG_ROCKCHIP_SERIAL is not set -+# CONFIG_XILINX_UARTLITE is not set -+# CONFIG_MSM_SERIAL is not set -+# CONFIG_MSM_GENI_SERIAL is not set -+# CONFIG_MXS_AUART_SERIAL is not set -+# CONFIG_OMAP_SERIAL is not set -+# CONFIG_SIFIVE_SERIAL is not set -+# CONFIG_ZYNQ_SERIAL is not set +CONFIG_MTK_SERIAL=y -+# CONFIG_MT7620_SERIAL is not set -+# CONFIG_NPCM_SERIAL is not set -+# CONFIG_SM is not set -+# CONFIG_MESON_SM is not set -+# CONFIG_SMEM is not set -+ -+# -+# Sound support -+# -+# CONFIG_SOUND is not set -+ -+# -+# SOC (System On Chip) specific Drivers -+# -+# CONFIG_SOC_DEVICE is not set -+# CONFIG_SOC_TI is not set +CONFIG_SPI=y +CONFIG_DM_SPI=y -+CONFIG_SPI_MEM=y -+# CONFIG_SPI_DIRMAP is not set -+# CONFIG_ALTERA_SPI is not set -+# CONFIG_APPLE_SPI is not set -+# CONFIG_ATCSPI200_SPI is not set -+# CONFIG_ATMEL_SPI is not set -+# CONFIG_BCMSTB_SPI is not set -+# CONFIG_CORTINA_SFLASH is not set -+# CONFIG_CADENCE_QSPI is not set -+# CONFIG_CF_SPI is not set -+# CONFIG_DESIGNWARE_SPI is not set -+# CONFIG_EXYNOS_SPI is not set -+# CONFIG_FSL_DSPI is not set -+# CONFIG_FSL_QSPI is not set -+# CONFIG_GXP_SPI is not set -+# CONFIG_ICH_SPI is not set -+# CONFIG_IPROC_QSPI is not set -+# CONFIG_KIRKWOOD_SPI is not set -+# CONFIG_MICROCHIP_COREQSPI is not set -+# CONFIG_MPC8XXX_SPI is not set -+# CONFIG_MTK_SNOR is not set -+# CONFIG_MTK_SNFI_SPI is not set +CONFIG_MTK_SPIM=y -+# CONFIG_MVEBU_A3700_SPI is not set -+# CONFIG_MXS_SPI is not set -+# CONFIG_SPI_MXIC is not set -+# CONFIG_NPCM_FIU_SPI is not set -+# CONFIG_NPCM_PSPI is not set -+# CONFIG_NXP_FSPI is not set -+# CONFIG_OMAP3_SPI is not set -+# CONFIG_PL022_SPI is not set -+# CONFIG_ROCKCHIP_SFC is not set -+# CONFIG_ROCKCHIP_SPI is not set -+# CONFIG_SPI_ASPEED_SMC is not set -+# CONFIG_SPI_SIFIVE is not set -+# CONFIG_SOFT_SPI is not set -+# CONFIG_SPI_SN_F_OSPI is not set -+# CONFIG_SPI_SUNXI is not set -+# CONFIG_TEGRA114_SPI is not set -+# CONFIG_TEGRA20_SFLASH is not set -+# CONFIG_TEGRA20_SLINK is not set -+# CONFIG_TEGRA210_QSPI is not set -+# CONFIG_TI_QSPI is not set -+# CONFIG_XILINX_SPI is not set -+# CONFIG_ZYNQ_SPI is not set -+# CONFIG_ZYNQ_QSPI is not set -+# CONFIG_ZYNQMP_GQSPI is not set -+# CONFIG_SH_QSPI is not set -+# CONFIG_MXC_SPI is not set -+ -+# -+# SPMI support -+# -+# CONFIG_SPMI is not set -+# CONFIG_SYSINFO is not set -+ -+# -+# System reset device drivers -+# -+# CONFIG_SYSRESET is not set -+# CONFIG_TEE is not set -+# CONFIG_DM_THERMAL is not set -+ -+# -+# Timer Support -+# -+# CONFIG_TIMER is not set -+ -+# -+# TPM support -+# +CONFIG_USB=y -+CONFIG_DM_USB=y -+# CONFIG_DM_USB_GADGET is not set -+ -+# -+# USB Host Controller Drivers -+# -+CONFIG_USB_HOST=y +CONFIG_USB_XHCI_HCD=y -+# CONFIG_USB_XHCI_DWC3 is not set -+# CONFIG_USB_XHCI_DWC3_OF_SIMPLE is not set +CONFIG_USB_XHCI_MTK=y -+# CONFIG_USB_XHCI_FSL is not set -+# CONFIG_USB_XHCI_BRCM is not set -+# CONFIG_USB_EHCI_HCD is not set -+# CONFIG_USB_OHCI_HCD is not set -+# CONFIG_USB_UHCI_HCD is not set -+# CONFIG_USB_DWC2 is not set -+# CONFIG_USB_R8A66597_HCD is not set -+# CONFIG_USB_ISP1760 is not set -+# CONFIG_USB_CDNS3 is not set -+# CONFIG_USB_DWC3 is not set -+# CONFIG_USB_MTU3 is not set -+ -+# -+# Legacy MUSB Support -+# -+# CONFIG_USB_MUSB_HCD is not set -+# CONFIG_USB_MUSB_UDC is not set -+ -+# -+# MUSB Controller Driver -+# -+# CONFIG_USB_MUSB_HOST is not set -+# CONFIG_USB_MUSB_PIO_ONLY is not set -+ -+# -+# USB Phy -+# -+# CONFIG_TWL4030_USB is not set -+# CONFIG_ROCKCHIP_USB2_PHY is not set -+ -+# -+# ULPI drivers -+# -+ -+# -+# USB peripherals -+# +CONFIG_USB_STORAGE=y -+# CONFIG_USB_KEYBOARD is not set -+# CONFIG_USB_ONBOARD_HUB is not set -+CONFIG_USB_HUB_DEBOUNCE_TIMEOUT=1000 -+# CONFIG_USB_HOST_ETHER is not set -+# CONFIG_USB_GADGET is not set -+# CONFIG_SPL_USB_GADGET is not set -+ -+# -+# UFS Host Controller Support -+# -+# CONFIG_TI_J721E_UFS is not set -+ -+# -+# Graphics support -+# -+# CONFIG_VIDEO is not set -+ -+# -+# VirtIO Drivers -+# -+# CONFIG_VIRTIO_MMIO is not set -+ -+# -+# 1-Wire support -+# -+# CONFIG_W1 is not set -+ -+# -+# 1-wire EEPROM support -+# -+# CONFIG_W1_EEPROM is not set -+ -+# -+# Watchdog Timer Support -+# -+# CONFIG_WATCHDOG is not set -+CONFIG_WATCHDOG_TIMEOUT_MSECS=60000 -+# CONFIG_IMX_WATCHDOG is not set -+# CONFIG_ULP_WATCHDOG is not set -+# CONFIG_WDT is not set -+# CONFIG_PHYS_TO_BUS is not set -+ -+# -+# File systems -+# -+# CONFIG_FS_BTRFS is not set -+# CONFIG_FS_CBFS is not set -+# CONFIG_FS_EXT4 is not set -+CONFIG_FS_FAT=y -+CONFIG_FAT_WRITE=y -+CONFIG_FS_FAT_MAX_CLUSTSIZE=65536 -+# CONFIG_FS_JFFS2 is not set -+CONFIG_UBIFS_SILENCE_MSG=y -+CONFIG_UBIFS_SILENCE_DEBUG_DUMP=y -+# CONFIG_FS_CRAMFS is not set -+# CONFIG_YAFFS2 is not set -+# CONFIG_FS_SQUASHFS is not set -+# CONFIG_FS_EROFS is not set -+ -+# -+# Library routines -+# -+# CONFIG_ADDR_MAP is not set -+# CONFIG_SYS_TIMER_COUNTS_DOWN is not set -+# CONFIG_PHYSMEM is not set -+# CONFIG_BCH is not set -+# CONFIG_CC_OPTIMIZE_LIBS_FOR_SPEED is not set -+CONFIG_CHARSET=y -+# CONFIG_DYNAMIC_CRC_TABLE is not set -+CONFIG_LIB_UUID=y -+# CONFIG_SEMIHOSTING is not set -+CONFIG_PRINTF=y -+CONFIG_SPRINTF=y -+CONFIG_STRTO=y -+CONFIG_SYS_HZ=1000 -+# CONFIG_PANIC_HANG is not set -+CONFIG_REGEX=y -+CONFIG_LIB_RAND=y -+# CONFIG_LIB_HW_RAND is not set -+CONFIG_SUPPORT_ACPI=y -+# CONFIG_ACPI is not set -+CONFIG_RBTREE=y -+# CONFIG_BITREVERSE is not set -+# CONFIG_TRACE is not set -+# CONFIG_CIRCBUF is not set -+# CONFIG_CMD_DHRYSTONE is not set -+ -+# -+# Security support -+# -+# CONFIG_AES is not set -+# CONFIG_ECDSA is not set -+# CONFIG_RSA is not set -+# CONFIG_TPM is not set -+ -+# -+# Android Verified Boot -+# -+ -+# -+# Hashing Support -+# -+# CONFIG_BLAKE2 is not set -+CONFIG_SHA1=y -+CONFIG_SHA256=y -+# CONFIG_SHA512 is not set -+# CONFIG_SHA384 is not set -+# CONFIG_SHA_HW_ACCEL is not set -+CONFIG_MD5=y -+CONFIG_CRC8=y -+CONFIG_CRC32=y -+ -+# -+# Compression Support -+# -+# CONFIG_LZ4 is not set -+CONFIG_LZMA=y -+CONFIG_LZO=y -+CONFIG_GZIP=y -+# CONFIG_ZLIB_UNCOMPRESS is not set -+# CONFIG_BZIP2 is not set -+CONFIG_ZLIB=y -+# CONFIG_ZSTD is not set -+CONFIG_VPL_LZMA=y -+# CONFIG_SPL_GZIP is not set -+# CONFIG_ERRNO_STR is not set +CONFIG_HEXDUMP=y -+# CONFIG_GETOPT is not set -+CONFIG_OF_LIBFDT=y -+CONFIG_OF_LIBFDT_ASSUME_MASK=0x0 -+CONFIG_SYS_FDT_PAD=0x3000 -+ -+# -+# System tables -+# -+CONFIG_GENERATE_SMBIOS_TABLE=y -+# CONFIG_LIB_RATIONAL is not set -+CONFIG_SMBIOS=y -+# CONFIG_SMBIOS_PARSER is not set -+CONFIG_EFI_LOADER=y -+# CONFIG_CMD_BOOTEFI_BOOTMGR is not set -+CONFIG_EFI_VARIABLE_FILE_STORE=y -+# CONFIG_EFI_VARIABLE_NO_STORE is not set -+# CONFIG_EFI_VARIABLES_PRESEED is not set -+CONFIG_EFI_VAR_BUF_SIZE=131072 -+# CONFIG_EFI_SCROLL_ON_CLEAR_SCREEN is not set -+# CONFIG_EFI_RUNTIME_UPDATE_CAPSULE is not set -+CONFIG_EFI_CAPSULE_MAX=15 -+CONFIG_EFI_DEVICE_PATH_TO_TEXT=y -+CONFIG_EFI_DEVICE_PATH_UTIL=y -+CONFIG_EFI_DT_FIXUP=y -+CONFIG_EFI_LOADER_HII=y -+CONFIG_EFI_UNICODE_COLLATION_PROTOCOL2=y -+CONFIG_EFI_UNICODE_CAPITALIZATION=y -+# CONFIG_EFI_LOADER_BOUNCE_BUFFER is not set -+CONFIG_EFI_PLATFORM_LANG_CODES="en-US" -+CONFIG_EFI_HAVE_RUNTIME_RESET=y -+CONFIG_EFI_LOAD_FILE2_INITRD=y -+CONFIG_EFI_ECPT=y -+CONFIG_EFI_EBBR_2_1_CONFORMANCE=y -+# CONFIG_OPTEE_LIB is not set -+# CONFIG_OPTEE_IMAGE is not set -+# CONFIG_BOOTM_OPTEE is not set -+# CONFIG_TEST_FDTDEC is not set -+CONFIG_LIB_ELF=y -+CONFIG_LMB=y -+CONFIG_LMB_USE_MAX_REGIONS=y +CONFIG_LMB_MAX_REGIONS=64 -+# CONFIG_PHANDLE_CHECK_SEQ is not set -+ -+# -+# Testing -+# -+# CONFIG_UNIT_TEST is not set -+# CONFIG_POST is not set -+ -+# -+# Tools options -+# -+CONFIG_MKIMAGE_DTC_PATH="dtc" -+CONFIG_TOOLS_CRC32=y -+CONFIG_TOOLS_LIBCRYPTO=y -+CONFIG_TOOLS_FIT=y -+CONFIG_TOOLS_FIT_FULL_CHECK=y -+CONFIG_TOOLS_FIT_PRINT=y -+CONFIG_TOOLS_FIT_RSASSA_PSS=y -+CONFIG_TOOLS_FIT_SIGNATURE=y -+CONFIG_TOOLS_FIT_SIGNATURE_MAX_SIZE=0x10000000 -+CONFIG_TOOLS_FIT_VERBOSE=y -+CONFIG_TOOLS_MD5=y -+CONFIG_TOOLS_OF_LIBFDT=y -+CONFIG_TOOLS_SHA1=y -+CONFIG_TOOLS_SHA256=y -+CONFIG_TOOLS_SHA384=y -+CONFIG_TOOLS_SHA512=y -+# CONFIG_TOOLS_MKEFICAPSULE is not set -+# CONFIG_FSPI_CONF_HEADER is not set -+# CONFIG_TOOLS_MKFWUMDATA is not set --- /dev/null +++ b/openwrt-one-nor_env @@ -0,0 +1,46 @@ From 3a85467427e8ab05b38cad74ccf7f3b464971393 Mon Sep 17 00:00:00 2001 From: Daniel Golle Date: Tue, 9 Jul 2024 17:01:41 +0100 Subject: [PATCH 17/21] uboot-mediatek: remove hard-coded UBI volume numbers There is no point in hard-coding the UBI volume numbers as we are dynamically looking up the volume by volume name in all cases by now. Remove this relict as it causes problems without being useful for anything. Signed-off-by: Daniel Golle --- .../404-add-bananapi_bpi-r64_defconfigs.patch | 4 ++-- .../patches/429-add-netcore-n60.patch | 6 +++--- .../patches/431-add-xiaomi_redmi-ax6000.patch | 3 +-- .../patches/432-add-tplink-xdr608x.patch | 18 +++++++++--------- .../patches/433-add-qihoo_360t7.patch | 6 +++--- .../434-add-xiaomi_mi-router-wr30u.patch | 6 +++--- .../patches/435-add-h3c_magic-nx30-pro.patch | 6 +++--- .../patches/437-add-cmcc_rax3000m.patch | 6 +++--- .../patches/438-add-jcg_q30-pro.patch | 6 +++--- .../patches/439-add-zyxel_ex5601-t0.patch | 2 +- .../440-add-xiaomi_mi-router-ax3000t.patch | 6 +++--- .../patches/443-add-nokia_ea0326gmp.patch | 6 +++--- .../patches/450-add-bpi-r4.patch | 8 ++++---- .../patches/452-add-xiaomi-redmi-ax6s.patch | 2 +- 14 files changed, 42 insertions(+), 43 deletions(-) diff --git a/package/boot/uboot-mediatek/patches/404-add-bananapi_bpi-r64_defconfigs.patch b/package/boot/uboot-mediatek/patches/404-add-bananapi_bpi-r64_defconfigs.patch index 29bb1d91a1..25ebd5b582 100644 --- a/package/boot/uboot-mediatek/patches/404-add-bananapi_bpi-r64_defconfigs.patch +++ b/package/boot/uboot-mediatek/patches/404-add-bananapi_bpi-r64_defconfigs.patch @@ -559,8 +559,8 @@ +ubi_read_recovery=ubi check recovery && ubi read $loadaddr recovery +ubi_remove_rootfs=ubi check rootfs_data && ubi remove rootfs_data +ubi_write_fip=run ubi_remove_rootfs ; ubi check fip && ubi remove fip ; ubi create fip 0x200000 static ; ubi write $loadaddr fip 0x200000 -+ubi_write_production=ubi check fit && env exists replacevol && ubi remove fit ; if ubi check fit ; then else run ubi_remove_rootfs ; ubi create fit $filesize dynamic 2 && ubi write $loadaddr fit $filesize ; fi -+ubi_write_recovery=ubi check recovery && env exists replacevol && ubi remove recovery ; if ubi check recovery ; then else run ubi_remove_rootfs ; ubi create recovery $filesize dynamic 3 && ubi write $loadaddr recovery $filesize ; fi ++ubi_write_production=ubi check fit && env exists replacevol && ubi remove fit ; if ubi check fit ; then else run ubi_remove_rootfs ; ubi create fit $filesize dynamic && ubi write $loadaddr fit $filesize ; fi ++ubi_write_recovery=ubi check recovery && env exists replacevol && ubi remove recovery ; if ubi check recovery ; then else run ubi_remove_rootfs ; ubi create recovery $filesize dynamic && ubi write $loadaddr recovery $filesize ; fi +_create_env=ubi create ubootenv 0x1f000 dynamic ; ubi create ubootenv2 0x1f000 dynamic +_init_env=setenv _init_env ; if ubi check ubootenv && ubi check ubootenv2 ; then else run _create_env ; fi ; setenv _create_env ; saveenv ; saveenv +_firstboot=setenv _firstboot ; run _switch_to_menu ; run _init_env ; run boot_first diff --git a/package/boot/uboot-mediatek/patches/429-add-netcore-n60.patch b/package/boot/uboot-mediatek/patches/429-add-netcore-n60.patch index 42f0bc5b18..2164bf6d5c 100644 --- a/package/boot/uboot-mediatek/patches/429-add-netcore-n60.patch +++ b/package/boot/uboot-mediatek/patches/429-add-netcore-n60.patch @@ -366,14 +366,14 @@ +reset_factory=ubi part ubi ; mw $loadaddr 0x0 0x800 ; ubi write $loadaddr ubootenv 0x800 ; ubi write $loadaddr ubootenv2 0x800 +mtd_write_fip=mtd erase fip && mtd write fip $loadaddr +mtd_write_bl2=mtd erase bl2 && mtd write bl2 $loadaddr -+ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic 0 || run ubi_format ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic 1 || run ubi_format ++ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic || run ubi_format ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic || run ubi_format +ubi_format=ubi detach ; mtd erase ubi && ubi part ubi ; reset +ubi_prepare_rootfs=if ubi check rootfs_data ; then else if env exists rootfs_data_max ; then ubi create rootfs_data $rootfs_data_max dynamic || ubi create rootfs_data - dynamic ; else ubi create rootfs_data - dynamic ; fi ; fi +ubi_read_production=ubi read $loadaddr fit && iminfo $loadaddr && run ubi_prepare_rootfs +ubi_read_recovery=ubi check recovery && ubi read $loadaddr recovery +ubi_remove_rootfs=ubi check rootfs_data && ubi remove rootfs_data -+ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic 2 && ubi write $loadaddr fit $filesize -+ubi_write_recovery=ubi check recovery && ubi remove recovery ; run ubi_remove_rootfs ; ubi create recovery $filesize dynamic 3 && ubi write $loadaddr recovery $filesize ++ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic && ubi write $loadaddr fit $filesize ++ubi_write_recovery=ubi check recovery && ubi remove recovery ; run ubi_remove_rootfs ; ubi create recovery $filesize dynamic && ubi write $loadaddr recovery $filesize +ethaddr_factory=mtd read factory 0x40080000 0x1fe000 0x1000 && env readmem -b ethaddr 0x40080f20 0x6 ; setenv ethaddr_factory +_init_env=setenv _init_env ; run ubi_create_env ; saveenv ; saveenv +_firstboot=setenv _firstboot ; run ethaddr_factory ; run _switch_to_menu ; run _init_env ; run boot_first diff --git a/package/boot/uboot-mediatek/patches/431-add-xiaomi_redmi-ax6000.patch b/package/boot/uboot-mediatek/patches/431-add-xiaomi_redmi-ax6000.patch index a1f58b1682..a1663bcb62 100644 --- a/package/boot/uboot-mediatek/patches/431-add-xiaomi_redmi-ax6000.patch +++ b/package/boot/uboot-mediatek/patches/431-add-xiaomi_redmi-ax6000.patch @@ -1,4 +1,3 @@ ---- /dev/null +++ b/configs/mt7986_xiaomi_redmi-ax6000_defconfig @@ -0,0 +1,104 @@ +CONFIG_ARM=y @@ -315,7 +314,7 @@ +reset_factory=ubi part ubi ; mw $loadaddr 0x0 0x800 ; ubi write $loadaddr ubootenv 0x800 ; ubi write $loadaddr ubootenv2 0x800 +mtd_write_fip=mtd erase fip && mtd write fip $loadaddr +mtd_write_bl2=mtd erase bl2 && mtd write bl2 $loadaddr -+ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic 0 ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic 1 ++ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic +ubi_format=ubi detach ; mtd erase ubi && ubi part ubi ; reset +ubi_prepare_rootfs=if ubi check rootfs_data ; then else if env exists rootfs_data_max ; then ubi create rootfs_data $rootfs_data_max dynamic || ubi create rootfs_data - dynamic ; else ubi create rootfs_data - dynamic ; fi ; fi +ubi_read_production=ubi read $loadaddr $part_fit && iminfo $loadaddr && run ubi_prepare_rootfs diff --git a/package/boot/uboot-mediatek/patches/432-add-tplink-xdr608x.patch b/package/boot/uboot-mediatek/patches/432-add-tplink-xdr608x.patch index b75856752d..76de156433 100644 --- a/package/boot/uboot-mediatek/patches/432-add-tplink-xdr608x.patch +++ b/package/boot/uboot-mediatek/patches/432-add-tplink-xdr608x.patch @@ -644,14 +644,14 @@ +reset_factory=ubi part ubi ; mw $loadaddr 0x0 0x800 ; ubi write $loadaddr ubootenv 0x800 ; ubi write $loadaddr ubootenv2 0x800 +mtd_write_fip=mtd erase fip && mtd write fip $loadaddr +mtd_write_bl2=mtd erase bl2 && mtd write bl2 $loadaddr -+ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic 0 || run ubi_format ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic 1 || run ubi_format ++ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic || run ubi_format ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic || run ubi_format +ubi_format=ubi detach ; mtd erase ubi && ubi part ubi ; reset +ubi_prepare_rootfs=if ubi check rootfs_data ; then else if env exists rootfs_data_max ; then ubi create rootfs_data $rootfs_data_max dynamic || ubi create rootfs_data - dynamic ; else ubi create rootfs_data - dynamic ; fi ; fi +ubi_read_production=ubi read $loadaddr fit && iminfo $loadaddr && run ubi_prepare_rootfs +ubi_read_recovery=ubi check recovery && ubi read $loadaddr recovery +ubi_remove_rootfs=ubi check rootfs_data && ubi remove rootfs_data -+ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic 2 && ubi write $loadaddr fit $filesize -+ubi_write_recovery=ubi check recovery && ubi remove recovery ; run ubi_remove_rootfs ; ubi create recovery $filesize dynamic 3 && ubi write $loadaddr recovery $filesize ++ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic && ubi write $loadaddr fit $filesize ++ubi_write_recovery=ubi check recovery && ubi remove recovery ; run ubi_remove_rootfs ; ubi create recovery $filesize dynamic && ubi write $loadaddr recovery $filesize +_init_env=setenv _init_env ; run ubi_create_env ; saveenv ; saveenv +_firstboot=setenv _firstboot ; run ethaddr_factory ; run _switch_to_menu ; run _init_env ; run boot_first +_switch_to_menu=setenv _switch_to_menu ; setenv bootdelay 3 ; setenv bootmenu_delay 3 ; setenv bootmenu_0 $bootmenu_0d ; setenv bootmenu_0d ; run _bootmenu_update_title @@ -704,14 +704,14 @@ +reset_factory=ubi part ubi ; mw $loadaddr 0x0 0x800 ; ubi write $loadaddr ubootenv 0x800 ; ubi write $loadaddr ubootenv2 0x800 +mtd_write_fip=mtd erase fip && mtd write fip $loadaddr +mtd_write_bl2=mtd erase bl2 && mtd write bl2 $loadaddr -+ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic 0 || run ubi_format ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic 1 || run ubi_format ++ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic || run ubi_format ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic || run ubi_format +ubi_format=ubi detach ; mtd erase ubi && ubi part ubi ; reset +ubi_prepare_rootfs=if ubi check rootfs_data ; then else if env exists rootfs_data_max ; then ubi create rootfs_data $rootfs_data_max dynamic || ubi create rootfs_data - dynamic ; else ubi create rootfs_data - dynamic ; fi ; fi +ubi_read_production=ubi read $loadaddr fit && iminfo $loadaddr && run ubi_prepare_rootfs +ubi_read_recovery=ubi check recovery && ubi read $loadaddr recovery +ubi_remove_rootfs=ubi check rootfs_data && ubi remove rootfs_data -+ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic 2 && ubi write $loadaddr fit $filesize -+ubi_write_recovery=ubi check recovery && ubi remove recovery ; run ubi_remove_rootfs ; ubi create recovery $filesize dynamic 3 && ubi write $loadaddr recovery $filesize ++ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic && ubi write $loadaddr fit $filesize ++ubi_write_recovery=ubi check recovery && ubi remove recovery ; run ubi_remove_rootfs ; ubi create recovery $filesize dynamic && ubi write $loadaddr recovery $filesize +_init_env=setenv _init_env ; run ubi_create_env ; saveenv ; saveenv +_firstboot=setenv _firstboot ; run ethaddr_factory ; run _switch_to_menu ; run _init_env ; run boot_first +_switch_to_menu=setenv _switch_to_menu ; setenv bootdelay 3 ; setenv bootmenu_delay 3 ; setenv bootmenu_0 $bootmenu_0d ; setenv bootmenu_0d ; run _bootmenu_update_title @@ -764,14 +764,14 @@ +reset_factory=ubi part ubi ; mw $loadaddr 0x0 0x800 ; ubi write $loadaddr ubootenv 0x800 ; ubi write $loadaddr ubootenv2 0x800 +mtd_write_fip=mtd erase fip && mtd write fip $loadaddr +mtd_write_bl2=mtd erase bl2 && mtd write bl2 $loadaddr -+ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic 0 || run ubi_format ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic 1 || run ubi_format ++ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic || run ubi_format ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic || run ubi_format +ubi_format=ubi detach ; mtd erase ubi && ubi part ubi ; reset +ubi_prepare_rootfs=if ubi check rootfs_data ; then else if env exists rootfs_data_max ; then ubi create rootfs_data $rootfs_data_max dynamic || ubi create rootfs_data - dynamic ; else ubi create rootfs_data - dynamic ; fi ; fi +ubi_read_production=ubi read $loadaddr fit && iminfo $loadaddr && run ubi_prepare_rootfs +ubi_read_recovery=ubi check recovery && ubi read $loadaddr recovery +ubi_remove_rootfs=ubi check rootfs_data && ubi remove rootfs_data -+ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic 2 && ubi write $loadaddr fit $filesize -+ubi_write_recovery=ubi check recovery && ubi remove recovery ; run ubi_remove_rootfs ; ubi create recovery $filesize dynamic 3 && ubi write $loadaddr recovery $filesize ++ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic && ubi write $loadaddr fit $filesize ++ubi_write_recovery=ubi check recovery && ubi remove recovery ; run ubi_remove_rootfs ; ubi create recovery $filesize dynamic && ubi write $loadaddr recovery $filesize +_init_env=setenv _init_env ; run ubi_create_env ; saveenv ; saveenv +_firstboot=setenv _firstboot ; run ethaddr_factory ; run _switch_to_menu ; run _init_env ; run boot_first +_switch_to_menu=setenv _switch_to_menu ; setenv bootdelay 3 ; setenv bootmenu_delay 3 ; setenv bootmenu_0 $bootmenu_0d ; setenv bootmenu_0d ; run _bootmenu_update_title diff --git a/package/boot/uboot-mediatek/patches/433-add-qihoo_360t7.patch b/package/boot/uboot-mediatek/patches/433-add-qihoo_360t7.patch index 18c535540d..26118cf857 100644 --- a/package/boot/uboot-mediatek/patches/433-add-qihoo_360t7.patch +++ b/package/boot/uboot-mediatek/patches/433-add-qihoo_360t7.patch @@ -361,14 +361,14 @@ +reset_factory=ubi part ubi ; mw $loadaddr 0x0 0x800 ; ubi write $loadaddr ubootenv 0x800 ; ubi write $loadaddr ubootenv2 0x800 +mtd_write_fip=mtd erase fip && mtd write fip $loadaddr +mtd_write_bl2=mtd erase bl2 && mtd write bl2 $loadaddr -+ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic 0 || run ubi_format ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic 1 || run ubi_format ++ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic || run ubi_format ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic || run ubi_format +ubi_format=ubi detach ; mtd erase ubi && ubi part ubi ; reset +ubi_prepare_rootfs=if ubi check rootfs_data ; then else if env exists rootfs_data_max ; then ubi create rootfs_data $rootfs_data_max dynamic || ubi create rootfs_data - dynamic ; else ubi create rootfs_data - dynamic ; fi ; fi +ubi_read_production=ubi read $loadaddr fit && iminfo $loadaddr && run ubi_prepare_rootfs +ubi_read_recovery=ubi check recovery && ubi read $loadaddr recovery +ubi_remove_rootfs=ubi check rootfs_data && ubi remove rootfs_data -+ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic 2 && ubi write $loadaddr fit $filesize -+ubi_write_recovery=ubi check recovery && ubi remove recovery ; run ubi_remove_rootfs ; ubi create recovery $filesize dynamic 3 && ubi write $loadaddr recovery $filesize ++ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic && ubi write $loadaddr fit $filesize ++ubi_write_recovery=ubi check recovery && ubi remove recovery ; run ubi_remove_rootfs ; ubi create recovery $filesize dynamic && ubi write $loadaddr recovery $filesize +_init_env=setenv _init_env ; run ubi_create_env ; saveenv ; saveenv +_firstboot=setenv _firstboot ; run _switch_to_menu ; run _init_env ; run boot_first +_switch_to_menu=setenv _switch_to_menu ; setenv bootdelay 3 ; setenv bootmenu_delay 3 ; setenv bootmenu_0 $bootmenu_0d ; setenv bootmenu_0d ; run _bootmenu_update_title diff --git a/package/boot/uboot-mediatek/patches/434-add-xiaomi_mi-router-wr30u.patch b/package/boot/uboot-mediatek/patches/434-add-xiaomi_mi-router-wr30u.patch index aefdea3d5a..e96af0bc1d 100644 --- a/package/boot/uboot-mediatek/patches/434-add-xiaomi_mi-router-wr30u.patch +++ b/package/boot/uboot-mediatek/patches/434-add-xiaomi_mi-router-wr30u.patch @@ -397,14 +397,14 @@ +reset_factory=ubi part ubi ; mw $loadaddr 0x0 0x800 ; ubi write $loadaddr ubootenv 0x800 ; ubi write $loadaddr ubootenv2 0x800 +mtd_write_fip=mtd erase fip && mtd write fip $loadaddr +mtd_write_bl2=mtd erase bl2 && mtd write bl2 $loadaddr -+ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic 0 || run ubi_format ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic 1 || run ubi_format ++ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic || run ubi_format ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic || run ubi_format +ubi_format=ubi detach ; mtd erase ubi && ubi part ubi ; reset +ubi_prepare_rootfs=if ubi check rootfs_data ; then else if env exists rootfs_data_max ; then ubi create rootfs_data $rootfs_data_max dynamic || ubi create rootfs_data - dynamic ; else ubi create rootfs_data - dynamic ; fi ; fi +ubi_read_production=ubi read $loadaddr fit && iminfo $loadaddr && run ubi_prepare_rootfs +ubi_read_recovery=ubi check recovery && ubi read $loadaddr recovery +ubi_remove_rootfs=ubi check rootfs_data && ubi remove rootfs_data -+ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic 2 && ubi write $loadaddr fit $filesize -+ubi_write_recovery=ubi check recovery && ubi remove recovery ; run ubi_remove_rootfs ; ubi create recovery $filesize dynamic 3 && ubi write $loadaddr recovery $filesize ++ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic && ubi write $loadaddr fit $filesize ++ubi_write_recovery=ubi check recovery && ubi remove recovery ; run ubi_remove_rootfs ; ubi create recovery $filesize dynamic && ubi write $loadaddr recovery $filesize +_init_env=setenv _init_env ; run ubi_create_env ; saveenv ; saveenv +_firstboot=setenv _firstboot ; run _switch_to_menu ; run _init_env ; run boot_first +_switch_to_menu=setenv _switch_to_menu ; setenv bootdelay 3 ; setenv bootmenu_delay 3 ; setenv bootmenu_0 $bootmenu_0d ; setenv bootmenu_0d ; run _bootmenu_update_title diff --git a/package/boot/uboot-mediatek/patches/435-add-h3c_magic-nx30-pro.patch b/package/boot/uboot-mediatek/patches/435-add-h3c_magic-nx30-pro.patch index dad12684d9..1392aa5647 100644 --- a/package/boot/uboot-mediatek/patches/435-add-h3c_magic-nx30-pro.patch +++ b/package/boot/uboot-mediatek/patches/435-add-h3c_magic-nx30-pro.patch @@ -381,14 +381,14 @@ +reset_factory=ubi part ubi ; mw $loadaddr 0x0 0x800 ; ubi write $loadaddr ubootenv 0x800 ; ubi write $loadaddr ubootenv2 0x800 +mtd_write_fip=mtd erase fip && mtd write fip $loadaddr +mtd_write_bl2=mtd erase bl2 && mtd write bl2 $loadaddr -+ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic 0 || run ubi_format ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic 1 || run ubi_format ++ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic || run ubi_format ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic || run ubi_format +ubi_format=ubi detach ; mtd erase ubi && ubi part ubi ; reset +ubi_prepare_rootfs=if ubi check rootfs_data ; then else if env exists rootfs_data_max ; then ubi create rootfs_data $rootfs_data_max dynamic || ubi create rootfs_data - dynamic ; else ubi create rootfs_data - dynamic ; fi ; fi +ubi_read_production=ubi read $loadaddr fit && iminfo $loadaddr && run ubi_prepare_rootfs +ubi_read_recovery=ubi check recovery && ubi read $loadaddr recovery +ubi_remove_rootfs=ubi check rootfs_data && ubi remove rootfs_data -+ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic 2 && ubi write $loadaddr fit $filesize -+ubi_write_recovery=ubi check recovery && ubi remove recovery ; run ubi_remove_rootfs ; ubi create recovery $filesize dynamic 3 && ubi write $loadaddr recovery $filesize ++ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic && ubi write $loadaddr fit $filesize ++ubi_write_recovery=ubi check recovery && ubi remove recovery ; run ubi_remove_rootfs ; ubi create recovery $filesize dynamic && ubi write $loadaddr recovery $filesize +_init_env=setenv _init_env ; run ubi_create_env ; saveenv ; saveenv +_firstboot=setenv _firstboot ; run _switch_to_menu ; run _init_env ; run boot_first +_switch_to_menu=setenv _switch_to_menu ; setenv bootdelay 3 ; setenv bootmenu_delay 3 ; setenv bootmenu_0 $bootmenu_0d ; setenv bootmenu_0d ; run _bootmenu_update_title diff --git a/package/boot/uboot-mediatek/patches/437-add-cmcc_rax3000m.patch b/package/boot/uboot-mediatek/patches/437-add-cmcc_rax3000m.patch index 394345f83a..972581fce7 100644 --- a/package/boot/uboot-mediatek/patches/437-add-cmcc_rax3000m.patch +++ b/package/boot/uboot-mediatek/patches/437-add-cmcc_rax3000m.patch @@ -583,14 +583,14 @@ +reset_factory=ubi part ubi ; mw $loadaddr 0x0 0x800 ; ubi write $loadaddr ubootenv 0x800 ; ubi write $loadaddr ubootenv2 0x800 +mtd_write_fip=mtd erase fip && mtd write fip $loadaddr +mtd_write_bl2=mtd erase bl2 && mtd write bl2 $loadaddr -+ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic 0 || run ubi_format ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic 1 || run ubi_format ++ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic || run ubi_format ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic || run ubi_format +ubi_format=ubi detach ; mtd erase ubi && ubi part ubi ; reset +ubi_prepare_rootfs=if ubi check rootfs_data ; then else if env exists rootfs_data_max ; then ubi create rootfs_data $rootfs_data_max dynamic || ubi create rootfs_data - dynamic ; else ubi create rootfs_data - dynamic ; fi ; fi +ubi_read_production=ubi read $loadaddr fit && iminfo $loadaddr && run ubi_prepare_rootfs +ubi_read_recovery=ubi check recovery && ubi read $loadaddr recovery +ubi_remove_rootfs=ubi check rootfs_data && ubi remove rootfs_data -+ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic 2 && ubi write $loadaddr fit $filesize -+ubi_write_recovery=ubi check recovery && ubi remove recovery ; run ubi_remove_rootfs ; ubi create recovery $filesize dynamic 3 && ubi write $loadaddr recovery $filesize ++ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic && ubi write $loadaddr fit $filesize ++ubi_write_recovery=ubi check recovery && ubi remove recovery ; run ubi_remove_rootfs ; ubi create recovery $filesize dynamic && ubi write $loadaddr recovery $filesize +_init_env=setenv _init_env ; run ubi_create_env ; saveenv ; saveenv +_firstboot=setenv _firstboot ; run _switch_to_menu ; run _init_env ; run boot_first +_switch_to_menu=setenv _switch_to_menu ; setenv bootdelay 3 ; setenv bootmenu_delay 3 ; setenv bootmenu_0 $bootmenu_0d ; setenv bootmenu_0d ; run _bootmenu_update_title diff --git a/package/boot/uboot-mediatek/patches/438-add-jcg_q30-pro.patch b/package/boot/uboot-mediatek/patches/438-add-jcg_q30-pro.patch index ac5eee049b..f577858b10 100644 --- a/package/boot/uboot-mediatek/patches/438-add-jcg_q30-pro.patch +++ b/package/boot/uboot-mediatek/patches/438-add-jcg_q30-pro.patch @@ -355,14 +355,14 @@ +reset_factory=ubi part ubi ; mw $loadaddr 0x0 0x800 ; ubi write $loadaddr ubootenv 0x800 ; ubi write $loadaddr ubootenv2 0x800 +mtd_write_fip=mtd erase fip && mtd write fip $loadaddr +mtd_write_bl2=mtd erase bl2 && mtd write bl2 $loadaddr -+ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic 0 || run ubi_format ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic 1 || run ubi_format ++ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic || run ubi_format ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic || run ubi_format +ubi_format=ubi detach ; mtd erase ubi && ubi part ubi ; reset +ubi_prepare_rootfs=if ubi check rootfs_data ; then else if env exists rootfs_data_max ; then ubi create rootfs_data $rootfs_data_max dynamic || ubi create rootfs_data - dynamic ; else ubi create rootfs_data - dynamic ; fi ; fi +ubi_read_production=ubi read $loadaddr fit && iminfo $loadaddr && run ubi_prepare_rootfs +ubi_read_recovery=ubi check recovery && ubi read $loadaddr recovery +ubi_remove_rootfs=ubi check rootfs_data && ubi remove rootfs_data -+ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic 2 && ubi write $loadaddr fit $filesize -+ubi_write_recovery=ubi check recovery && ubi remove recovery ; run ubi_remove_rootfs ; ubi create recovery $filesize dynamic 3 && ubi write $loadaddr recovery $filesize ++ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic && ubi write $loadaddr fit $filesize ++ubi_write_recovery=ubi check recovery && ubi remove recovery ; run ubi_remove_rootfs ; ubi create recovery $filesize dynamic && ubi write $loadaddr recovery $filesize +ethaddr_factory=mtd read factory 0x40080000 0xa0000 0x800 && env readmem -b ethaddr 0x4008002a 0x6 ; setenv ethaddr_factory +_init_env=setenv _init_env ; run ubi_create_env ; saveenv ; saveenv +_firstboot=setenv _firstboot ; run ethaddr_factory ; run _switch_to_menu ; run _init_env ; run boot_first diff --git a/package/boot/uboot-mediatek/patches/439-add-zyxel_ex5601-t0.patch b/package/boot/uboot-mediatek/patches/439-add-zyxel_ex5601-t0.patch index 0509d8167a..b131df79c8 100644 --- a/package/boot/uboot-mediatek/patches/439-add-zyxel_ex5601-t0.patch +++ b/package/boot/uboot-mediatek/patches/439-add-zyxel_ex5601-t0.patch @@ -361,7 +361,7 @@ +reset_factory=ubi part ubi ; mw $loadaddr 0x0 0x800 ; ubi write $loadaddr ubootenv 0x800 ; ubi write $loadaddr ubootenv2 0x800 +mtd_write_fip=mtd erase fip && mtd write fip $loadaddr +mtd_write_bl2=mtd erase bl2 && mtd write bl2 $loadaddr -+ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic 0 ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic 1 ++ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic +ubi_format=ubi detach ; mtd erase ubi && ubi part ubi ; reset +ubi_prepare_rootfs=if ubi check rootfs_data ; then else if env exists rootfs_data_max ; then ubi create rootfs_data $rootfs_data_max dynamic || ubi create rootfs_data - dynamic ; else ubi create rootfs_data - dynamic ; fi ; fi +ubi_read_production=ubi read $loadaddr $part_fit && iminfo $loadaddr && run ubi_prepare_rootfs diff --git a/package/boot/uboot-mediatek/patches/440-add-xiaomi_mi-router-ax3000t.patch b/package/boot/uboot-mediatek/patches/440-add-xiaomi_mi-router-ax3000t.patch index 62b9fb8a4d..35267bb6d5 100644 --- a/package/boot/uboot-mediatek/patches/440-add-xiaomi_mi-router-ax3000t.patch +++ b/package/boot/uboot-mediatek/patches/440-add-xiaomi_mi-router-ax3000t.patch @@ -344,14 +344,14 @@ +reset_factory=ubi part ubi ; mw $loadaddr 0x0 0x800 ; ubi write $loadaddr ubootenv 0x800 ; ubi write $loadaddr ubootenv2 0x800 +mtd_write_fip=mtd erase fip && mtd write fip $loadaddr +mtd_write_bl2=mtd erase bl2 && mtd write bl2 $loadaddr -+ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic 0 || run ubi_format ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic 1 || run ubi_format ++ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic || run ubi_format ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic || run ubi_format +ubi_format=ubi detach ; mtd erase ubi && ubi part ubi ; reset +ubi_prepare_rootfs=if ubi check rootfs_data ; then else if env exists rootfs_data_max ; then ubi create rootfs_data $rootfs_data_max dynamic || ubi create rootfs_data - dynamic ; else ubi create rootfs_data - dynamic ; fi ; fi +ubi_read_production=ubi read $loadaddr fit && iminfo $loadaddr && run ubi_prepare_rootfs +ubi_read_recovery=ubi check recovery && ubi read $loadaddr recovery +ubi_remove_rootfs=ubi check rootfs_data && ubi remove rootfs_data -+ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic 2 && ubi write $loadaddr fit $filesize -+ubi_write_recovery=ubi check recovery && ubi remove recovery ; run ubi_remove_rootfs ; ubi create recovery $filesize dynamic 3 && ubi write $loadaddr recovery $filesize ++ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic && ubi write $loadaddr fit $filesize ++ubi_write_recovery=ubi check recovery && ubi remove recovery ; run ubi_remove_rootfs ; ubi create recovery $filesize dynamic && ubi write $loadaddr recovery $filesize +_init_env=setenv _init_env ; run ubi_create_env ; saveenv ; saveenv +_firstboot=setenv _firstboot ; run _switch_to_menu ; run _init_env ; run boot_first +_switch_to_menu=setenv _switch_to_menu ; setenv bootdelay 3 ; setenv bootmenu_delay 3 ; setenv bootmenu_0 $bootmenu_0d ; setenv bootmenu_0d ; run _bootmenu_update_title diff --git a/package/boot/uboot-mediatek/patches/443-add-nokia_ea0326gmp.patch b/package/boot/uboot-mediatek/patches/443-add-nokia_ea0326gmp.patch index 64bccd8027..f802007fd9 100644 --- a/package/boot/uboot-mediatek/patches/443-add-nokia_ea0326gmp.patch +++ b/package/boot/uboot-mediatek/patches/443-add-nokia_ea0326gmp.patch @@ -343,14 +343,14 @@ +reset_factory=ubi part ubi ; mw $loadaddr 0x0 0x800 ; ubi write $loadaddr ubootenv 0x800 ; ubi write $loadaddr ubootenv2 0x800 +mtd_write_fip=mtd erase fip && mtd write fip $loadaddr +mtd_write_bl2=mtd erase bl2 && mtd write bl2 $loadaddr -+ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic 0 || run ubi_format ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic 1 || run ubi_format ++ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic || run ubi_format ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic || run ubi_format +ubi_format=ubi detach ; mtd erase ubi && ubi part ubi ; reset +ubi_prepare_rootfs=if ubi check rootfs_data ; then else if env exists rootfs_data_max ; then ubi create rootfs_data $rootfs_data_max dynamic || ubi create rootfs_data - dynamic ; else ubi create rootfs_data - dynamic ; fi ; fi +ubi_read_production=ubi read $loadaddr fit && iminfo $loadaddr && run ubi_prepare_rootfs +ubi_read_recovery=ubi check recovery && ubi read $loadaddr recovery +ubi_remove_rootfs=ubi check rootfs_data && ubi remove rootfs_data -+ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic 2 && ubi write $loadaddr fit $filesize -+ubi_write_recovery=ubi check recovery && ubi remove recovery ; run ubi_remove_rootfs ; ubi create recovery $filesize dynamic 3 && ubi write $loadaddr recovery $filesize ++ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic && ubi write $loadaddr fit $filesize ++ubi_write_recovery=ubi check recovery && ubi remove recovery ; run ubi_remove_rootfs ; ubi create recovery $filesize dynamic && ubi write $loadaddr recovery $filesize +_init_env=setenv _init_env ; run ubi_create_env ; saveenv ; saveenv +_firstboot=setenv _firstboot ; run _switch_to_menu ; run _init_env ; run boot_first +_switch_to_menu=setenv _switch_to_menu ; setenv bootdelay 3 ; setenv bootmenu_delay 3 ; setenv bootmenu_0 $bootmenu_0d ; setenv bootmenu_0d ; run _bootmenu_update_title diff --git a/package/boot/uboot-mediatek/patches/450-add-bpi-r4.patch b/package/boot/uboot-mediatek/patches/450-add-bpi-r4.patch index bb6ceff5a8..1b1ac9262f 100644 --- a/package/boot/uboot-mediatek/patches/450-add-bpi-r4.patch +++ b/package/boot/uboot-mediatek/patches/450-add-bpi-r4.patch @@ -480,7 +480,7 @@ +sdmmc_write_production=part start mmc 0 $part_default part_addr && part size mmc 0 $part_default part_size && run mmc_write_vol +sdmmc_write_recovery=part start mmc 0 $part_recovery part_addr && part size mmc 0 $part_recovery part_size && run mmc_write_vol +snand_write_bl2=mtd erase bl2 && mtd write bl2 $loadaddr 0x0 0x80000 && mtd write bl2 $loadaddr 0x80000 0x80000 && mtd write bl2 $loadaddr 0x100000 0x80000 && mtd write bl2 $loadaddr 0x180000 0x80000 -+ubi_create_env=ubi create ubootenv 0x100000 dynamic 1 ; ubi create ubootenv2 0x100000 dynamic 2 ++ubi_create_env=ubi create ubootenv 0x100000 dynamic ; ubi create ubootenv2 0x100000 dynamic +ubi_format=ubi detach ; mtd erase ubi && ubi part ubi +ubi_init=run ubi_format && run ubi_init_bl && run ubi_create_env && run ubi_init_openwrt && run ubi_init_emmc_install +ubi_init_openwrt=run sdmmc_read_recovery && iminfo $loadaddr && run ubi_write_recovery ; run sdmmc_read_production && iminfo $loadaddr && run ubi_write_production @@ -544,7 +544,7 @@ +part_recovery=recovery +reset_factory=ubi part ubi ; mw $loadaddr 0x0 0x800 ; ubi write $loadaddr ubootenv 0x800 ; ubi write $loadaddr ubootenv2 0x800 +snand_write_bl2=mtd erase bl2 && mtd write bl2 $loadaddr 0x0 0x80000 && mtd write bl2 $loadaddr 0x80000 0x80000 && mtd write bl2 $loadaddr 0x100000 0x80000 && mtd write bl2 $loadaddr 0x180000 0x80000 -+ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic 1 ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic 2 ++ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic +ubi_prepare_rootfs=if ubi check rootfs_data ; then else if env exists rootfs_data_max ; then ubi create rootfs_data $rootfs_data_max dynamic || ubi create rootfs_data - dynamic ; else ubi create rootfs_data - dynamic ; fi ; fi +ubi_read_production=ubi read $loadaddr fit && iminfo $loadaddr && run ubi_prepare_rootfs +ubi_read_recovery=ubi check recovery && ubi read $loadaddr recovery @@ -1416,7 +1416,7 @@ +sdmmc_write_production=part start mmc 0 $part_default part_addr && part size mmc 0 $part_default part_size && run mmc_write_vol +sdmmc_write_recovery=part start mmc 0 $part_recovery part_addr && part size mmc 0 $part_recovery part_size && run mmc_write_vol +snand_write_bl2=mtd erase bl2 && mtd write bl2 $loadaddr 0x0 0x80000 && mtd write bl2 $loadaddr 0x80000 0x80000 && mtd write bl2 $loadaddr 0x100000 0x80000 && mtd write bl2 $loadaddr 0x180000 0x80000 -+ubi_create_env=ubi create ubootenv 0x100000 dynamic 1 ; ubi create ubootenv2 0x100000 dynamic 2 ++ubi_create_env=ubi create ubootenv 0x100000 dynamic ; ubi create ubootenv2 0x100000 dynamic +ubi_format=ubi detach ; mtd erase ubi && ubi part ubi +ubi_init=run ubi_format && run ubi_init_bl && run ubi_create_env && run ubi_init_openwrt && run ubi_init_emmc_install +ubi_init_openwrt=run sdmmc_read_recovery && iminfo $loadaddr && run ubi_write_recovery ; run sdmmc_read_production && iminfo $loadaddr && run ubi_write_production @@ -1480,7 +1480,7 @@ +part_recovery=recovery +reset_factory=ubi part ubi ; mw $loadaddr 0x0 0x800 ; ubi write $loadaddr ubootenv 0x800 ; ubi write $loadaddr ubootenv2 0x800 +snand_write_bl2=mtd erase bl2 && mtd write bl2 $loadaddr 0x0 0x80000 && mtd write bl2 $loadaddr 0x80000 0x80000 && mtd write bl2 $loadaddr 0x100000 0x80000 && mtd write bl2 $loadaddr 0x180000 0x80000 -+ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic 1 ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic 2 ++ubi_create_env=ubi check ubootenv || ubi create ubootenv 0x100000 dynamic ; ubi check ubootenv2 || ubi create ubootenv2 0x100000 dynamic +ubi_prepare_rootfs=if ubi check rootfs_data ; then else if env exists rootfs_data_max ; then ubi create rootfs_data $rootfs_data_max dynamic || ubi create rootfs_data - dynamic ; else ubi create rootfs_data - dynamic ; fi ; fi +ubi_read_production=ubi read $loadaddr fit && iminfo $loadaddr && run ubi_prepare_rootfs +ubi_read_recovery=ubi check recovery && ubi read $loadaddr recovery diff --git a/package/boot/uboot-mediatek/patches/452-add-xiaomi-redmi-ax6s.patch b/package/boot/uboot-mediatek/patches/452-add-xiaomi-redmi-ax6s.patch index bfc4de5b8e..06c866d840 100644 --- a/package/boot/uboot-mediatek/patches/452-add-xiaomi-redmi-ax6s.patch +++ b/package/boot/uboot-mediatek/patches/452-add-xiaomi-redmi-ax6s.patch @@ -315,6 +315,6 @@ Subject: [PATCH] add xiaomi redmi ax6s +ubi_init=ubi part ubi || run ubi_format +ubi_prepare_rootfs=if ubi check rootfs_data ; then else if env exists rootfs_data_max ; then ubi create rootfs_data $rootfs_data_max dynamic || ubi create rootfs_data - dynamic ; else ubi create rootfs_data - dynamic ; fi ; fi +ubi_remove_rootfs=ubi check rootfs_data && ubi remove rootfs_data -+ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic 2 && ubi write $loadaddr fit $filesize ++ubi_write_production=ubi check fit && ubi remove fit ; run ubi_remove_rootfs ; ubi create fit $filesize dynamic && ubi write $loadaddr fit $filesize +ubi_read_production=run ubi_init && ubi read $loadaddr fit && iminfo $loadaddr && run ubi_prepare_rootfs +tftp_production=tftpboot $loadaddr $bootfile_upg && iminfo $loadaddr && run ubi_write_production && reset From 62345002987a902c87af32dd15567236af88d195 Mon Sep 17 00:00:00 2001 From: Daniel Golle Date: Sun, 14 Jul 2024 16:28:42 +0100 Subject: [PATCH 18/21] mediatek: add BPi-R3 mini to platform_check_image() Add entry for the BananaPi R3 mini to the platform_check_image() function where it has been missing. Signed-off-by: Daniel Golle --- target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh | 1 + 1 file changed, 1 insertion(+) diff --git a/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh b/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh index 800e6bc5de..2fed8a0ab5 100755 --- a/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh +++ b/target/linux/mediatek/filogic/base-files/lib/upgrade/platform.sh @@ -207,6 +207,7 @@ platform_check_image() { case "$board" in bananapi,bpi-r3|\ + bananapi,bpi-r3-mini|\ bananapi,bpi-r4|\ bananapi,bpi-r4-poe|\ cmcc,rax3000m) From 850a5caaa3204f3745b91707b24c4c63a4a2a221 Mon Sep 17 00:00:00 2001 From: Daniel Golle Date: Sun, 14 Jul 2024 19:44:26 +0100 Subject: [PATCH 19/21] fstools: update to git HEAD 408c2cc libfstools: skip JFFS2 padding when BLOCKSIZE was given 013050f fstools: remove redundant F2FS_MINSIZE definition Signed-off-by: Daniel Golle --- package/system/fstools/Makefile | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/package/system/fstools/Makefile b/package/system/fstools/Makefile index 29d4726af7..419cdfff9a 100644 --- a/package/system/fstools/Makefile +++ b/package/system/fstools/Makefile @@ -12,9 +12,9 @@ PKG_RELEASE:=1 PKG_SOURCE_PROTO:=git PKG_SOURCE_URL=$(PROJECT_GIT)/project/fstools.git -PKG_MIRROR_HASH:=cf9e09885954e0e43b58126ce4b6f5552462cf1495b89330ce4e66056249787e -PKG_SOURCE_DATE:=2024-01-22 -PKG_SOURCE_VERSION:=08cd7083cac4bddf88459efa0881ee52858e7d0a +PKG_MIRROR_HASH:=5f04ce2b346d9a48468180dd9601ca0fcc83896ebf5466855578e766646e14a1 +PKG_SOURCE_DATE:=2024-07-14 +PKG_SOURCE_VERSION:=408c2cc48e6694446c89da7f8121b399063e1067 CMAKE_INSTALL:=1 PKG_LICENSE:=GPL-2.0 From a9818e3ef82ea45a223a71e845946448df15235e Mon Sep 17 00:00:00 2001 From: John Audia Date: Thu, 11 Jul 2024 16:00:56 -0400 Subject: [PATCH 20/21] kernel: bump 6.6 to 6.6.39 Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.39 Manually rebased: generic/backport-6.6/0080-v6.9-smp-Avoid-setup_max_cpus_namespace_collision_shadowing.patch Removed upstreamed: generic/backport-6.6/801-v6.11-gpio-mmio-do-not-calculate-bgpio_bits-via-ngpios.patch[1] generic/backport-6.6/0081-v6.10-cpu-Fix-broken-cmdline-nosmp-and-maxcpus-0.patch[2] All other patches automatically rebased. 1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.39&id=dee87316b5f5f167a201491a774bbd6e10c8dd94 2. https://github.com/gregkh/linux/commit/69787793e7f0673465c89714d1522fde978bbfa8 Build system: x86/64 Build-tested: x86/64/AMD Cezanne, flogic/glinet_gl-mt6000, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3 Run-tested: x86/64/AMD Cezanne, flogic/glinet_gl-mt6000, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3 Signed-off-by: John Audia Co-authored-by: Hauke Mehrtens Link: https://github.com/openwrt/openwrt/pull/15928 Signed-off-by: Hauke Mehrtens --- include/kernel-6.6 | 4 +- ...5-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch | 6 +-- ...x_cpus_namespace_collision_shadowing.patch | 6 ++- ...x-broken-cmdline-nosmp-and-maxcpus-0.patch | 38 ----------------- ...-not-calculate-bgpio_bits-via-ngpios.patch | 42 ------------------- .../800-GPIO-add-named-gpio-exports.patch | 2 +- .../530-jffs2_make_lzma_available.patch | 2 +- ...vert-to-platform-remove-callback-ret.patch | 6 +-- ...mediatek-lvts_thermal-Make-coeff-con.patch | 4 +- ...mediatek-lvts_thermal-Add-mt7988-sup.patch | 6 +-- ...mediatek-lvts_thermal-Add-suspend-an.patch | 4 +- ...mediatek-lvts_thermal-Add-mt8192-sup.patch | 6 +-- 12 files changed, 25 insertions(+), 101 deletions(-) delete mode 100644 target/linux/generic/backport-6.6/0081-v6.10-cpu-Fix-broken-cmdline-nosmp-and-maxcpus-0.patch delete mode 100644 target/linux/generic/backport-6.6/801-v6.11-gpio-mmio-do-not-calculate-bgpio_bits-via-ngpios.patch diff --git a/include/kernel-6.6 b/include/kernel-6.6 index ebd26db32b..6a6c8aae11 100644 --- a/include/kernel-6.6 +++ b/include/kernel-6.6 @@ -1,2 +1,2 @@ -LINUX_VERSION-6.6 = .38 -LINUX_KERNEL_HASH-6.6.38 = 4ed403ffb550565d03485aeca9a52c128cdde43f4a373a1a9ee3a590524fe743 +LINUX_VERSION-6.6 = .39 +LINUX_KERNEL_HASH-6.6.39 = 2783d42112095f95c510e1b421f056df8cbfa845f9040c6115080434a77a776b diff --git a/target/linux/bcm27xx/patches-6.6/950-0485-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch b/target/linux/bcm27xx/patches-6.6/950-0485-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch index e1846dc8f5..1280d2c27d 100644 --- a/target/linux/bcm27xx/patches-6.6/950-0485-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch +++ b/target/linux/bcm27xx/patches-6.6/950-0485-usb-xhci-add-XHCI_VLI_HUB_TT_QUIRK.patch @@ -75,7 +75,7 @@ Signed-off-by: Jonathan Bell if (pdev->vendor == PCI_VENDOR_ID_ASMEDIA && --- a/drivers/usb/host/xhci-ring.c +++ b/drivers/usb/host/xhci-ring.c -@@ -3657,6 +3657,48 @@ static int xhci_align_td(struct xhci_hcd +@@ -3658,6 +3658,48 @@ static int xhci_align_td(struct xhci_hcd return 1; } @@ -124,7 +124,7 @@ Signed-off-by: Jonathan Bell /* This is very similar to what ehci-q.c qtd_fill() does */ int xhci_queue_bulk_tx(struct xhci_hcd *xhci, gfp_t mem_flags, struct urb *urb, int slot_id, unsigned int ep_index) -@@ -3813,6 +3855,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd * +@@ -3814,6 +3856,8 @@ int xhci_queue_bulk_tx(struct xhci_hcd * } check_trb_math(urb, enqd_len); @@ -133,7 +133,7 @@ Signed-off-by: Jonathan Bell giveback_first_trb(xhci, slot_id, ep_index, urb->stream_id, start_cycle, start_trb); return 0; -@@ -3948,6 +3992,8 @@ int xhci_queue_ctrl_tx(struct xhci_hcd * +@@ -3949,6 +3993,8 @@ int xhci_queue_ctrl_tx(struct xhci_hcd * /* Event on completion */ field | TRB_IOC | TRB_TYPE(TRB_STATUS) | ep_ring->cycle_state); diff --git a/target/linux/generic/backport-6.6/0080-v6.9-smp-Avoid-setup_max_cpus_namespace_collision_shadowing.patch b/target/linux/generic/backport-6.6/0080-v6.9-smp-Avoid-setup_max_cpus_namespace_collision_shadowing.patch index e3e9859037..54ebaa1a80 100644 --- a/target/linux/generic/backport-6.6/0080-v6.9-smp-Avoid-setup_max_cpus_namespace_collision_shadowing.patch +++ b/target/linux/generic/backport-6.6/0080-v6.9-smp-Avoid-setup_max_cpus_namespace_collision_shadowing.patch @@ -32,13 +32,17 @@ Cc: linux-kernel@vger.kernel.org #define cpuhp_tasks_frozen 0 --- a/kernel/cpu.c +++ b/kernel/cpu.c -@@ -1905,14 +1905,14 @@ static bool __init cpuhp_bringup_cpus_pa +@@ -1905,17 +1905,17 @@ static bool __init cpuhp_bringup_cpus_pa static inline bool cpuhp_bringup_cpus_parallel(unsigned int ncpus) { return false; } #endif /* CONFIG_HOTPLUG_PARALLEL */ -void __init bringup_nonboot_cpus(unsigned int setup_max_cpus) +void __init bringup_nonboot_cpus(unsigned int max_cpus) { +- if (!setup_max_cpus) ++ if (!max_cpus) + return; + /* Try parallel bringup optimization if enabled */ - if (cpuhp_bringup_cpus_parallel(setup_max_cpus)) + if (cpuhp_bringup_cpus_parallel(max_cpus)) diff --git a/target/linux/generic/backport-6.6/0081-v6.10-cpu-Fix-broken-cmdline-nosmp-and-maxcpus-0.patch b/target/linux/generic/backport-6.6/0081-v6.10-cpu-Fix-broken-cmdline-nosmp-and-maxcpus-0.patch deleted file mode 100644 index e47796a078..0000000000 --- a/target/linux/generic/backport-6.6/0081-v6.10-cpu-Fix-broken-cmdline-nosmp-and-maxcpus-0.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 6ef8eb5125722c241fd60d7b0c872d5c2e5dd4ca Mon Sep 17 00:00:00 2001 -From: Huacai Chen -Date: Tue, 18 Jun 2024 16:13:36 +0800 -Subject: [PATCH] cpu: Fix broken cmdline "nosmp" and "maxcpus=0" - -After the rework of "Parallel CPU bringup", the cmdline "nosmp" and -"maxcpus=0" parameters are not working anymore. These parameters set -setup_max_cpus to zero and that's handed to bringup_nonboot_cpus(). - -The code there does a decrement before checking for zero, which brings it -into the negative space and brings up all CPUs. - -Add a zero check at the beginning of the function to prevent this. - -[ tglx: Massaged change log ] - -Fixes: 18415f33e2ac4ab382 ("cpu/hotplug: Allow "parallel" bringup up to CPUHP_BP_KICK_AP_STATE") -Fixes: 06c6796e0304234da6 ("cpu/hotplug: Fix off by one in cpuhp_bringup_mask()") -Signed-off-by: Huacai Chen -Signed-off-by: Thomas Gleixner -Cc: stable@vger.kernel.org -Link: https://lore.kernel.org/r/20240618081336.3996825-1-chenhuacai@loongson.cn ---- - kernel/cpu.c | 3 +++ - 1 file changed, 3 insertions(+) - ---- a/kernel/cpu.c -+++ b/kernel/cpu.c -@@ -1907,6 +1907,9 @@ static inline bool cpuhp_bringup_cpus_pa - - void __init bringup_nonboot_cpus(unsigned int max_cpus) - { -+ if (!max_cpus) -+ return; -+ - /* Try parallel bringup optimization if enabled */ - if (cpuhp_bringup_cpus_parallel(max_cpus)) - return; diff --git a/target/linux/generic/backport-6.6/801-v6.11-gpio-mmio-do-not-calculate-bgpio_bits-via-ngpios.patch b/target/linux/generic/backport-6.6/801-v6.11-gpio-mmio-do-not-calculate-bgpio_bits-via-ngpios.patch deleted file mode 100644 index 117c879e48..0000000000 --- a/target/linux/generic/backport-6.6/801-v6.11-gpio-mmio-do-not-calculate-bgpio_bits-via-ngpios.patch +++ /dev/null @@ -1,42 +0,0 @@ -From f07798d7bb9c46d17d80103fb772fd2c75d47919 Mon Sep 17 00:00:00 2001 -From: Shiji Yang -Date: Tue, 25 Jun 2024 09:19:49 +0800 -Subject: [PATCH] gpio: mmio: do not calculate bgpio_bits via "ngpios" - -bgpio_bits must be aligned with the data bus width. For example, on a -32 bit big endian system and we only have 16 GPIOs. If we only assume -bgpio_bits=16 we can never control the GPIO because the base address -is the lowest address. - -low address high address -------------------------------------------------- -| byte3 | byte2 | byte1 | byte0 | -------------------------------------------------- -| NaN | NaN | gpio8-15 | gpio0-7 | -------------------------------------------------- - -Fixes: 55b2395e4e92 ("gpio: mmio: handle "ngpios" properly in bgpio_init()") -Fixes: https://github.com/openwrt/openwrt/issues/15739 -Reported-by: Mark Mentovai -Signed-off-by: Shiji Yang -Suggested-By: Mark Mentovai -Reviewed-by: Jonas Gorski -Tested-by: Lóránd Horváth -Reviewed-by: Linus Walleij -Link: https://lore.kernel.org/r/TYCP286MB089577B47D70F0AB25ABA6F5BCD52@TYCP286MB0895.JPNP286.PROD.OUTLOOK.COM -Signed-off-by: Bartosz Golaszewski ---- - drivers/gpio/gpio-mmio.c | 2 -- - 1 file changed, 2 deletions(-) - ---- a/drivers/gpio/gpio-mmio.c -+++ b/drivers/gpio/gpio-mmio.c -@@ -622,8 +622,6 @@ int bgpio_init(struct gpio_chip *gc, str - ret = gpiochip_get_ngpios(gc, dev); - if (ret) - gc->ngpio = gc->bgpio_bits; -- else -- gc->bgpio_bits = roundup_pow_of_two(round_up(gc->ngpio, 8)); - - ret = bgpio_setup_io(gc, dat, set, clr, flags); - if (ret) diff --git a/target/linux/generic/hack-6.6/800-GPIO-add-named-gpio-exports.patch b/target/linux/generic/hack-6.6/800-GPIO-add-named-gpio-exports.patch index 666dcfad4d..cb03f760df 100644 --- a/target/linux/generic/hack-6.6/800-GPIO-add-named-gpio-exports.patch +++ b/target/linux/generic/hack-6.6/800-GPIO-add-named-gpio-exports.patch @@ -15,7 +15,7 @@ Signed-off-by: John Crispin #include "gpiolib.h" #include "gpiolib-of.h" -@@ -1111,3 +1113,74 @@ void of_gpiochip_remove(struct gpio_chip +@@ -1129,3 +1131,74 @@ void of_gpiochip_remove(struct gpio_chip { of_node_put(dev_of_node(&chip->gpiodev->dev)); } diff --git a/target/linux/generic/pending-6.6/530-jffs2_make_lzma_available.patch b/target/linux/generic/pending-6.6/530-jffs2_make_lzma_available.patch index 3be6c8eb9d..66c458d7e6 100644 --- a/target/linux/generic/pending-6.6/530-jffs2_make_lzma_available.patch +++ b/target/linux/generic/pending-6.6/530-jffs2_make_lzma_available.patch @@ -254,7 +254,7 @@ Signed-off-by: Alexandros C. Couloumbis +} --- a/fs/jffs2/super.c +++ b/fs/jffs2/super.c -@@ -374,14 +374,41 @@ static int __init init_jffs2_fs(void) +@@ -375,14 +375,41 @@ static int __init init_jffs2_fs(void) BUILD_BUG_ON(sizeof(struct jffs2_raw_inode) != 68); BUILD_BUG_ON(sizeof(struct jffs2_raw_summary) != 32); diff --git a/target/linux/mediatek/patches-6.6/830-v6.7-39-thermal-lvts-Convert-to-platform-remove-callback-ret.patch b/target/linux/mediatek/patches-6.6/830-v6.7-39-thermal-lvts-Convert-to-platform-remove-callback-ret.patch index 76fe8326d6..2793f3857f 100644 --- a/target/linux/mediatek/patches-6.6/830-v6.7-39-thermal-lvts-Convert-to-platform-remove-callback-ret.patch +++ b/target/linux/mediatek/patches-6.6/830-v6.7-39-thermal-lvts-Convert-to-platform-remove-callback-ret.patch @@ -29,7 +29,7 @@ Signed-off-by: Rafael J. Wysocki --- a/drivers/thermal/mediatek/lvts_thermal.c +++ b/drivers/thermal/mediatek/lvts_thermal.c -@@ -1247,7 +1247,7 @@ static int lvts_probe(struct platform_de +@@ -1249,7 +1249,7 @@ static int lvts_probe(struct platform_de return 0; } @@ -38,7 +38,7 @@ Signed-off-by: Rafael J. Wysocki { struct lvts_domain *lvts_td; int i; -@@ -1258,8 +1258,6 @@ static int lvts_remove(struct platform_d +@@ -1260,8 +1260,6 @@ static int lvts_remove(struct platform_d lvts_ctrl_set_enable(&lvts_td->lvts_ctrl[i], false); lvts_debugfs_exit(lvts_td); @@ -47,7 +47,7 @@ Signed-off-by: Rafael J. Wysocki } static const struct lvts_ctrl_data mt8195_lvts_mcu_data_ctrl[] = { -@@ -1360,7 +1358,7 @@ MODULE_DEVICE_TABLE(of, lvts_of_match); +@@ -1362,7 +1360,7 @@ MODULE_DEVICE_TABLE(of, lvts_of_match); static struct platform_driver lvts_driver = { .probe = lvts_probe, diff --git a/target/linux/mediatek/patches-6.6/830-v6.7-40-thermal-drivers-mediatek-lvts_thermal-Make-coeff-con.patch b/target/linux/mediatek/patches-6.6/830-v6.7-40-thermal-drivers-mediatek-lvts_thermal-Make-coeff-con.patch index 0b965c9521..a9f84a4c7d 100644 --- a/target/linux/mediatek/patches-6.6/830-v6.7-40-thermal-drivers-mediatek-lvts_thermal-Make-coeff-con.patch +++ b/target/linux/mediatek/patches-6.6/830-v6.7-40-thermal-drivers-mediatek-lvts_thermal-Make-coeff-con.patch @@ -171,7 +171,7 @@ Link: https://lore.kernel.org/r/20230922055020.6436-4-linux@fw-web.de lvts_ctrl[i].low_thresh = INT_MIN; lvts_ctrl[i].high_thresh = INT_MIN; -@@ -1229,6 +1240,8 @@ static int lvts_probe(struct platform_de +@@ -1231,6 +1242,8 @@ static int lvts_probe(struct platform_de if (irq < 0) return irq; @@ -180,7 +180,7 @@ Link: https://lore.kernel.org/r/20230922055020.6436-4-linux@fw-web.de ret = lvts_domain_init(dev, lvts_td, lvts_data); if (ret) return dev_err_probe(dev, ret, "Failed to initialize the lvts domain\n"); -@@ -1342,11 +1355,15 @@ static const struct lvts_ctrl_data mt819 +@@ -1344,11 +1357,15 @@ static const struct lvts_ctrl_data mt819 static const struct lvts_data mt8195_lvts_mcu_data = { .lvts_ctrl = mt8195_lvts_mcu_data_ctrl, .num_lvts_ctrl = ARRAY_SIZE(mt8195_lvts_mcu_data_ctrl), diff --git a/target/linux/mediatek/patches-6.6/830-v6.7-42-thermal-drivers-mediatek-lvts_thermal-Add-mt7988-sup.patch b/target/linux/mediatek/patches-6.6/830-v6.7-42-thermal-drivers-mediatek-lvts_thermal-Add-mt7988-sup.patch index 65d90899f8..a32d950fc9 100644 --- a/target/linux/mediatek/patches-6.6/830-v6.7-42-thermal-drivers-mediatek-lvts_thermal-Add-mt7988-sup.patch +++ b/target/linux/mediatek/patches-6.6/830-v6.7-42-thermal-drivers-mediatek-lvts_thermal-Add-mt7988-sup.patch @@ -33,7 +33,7 @@ Link: https://lore.kernel.org/r/20230922055020.6436-5-linux@fw-web.de #define LVTS_HW_SHUTDOWN_MT8195 105000 #define LVTS_MINIMUM_THRESHOLD 20000 -@@ -1273,6 +1276,33 @@ static void lvts_remove(struct platform_ +@@ -1275,6 +1278,33 @@ static void lvts_remove(struct platform_ lvts_debugfs_exit(lvts_td); } @@ -67,7 +67,7 @@ Link: https://lore.kernel.org/r/20230922055020.6436-5-linux@fw-web.de static const struct lvts_ctrl_data mt8195_lvts_mcu_data_ctrl[] = { { .cal_offset = { 0x04, 0x07 }, -@@ -1352,6 +1382,13 @@ static const struct lvts_ctrl_data mt819 +@@ -1354,6 +1384,13 @@ static const struct lvts_ctrl_data mt819 } }; @@ -81,7 +81,7 @@ Link: https://lore.kernel.org/r/20230922055020.6436-5-linux@fw-web.de static const struct lvts_data mt8195_lvts_mcu_data = { .lvts_ctrl = mt8195_lvts_mcu_data_ctrl, .num_lvts_ctrl = ARRAY_SIZE(mt8195_lvts_mcu_data_ctrl), -@@ -1367,6 +1404,7 @@ static const struct lvts_data mt8195_lvt +@@ -1369,6 +1406,7 @@ static const struct lvts_data mt8195_lvt }; static const struct of_device_id lvts_of_match[] = { diff --git a/target/linux/mediatek/patches-6.6/830-v6.7-45-thermal-drivers-mediatek-lvts_thermal-Add-suspend-an.patch b/target/linux/mediatek/patches-6.6/830-v6.7-45-thermal-drivers-mediatek-lvts_thermal-Add-suspend-an.patch index 98946fc814..46e1eeb239 100644 --- a/target/linux/mediatek/patches-6.6/830-v6.7-45-thermal-drivers-mediatek-lvts_thermal-Add-suspend-an.patch +++ b/target/linux/mediatek/patches-6.6/830-v6.7-45-thermal-drivers-mediatek-lvts_thermal-Add-suspend-an.patch @@ -24,7 +24,7 @@ Link: https://lore.kernel.org/r/20231017190545.157282-3-bero@baylibre.com --- a/drivers/thermal/mediatek/lvts_thermal.c +++ b/drivers/thermal/mediatek/lvts_thermal.c -@@ -1303,6 +1303,38 @@ static const struct lvts_ctrl_data mt798 +@@ -1305,6 +1305,38 @@ static const struct lvts_ctrl_data mt798 } }; @@ -63,7 +63,7 @@ Link: https://lore.kernel.org/r/20231017190545.157282-3-bero@baylibre.com static const struct lvts_ctrl_data mt8195_lvts_mcu_data_ctrl[] = { { .cal_offset = { 0x04, 0x07 }, -@@ -1411,12 +1443,17 @@ static const struct of_device_id lvts_of +@@ -1413,12 +1445,17 @@ static const struct of_device_id lvts_of }; MODULE_DEVICE_TABLE(of, lvts_of_match); diff --git a/target/linux/mediatek/patches-6.6/830-v6.7-47-thermal-drivers-mediatek-lvts_thermal-Add-mt8192-sup.patch b/target/linux/mediatek/patches-6.6/830-v6.7-47-thermal-drivers-mediatek-lvts_thermal-Add-mt8192-sup.patch index d478856359..3b7d9489f2 100644 --- a/target/linux/mediatek/patches-6.6/830-v6.7-47-thermal-drivers-mediatek-lvts_thermal-Add-mt8192-sup.patch +++ b/target/linux/mediatek/patches-6.6/830-v6.7-47-thermal-drivers-mediatek-lvts_thermal-Add-mt8192-sup.patch @@ -34,7 +34,7 @@ Link: https://lore.kernel.org/r/20231017190545.157282-4-bero@baylibre.com #define LVTS_HW_SHUTDOWN_MT8195 105000 #define LVTS_MINIMUM_THRESHOLD 20000 -@@ -1335,6 +1336,88 @@ static int lvts_resume(struct device *de +@@ -1337,6 +1338,88 @@ static int lvts_resume(struct device *de return 0; } @@ -123,7 +123,7 @@ Link: https://lore.kernel.org/r/20231017190545.157282-4-bero@baylibre.com static const struct lvts_ctrl_data mt8195_lvts_mcu_data_ctrl[] = { { .cal_offset = { 0x04, 0x07 }, -@@ -1421,6 +1504,16 @@ static const struct lvts_data mt7988_lvt +@@ -1423,6 +1506,16 @@ static const struct lvts_data mt7988_lvt .temp_offset = LVTS_COEFF_B_MT7988, }; @@ -140,7 +140,7 @@ Link: https://lore.kernel.org/r/20231017190545.157282-4-bero@baylibre.com static const struct lvts_data mt8195_lvts_mcu_data = { .lvts_ctrl = mt8195_lvts_mcu_data_ctrl, .num_lvts_ctrl = ARRAY_SIZE(mt8195_lvts_mcu_data_ctrl), -@@ -1437,6 +1530,8 @@ static const struct lvts_data mt8195_lvt +@@ -1439,6 +1532,8 @@ static const struct lvts_data mt8195_lvt static const struct of_device_id lvts_of_match[] = { { .compatible = "mediatek,mt7988-lvts-ap", .data = &mt7988_lvts_ap_data }, From 607697fa4b8c43926a9983ee952b64aa249a3302 Mon Sep 17 00:00:00 2001 From: Zxl hhyccc Date: Sat, 13 Jul 2024 01:37:10 +0800 Subject: [PATCH 21/21] kernel: bump 6.1 to 6.1.98 https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.1.98 All patches automatically rebased. Build system: bcm53xx ath79 Signed-off-by: Zxl hhyccc Link: https://github.com/openwrt/openwrt/pull/15935 Signed-off-by: Hauke Mehrtens --- include/kernel-6.1 | 4 ++-- .../generic/pending-6.1/530-jffs2_make_lzma_available.patch | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/include/kernel-6.1 b/include/kernel-6.1 index d67049a6b3..1f97e8f301 100644 --- a/include/kernel-6.1 +++ b/include/kernel-6.1 @@ -1,2 +1,2 @@ -LINUX_VERSION-6.1 = .97 -LINUX_KERNEL_HASH-6.1.97 = 890b845f36452328716e62dd893b634584f607cdd44b4e685392d302d3be41af +LINUX_VERSION-6.1 = .98 +LINUX_KERNEL_HASH-6.1.98 = 97cdc9127c7700556ea0891267a0c24cf372f4b81636fb8203a914f3a69f3406 diff --git a/target/linux/generic/pending-6.1/530-jffs2_make_lzma_available.patch b/target/linux/generic/pending-6.1/530-jffs2_make_lzma_available.patch index 27a673399a..5dd47ef388 100644 --- a/target/linux/generic/pending-6.1/530-jffs2_make_lzma_available.patch +++ b/target/linux/generic/pending-6.1/530-jffs2_make_lzma_available.patch @@ -244,7 +244,7 @@ Signed-off-by: Alexandros C. Couloumbis +} --- a/fs/jffs2/super.c +++ b/fs/jffs2/super.c -@@ -374,14 +374,41 @@ static int __init init_jffs2_fs(void) +@@ -375,14 +375,41 @@ static int __init init_jffs2_fs(void) BUILD_BUG_ON(sizeof(struct jffs2_raw_inode) != 68); BUILD_BUG_ON(sizeof(struct jffs2_raw_summary) != 32);