From c90487556229ae264dec33305e5c71c4ef7dd1c5 Mon Sep 17 00:00:00 2001 From: Rodrigo Balerdi Date: Thu, 11 Apr 2024 12:14:19 -0300 Subject: [PATCH 1/9] ipq40xx: add support for Linksys WHW03 V1 Hardware: ========= SOC: Qualcomm IPQ4019 WiFi 1: QCA4019 IEEE 802.11b/g/n WiFi 2: QCA4019 IEEE 802.11a/n/ac WiFi 3: QCA9886 IEEE 802.11a/n/ac Bluetooth: Qualcomm CSR8510 (A10) Zigbee: Silicon Labs EM3581 NCP + Skyworks SE2432L Ethernet: Qualcomm Atheros QCA8072 (2-port) Flash: Samsung KLM4G1FEPD (4GB eMMC) RAM (NAND): 512MB LED Controller: NXP PCA9633 (I2C) Buttons: Single reset button (GPIO). Ethernet: ========= The device has 2 ethernet ports, configured as follows by default: - left port: WAN - right port: LAN Wifi: ===== The Wifi radios are turned off by default. To configure the router, you will need to connect your computer to the LAN port of the device. Bluetooth and Zigbee: ===================== Configuration included but not tested. Storage: ======== For compatibility with stock firmware, all of OpenWrt runs in a 136 MiB eMMC partition (of which there are two copies, see below). You can also use partition /dev/mmcblk0p19 "syscfg" (3.4 GiB) any way you see fit. During very limited tests, stock firmware did not mount this partition. However, backing up its stock content before use is recommended anyway. Firmware: ========= The device uses a dual firmware mechanism: it automatically reverts to the previous firmware after 3 failed boot attempts. You can switch to the inactive firmware copy by changing the "boot_part" U-Boot environment variable. You can also do it by turning on the device for a couple of seconds and then back off, 3 times in a row. Installation: ============= OpenWrt's "factory" image can be installed via the stock web UI: 1. Login to the UI. (The default password is printed on the label.) 2. Enter support mode by clicking on the "CA" link at the bottom. 3. Click "Connectivity", "Choose file", "Start", and ignore warnings. This port is based on work done by flipy (https://github.com/flipy). Signed-off-by: Rodrigo Balerdi Link: https://github.com/openwrt/openwrt/pull/15345 Signed-off-by: Robert Marko --- package/boot/uboot-envtools/files/ipq40xx | 3 + .../ipq40xx/base-files/etc/board.d/02_network | 5 + .../etc/hotplug.d/firmware/11-ath10k-caldata | 12 + .../ipq40xx/base-files/etc/init.d/bootcount | 32 ++ .../lib/preinit/05_set_iface_mac_ipq40xx.sh | 6 + .../ipq40xx/base-files/lib/upgrade/linksys.sh | 68 ++++ .../base-files/lib/upgrade/platform.sh | 6 +- .../arm/boot/dts/qcom/qcom-ipq4019-whw03.dts | 351 ++++++++++++++++++ target/linux/ipq40xx/image/generic.mk | 14 + 9 files changed, 496 insertions(+), 1 deletion(-) create mode 100644 target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-whw03.dts diff --git a/package/boot/uboot-envtools/files/ipq40xx b/package/boot/uboot-envtools/files/ipq40xx index 8cada7334b326d..717158b0425ea5 100644 --- a/package/boot/uboot-envtools/files/ipq40xx +++ b/package/boot/uboot-envtools/files/ipq40xx @@ -67,6 +67,9 @@ linksys,mr8300) linksys,whw01) ubootenv_add_uci_config "/dev/mtd6" "0x0" "0x40000" "0x10000" ;; +linksys,whw03) + ubootenv_add_uci_config "/dev/mmcblk0p11" "0x0" "0x100000" + ;; linksys,whw03v2) ubootenv_add_uci_config "/dev/mtd6" "0x0" "0x80000" "0x20000" ;; diff --git a/target/linux/ipq40xx/base-files/etc/board.d/02_network b/target/linux/ipq40xx/base-files/etc/board.d/02_network index 02059580a16476..e86d24fab5b587 100644 --- a/target/linux/ipq40xx/base-files/etc/board.d/02_network +++ b/target/linux/ipq40xx/base-files/etc/board.d/02_network @@ -37,6 +37,7 @@ ipq40xx_setup_interfaces() glinet,gl-ap1300|\ glinet,gl-b2200|\ google,wifi|\ + linksys,whw03|\ linksys,whw03v2|\ luma,wrtq-329acn|\ mikrotik,cap-ac|\ @@ -215,6 +216,10 @@ ipq40xx_setup_macs() wan_mac=$(mtd_get_mac_ascii devinfo hw_mac_addr) lan_mac=$(macaddr_add "$wan_mac" 1) ;; + linksys,whw03) + wan_mac=$(mmc_get_mac_ascii devinfo hw_mac_addr) + lan_mac="$wan_mac" + ;; mikrotik,cap-ac |\ mikrotik,hap-ac2|\ mikrotik,hap-ac3|\ diff --git a/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata b/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata index 654be2697a6362..3b7f44282dcabe 100644 --- a/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata +++ b/target/linux/ipq40xx/base-files/etc/hotplug.d/firmware/11-ath10k-caldata @@ -40,6 +40,10 @@ case "$FIRMWARE" in # OEM assigns 4 sequential MACs ath10k_patch_mac $(macaddr_setbit_la $(macaddr_add "$(cat /sys/class/net/eth0/address)" 4)) ;; + linksys,whw03) + caldata_extract_mmc "0:ART" 0x9000 0x2f20 + ath10k_patch_mac $(macaddr_add "$(cat /sys/class/net/eth0/address)" 3) + ;; netgear,rbr40|\ netgear,rbs40|\ netgear,rbr50|\ @@ -104,6 +108,10 @@ case "$FIRMWARE" in caldata_extract "ART" 0x1000 0x2f20 ath10k_patch_mac $(macaddr_add "$(cat /sys/class/net/eth0/address)" 2) ;; + linksys,whw03) + caldata_extract_mmc "0:ART" 0x1000 0x2f20 + ath10k_patch_mac $(macaddr_add "$(cat /sys/class/net/eth0/address)" 1) + ;; meraki,mr33 |\ meraki,mr74) caldata_extract_ubi "ART" 0x1000 0x2f20 @@ -200,6 +208,10 @@ case "$FIRMWARE" in caldata_extract "ART" 0x5000 0x2f20 ath10k_patch_mac $(macaddr_add "$(cat /sys/class/net/eth0/address)" 3) ;; + linksys,whw03) + caldata_extract_mmc "0:ART" 0x5000 0x2f20 + ath10k_patch_mac $(macaddr_add "$(cat /sys/class/net/eth0/address)" 2) + ;; meraki,mr33 |\ meraki,mr74) caldata_extract_ubi "ART" 0x5000 0x2f20 diff --git a/target/linux/ipq40xx/base-files/etc/init.d/bootcount b/target/linux/ipq40xx/base-files/etc/init.d/bootcount index df656c9b85b71c..0120f78cfe8409 100755 --- a/target/linux/ipq40xx/base-files/etc/init.d/bootcount +++ b/target/linux/ipq40xx/base-files/etc/init.d/bootcount @@ -2,6 +2,35 @@ START=99 +mmc_resetbc() { + local part_label="$1" + + . /lib/functions.sh + + local part_device="$(find_mmc_part "$part_label")" + if [ "$part_device" = "" ]; then + >&2 echo "mmc_resetbc: Unknown partition label: $part_label" + return 1 + fi + + local magic_number="$(hexdump -e '"0x%02x\n"' -n 4 "$part_device")" + if [ "$magic_number" != "0x20110811" ]; then + >&2 echo "mmc_resetbc: Unexpected partition magic: $magic_number" + return 1 + fi + + local last_count=$(hexdump -e '"0x%02x\n"' -n 4 -s 4 "$part_device") + if [ "$last_count" != "0x00" ]; then + printf "\x00" | dd of="$part_device" bs=4 seek=1 count=1 conv=notrunc 2>/dev/null + + last_count=$(hexdump -e '"0x%02x\n"' -n 4 -s 4 "$part_device") + if [ "$last_count" != "0x00" ]; then + >&2 echo "mmc_resetbc: Unable to reset boot counter" + return 1 + fi + fi +} + boot() { case $(board_name) in alfa-network,ap120c-ac) @@ -15,6 +44,9 @@ boot() { linksys,whw03v2) mtd resetbc s_env || true ;; + linksys,whw03) + mmc_resetbc s_env || true + ;; netgear,wac510) fw_setenv boot_cnt=0 ;; diff --git a/target/linux/ipq40xx/base-files/lib/preinit/05_set_iface_mac_ipq40xx.sh b/target/linux/ipq40xx/base-files/lib/preinit/05_set_iface_mac_ipq40xx.sh index 96e70f62a92349..1ede544aacc3b0 100644 --- a/target/linux/ipq40xx/base-files/lib/preinit/05_set_iface_mac_ipq40xx.sh +++ b/target/linux/ipq40xx/base-files/lib/preinit/05_set_iface_mac_ipq40xx.sh @@ -30,6 +30,12 @@ preinit_set_mac_address() { ip link set dev lan1 address $(macaddr_add "$base_mac" 1) ip link set dev eth0 address $(macaddr_setbit "$base_mac" 7) ;; + linksys,whw03) + base_mac=$(mmc_get_mac_ascii devinfo hw_mac_addr) + ip link set dev eth0 address "$base_mac" + ip link set dev lan address "$base_mac" + ip link set dev wan address "$base_mac" + ;; mikrotik,wap-ac|\ mikrotik,wap-ac-lte|\ mikrotik,wap-r-ac) diff --git a/target/linux/ipq40xx/base-files/lib/upgrade/linksys.sh b/target/linux/ipq40xx/base-files/lib/upgrade/linksys.sh index 18366fc622a478..860c3fd2de997a 100644 --- a/target/linux/ipq40xx/base-files/lib/upgrade/linksys.sh +++ b/target/linux/ipq40xx/base-files/lib/upgrade/linksys.sh @@ -123,3 +123,71 @@ platform_do_upgrade_linksys() { get_image "$1" | mtd -e "$part_label" write - "$part_label" } } + +linksys_get_cmdline_rootfs_device() { + if read cmdline < /proc/cmdline; then + case "$cmdline" in + *root=*) + local str="${cmdline##*root=}" + echo "${str%% *}" + return + ;; + esac + fi + return 1 +} + +linksys_get_current_boot_part_emmc() { + local boot_part="$(fw_printenv -n boot_part)" + if [ "$boot_part" = 1 ] || [ "$boot_part" = 2 ]; then + v "Current boot_part=$boot_part selected from bootloader environment" + else + local rootfs_device="$(linksys_get_cmdline_rootfs_device)" + if [ "$rootfs_device" = "$(find_mmc_part "rootfs")" ]; then + boot_part=1 + elif [ "$rootfs_device" = "$(find_mmc_part "alt_rootfs")" ]; then + boot_part=2 + else + v "Could not determine current boot_part" + return 1 + fi + v "Current boot_part=$boot_part selected from cmdline rootfs=$rootfs_device" + fi + echo $boot_part +} + +linksys_set_target_partitions_emmc() { + local current_boot_part="$1" + + if [ "$current_boot_part" = 1 ]; then + CI_KERNPART="alt_kernel" + CI_ROOTPART="alt_rootfs" + fw_setenv -s - <<-EOF + boot_part 2 + auto_recovery yes + EOF + elif [ "$current_boot_part" = 2 ]; then + CI_KERNPART="kernel" + CI_ROOTPART="rootfs" + fw_setenv -s - <<-EOF + boot_part 1 + auto_recovery yes + EOF + else + v "Could not set target eMMC partitions" + return 1 + fi + + v "Target eMMC partitions: $CI_KERNPART, $CI_ROOTPART" +} + +platform_do_upgrade_linksys_emmc() { + local file="$1" + + mkdir -p /var/lock + local current_boot_part="$(linksys_get_current_boot_part_emmc)" + linksys_set_target_partitions_emmc "$current_boot_part" || exit 1 + touch /var/lock/fw_printenv.lock + + emmc_do_upgrade "$file" +} diff --git a/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh b/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh index e93432684956ef..53a95611487b50 100644 --- a/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/ipq40xx/base-files/lib/upgrade/platform.sh @@ -175,6 +175,9 @@ platform_do_upgrade() { linksys,whw03v2) platform_do_upgrade_linksys "$1" ;; + linksys,whw03) + platform_do_upgrade_linksys_emmc "$1" + ;; meraki,mr33 |\ meraki,mr74) CI_KERNPART="part.safe" @@ -236,7 +239,8 @@ platform_do_upgrade() { platform_copy_config() { case "$(board_name)" in glinet,gl-b2200 |\ - google,wifi) + google,wifi |\ + linksys,whw03) emmc_copy_config ;; esac diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-whw03.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-whw03.dts new file mode 100644 index 00000000000000..c835a2216e5a9e --- /dev/null +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-whw03.dts @@ -0,0 +1,351 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "qcom-ipq4019.dtsi" +#include +#include +#include +#include + +/ { + model = "Linksys WHW03 (Velop)"; + compatible = "linksys,whw03", "qcom,ipq4019"; + + aliases { + led-boot = &led_blue; + led-failsafe = &led_red; + led-running = &led_blue; + led-upgrade = &led_red; + }; + + // Default bootargs include rootfstype=ext4 and need to be overriden. + chosen { + bootargs-append = " rootfstype=squashfs"; + }; + + soc { + ess-tcsr@1953000 { + compatible = "qcom,tcsr"; + reg = <0x1953000 0x1000>; + qcom,ess-interface-select = ; + }; + + + tcsr@1949000 { + compatible = "qcom,tcsr"; + reg = <0x1949000 0x100>; + qcom,wifi_glb_cfg = ; + }; + + tcsr@194b000 { + compatible = "qcom,tcsr"; + reg = <0x194b000 0x100>; + qcom,usb-hsphy-mode-select = ; + }; + + tcsr@1957000 { + compatible = "qcom,tcsr"; + reg = <0x1957000 0x100>; + qcom,wifi_noc_memtype_m0_m2 = ; + }; + }; + + + keys { + compatible = "gpio-keys"; + + reset { + label = "reset"; + gpios = <&tlmm 18 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + }; +}; + + +&tlmm { + mdio_pins: mdio-pinmux { + mux-1 { + pins = "gpio6"; + function = "mdio"; + bias-pull-up; + }; + + mux-2 { + pins = "gpio7"; + function = "mdc"; + bias-pull-up; + }; + }; + + sd_pins: sd-pinmux { + pins = "gpio23", "gpio24", "gpio25", "gpio26", + "gpio27", "gpio28", "gpio29", "gpio30", + "gpio31", "gpio32"; + function = "sdio"; + }; + + i2c_0_pins: i2c-0-pinmux { + pins = "gpio58", "gpio59"; + function = "blsp_i2c0"; + bias-disable; + }; + + serial_0_pins: serial0-pinmux { + pins = "gpio16", "gpio17"; + function = "blsp_uart0"; + bias-disable; + }; + + serial_1_pins: serial1-pinmux { + pins = "gpio8", "gpio9", "gpio10", "gpio11"; + function = "blsp_uart1"; + bias-disable; + }; + + spi_0_pins: spi-0-pinmux { + pins = "gpio12", "gpio13", "gpio14", "gpio15"; + function = "blsp_spi0"; + bias-disable; + }; + + spi_1_pins: spi-1-pinmux { + mux-1 { + pins = "gpio44", "gpio46", "gpio47"; + function = "blsp_spi1"; + bias-disable; + }; + + mux-2 { + pins = "gpio45", "gpio49"; + function = "gpio"; + bias-pull-up; + output-high; + }; + + host-interrupt { + pins = "gpio42"; + function = "gpio"; + input; + }; + }; + + wifi_0_pins: wifi0-pinmux { + pins = "gpio52"; + function = "gpio"; + drive-strength = <6>; + bias-pull-up; + output-high; + }; + + zigbee-0 { + gpio-hog; + gpios = <29 GPIO_ACTIVE_HIGH>; + bias-disable; + output-low; + }; + + zigbee-1 { + gpio-hog; + gpios = <50 GPIO_ACTIVE_HIGH>; + bias-disable; + input; + }; + + bluetooth-enable { + gpio-hog; + gpios = <32 GPIO_ACTIVE_HIGH>; + output-high; + }; +}; + +&mdio { + status = "okay"; + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; + reset-gpios = <&tlmm 41 GPIO_ACTIVE_LOW>; +}; + +ðphy0 { + status = "disabled"; +}; + +ðphy1 { + status = "disabled"; +}; + +ðphy2 { + status = "disabled"; +}; + +&watchdog { + status = "okay"; +}; + +&prng { + status = "okay"; +}; + +&blsp_dma { + status = "okay"; +}; + +&cryptobam { + num-channels = <4>; + qcom,num-ees = <2>; + + status = "okay"; +}; + +&crypto { + status = "okay"; +}; + +&vqmmc { + status = "okay"; +}; + +&blsp1_uart1 { + status = "okay"; + pinctrl-0 = <&serial_0_pins>; + pinctrl-names = "default"; +}; + +&blsp1_uart2 { + status = "okay"; + pinctrl-0 = <&serial_1_pins>; + pinctrl-names = "default"; + + bluetooth { + compatible = "csr,8811"; + + enable-gpios = <&tlmm 32 GPIO_ACTIVE_HIGH>; + }; +}; + +&blsp1_spi2 { + pinctrl-0 = <&spi_1_pins>; + pinctrl-names = "default"; + status = "okay"; + + cs-gpios = <&tlmm 45 GPIO_ACTIVE_HIGH>; + + zigbee@0 { + #address-cells = <1>; + #size-cells = <0>; + + compatible = "silabs,em3581"; + reg = <0>; + spi-max-frequency = <12000000>; + }; +}; + +&blsp1_i2c3 { + pinctrl-0 = <&i2c_0_pins>; + pinctrl-names = "default"; + + status = "okay"; + + // RGB LEDs + pca9633: led-controller@62 { + compatible = "nxp,pca9633"; + nxp,hw-blink; + reg = <0x62>; + #address-cells = <1>; + #size-cells = <0>; + + led_red: red@0 { + color = ; + function = LED_FUNCTION_INDICATOR; + reg = <0>; + }; + + led_green: green@1 { + color = ; + function = LED_FUNCTION_INDICATOR; + reg = <1>; + }; + + led_blue: blue@2 { + color = ; + function = LED_FUNCTION_INDICATOR; + reg = <2>; + }; + }; +}; + +&sdhci { + vqmmc-supply = <&vqmmc>; + pinctrl-0 = <&sd_pins>; + pinctrl-names = "default"; + cd-gpios = <&tlmm 22 GPIO_ACTIVE_LOW>; + sd-ldo-gpios = <&tlmm 33 GPIO_ACTIVE_LOW>; + status = "okay"; +}; + +&pcie0 { + status = "okay"; + + perst-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>; + wake-gpios = <&tlmm 40 GPIO_ACTIVE_LOW>; + clkreq-gpios = <&tlmm 39 GPIO_ACTIVE_LOW>; + + bridge@0,0 { + reg = <0x00000000 0 0 0 0>; + #address-cells = <3>; + #size-cells = <2>; + ranges; + + wifi2: wifi@1,0 { + compatible = "qcom,ath10k"; + reg = <0x00000000 0 0 0 0>; + }; + }; +}; + +&qpic_bam { + status = "okay"; +}; + +&gmac { + status = "okay"; +}; + +&switch { + status = "okay"; +}; + +&swport4 { + status = "okay"; + label = "lan"; +}; + +&swport5 { + status = "okay"; + label = "wan"; +}; + +&wifi0 { + pinctrl-0 = <&wifi_0_pins>; + pinctrl-names = "default"; + + status = "okay"; + + qcom,coexist-support = <1>; + qcom,coexist-gpio-pin = <52>; + + qcom,ath10k-calibration-variant = "linksys-whw03"; +}; + +&wifi1 { + status = "okay"; + + ieee80211-freq-limit = <5170000 5330000>; + qcom,ath10k-calibration-variant = "linksys-whw03"; +}; + +&wifi2 { + status = "okay"; + + ieee80211-freq-limit = <5490000 5835000>; + qcom,ath10k-calibration-variant = "linksys-whw03"; +}; diff --git a/target/linux/ipq40xx/image/generic.mk b/target/linux/ipq40xx/image/generic.mk index 3b6d1119053c6b..7af777248d4904 100644 --- a/target/linux/ipq40xx/image/generic.mk +++ b/target/linux/ipq40xx/image/generic.mk @@ -723,6 +723,20 @@ define Device/linksys_mr8300 endef TARGET_DEVICES += linksys_mr8300 +define Device/linksys_whw03 + $(call Device/FitzImage) + DEVICE_VENDOR := Linksys + DEVICE_MODEL := WHW03 + SOC := qcom-ipq4019 + KERNEL_SIZE := 8192k + IMAGE_SIZE := 131072k + IMAGES += factory.bin + IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-rootfs | pad-rootfs | linksys-image type=WHW03 + DEVICE_PACKAGES := ath10k-firmware-qca9888-ct kmod-leds-pca963x kmod-spi-dev kmod-bluetooth \ + kmod-fs-ext4 e2fsprogs kmod-fs-f2fs mkf2fs losetup +endef +TARGET_DEVICES += linksys_whw03 + define Device/linksys_whw03v2 $(call Device/FitzImage) DEVICE_VENDOR := Linksys From 5ac0615b7e1e322fba32232b7e2c89594c3d8e93 Mon Sep 17 00:00:00 2001 From: Rodrigo Balerdi Date: Tue, 30 Apr 2024 20:47:10 -0300 Subject: [PATCH 2/9] ipq40xx: clean up Linksys WHW03 V2 DTS Apply stylistic changes to facilitate DTS merging with WHW03 V1. Signed-off-by: Rodrigo Balerdi Link: https://github.com/openwrt/openwrt/pull/15345 Signed-off-by: Robert Marko --- .../boot/dts/qcom/qcom-ipq4019-whw03v2.dts | 45 ++++++++----------- 1 file changed, 18 insertions(+), 27 deletions(-) diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-whw03v2.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-whw03v2.dts index b76c52cd0a7cfc..ccee293e968858 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-whw03v2.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-whw03v2.dts @@ -17,8 +17,7 @@ led-upgrade = &led_red; }; - // The arguments rootfstype and ro are needed - // to override the default bootargs + // Default bootargs include rootfstype=ext4 and need to be overriden. chosen { bootargs-append = " root=/dev/ubiblock0_0 rootfstype=squashfs ro"; stdout-path = &blsp1_uart1; @@ -80,33 +79,27 @@ }; i2c_0_pins: i2c-0-pinmux { - mux { - function = "blsp_i2c0"; - pins = "gpio20", "gpio21"; - bias-disable; - }; + pins = "gpio20", "gpio21"; + function = "blsp_i2c0"; + bias-disable; }; serial_0_pins: serial0-pinmux { - mux { - pins = "gpio16", "gpio17"; - function = "blsp_uart0"; - bias-disable; - }; + pins = "gpio16", "gpio17"; + function = "blsp_uart0"; + bias-disable; }; serial_1_pins: serial1-pinmux { - mux { - pins = "gpio8", "gpio9", "gpio10", "gpio11"; - function = "blsp_uart1"; - bias-disable; - }; + pins = "gpio8", "gpio9", "gpio10", "gpio11"; + function = "blsp_uart1"; + bias-disable; }; spi_0_pins: spi-0-pinmux { mux { - function = "blsp_spi0"; pins = "gpio13", "gpio14", "gpio15"; + function = "blsp_spi0"; drive-strength = <12>; bias-disable; }; @@ -121,8 +114,8 @@ spi_1_pins: spi-1-pinmux { mux-1 { + pins = "gpio44", "gpio46", "gpio47"; function = "blsp_spi1"; - pins = "gpio44", "gpio46","gpio47"; bias-disable; }; @@ -141,13 +134,11 @@ }; wifi_0_pins: wifi0-pinmux { - btcoexist { - bias-pull-up; - drive-strength = <6>; - function = "gpio"; - output-high; - pins = "gpio52"; - }; + pins = "gpio52"; + function = "gpio"; + drive-strength = <6>; + bias-pull-up; + output-high; }; zigbee-0 { @@ -485,7 +476,7 @@ status = "okay"; qcom,coexist-support = <1>; - qcom,coexist-gpio-pin = <0x34>; + qcom,coexist-gpio-pin = <52>; qcom,ath10k-calibration-variant = "linksys-whw03v2"; From 6dc751815ba090bc2929239479f57a2efe7697ba Mon Sep 17 00:00:00 2001 From: Rodrigo Balerdi Date: Fri, 3 May 2024 02:34:53 -0300 Subject: [PATCH 3/9] ipq40xx: merge DTS for Linksys WHW03 V1 and V2 No changes other than the merging itself are intended in this commit. Signed-off-by: Rodrigo Balerdi Link: https://github.com/openwrt/openwrt/pull/15345 Signed-off-by: Robert Marko --- .../arm/boot/dts/qcom/qcom-ipq4019-whw03.dts | 292 +---------------- .../arm/boot/dts/qcom/qcom-ipq4019-whw03.dtsi | 293 ++++++++++++++++++ .../boot/dts/qcom/qcom-ipq4019-whw03v2.dts | 283 +---------------- 3 files changed, 306 insertions(+), 562 deletions(-) create mode 100644 target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-whw03.dtsi diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-whw03.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-whw03.dts index c835a2216e5a9e..70c3b561c02619 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-whw03.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-whw03.dts @@ -1,82 +1,18 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -#include "qcom-ipq4019.dtsi" -#include -#include -#include -#include +#include "qcom-ipq4019-whw03.dtsi" / { model = "Linksys WHW03 (Velop)"; compatible = "linksys,whw03", "qcom,ipq4019"; - aliases { - led-boot = &led_blue; - led-failsafe = &led_red; - led-running = &led_blue; - led-upgrade = &led_red; - }; - // Default bootargs include rootfstype=ext4 and need to be overriden. chosen { bootargs-append = " rootfstype=squashfs"; }; - - soc { - ess-tcsr@1953000 { - compatible = "qcom,tcsr"; - reg = <0x1953000 0x1000>; - qcom,ess-interface-select = ; - }; - - - tcsr@1949000 { - compatible = "qcom,tcsr"; - reg = <0x1949000 0x100>; - qcom,wifi_glb_cfg = ; - }; - - tcsr@194b000 { - compatible = "qcom,tcsr"; - reg = <0x194b000 0x100>; - qcom,usb-hsphy-mode-select = ; - }; - - tcsr@1957000 { - compatible = "qcom,tcsr"; - reg = <0x1957000 0x100>; - qcom,wifi_noc_memtype_m0_m2 = ; - }; - }; - - - keys { - compatible = "gpio-keys"; - - reset { - label = "reset"; - gpios = <&tlmm 18 GPIO_ACTIVE_LOW>; - linux,code = ; - }; - }; }; - &tlmm { - mdio_pins: mdio-pinmux { - mux-1 { - pins = "gpio6"; - function = "mdio"; - bias-pull-up; - }; - - mux-2 { - pins = "gpio7"; - function = "mdc"; - bias-pull-up; - }; - }; - sd_pins: sd-pinmux { pins = "gpio23", "gpio24", "gpio25", "gpio26", "gpio27", "gpio28", "gpio29", "gpio30", @@ -90,262 +26,46 @@ bias-disable; }; - serial_0_pins: serial0-pinmux { - pins = "gpio16", "gpio17"; - function = "blsp_uart0"; - bias-disable; - }; - - serial_1_pins: serial1-pinmux { - pins = "gpio8", "gpio9", "gpio10", "gpio11"; - function = "blsp_uart1"; - bias-disable; - }; - spi_0_pins: spi-0-pinmux { pins = "gpio12", "gpio13", "gpio14", "gpio15"; function = "blsp_spi0"; bias-disable; }; - - spi_1_pins: spi-1-pinmux { - mux-1 { - pins = "gpio44", "gpio46", "gpio47"; - function = "blsp_spi1"; - bias-disable; - }; - - mux-2 { - pins = "gpio45", "gpio49"; - function = "gpio"; - bias-pull-up; - output-high; - }; - - host-interrupt { - pins = "gpio42"; - function = "gpio"; - input; - }; - }; - - wifi_0_pins: wifi0-pinmux { - pins = "gpio52"; - function = "gpio"; - drive-strength = <6>; - bias-pull-up; - output-high; - }; - - zigbee-0 { - gpio-hog; - gpios = <29 GPIO_ACTIVE_HIGH>; - bias-disable; - output-low; - }; - - zigbee-1 { - gpio-hog; - gpios = <50 GPIO_ACTIVE_HIGH>; - bias-disable; - input; - }; - - bluetooth-enable { - gpio-hog; - gpios = <32 GPIO_ACTIVE_HIGH>; - output-high; - }; }; &mdio { status = "okay"; pinctrl-0 = <&mdio_pins>; pinctrl-names = "default"; - reset-gpios = <&tlmm 41 GPIO_ACTIVE_LOW>; -}; - -ðphy0 { - status = "disabled"; -}; - -ðphy1 { - status = "disabled"; -}; - -ðphy2 { - status = "disabled"; -}; - -&watchdog { - status = "okay"; -}; - -&prng { - status = "okay"; -}; - -&blsp_dma { - status = "okay"; -}; - -&cryptobam { - num-channels = <4>; - qcom,num-ees = <2>; - status = "okay"; -}; - -&crypto { - status = "okay"; + reset-gpios = <&tlmm 41 GPIO_ACTIVE_LOW>; }; &vqmmc { status = "okay"; }; -&blsp1_uart1 { - status = "okay"; - pinctrl-0 = <&serial_0_pins>; - pinctrl-names = "default"; -}; - -&blsp1_uart2 { - status = "okay"; - pinctrl-0 = <&serial_1_pins>; - pinctrl-names = "default"; - - bluetooth { - compatible = "csr,8811"; - - enable-gpios = <&tlmm 32 GPIO_ACTIVE_HIGH>; - }; -}; - -&blsp1_spi2 { - pinctrl-0 = <&spi_1_pins>; - pinctrl-names = "default"; - status = "okay"; - - cs-gpios = <&tlmm 45 GPIO_ACTIVE_HIGH>; - - zigbee@0 { - #address-cells = <1>; - #size-cells = <0>; - - compatible = "silabs,em3581"; - reg = <0>; - spi-max-frequency = <12000000>; - }; -}; - -&blsp1_i2c3 { - pinctrl-0 = <&i2c_0_pins>; - pinctrl-names = "default"; - - status = "okay"; - - // RGB LEDs - pca9633: led-controller@62 { - compatible = "nxp,pca9633"; - nxp,hw-blink; - reg = <0x62>; - #address-cells = <1>; - #size-cells = <0>; - - led_red: red@0 { - color = ; - function = LED_FUNCTION_INDICATOR; - reg = <0>; - }; - - led_green: green@1 { - color = ; - function = LED_FUNCTION_INDICATOR; - reg = <1>; - }; - - led_blue: blue@2 { - color = ; - function = LED_FUNCTION_INDICATOR; - reg = <2>; - }; - }; -}; - &sdhci { - vqmmc-supply = <&vqmmc>; + status = "okay"; pinctrl-0 = <&sd_pins>; pinctrl-names = "default"; + cd-gpios = <&tlmm 22 GPIO_ACTIVE_LOW>; sd-ldo-gpios = <&tlmm 33 GPIO_ACTIVE_LOW>; - status = "okay"; -}; - -&pcie0 { - status = "okay"; - - perst-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>; - wake-gpios = <&tlmm 40 GPIO_ACTIVE_LOW>; - clkreq-gpios = <&tlmm 39 GPIO_ACTIVE_LOW>; - - bridge@0,0 { - reg = <0x00000000 0 0 0 0>; - #address-cells = <3>; - #size-cells = <2>; - ranges; - - wifi2: wifi@1,0 { - compatible = "qcom,ath10k"; - reg = <0x00000000 0 0 0 0>; - }; - }; -}; - -&qpic_bam { - status = "okay"; -}; - -&gmac { - status = "okay"; -}; - -&switch { - status = "okay"; -}; - -&swport4 { - status = "okay"; - label = "lan"; -}; -&swport5 { - status = "okay"; - label = "wan"; + vqmmc-supply = <&vqmmc>; }; &wifi0 { - pinctrl-0 = <&wifi_0_pins>; - pinctrl-names = "default"; - - status = "okay"; - - qcom,coexist-support = <1>; - qcom,coexist-gpio-pin = <52>; - qcom,ath10k-calibration-variant = "linksys-whw03"; }; &wifi1 { - status = "okay"; - - ieee80211-freq-limit = <5170000 5330000>; qcom,ath10k-calibration-variant = "linksys-whw03"; }; &wifi2 { - status = "okay"; + reg = <0x00000000 0 0 0 0>; - ieee80211-freq-limit = <5490000 5835000>; qcom,ath10k-calibration-variant = "linksys-whw03"; }; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-whw03.dtsi b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-whw03.dtsi new file mode 100644 index 00000000000000..ce8d66680aa4ee --- /dev/null +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-whw03.dtsi @@ -0,0 +1,293 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT + +#include "qcom-ipq4019.dtsi" +#include +#include +#include +#include + +/ { + aliases { + led-boot = &led_blue; + led-failsafe = &led_red; + led-running = &led_blue; + led-upgrade = &led_red; + }; + + soc { + ess-tcsr@1953000 { + compatible = "qcom,tcsr"; + reg = <0x1953000 0x1000>; + qcom,ess-interface-select = ; + }; + + + tcsr@1949000 { + compatible = "qcom,tcsr"; + reg = <0x1949000 0x100>; + qcom,wifi_glb_cfg = ; + }; + + tcsr@194b000 { + compatible = "qcom,tcsr"; + reg = <0x194b000 0x100>; + qcom,usb-hsphy-mode-select = ; + }; + + tcsr@1957000 { + compatible = "qcom,tcsr"; + reg = <0x1957000 0x100>; + qcom,wifi_noc_memtype_m0_m2 = ; + }; + }; + + keys { + compatible = "gpio-keys"; + + reset { + label = "reset"; + gpios = <&tlmm 18 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + }; +}; + +&tlmm { + mdio_pins: mdio-pinmux { + mux-1 { + pins = "gpio6"; + function = "mdio"; + bias-pull-up; + }; + + mux-2 { + pins = "gpio7"; + function = "mdc"; + bias-pull-up; + }; + }; + + serial_0_pins: serial0-pinmux { + pins = "gpio16", "gpio17"; + function = "blsp_uart0"; + bias-disable; + }; + + serial_1_pins: serial1-pinmux { + pins = "gpio8", "gpio9", "gpio10", "gpio11"; + function = "blsp_uart1"; + bias-disable; + }; + + spi_1_pins: spi-1-pinmux { + mux-1 { + pins = "gpio44", "gpio46", "gpio47"; + function = "blsp_spi1"; + bias-disable; + }; + + mux-2 { + pins = "gpio45", "gpio49"; + function = "gpio"; + bias-pull-up; + output-high; + }; + + host-interrupt { + pins = "gpio42"; + function = "gpio"; + input; + }; + }; + + wifi_0_pins: wifi0-pinmux { + pins = "gpio52"; + function = "gpio"; + drive-strength = <6>; + bias-pull-up; + output-high; + }; + + zigbee-0 { + gpio-hog; + gpios = <29 GPIO_ACTIVE_HIGH>; + bias-disable; + output-low; + }; + + zigbee-1 { + gpio-hog; + gpios = <50 GPIO_ACTIVE_HIGH>; + bias-disable; + input; + }; + + bluetooth-enable { + gpio-hog; + gpios = <32 GPIO_ACTIVE_HIGH>; + output-high; + }; +}; + +ðphy0 { + status = "disabled"; +}; + +ðphy1 { + status = "disabled"; +}; + +ðphy2 { + status = "disabled"; +}; + +&watchdog { + status = "okay"; +}; + +&prng { + status = "okay"; +}; + +&blsp_dma { + status = "okay"; +}; + +&cryptobam { + status = "okay"; + num-channels = <4>; + qcom,num-ees = <2>; +}; + +&crypto { + status = "okay"; +}; + +&blsp1_uart1 { + status = "okay"; + pinctrl-0 = <&serial_0_pins>; + pinctrl-names = "default"; +}; + +&blsp1_uart2 { + status = "okay"; + pinctrl-0 = <&serial_1_pins>; + pinctrl-names = "default"; + + bluetooth { + compatible = "csr,8811"; + + enable-gpios = <&tlmm 32 GPIO_ACTIVE_HIGH>; + }; +}; + +&blsp1_spi2 { + status = "okay"; + pinctrl-0 = <&spi_1_pins>; + pinctrl-names = "default"; + + cs-gpios = <&tlmm 45 GPIO_ACTIVE_HIGH>; + + zigbee@0 { + compatible = "silabs,em3581"; + reg = <0>; + #address-cells = <1>; + #size-cells = <0>; + spi-max-frequency = <12000000>; + }; +}; + +&blsp1_i2c3 { + status = "okay"; + pinctrl-0 = <&i2c_0_pins>; + pinctrl-names = "default"; + + // RGB LEDs + pca9633: led-controller@62 { + compatible = "nxp,pca9633"; + nxp,hw-blink; + reg = <0x62>; + #address-cells = <1>; + #size-cells = <0>; + + led_red: red@0 { + color = ; + function = LED_FUNCTION_INDICATOR; + reg = <0>; + }; + + led_green: green@1 { + color = ; + function = LED_FUNCTION_INDICATOR; + reg = <1>; + }; + + led_blue: blue@2 { + color = ; + function = LED_FUNCTION_INDICATOR; + reg = <2>; + }; + }; +}; + +&pcie0 { + status = "okay"; + + perst-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>; + wake-gpios = <&tlmm 40 GPIO_ACTIVE_LOW>; + clkreq-gpios = <&tlmm 39 GPIO_ACTIVE_LOW>; + + bridge@0,0 { + reg = <0x00000000 0 0 0 0>; + #address-cells = <3>; + #size-cells = <2>; + ranges; + + wifi2: wifi@1,0 { + compatible = "qcom,ath10k"; + }; + }; +}; + +&qpic_bam { + status = "okay"; +}; + +&gmac { + status = "okay"; +}; + +&switch { + status = "okay"; +}; + +&swport4 { + status = "okay"; + label = "lan"; +}; + +&swport5 { + status = "okay"; + label = "wan"; +}; + +&wifi0 { + status = "okay"; + pinctrl-0 = <&wifi_0_pins>; + pinctrl-names = "default"; + + qcom,coexist-support = <1>; + qcom,coexist-gpio-pin = <52>; +}; + +&wifi1 { + status = "okay"; + + ieee80211-freq-limit = <5170000 5330000>; +}; + +&wifi2 { + status = "okay"; + + ieee80211-freq-limit = <5490000 5835000>; +}; diff --git a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-whw03v2.dts b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-whw03v2.dts index ccee293e968858..d6aaf93b297462 100644 --- a/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-whw03v2.dts +++ b/target/linux/ipq40xx/files-6.6/arch/arm/boot/dts/qcom/qcom-ipq4019-whw03v2.dts @@ -1,101 +1,25 @@ // SPDX-License-Identifier: GPL-2.0-or-later OR MIT -#include "qcom-ipq4019.dtsi" -#include -#include -#include -#include +#include "qcom-ipq4019-whw03.dtsi" / { model = "Linksys WHW03 V2 (Velop)"; compatible = "linksys,whw03v2", "qcom,ipq4019"; - aliases { - led-boot = &led_blue; - led-failsafe = &led_red; - led-running = &led_blue; - led-upgrade = &led_red; - }; - // Default bootargs include rootfstype=ext4 and need to be overriden. chosen { bootargs-append = " root=/dev/ubiblock0_0 rootfstype=squashfs ro"; stdout-path = &blsp1_uart1; }; - - soc { - ess-tcsr@1953000 { - compatible = "qcom,tcsr"; - reg = <0x1953000 0x1000>; - qcom,ess-interface-select = ; - }; - - - tcsr@1949000 { - compatible = "qcom,tcsr"; - reg = <0x1949000 0x100>; - qcom,wifi_glb_cfg = ; - }; - - tcsr@194b000 { - compatible = "qcom,tcsr"; - reg = <0x194b000 0x100>; - qcom,usb-hsphy-mode-select = ; - }; - - tcsr@1957000 { - compatible = "qcom,tcsr"; - reg = <0x1957000 0x100>; - qcom,wifi_noc_memtype_m0_m2 = ; - }; - }; - - - keys { - compatible = "gpio-keys"; - - reset { - label = "reset"; - gpios = <&tlmm 18 GPIO_ACTIVE_LOW>; - linux,code = ; - }; - }; }; - &tlmm { - mdio_pins: mdio-pinmux { - mux-1 { - pins = "gpio6"; - function = "mdio"; - bias-pull-up; - }; - - mux-2 { - pins = "gpio7"; - function = "mdc"; - bias-pull-up; - }; - }; - i2c_0_pins: i2c-0-pinmux { pins = "gpio20", "gpio21"; function = "blsp_i2c0"; bias-disable; }; - serial_0_pins: serial0-pinmux { - pins = "gpio16", "gpio17"; - function = "blsp_uart0"; - bias-disable; - }; - - serial_1_pins: serial1-pinmux { - pins = "gpio8", "gpio9", "gpio10", "gpio11"; - function = "blsp_uart1"; - bias-disable; - }; - spi_0_pins: spi-0-pinmux { mux { pins = "gpio13", "gpio14", "gpio15"; @@ -111,74 +35,23 @@ output-high; }; }; +}; - spi_1_pins: spi-1-pinmux { - mux-1 { - pins = "gpio44", "gpio46", "gpio47"; - function = "blsp_spi1"; - bias-disable; - }; - - mux-2 { - pins = "gpio31", "gpio45", "gpio49"; - function = "gpio"; - bias-pull-up; - output-high; - }; - - host-interrupt { - pins = "gpio42"; - function = "gpio"; - input; - }; - }; - - wifi_0_pins: wifi0-pinmux { - pins = "gpio52"; +&spi_1_pins { + mux-wake { + pins = "gpio31"; function = "gpio"; - drive-strength = <6>; bias-pull-up; output-high; }; - - zigbee-0 { - gpio-hog; - gpios = <29 GPIO_ACTIVE_HIGH>; - bias-disable; - output-low; - }; - - zigbee-1 { - gpio-hog; - gpios = <50 GPIO_ACTIVE_HIGH>; - bias-disable; - input; - }; - - bluetooth-enable { - gpio-hog; - gpios = <32 GPIO_ACTIVE_HIGH>; - output-high; - }; }; &mdio { status = "okay"; pinctrl-0 = <&mdio_pins>; pinctrl-names = "default"; - phy-reset-gpios = <&tlmm 19 GPIO_ACTIVE_LOW>; -}; -ðphy0 { - status = "disabled"; -}; - -ðphy1 { - status = "disabled"; -}; - -ðphy2 { - status = "disabled"; + phy-reset-gpios = <&tlmm 19 GPIO_ACTIVE_LOW>; }; ðphy3 { @@ -193,98 +66,6 @@ reg = <0x1d>; }; -&watchdog { - status = "okay"; -}; - -&prng { - status = "okay"; -}; - -&blsp_dma { - status = "okay"; -}; - -&cryptobam { - num-channels = <4>; - qcom,num-ees = <2>; - - status = "okay"; -}; - -&crypto { - status = "okay"; -}; - -&blsp1_uart1 { - status = "okay"; - pinctrl-0 = <&serial_0_pins>; - pinctrl-names = "default"; -}; - -&blsp1_uart2 { - status = "okay"; - pinctrl-0 = <&serial_1_pins>; - pinctrl-names = "default"; - - bluetooth { - compatible = "csr,8811"; - - enable-gpios = <&tlmm 32 GPIO_ACTIVE_HIGH>; - }; -}; - -&blsp1_spi2 { - pinctrl-0 = <&spi_1_pins>; - pinctrl-names = "default"; - status = "okay"; - - cs-gpios = <&tlmm 45 GPIO_ACTIVE_HIGH>; - - zigbee@0 { - #address-cells = <1>; - #size-cells = <0>; - - compatible = "silabs,em3581"; - reg = <0>; - spi-max-frequency = <12000000>; - }; -}; - -&blsp1_i2c3 { - pinctrl-0 = <&i2c_0_pins>; - pinctrl-names = "default"; - - status = "okay"; - - // RGB LEDs - pca9633: led-controller@62 { - compatible = "nxp,pca9633"; - nxp,hw-blink; - reg = <0x62>; - #address-cells = <1>; - #size-cells = <0>; - - led_red: red@0 { - color = ; - function = LED_FUNCTION_INDICATOR; - reg = <0>; - }; - - led_green: green@1 { - color = ; - function = LED_FUNCTION_INDICATOR; - reg = <1>; - }; - - led_blue: blue@2 { - color = ; - function = LED_FUNCTION_INDICATOR; - reg = <2>; - }; - }; -}; - &usb3_ss_phy { status = "okay"; }; @@ -421,63 +202,17 @@ }; }; -&pcie0 { - status = "okay"; - - perst-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>; - wake-gpios = <&tlmm 40 GPIO_ACTIVE_LOW>; - clkreq-gpios = <&tlmm 39 GPIO_ACTIVE_LOW>; - - bridge@0,0 { - reg = <0x00000000 0 0 0 0>; - #address-cells = <3>; - #size-cells = <2>; - ranges; - - wifi2: wifi@1,0 { - compatible = "qcom,ath10k"; - reg = <0x00010000 0 0 0 0>; - }; - }; -}; - -&qpic_bam { - status = "okay"; -}; - -&gmac { - status = "okay"; -}; - -&switch { - status = "okay"; -}; - &swport4 { - status = "okay"; - label = "lan"; - nvmem-cell-names = "mac-address"; nvmem-cells = <&macaddr_gmac1>; }; &swport5 { - status = "okay"; - label = "wan"; - nvmem-cell-names = "mac-address"; nvmem-cells = <&macaddr_gmac0 0>; }; &wifi0 { - pinctrl-0 = <&wifi_0_pins>; - pinctrl-names = "default"; - - status = "okay"; - - qcom,coexist-support = <1>; - qcom,coexist-gpio-pin = <52>; - qcom,ath10k-calibration-variant = "linksys-whw03v2"; nvmem-cell-names = "pre-calibration", "mac-address"; @@ -485,9 +220,6 @@ }; &wifi1 { - status = "okay"; - - ieee80211-freq-limit = <5170000 5330000>; qcom,ath10k-calibration-variant = "linksys-whw03v2"; nvmem-cell-names = "pre-calibration", "mac-address"; @@ -495,9 +227,8 @@ }; &wifi2 { - status = "okay"; + reg = <0x00010000 0 0 0 0>; - ieee80211-freq-limit = <5490000 5835000>; qcom,ath10k-calibration-variant = "linksys-whw03v2"; nvmem-cell-names = "pre-calibration", "mac-address"; From d1504a1e762addc005bd39b03cb3f9ada584bf75 Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Sun, 5 May 2024 10:38:37 +0200 Subject: [PATCH 4/9] ath79: refresh patches CI is telling us that we need to refresh the patches, so lets do so. Link: https://github.com/openwrt/openwrt/pull/15382 Signed-off-by: Robert Marko --- target/linux/ath79/patches-6.1/900-unaligned_access_hacks.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/linux/ath79/patches-6.1/900-unaligned_access_hacks.patch b/target/linux/ath79/patches-6.1/900-unaligned_access_hacks.patch index 2763b16bf5a89c..6c97bc307cfeef 100644 --- a/target/linux/ath79/patches-6.1/900-unaligned_access_hacks.patch +++ b/target/linux/ath79/patches-6.1/900-unaligned_access_hacks.patch @@ -579,7 +579,7 @@ SVN-Revision: 35130 goto next_ht; --- a/net/ipv6/ip6_offload.c +++ b/net/ipv6/ip6_offload.c -@@ -259,7 +259,7 @@ INDIRECT_CALLABLE_SCOPE struct sk_buff * +@@ -290,7 +290,7 @@ INDIRECT_CALLABLE_SCOPE struct sk_buff * continue; iph2 = (struct ipv6hdr *)(p->data + off); From 49a64c954109a7af9e64e3ea8d84ae5b3004435f Mon Sep 17 00:00:00 2001 From: Christian Marangi Date: Thu, 11 Apr 2024 17:02:45 +0200 Subject: [PATCH 5/9] tools: pkgconf: provide prefix for host and hostpkg stagind directory Some package might require to fix their pkg-config file to point to host or hostpkg file. This is the case for glib2 library that provides with pkg-config variables, tools to generates files from xml. Those tools should use the host binary instead of the targets one to correctly build packages that makes use of such tools. Link: https://github.com/openwrt/openwrt/pull/15134 Signed-off-by: Christian Marangi --- tools/pkgconf/files/pkg-config | 2 ++ 1 file changed, 2 insertions(+) diff --git a/tools/pkgconf/files/pkg-config b/tools/pkgconf/files/pkg-config index 65e0fb09f540f0..2e4dac9073d46a 100755 --- a/tools/pkgconf/files/pkg-config +++ b/tools/pkgconf/files/pkg-config @@ -4,6 +4,8 @@ ${STAGING_DIR_HOST}/bin/pkg-config.real \ --keep-system-cflags \ --keep-system-libs \ --define-variable=prefix="${STAGING_PREFIX}" \ +--define-variable=prefix_host="${STAGING_DIR_HOST}" \ +--define-variable=prefix_hostpkg="${STAGING_DIR_HOSTPKG}" \ --define-variable=exec_prefix="${STAGING_PREFIX}" \ --define-variable=bindir="${STAGING_PREFIX}/bin" \ $PKG_CONFIG_EXTRAARGS "$@" From ccb2390d4fa59d6880d8e3948b10ce05579ce355 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Sun, 5 May 2024 20:48:23 +0200 Subject: [PATCH 6/9] kernel: fix corrupted ethernet header on bridge multicast-to-unicast Fixes: 45a8e962a591 ("kernel: fix crash with multicast-to-unicast and fraglist GRO") Signed-off-by: Felix Fietkau --- ...orrupted-ethernet-header-on-multicas.patch | 42 +++++++++++++++++++ ...orrupted-ethernet-header-on-multicas.patch | 42 +++++++++++++++++++ 2 files changed, 84 insertions(+) create mode 100644 target/linux/generic/pending-6.1/684-net-bridge-fix-corrupted-ethernet-header-on-multicas.patch create mode 100644 target/linux/generic/pending-6.6/684-net-bridge-fix-corrupted-ethernet-header-on-multicas.patch diff --git a/target/linux/generic/pending-6.1/684-net-bridge-fix-corrupted-ethernet-header-on-multicas.patch b/target/linux/generic/pending-6.1/684-net-bridge-fix-corrupted-ethernet-header-on-multicas.patch new file mode 100644 index 00000000000000..c315790082b660 --- /dev/null +++ b/target/linux/generic/pending-6.1/684-net-bridge-fix-corrupted-ethernet-header-on-multicas.patch @@ -0,0 +1,42 @@ +From: Felix Fietkau +Date: Sun, 5 May 2024 20:36:56 +0200 +Subject: [PATCH] net: bridge: fix corrupted ethernet header on + multicast-to-unicast + +The change from skb_copy to pskb_copy unfortunately changed the data +copying to omit the ethernet header, since it was pulled before reaching +this point. Fix this by calling __skb_push/pull around pskb_copy. + +Fixes: 59c878cbcdd8 ("net: bridge: fix multicast-to-unicast with fraglist GSO") +Signed-off-by: Felix Fietkau +--- + +--- a/net/bridge/br_forward.c ++++ b/net/bridge/br_forward.c +@@ -253,6 +253,7 @@ static void maybe_deliver_addr(struct ne + { + struct net_device *dev = BR_INPUT_SKB_CB(skb)->brdev; + const unsigned char *src = eth_hdr(skb)->h_source; ++ struct sk_buff *nskb; + + if (!should_deliver(p, skb)) + return; +@@ -261,12 +262,16 @@ static void maybe_deliver_addr(struct ne + if (skb->dev == p->dev && ether_addr_equal(src, addr)) + return; + +- skb = pskb_copy(skb, GFP_ATOMIC); +- if (!skb) { ++ __skb_push(skb, ETH_HLEN); ++ nskb = pskb_copy(skb, GFP_ATOMIC); ++ __skb_pull(skb, ETH_HLEN); ++ if (!nskb) { + DEV_STATS_INC(dev, tx_dropped); + return; + } + ++ skb = nskb; ++ __skb_pull(skb, ETH_HLEN); + if (!is_broadcast_ether_addr(addr)) + memcpy(eth_hdr(skb)->h_dest, addr, ETH_ALEN); + diff --git a/target/linux/generic/pending-6.6/684-net-bridge-fix-corrupted-ethernet-header-on-multicas.patch b/target/linux/generic/pending-6.6/684-net-bridge-fix-corrupted-ethernet-header-on-multicas.patch new file mode 100644 index 00000000000000..fb2fab24e3a033 --- /dev/null +++ b/target/linux/generic/pending-6.6/684-net-bridge-fix-corrupted-ethernet-header-on-multicas.patch @@ -0,0 +1,42 @@ +From: Felix Fietkau +Date: Sun, 5 May 2024 20:36:56 +0200 +Subject: [PATCH] net: bridge: fix corrupted ethernet header on + multicast-to-unicast + +The change from skb_copy to pskb_copy unfortunately changed the data +copying to omit the ethernet header, since it was pulled before reaching +this point. Fix this by calling __skb_push/pull around pskb_copy. + +Fixes: 59c878cbcdd8 ("net: bridge: fix multicast-to-unicast with fraglist GSO") +Signed-off-by: Felix Fietkau +--- + +--- a/net/bridge/br_forward.c ++++ b/net/bridge/br_forward.c +@@ -258,6 +258,7 @@ static void maybe_deliver_addr(struct ne + { + struct net_device *dev = BR_INPUT_SKB_CB(skb)->brdev; + const unsigned char *src = eth_hdr(skb)->h_source; ++ struct sk_buff *nskb; + + if (!should_deliver(p, skb)) + return; +@@ -266,12 +267,16 @@ static void maybe_deliver_addr(struct ne + if (skb->dev == p->dev && ether_addr_equal(src, addr)) + return; + +- skb = pskb_copy(skb, GFP_ATOMIC); +- if (!skb) { ++ __skb_push(skb, ETH_HLEN); ++ nskb = pskb_copy(skb, GFP_ATOMIC); ++ __skb_pull(skb, ETH_HLEN); ++ if (!nskb) { + DEV_STATS_INC(dev, tx_dropped); + return; + } + ++ skb = nskb; ++ __skb_pull(skb, ETH_HLEN); + if (!is_broadcast_ether_addr(addr)) + memcpy(eth_hdr(skb)->h_dest, addr, ETH_ALEN); + From 4c6e9a99432bd87c0afb73a48a28b3f467db407e Mon Sep 17 00:00:00 2001 From: John Audia Date: Thu, 2 May 2024 15:40:57 -0400 Subject: [PATCH 7/9] kernel: bump 6.6 to 6.6.30 Changelog: https://cdn.kernel.org/pub/linux/kernel/v6.x/ChangeLog-6.6.30 Removed upstreamed: ipq806x/patches-6.6/130-mtd-rawnand-qcom-Fix-broken-misc_cmd_type-in-exec_op.patch[1] Manually rebased: generic/pending-6.6/760-net-core-add-optional-threading-for-backlog-processi.patch mediatek/patches-6.6/941-arm64-dts-mt7986-move-cpuboot-in-a-dedicated-node.patch All other patches automatically rebased. 1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?h=v6.6.30&id=87fc30db0a2bb300de289dae7c5579cc27a3cbbd Build system: x86/64 Build-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, flogic/glinet_gl-mt6000 Run-tested: x86/64/AMD Cezanne, flogic/xiaomi_redmi-router-ax6000-ubootmod, ramips/tplink_archer-a6-v3, flogic/glinet_gl-mt6000 Signed-off-by: John Audia --- include/kernel-6.6 | 4 +- ...-dsa-mv88e6xxx-disable-ATU-violation.patch | 2 +- .../hack-6.6/901-debloat_sock_diag.patch | 4 +- .../generic/hack-6.6/902-debloat_proc.patch | 2 +- ...ional-threading-for-backlog-processi.patch | 6 +-- ...equest-assisted-learning-on-CPU-port.patch | 2 +- ...-Fix-broken-misc_cmd_type-in-exec_op.patch | 46 ------------------- .../patches-6.6/104-mt7622-add-snor-irq.patch | 2 +- ...-dts-mediatek-mt7622-fix-GICv2-range.patch | 2 +- ...s-mediatek-add-mt7622-pcie-slot-node.patch | 4 +- ...ediatek-add-support-for-coherent-DMA.patch | 4 +- .../862-arm64-dts-mt7986-add-afe.patch | 4 +- ...986-move-cpuboot-in-a-dedicated-node.patch | 16 +++---- ...-mt7986-move-ilm-in-a-dedicated-node.patch | 6 +-- ...-mt7986-move-dlm-in-a-dedicated-node.patch | 8 ++-- 15 files changed, 33 insertions(+), 79 deletions(-) delete mode 100644 target/linux/ipq806x/patches-6.6/130-mtd-rawnand-qcom-Fix-broken-misc_cmd_type-in-exec_op.patch diff --git a/include/kernel-6.6 b/include/kernel-6.6 index c3e9ee33091014..7b447be07607c9 100644 --- a/include/kernel-6.6 +++ b/include/kernel-6.6 @@ -1,2 +1,2 @@ -LINUX_VERSION-6.6 = .29 -LINUX_KERNEL_HASH-6.6.29 = 7f26f74c08082c86b1daf866e4d49c5d8276cc1906a89d0e367e457ec167cbd0 +LINUX_VERSION-6.6 = .30 +LINUX_KERNEL_HASH-6.6.30 = b66a5b863b0f8669448b74ca83bd641a856f164b29956e539bbcb5fdeeab9cc6 diff --git a/target/linux/generic/hack-6.6/711-net-dsa-mv88e6xxx-disable-ATU-violation.patch b/target/linux/generic/hack-6.6/711-net-dsa-mv88e6xxx-disable-ATU-violation.patch index 6a2c60107bbbf7..69e19c3b478e54 100644 --- a/target/linux/generic/hack-6.6/711-net-dsa-mv88e6xxx-disable-ATU-violation.patch +++ b/target/linux/generic/hack-6.6/711-net-dsa-mv88e6xxx-disable-ATU-violation.patch @@ -9,7 +9,7 @@ Subject: [PATCH] net/dsa/mv88e6xxx: disable ATU violation --- a/drivers/net/dsa/mv88e6xxx/chip.c +++ b/drivers/net/dsa/mv88e6xxx/chip.c -@@ -3305,6 +3305,9 @@ static int mv88e6xxx_setup_port(struct m +@@ -3353,6 +3353,9 @@ static int mv88e6xxx_setup_port(struct m else reg = 1 << port; diff --git a/target/linux/generic/hack-6.6/901-debloat_sock_diag.patch b/target/linux/generic/hack-6.6/901-debloat_sock_diag.patch index b0054da2eb0882..af000f76fccca0 100644 --- a/target/linux/generic/hack-6.6/901-debloat_sock_diag.patch +++ b/target/linux/generic/hack-6.6/901-debloat_sock_diag.patch @@ -61,7 +61,7 @@ Signed-off-by: Felix Fietkau static void sock_def_write_space_wfree(struct sock *sk); static void sock_def_write_space(struct sock *sk); -@@ -589,6 +591,21 @@ discard_and_relse: +@@ -590,6 +592,21 @@ discard_and_relse: } EXPORT_SYMBOL(__sk_receive_skb); @@ -83,7 +83,7 @@ Signed-off-by: Felix Fietkau INDIRECT_CALLABLE_DECLARE(struct dst_entry *ip6_dst_check(struct dst_entry *, u32)); INDIRECT_CALLABLE_DECLARE(struct dst_entry *ipv4_dst_check(struct dst_entry *, -@@ -2246,9 +2263,11 @@ static void __sk_free(struct sock *sk) +@@ -2247,9 +2264,11 @@ static void __sk_free(struct sock *sk) if (likely(sk->sk_net_refcnt)) sock_inuse_add(sock_net(sk), -1); diff --git a/target/linux/generic/hack-6.6/902-debloat_proc.patch b/target/linux/generic/hack-6.6/902-debloat_proc.patch index 6b59fd674f0674..2a311d327a1ea4 100644 --- a/target/linux/generic/hack-6.6/902-debloat_proc.patch +++ b/target/linux/generic/hack-6.6/902-debloat_proc.patch @@ -330,7 +330,7 @@ Signed-off-by: Felix Fietkau --- a/net/core/sock.c +++ b/net/core/sock.c -@@ -4144,6 +4144,8 @@ static __net_initdata struct pernet_oper +@@ -4145,6 +4145,8 @@ static __net_initdata struct pernet_oper static int __init proto_init(void) { diff --git a/target/linux/generic/pending-6.6/760-net-core-add-optional-threading-for-backlog-processi.patch b/target/linux/generic/pending-6.6/760-net-core-add-optional-threading-for-backlog-processi.patch index 7b4678251d46c0..5372171b42e477 100644 --- a/target/linux/generic/pending-6.6/760-net-core-add-optional-threading-for-backlog-processi.patch +++ b/target/linux/generic/pending-6.6/760-net-core-add-optional-threading-for-backlog-processi.patch @@ -182,10 +182,10 @@ Signed-off-by: Felix Fietkau static int min_rcvbuf = SOCK_MIN_RCVBUF; static int max_skb_frags = MAX_SKB_FRAGS; +static int backlog_threaded; + static int min_mem_pcpu_rsv = SK_MEMORY_PCPU_RESERVE; static int net_msg_warn; /* Unused, but still a sysctl */ - -@@ -188,6 +189,23 @@ static int rps_sock_flow_sysctl(struct c +@@ -189,6 +190,23 @@ static int rps_sock_flow_sysctl(struct c } #endif /* CONFIG_RPS */ @@ -209,7 +209,7 @@ Signed-off-by: Felix Fietkau #ifdef CONFIG_NET_FLOW_LIMIT static DEFINE_MUTEX(flow_limit_update_mutex); -@@ -532,6 +550,15 @@ static struct ctl_table net_core_table[] +@@ -541,6 +559,15 @@ static struct ctl_table net_core_table[] .proc_handler = rps_sock_flow_sysctl }, #endif diff --git a/target/linux/generic/pending-6.6/768-net-dsa-mv88e6xxx-Request-assisted-learning-on-CPU-port.patch b/target/linux/generic/pending-6.6/768-net-dsa-mv88e6xxx-Request-assisted-learning-on-CPU-port.patch index d11e0eda667ac1..28d89eb0fe904c 100644 --- a/target/linux/generic/pending-6.6/768-net-dsa-mv88e6xxx-Request-assisted-learning-on-CPU-port.patch +++ b/target/linux/generic/pending-6.6/768-net-dsa-mv88e6xxx-Request-assisted-learning-on-CPU-port.patch @@ -17,7 +17,7 @@ Signed-off-by: Tobias Waldekranz --- a/drivers/net/dsa/mv88e6xxx/chip.c +++ b/drivers/net/dsa/mv88e6xxx/chip.c -@@ -6887,6 +6887,7 @@ static int mv88e6xxx_register_switch(str +@@ -6935,6 +6935,7 @@ static int mv88e6xxx_register_switch(str ds->ops = &mv88e6xxx_switch_ops; ds->ageing_time_min = chip->info->age_time_coeff; ds->ageing_time_max = chip->info->age_time_coeff * U8_MAX; diff --git a/target/linux/ipq806x/patches-6.6/130-mtd-rawnand-qcom-Fix-broken-misc_cmd_type-in-exec_op.patch b/target/linux/ipq806x/patches-6.6/130-mtd-rawnand-qcom-Fix-broken-misc_cmd_type-in-exec_op.patch deleted file mode 100644 index caa5b070e4a3f4..00000000000000 --- a/target/linux/ipq806x/patches-6.6/130-mtd-rawnand-qcom-Fix-broken-misc_cmd_type-in-exec_op.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 9732c4f2d93a4a39ffc903c88ab7d531a8bb2e74 Mon Sep 17 00:00:00 2001 -From: Christian Marangi -Date: Wed, 20 Mar 2024 00:47:58 +0100 -Subject: [PATCH] mtd: rawnand: qcom: Fix broken misc_cmd_type in exec_op - -misc_cmd_type in exec_op have multiple problems. With commit a82990c8a409 -("mtd: rawnand: qcom: Add read/read_start ops in exec_op path") it was -reworked and generalized but actually dropped the handling of the -RESET_DEVICE command. - -Also additional logic was added without clear explaination causing the -erase command to be broken on testing it on a ipq806x nandc. - -Add some additional logic to restore RESET_DEVICE command handling and -fix erase command. - -Fixes: a82990c8a409 ("mtd: rawnand: qcom: Add read/read_start ops in exec_op path") -Cc: stable@vger.kernel.org -Signed-off-by: Christian Marangi ---- - drivers/mtd/nand/raw/qcom_nandc.c | 7 +++---- - 1 file changed, 3 insertions(+), 4 deletions(-) - ---- a/drivers/mtd/nand/raw/qcom_nandc.c -+++ b/drivers/mtd/nand/raw/qcom_nandc.c -@@ -2815,7 +2815,7 @@ static int qcom_misc_cmd_type_exec(struc - host->cfg0_raw & ~(7 << CW_PER_PAGE)); - nandc_set_reg(chip, NAND_DEV0_CFG1, host->cfg1_raw); - instrs = 3; -- } else { -+ } else if (q_op.cmd_reg != OP_RESET_DEVICE) { - return 0; - } - -@@ -2830,9 +2830,8 @@ static int qcom_misc_cmd_type_exec(struc - nandc_set_reg(chip, NAND_EXEC_CMD, 1); - - write_reg_dma(nandc, NAND_FLASH_CMD, instrs, NAND_BAM_NEXT_SGL); -- (q_op.cmd_reg == OP_BLOCK_ERASE) ? write_reg_dma(nandc, NAND_DEV0_CFG0, -- 2, NAND_BAM_NEXT_SGL) : read_reg_dma(nandc, -- NAND_FLASH_STATUS, 1, NAND_BAM_NEXT_SGL); -+ if (q_op.cmd_reg == OP_BLOCK_ERASE) -+ write_reg_dma(nandc, NAND_DEV0_CFG0, 2, NAND_BAM_NEXT_SGL); - - write_reg_dma(nandc, NAND_EXEC_CMD, 1, NAND_BAM_NEXT_SGL); - read_reg_dma(nandc, NAND_FLASH_STATUS, 1, NAND_BAM_NEXT_SGL); diff --git a/target/linux/mediatek/patches-6.6/104-mt7622-add-snor-irq.patch b/target/linux/mediatek/patches-6.6/104-mt7622-add-snor-irq.patch index 0d9c91f44dd712..d15d989e973fe8 100644 --- a/target/linux/mediatek/patches-6.6/104-mt7622-add-snor-irq.patch +++ b/target/linux/mediatek/patches-6.6/104-mt7622-add-snor-irq.patch @@ -1,6 +1,6 @@ --- a/arch/arm64/boot/dts/mediatek/mt7622.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt7622.dtsi -@@ -578,6 +578,7 @@ +@@ -575,6 +575,7 @@ compatible = "mediatek,mt7622-nor", "mediatek,mt8173-nor"; reg = <0 0x11014000 0 0xe0>; diff --git a/target/linux/mediatek/patches-6.6/190-arm64-dts-mediatek-mt7622-fix-GICv2-range.patch b/target/linux/mediatek/patches-6.6/190-arm64-dts-mediatek-mt7622-fix-GICv2-range.patch index bd0c785fdee5b3..bf6823147e7474 100644 --- a/target/linux/mediatek/patches-6.6/190-arm64-dts-mediatek-mt7622-fix-GICv2-range.patch +++ b/target/linux/mediatek/patches-6.6/190-arm64-dts-mediatek-mt7622-fix-GICv2-range.patch @@ -95,7 +95,7 @@ Signed-off-by: Daniel Golle --- a/arch/arm64/boot/dts/mediatek/mt7622.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt7622.dtsi -@@ -347,7 +347,7 @@ +@@ -345,7 +345,7 @@ #interrupt-cells = <3>; interrupt-parent = <&gic>; reg = <0 0x10310000 0 0x1000>, diff --git a/target/linux/mediatek/patches-6.6/602-arm64-dts-mediatek-add-mt7622-pcie-slot-node.patch b/target/linux/mediatek/patches-6.6/602-arm64-dts-mediatek-add-mt7622-pcie-slot-node.patch index bf479ab53b2cc6..d58082aa6f0bbe 100644 --- a/target/linux/mediatek/patches-6.6/602-arm64-dts-mediatek-add-mt7622-pcie-slot-node.patch +++ b/target/linux/mediatek/patches-6.6/602-arm64-dts-mediatek-add-mt7622-pcie-slot-node.patch @@ -1,6 +1,6 @@ --- a/arch/arm64/boot/dts/mediatek/mt7622.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt7622.dtsi -@@ -849,6 +849,12 @@ +@@ -844,6 +844,12 @@ #address-cells = <0>; #interrupt-cells = <1>; }; @@ -13,7 +13,7 @@ }; pcie1: pcie@1a145000 { -@@ -887,6 +893,12 @@ +@@ -882,6 +888,12 @@ #address-cells = <0>; #interrupt-cells = <1>; }; diff --git a/target/linux/mediatek/patches-6.6/710-pci-pcie-mediatek-add-support-for-coherent-DMA.patch b/target/linux/mediatek/patches-6.6/710-pci-pcie-mediatek-add-support-for-coherent-DMA.patch index 76ee2fc89abdad..a3247f1779ac9f 100644 --- a/target/linux/mediatek/patches-6.6/710-pci-pcie-mediatek-add-support-for-coherent-DMA.patch +++ b/target/linux/mediatek/patches-6.6/710-pci-pcie-mediatek-add-support-for-coherent-DMA.patch @@ -10,7 +10,7 @@ Signed-off-by: Felix Fietkau --- a/arch/arm64/boot/dts/mediatek/mt7622.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt7622.dtsi -@@ -837,6 +837,9 @@ +@@ -832,6 +832,9 @@ bus-range = <0x00 0xff>; ranges = <0x82000000 0 0x20000000 0x0 0x20000000 0 0x8000000>; status = "disabled"; @@ -20,7 +20,7 @@ Signed-off-by: Felix Fietkau #interrupt-cells = <1>; interrupt-map-mask = <0 0 0 7>; -@@ -881,6 +884,9 @@ +@@ -876,6 +879,9 @@ bus-range = <0x00 0xff>; ranges = <0x82000000 0 0x28000000 0x0 0x28000000 0 0x8000000>; status = "disabled"; diff --git a/target/linux/mediatek/patches-6.6/862-arm64-dts-mt7986-add-afe.patch b/target/linux/mediatek/patches-6.6/862-arm64-dts-mt7986-add-afe.patch index b31710fe69405f..29de7851d3f455 100644 --- a/target/linux/mediatek/patches-6.6/862-arm64-dts-mt7986-add-afe.patch +++ b/target/linux/mediatek/patches-6.6/862-arm64-dts-mt7986-add-afe.patch @@ -9,8 +9,8 @@ Subject: [PATCH] arm64: dts: mt7986: add afe --- a/arch/arm64/boot/dts/mediatek/mt7986a.dtsi +++ b/arch/arm64/boot/dts/mediatek/mt7986a.dtsi -@@ -248,6 +248,28 @@ - status = "disabled"; +@@ -202,6 +202,28 @@ + #interrupt-cells = <2>; }; + afe: audio-controller@11210000 { diff --git a/target/linux/mediatek/patches-6.6/941-arm64-dts-mt7986-move-cpuboot-in-a-dedicated-node.patch b/target/linux/mediatek/patches-6.6/941-arm64-dts-mt7986-move-cpuboot-in-a-dedicated-node.patch index e1f121eba15bc7..73714fbd6fd620 100644 --- a/target/linux/mediatek/patches-6.6/941-arm64-dts-mt7986-move-cpuboot-in-a-dedicated-node.patch +++ b/target/linux/mediatek/patches-6.6/941-arm64-dts-mt7986-move-cpuboot-in-a-dedicated-node.patch @@ -23,8 +23,8 @@ Signed-off-by: Lorenzo Bianconi - }; - timer { -@@ -543,10 +537,11 @@ + soc { +@@ -532,10 +526,11 @@ interrupt-parent = <&gic>; interrupts = ; memory-region = <&wo_emi0>, <&wo_ilm0>, <&wo_dlm0>, @@ -38,7 +38,7 @@ Signed-off-by: Lorenzo Bianconi }; wed1: wed@15011000 { -@@ -556,10 +551,11 @@ +@@ -545,10 +540,11 @@ interrupt-parent = <&gic>; interrupts = ; memory-region = <&wo_emi1>, <&wo_ilm1>, <&wo_dlm1>, @@ -51,8 +51,8 @@ Signed-off-by: Lorenzo Bianconi + mediatek,wo-cpuboot = <&wo_cpuboot>; }; - wo_ccif0: syscon@151a5000 { -@@ -576,6 +572,11 @@ + eth: ethernet@15100000 { +@@ -606,6 +602,11 @@ interrupts = ; }; @@ -61,6 +61,6 @@ Signed-off-by: Lorenzo Bianconi + reg = <0 0x15194000 0 0x1000>; + }; + - eth: ethernet@15100000 { - compatible = "mediatek,mt7986-eth"; - reg = <0 0x15100000 0 0x80000>; + wifi: wifi@18000000 { + compatible = "mediatek,mt7986-wmac"; + reg = <0 0x18000000 0 0x1000000>, diff --git a/target/linux/mediatek/patches-6.6/945-arm64-dts-mt7986-move-ilm-in-a-dedicated-node.patch b/target/linux/mediatek/patches-6.6/945-arm64-dts-mt7986-move-ilm-in-a-dedicated-node.patch index 08c76cf44b77dc..e2dce9ffa313ae 100644 --- a/target/linux/mediatek/patches-6.6/945-arm64-dts-mt7986-move-ilm-in-a-dedicated-node.patch +++ b/target/linux/mediatek/patches-6.6/945-arm64-dts-mt7986-move-ilm-in-a-dedicated-node.patch @@ -34,7 +34,7 @@ Signed-off-by: Lorenzo Bianconi wo_data: wo-data@4fd80000 { reg = <0 0x4fd80000 0 0x240000>; no-map; -@@ -536,11 +526,10 @@ +@@ -525,11 +515,10 @@ reg = <0 0x15010000 0 0x1000>; interrupt-parent = <&gic>; interrupts = ; @@ -49,7 +49,7 @@ Signed-off-by: Lorenzo Bianconi mediatek,wo-cpuboot = <&wo_cpuboot>; }; -@@ -550,11 +539,10 @@ +@@ -539,11 +528,10 @@ reg = <0 0x15011000 0 0x1000>; interrupt-parent = <&gic>; interrupts = ; @@ -64,7 +64,7 @@ Signed-off-by: Lorenzo Bianconi mediatek,wo-cpuboot = <&wo_cpuboot>; }; -@@ -572,6 +560,16 @@ +@@ -602,6 +590,16 @@ interrupts = ; }; diff --git a/target/linux/mediatek/patches-6.6/946-arm64-dts-mt7986-move-dlm-in-a-dedicated-node.patch b/target/linux/mediatek/patches-6.6/946-arm64-dts-mt7986-move-dlm-in-a-dedicated-node.patch index a44d006c53eff9..a972f235f2535b 100644 --- a/target/linux/mediatek/patches-6.6/946-arm64-dts-mt7986-move-dlm-in-a-dedicated-node.patch +++ b/target/linux/mediatek/patches-6.6/946-arm64-dts-mt7986-move-dlm-in-a-dedicated-node.patch @@ -33,8 +33,8 @@ Signed-off-by: Lorenzo Bianconi - }; }; - timer { -@@ -526,10 +516,11 @@ + soc { +@@ -515,10 +505,11 @@ reg = <0 0x15010000 0 0x1000>; interrupt-parent = <&gic>; interrupts = ; @@ -48,7 +48,7 @@ Signed-off-by: Lorenzo Bianconi mediatek,wo-cpuboot = <&wo_cpuboot>; }; -@@ -539,10 +530,11 @@ +@@ -528,10 +519,11 @@ reg = <0 0x15011000 0 0x1000>; interrupt-parent = <&gic>; interrupts = ; @@ -62,7 +62,7 @@ Signed-off-by: Lorenzo Bianconi mediatek,wo-cpuboot = <&wo_cpuboot>; }; -@@ -570,6 +562,16 @@ +@@ -600,6 +592,16 @@ reg = <0 0x151f0000 0 0x8000>; }; From 485afd4b1107d38dff94bca106ecf260982dee35 Mon Sep 17 00:00:00 2001 From: John Audia Date: Thu, 2 May 2024 16:05:41 -0400 Subject: [PATCH 8/9] x86: generic: config-6.6: add/remove default syms Add new default and remove deprecated symbol introduced by 6.6.30[1] 1. https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/diff/arch/x86/Kconfig?id=v6.6.30&id2=v6.6.29 Signed-off-by: John Audia --- target/linux/x86/config-6.6 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target/linux/x86/config-6.6 b/target/linux/x86/config-6.6 index 7f00ffdb788d0e..d71e95f676e8a3 100644 --- a/target/linux/x86/config-6.6 +++ b/target/linux/x86/config-6.6 @@ -61,6 +61,7 @@ CONFIG_CPU_FREQ_GOV_PERFORMANCE=y CONFIG_CPU_FREQ_STAT=y CONFIG_CPU_IDLE=y CONFIG_CPU_IDLE_GOV_LADDER=y +CONFIG_CPU_MITIGATIONS=y CONFIG_CPU_SUP_AMD=y CONFIG_CPU_SUP_CENTAUR=y CONFIG_CPU_SUP_CYRIX_32=y @@ -361,7 +362,6 @@ CONFIG_SG_POOL=y CONFIG_SOFTIRQ_ON_OWN_STACK=y CONFIG_SPARSEMEM_STATIC=y CONFIG_SPARSE_IRQ=y -CONFIG_SPECULATION_MITIGATIONS=y CONFIG_SQUASHFS_DECOMP_MULTI_PERCPU=y # CONFIG_STATIC_CALL_SELFTEST is not set # CONFIG_STRICT_SIGALTSTACK_SIZE is not set From 064d4a808367295233db5fce981e3b1d4305b014 Mon Sep 17 00:00:00 2001 From: Pascal Ernster Date: Wed, 1 May 2024 21:04:18 +0200 Subject: [PATCH 9/9] libxml2: update to 2.12.6 Release Notes: https://gitlab.gnome.org/GNOME/libxml2/-/releases/v2.12.6 Changelog (taken from the release notes): - Regressions - parser: Fix detection of duplicate attributes in XML namespace - xmlreader: Fix xmlTextReaderConstEncoding - html: Fix htmlCreatePushParserCtxt with encoding - xmllint: Return error code if XPath returns empty nodeset Compile-tested: x86_x64, Q35 VM, OpenWRT SNAPSHOT r26135-a8bfdf2ed4d9 Run-tested: x86_x64, Q35 VM, OpenWRT SNAPSHOT r26135-a8bfdf2ed4d9 Signed-off-by: Pascal Ernster --- package/libs/libxml2/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package/libs/libxml2/Makefile b/package/libs/libxml2/Makefile index efd33a52781d17..2be8026e89d841 100644 --- a/package/libs/libxml2/Makefile +++ b/package/libs/libxml2/Makefile @@ -1,12 +1,12 @@ include $(TOPDIR)/rules.mk PKG_NAME:=libxml2 -PKG_VERSION:=2.12.5 +PKG_VERSION:=2.12.6 PKG_RELEASE:=1 PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz PKG_SOURCE_URL:=@GNOME/libxml2/$(basename $(PKG_VERSION)) -PKG_HASH:=a972796696afd38073e0f59c283c3a2f5a560b5268b4babc391b286166526b21 +PKG_HASH:=889c593a881a3db5fdd96cc9318c87df34eb648edfc458272ad46fd607353fbb PKG_LICENSE:=MIT PKG_LICENSE_FILES:=COPYING