diff --git a/include/target.mk b/include/target.mk index cc1308995c..9abf3e8e78 100644 --- a/include/target.mk +++ b/include/target.mk @@ -330,6 +330,9 @@ ifeq ($(DUMP),1) ifneq ($(CONFIG_PCIEPORTBUS),) FEATURES += pcie endif + ifneq ($(CONFIG_PWM),) + FEATURES += pwm + endif ifneq ($(CONFIG_USB)$(CONFIG_USB_SUPPORT),) ifneq ($(CONFIG_USB_ARCH_HAS_HCD)$(CONFIG_USB_EHCI_HCD),) FEATURES += usb diff --git a/package/boot/uboot-tools/uboot-envtools/files/qualcommax_ipq60xx b/package/boot/uboot-tools/uboot-envtools/files/qualcommax_ipq60xx index e79922550d..d85fcf0e85 100644 --- a/package/boot/uboot-tools/uboot-envtools/files/qualcommax_ipq60xx +++ b/package/boot/uboot-tools/uboot-envtools/files/qualcommax_ipq60xx @@ -35,13 +35,14 @@ xiaomi,ax1800|\ zn,m2|\ glinet,gl-ax1800|\ glinet,gl-axt1800|\ +linksys,mr7350|\ +linksys,mr7500) + ubootenv_add_mtd "u_env" "0x0" "0x40000" "0x20000" + ;; netgear,wax214|\ tplink,eap610-outdoor) ubootenv_add_mtd "0:appsblenv" "0x0" "0x40000" "0x20000" ;; -linksys,mr7350) - ubootenv_add_mtd "u_env" "0x0" "0x40000" "0x20000" - ;; yuncore,fap650) ubootenv_add_mtd "0:appsblenv" "0x0" "0x10000" "0x10000" ;; diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq-wifi/Makefile index 26525ecffa..0d11acf043 100644 --- a/package/firmware/ipq-wifi/Makefile +++ b/package/firmware/ipq-wifi/Makefile @@ -43,6 +43,7 @@ ALLWIFIBOARDS:= \ linksys_homewrk \ linksys_mr5500 \ linksys_mr7350 \ + linksys_mr7500 \ linksys_mx2000 \ linksys_mx4200 \ linksys_mx5300 \ @@ -198,6 +199,7 @@ $(eval $(call generate-ipq-wifi-package,glinet_gl-axt1800,GL.iNet GL-AXT1800)) $(eval $(call generate-ipq-wifi-package,linksys_homewrk,Linksys HomeWRK)) $(eval $(call generate-ipq-wifi-package,linksys_mr5500,Linksys MR5500)) $(eval $(call generate-ipq-wifi-package,linksys_mr7350,Linksys MR7350)) +$(eval $(call generate-ipq-wifi-package,linksys_mr7500,Linksys MR7500)) $(eval $(call generate-ipq-wifi-package,linksys_mx2000,Linksys MX2000)) $(eval $(call generate-ipq-wifi-package,linksys_mx4200,Linksys MX4200)) $(eval $(call generate-ipq-wifi-package,linksys_mx5300,Linksys MX5300)) diff --git a/package/kernel/qca-ssdk/Makefile b/package/kernel/qca-ssdk/Makefile index 032f0de331..bc22b8bd3e 100644 --- a/package/kernel/qca-ssdk/Makefile +++ b/package/kernel/qca-ssdk/Makefile @@ -57,7 +57,8 @@ ifeq ($(CONFIG_TARGET_SUBTARGET), "ipq807x") endif ifeq ($(CONFIG_TARGET_SUBTARGET), "ipq60xx") - MAKE_FLAGS+= CHIP_TYPE=CPPE + MAKE_FLAGS+= CHIP_TYPE=CPPE \ + IN_AQUANTIA_PHY=TRUE endif ifeq ($(CONFIG_TARGET_SUBTARGET), "ipq50xx") diff --git a/target/linux/generic/pending-6.6/792-igc-enable-HW-vlan-tag-insertion-stripping-by-defaul.patch b/target/linux/generic/backport-6.6/792-v6.16-igc-enable-HW-vlan-tag-insertion-stripping-by-defaul.patch similarity index 100% rename from target/linux/generic/pending-6.6/792-igc-enable-HW-vlan-tag-insertion-stripping-by-defaul.patch rename to target/linux/generic/backport-6.6/792-v6.16-igc-enable-HW-vlan-tag-insertion-stripping-by-defaul.patch diff --git a/target/linux/generic/pending-6.6/510-block-add-uImage.FIT-subimage-block-driver.patch b/target/linux/generic/pending-6.6/510-block-add-uImage.FIT-subimage-block-driver.patch index 2b4d6506b6..96c69ce97c 100644 --- a/target/linux/generic/pending-6.6/510-block-add-uImage.FIT-subimage-block-driver.patch +++ b/target/linux/generic/pending-6.6/510-block-add-uImage.FIT-subimage-block-driver.patch @@ -656,7 +656,7 @@ Signed-off-by: Daniel Golle + add_fit_subimage_device(bdev, slot++, start_sect, nr_sects, true); + } + -+ if (!found || !slot) ++ if (!slot) + goto out_bootconf; + + dev_info(dev, "mapped %u uImage.FIT filesystem sub-image%s as /dev/fit%s%u%s\n", @@ -675,7 +675,7 @@ Signed-off-by: Daniel Golle + kfree(bootconf); + kfree(fit); +out_blkdev: -+ if (!found || ret) ++ if (!slot) + blkdev_put(bdev, &_fitblk_claim_ptr); + + return ret; diff --git a/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6018-ess.dtsi b/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6018-ess.dtsi index d30f09d1ea..c5c7e963ee 100644 --- a/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6018-ess.dtsi +++ b/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6018-ess.dtsi @@ -506,4 +506,15 @@ phy-mode = "psgmii"; status = "disabled"; }; + + dp5_syn: dp5-syn { + device_type = "network"; + compatible = "qcom,nss-dp"; + qcom,id = <5>; + reg = <0x0 0x3a003000 0x0 0x3fff>; + qcom,mactype = <1>; + local-mac-address = [000000000000]; + phy-mode = "usxgmii"; + status = "disabled"; + }; }; diff --git a/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6018-mr7500.dts b/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6018-mr7500.dts new file mode 100644 index 0000000000..9cfd3a5239 --- /dev/null +++ b/target/linux/qualcommax/files/arch/arm64/boot/dts/qcom/ipq6018-mr7500.dts @@ -0,0 +1,544 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +// Copyright 2024 Weikai Kong (priv at pppig236.com) + +/dts-v1/; + +#include "ipq6018-512m.dtsi" +#include "ipq6018-cp-cpu.dtsi" +#include "ipq6018-ess.dtsi" +#include +#include +#include + +/ { + model = "Linksys MR7500"; + compatible = "linksys,mr7500", "qcom,ipq6018"; + + aliases { + serial0 = &blsp1_uart3; + serial1 = &blsp1_uart2; + + led-boot = &led_system_blue; + led-running = &led_system_blue; + led-failsafe = &led_system_red; + led-upgrade = &led_system_green; + + label-mac-device = &dp5_syn; + }; + + chosen { + stdout-path = "serial0:115200n8"; + bootargs-append = " root=/dev/ubiblock0_0"; + }; + + extcon_usb { + pinctrl-0 = <&extcon_usb_pins>; + pinctrl-names = "default"; + id-gpio = <&tlmm 26 GPIO_ACTIVE_LOW>; + status = "okay"; + }; + + gpio_keys { + compatible = "gpio-keys"; + pinctrl-0 = <&button_pins>; + pinctrl-names = "default"; + + wps { + label = "wps"; + linux,code = ; + gpios = <&tlmm 37 GPIO_ACTIVE_LOW>; + }; + + reset { + label = "reset"; + linux,code = ; + gpios = <&tlmm 56 GPIO_ACTIVE_LOW>; + }; + }; + + leds { + compatible = "pwm-leds"; + + usb { + color = ; + function = LED_FUNCTION_USB; + gpios = <&tlmm 30 GPIO_ACTIVE_HIGH>; + pwms = <&pwm 1 650000>; + max-brightness = <255>; + trigger-sources = <&usb3_port1>, <&usb3_port2>; + linux,default-trigger = "usbport"; + }; + + led_system_red: red { + color = ; + function = LED_FUNCTION_INDICATOR; + pwms = <&pwm 2 1250000>; + max-brightness = <255>; + panic-indicator; + }; + + led_system_green: green { + color = ; + function = LED_FUNCTION_INDICATOR; + pwms = <&pwm 3 1250000>; + max-brightness = <255>; + }; + + led_system_blue: blue { + color = ; + function = LED_FUNCTION_POWER; + pwms = <&pwm 0 1250000>; + max-brightness = <255>; + }; + }; + + reg_usb_vbus: regulator-usb-vbus { + compatible = "regulator-fixed"; + regulator-name = "usb_vbus"; + regulator-min-microvolt = <5000000>; + regulator-max-microvolt = <5000000>; + gpio = <&tlmm 25 GPIO_ACTIVE_LOW>; + }; +}; + +&tlmm { + pwm_pins: pwm_pinmux { + /*LED_B*/ + mux_0 { + pins = "gpio29"; + function = "pwm03"; + drive-strength = <8>; + bias-pull-up; + }; + + /*LED_USB*/ + mux_1 { + pins = "gpio30"; + function = "pwm13"; + drive-strength = <8>; + bias-pull-down; + }; + + /*LED_R*/ + mux_2 { + pins = "gpio31"; + function = "pwm23"; + drive-strength = <8>; + bias-pull-down; + }; + + /*LED_G*/ + mux_3 { + pins = "gpio32"; + function = "pwm33"; + drive-strength = <8>; + bias-pull-down; + }; + }; + + extcon_usb_pins: extcon_usb_pins { + pins = "gpio26"; + function = "gpio"; + drive-strength = <2>; + bias-pull-down; + }; + + button_pins: button_pins { + wps_button { + pins = "gpio37"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + }; + reset_button { + pins = "gpio56"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + }; + }; + + mdio_pins: mdio_pinmux { + mux_0 { + pins = "gpio64"; + function = "mdc"; + drive-strength = <8>; + bias-pull-up; + }; + mux_1 { + pins = "gpio65"; + function = "mdio"; + drive-strength = <8>; + bias-pull-up; + }; + }; + + hsuart_pins: hsuart_pins { + pins = "gpio71", "gpio72", "gpio69", "gpio70"; + function = "blsp1_uart"; + drive-strength = <8>; + bias-disable; + }; + + btcoex_pins: btcoex_pins { + mux_0 { + pins = "gpio51"; + function = "pta1_1"; + drive-strength = <6>; + bias-pull-down; + }; + mux_1 { + pins = "gpio53"; + function = "pta1_0"; + drive-strength = <6>; + bias-pull-down; + }; + mux_2 { + pins = "gpio52"; + function = "pta1_2"; + drive-strength = <6>; + bias-pull-down; + }; + }; +}; + +&pwm { + pinctrl-0 = <&pwm_pins>; + pinctrl-names = "default"; + #pwm-cells = <2>; + status = "okay"; +}; + +&mdio { + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; + reset-gpios = <&tlmm 75 GPIO_ACTIVE_LOW>; + status = "okay"; + + ethernet-phy-package { + #address-cells = <1>; + #size-cells = <0>; + compatible = "qcom,qca8075-package"; + reg = <0>; + + qcom,package-mode = "qsgmii"; + + qca8075_0: ethernet-phy@0 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0>; + + leds { + #address-cells = <1>; + #size-cells = <0>; + + led@0 { + reg = <0>; + color = ; + function = LED_FUNCTION_LAN; + default-state = "keep"; + }; + + led@1 { + reg = <1>; + color = ; + function = LED_FUNCTION_LAN; + default-state = "keep"; + }; + }; + }; + + qca8075_1: ethernet-phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <1>; + + leds { + #address-cells = <1>; + #size-cells = <0>; + + led@0 { + reg = <0>; + color = ; + function = LED_FUNCTION_LAN; + default-state = "keep"; + }; + + led@1 { + reg = <1>; + color = ; + function = LED_FUNCTION_LAN; + default-state = "keep"; + }; + }; + }; + + qca8075_2: ethernet-phy@2 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <2>; + + leds { + #address-cells = <1>; + #size-cells = <0>; + + led@0 { + reg = <0>; + color = ; + function = LED_FUNCTION_LAN; + default-state = "keep"; + }; + + led@1 { + reg = <1>; + color = ; + function = LED_FUNCTION_LAN; + default-state = "keep"; + }; + }; + }; + + qca8075_3: ethernet-phy@3 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <3>; + + leds { + #address-cells = <1>; + #size-cells = <0>; + + led@0 { + reg = <0>; + color = ; + function = LED_FUNCTION_LAN; + default-state = "keep"; + }; + + led@1 { + reg = <1>; + color = ; + function = LED_FUNCTION_LAN; + default-state = "keep"; + }; + }; + }; + }; + + aqr114c: ethernet-phy@8 { + reg = <8>; + reset-gpios = <&tlmm 77 GPIO_ACTIVE_HIGH>; + compatible = "ethernet-phy-ieee802.3-c45"; + firmware-name = "marvell/AQR114C.cld"; + + leds { + #address-cells = <1>; + #size-cells = <0>; + + led@0 { + reg = <0>; + color = ; + function = LED_FUNCTION_WAN; + default-state = "keep"; + }; + + led@1 { + reg = <1>; + color = ; + function = LED_FUNCTION_WAN; + default-state = "keep"; + }; + }; + }; +}; + +&dp1 { + status = "okay"; + label = "lan1"; + phy-handle = <&qca8075_0>; + phy-mode = "qsgmii"; + nvmem-cells = <&hw_mac_addr 1>; + nvmem-cell-names = "mac-address"; +}; + +&dp2 { + status = "okay"; + label = "lan2"; + phy-handle = <&qca8075_1>; + phy-mode = "qsgmii"; + nvmem-cells = <&hw_mac_addr 1>; + nvmem-cell-names = "mac-address"; +}; + +&dp3 { + status = "okay"; + label = "lan3"; + phy-handle = <&qca8075_2>; + phy-mode = "qsgmii"; + nvmem-cells = <&hw_mac_addr 1>; + nvmem-cell-names = "mac-address"; +}; + +&dp4 { + status = "okay"; + label = "lan4"; + phy-handle = <&qca8075_3>; + phy-mode = "qsgmii"; + nvmem-cells = <&hw_mac_addr 1>; + nvmem-cell-names = "mac-address"; +}; + +&dp5_syn { + status = "okay"; + label = "wan"; + phy-handle = <&aqr114c>; + phy-mode = "usxgmii"; + nvmem-cells = <&hw_mac_addr 0>; + nvmem-cell-names = "mac-address"; +}; + +&edma { + status = "okay"; +}; + +&switch { + status = "okay"; + switch_lan_bmp = <( ESS_PORT1 | ESS_PORT2 | ESS_PORT3 | ESS_PORT4 )>; + switch_wan_bmp = ; + switch_mac_mode = ; + switch_mac_mode1 = ; + + qcom,port_phyinfo { + port@1 { + port_id = <1>; + phy_address = <0>; + }; + port@2 { + port_id = <2>; + phy_address = <1>; + }; + port@3 { + port_id = <3>; + phy_address = <2>; + }; + port@4 { + port_id = <4>; + phy_address = <3>; + }; + port@5 { + port_id = <5>; + phy_address = <8>; + compatible = "ethernet-phy-ieee802.3-c45"; + ethernet-phy-ieee802.3-c45; + }; + }; +}; + +&blsp1_uart3 { + pinctrl-0 = <&serial_3_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +&blsp1_uart2 { + pinctrl-0 = <&hsuart_pins &btcoex_pins>; + pinctrl-names = "default"; + dmas = <&blsp_dma 2>, <&blsp_dma 3>; + dma-names = "tx", "rx"; + status = "okay"; + bluetooth { // doesn't work + compatible = "csr,8811"; + enable-gpios = <&tlmm 34 GPIO_ACTIVE_LOW>; + }; +}; + +&qpic_bam { + status = "okay"; +}; + +&qpic_nand { + status = "okay"; + + nand@0 { + reg = <0>; + nand-ecc-strength = <4>; + nand-ecc-step-size = <512>; + nand-bus-width = <8>; + + partitions { + compatible = "qcom,smem-part"; + #address-cells = <1>; + #size-cells = <1>; + + partition-0-devinfo { + label = "devinfo"; + read-only; + #address-cells = <1>; + #size-cells = <1>; + + nvmem-layout { + compatible = "ascii-eq-delim-env"; + #address-cells = <1>; + #size-cells = <1>; + + hw_mac_addr: hw_mac_addr { + compatible = "mac-base"; + #nvmem-cell-cells = <1>; + }; + }; + }; + }; + }; +}; + +&ssphy_0 { + status = "okay"; +}; + +&dwc_0 { + #address-cells = <1>; + #size-cells = <0>; + + usb3_port1: port@1 { + reg = <1>; + #trigger-source-cells = <0>; + }; + + usb3_port2: port@2 { + reg = <2>; + #trigger-source-cells = <0>; + }; +}; + +&qusb_phy_0 { + status = "okay"; + vdd-supply = <®_usb_vbus>; +}; + +&usb3 { + status = "okay"; + vbus-supply = <®_usb_vbus>; +}; + +&pcie_phy { + status = "okay"; +}; + +&pcie0 { + status = "okay"; + bridge@0,0 { + reg = <0x00000000 0 0 0 0>; + #address-cells = <3>; + #size-cells = <2>; + ranges; + + wifi@1,0 { + status = "okay"; + /* ath11k has no DT compatible for PCI cards */ + compatible = "pci17cb,1104"; + reg = <0x00010000 0 0 0 0>; + qcom,ath11k-calibration-variant = "Linksys-MR7500"; + }; + }; +}; + +&wifi { + status = "okay"; + qcom,ath11k-calibration-variant = "Linksys-MR7500"; + qcom,ath11k-fw-memory-mode = <1>; +}; diff --git a/target/linux/qualcommax/image/ipq60xx.mk b/target/linux/qualcommax/image/ipq60xx.mk index c3bbecfeb9..20c87fa88b 100644 --- a/target/linux/qualcommax/image/ipq60xx.mk +++ b/target/linux/qualcommax/image/ipq60xx.mk @@ -54,22 +54,39 @@ define Device/glinet_gl-axt1800 endef TARGET_DEVICES += glinet_gl-axt1800 -define Device/linksys_mr7350 +define Device/linksys_mr $(call Device/FitImage) DEVICE_VENDOR := Linksys - DEVICE_MODEL := MR7350 - SOC := ipq6000 - NAND_SIZE := 256m - KERNEL_SIZE := 8192k BLOCKSIZE := 128k PAGESIZE := 2048 - IMAGE_SIZE := 75776k + KERNEL_SIZE := 8192k IMAGES += factory.bin - IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | linksys-image type=MR7350 - DEVICE_PACKAGES := ipq-wifi-linksys_mr7350 kmod-leds-pca963x kmod-usb-ledtrig-usbport + IMAGE/factory.bin := append-kernel | pad-to $$$$(KERNEL_SIZE) | append-ubi | linksys-image type=$$$$(DEVICE_MODEL) + DEVICE_PACKAGE := kmod-usb-ledtrig-usbport +endef + +define Device/linksys_mr7350 + $(call Device/linksys_mr) + DEVICE_MODEL := MR7350 + NAND_SIZE := 256m + IMAGE_SIZE := 75776k + SOC := ipq6000 + DEVICE_PACKAGES += ipq-wifi-linksys_mr7350 kmod-leds-pca963x endef TARGET_DEVICES += linksys_mr7350 +define Device/linksys_mr7500 + $(call Device/linksys_mr) + DEVICE_MODEL := MR7500 + SOC := ipq6018 + NAND_SIZE := 512m + IMAGE_SIZE := 147456k + DEVICE_PACKAGES += ipq-wifi-linksys_mr7500 \ + ath11k-firmware-qcn9074 kmod-ath11k-pci \ + kmod-leds-pwm kmod-phy-aquantia +endef +TARGET_DEVICES += linksys_mr7500 + define Device/netgear_wax214 $(call Device/FitImage) $(call Device/UbiFit) diff --git a/target/linux/qualcommax/ipq60xx/base-files/etc/board.d/01_leds b/target/linux/qualcommax/ipq60xx/base-files/etc/board.d/01_leds index e72aaecb9c..6eb65d34bf 100755 --- a/target/linux/qualcommax/ipq60xx/base-files/etc/board.d/01_leds +++ b/target/linux/qualcommax/ipq60xx/base-files/etc/board.d/01_leds @@ -30,6 +30,18 @@ linksys,mr7350) ucidef_set_led_netdev "wan-port-link" "WAN-PORT-LINK" "90000.mdio-1:04:green:wan" "wan" "link_10 link_100 link_1000" ucidef_set_led_netdev "wan-port-traffic" "WAN-PORT-TRAFFIC" "90000.mdio-1:04:orange:wan" "wan" "tx rx link_10 link_100 link_1000" ;; +linksys,mr7500) + ucidef_set_led_netdev "lan1-port-link" "LAN1-PORT-LINK" "90000.mdio-1:00:green:lan" "lan1" "link_10 link_100 link_1000" + ucidef_set_led_netdev "lan1-port-traffic" "LAN1-PORT-TRAFFIC" "90000.mdio-1:00:orange:lan" "lan1" "tx rx link_10 link_100 link_1000" + ucidef_set_led_netdev "lan2-port-link" "LAN2-PORT-LINK" "90000.mdio-1:01:green:lan" "lan2" "link_10 link_100 link_1000" + ucidef_set_led_netdev "lan2-port-traffic" "LAN2-PORT-TRAFFIC" "90000.mdio-1:01:orange:lan" "lan2" "tx rx link_10 link_100 link_1000" + ucidef_set_led_netdev "lan3-port-link" "LAN3-PORT-LINK" "90000.mdio-1:02:green:lan" "lan3" "link_10 link_100 link_1000" + ucidef_set_led_netdev "lan3-port-traffic" "LAN3-PORT-TRAFFIC" "90000.mdio-1:02:orange:lan" "lan3" "tx rx link_10 link_100 link_1000" + ucidef_set_led_netdev "lan4-port-link" "LAN4-PORT-LINK" "90000.mdio-1:03:green:lan" "lan4" "link_10 link_100 link_1000" + ucidef_set_led_netdev "lan4-port-traffic" "LAN4-PORT-TRAFFIC" "90000.mdio-1:03:orange:lan" "lan4" "tx rx link_10 link_100 link_1000" + ucidef_set_led_netdev "wan-port-link" "WAN-PORT-LINK" "90000.mdio-1:08:green:lan" "wan" "link_10 link_100 link_1000 link_2500 link_5000" + ucidef_set_led_netdev "wan-port-traffic" "WAN-PORT-TRAFFIC" "90000.mdio-1:08:orange:wan" "wan" "tx rx link_10 link_100 link_1000 link_2500 link_5000" + ;; yuncore,fap650) ucidef_set_led_netdev "wlan5ghz" "WLAN 5GHz LED" "blue:wlan-5ghz" "wlan0" ucidef_set_led_netdev "wlan2ghz" "WLAN 2.4GHz LED" "green:wlan-2ghz" "wlan1" diff --git a/target/linux/qualcommax/ipq60xx/base-files/etc/board.d/02_network b/target/linux/qualcommax/ipq60xx/base-files/etc/board.d/02_network index ddcd92dcd1..b86de490c6 100755 --- a/target/linux/qualcommax/ipq60xx/base-files/etc/board.d/02_network +++ b/target/linux/qualcommax/ipq60xx/base-files/etc/board.d/02_network @@ -23,6 +23,7 @@ ipq60xx_setup_interfaces() link,nn6000-v2|\ glinet,gl-ax1800|\ linksys,mr7350|\ + linksys,mr7500|\ yuncore,fap650) ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "wan" ;; diff --git a/target/linux/qualcommax/ipq60xx/base-files/etc/hotplug.d/firmware/11-ath11k-caldata b/target/linux/qualcommax/ipq60xx/base-files/etc/hotplug.d/firmware/11-ath11k-caldata old mode 100755 new mode 100644 index bd55ba5fbd..d0f8bb78fb --- a/target/linux/qualcommax/ipq60xx/base-files/etc/hotplug.d/firmware/11-ath11k-caldata +++ b/target/linux/qualcommax/ipq60xx/base-files/etc/hotplug.d/firmware/11-ath11k-caldata @@ -19,6 +19,7 @@ case "$FIRMWARE" in glinet,gl-ax1800|\ glinet,gl-axt1800|\ linksys,mr7350|\ + linksys,mr7500|\ netgear,wax214|\ qihoo,360v6|\ redmi,ax5|\ @@ -46,6 +47,9 @@ case "$FIRMWARE" in cambiumnetworks,xe3-4) caldata_extract "0:ART" 0x26800 0x20000 ;; + linksys,mr7500) + caldata_extract "0:art" 0x26800 0x20000 + ;; jdcloud,re-cs-02) caldata_extract_mmc "0:ART" 0x26800 0x20000 ;; diff --git a/target/linux/qualcommax/ipq60xx/base-files/etc/init.d/bootcount b/target/linux/qualcommax/ipq60xx/base-files/etc/init.d/bootcount index fbe245d988..d2039eb054 100755 --- a/target/linux/qualcommax/ipq60xx/base-files/etc/init.d/bootcount +++ b/target/linux/qualcommax/ipq60xx/base-files/etc/init.d/bootcount @@ -4,7 +4,8 @@ START=99 boot() { case $(board_name) in - linksys,mr7350) + linksys,mr7350|\ + linksys,mr7500) mtd resetbc s_env || true ;; yuncore,fap650) diff --git a/target/linux/qualcommax/ipq60xx/base-files/lib/upgrade/platform.sh b/target/linux/qualcommax/ipq60xx/base-files/lib/upgrade/platform.sh index ca0e056ec5..67f6b1d67e 100755 --- a/target/linux/qualcommax/ipq60xx/base-files/lib/upgrade/platform.sh +++ b/target/linux/qualcommax/ipq60xx/base-files/lib/upgrade/platform.sh @@ -120,7 +120,8 @@ platform_do_upgrade() { qihoo,360v6) nand_do_upgrade "$1" ;; - linksys,mr7350) + linksys,mr7350|\ + linksys,mr7500) boot_part="$(fw_printenv -n boot_part)" if [ "$boot_part" -eq "1" ]; then fw_setenv boot_part 2 diff --git a/tools/libressl/Makefile b/tools/libressl/Makefile index f2de5e28be..45d5c73aee 100644 --- a/tools/libressl/Makefile +++ b/tools/libressl/Makefile @@ -8,8 +8,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=libressl -PKG_VERSION:=3.7.3 -PKG_HASH:=7948c856a90c825bd7268b6f85674a8dcd254bae42e221781b24e3f8dc335db3 +PKG_VERSION:=4.0.0 +PKG_HASH:=4d841955f0acc3dfc71d0e3dd35f283af461222350e26843fea9731c0246a1e4 PKG_CPE_ID:=cpe:/a:openbsd:libressl diff --git a/tools/libressl/patches/010-static.patch b/tools/libressl/patches/010-static.patch new file mode 100644 index 0000000000..f5a8711fe3 --- /dev/null +++ b/tools/libressl/patches/010-static.patch @@ -0,0 +1,99 @@ +--- a/crypto/ec/ec_kmeth.c ++++ b/crypto/ec/ec_kmeth.c +@@ -74,12 +74,12 @@ static const EC_KEY_METHOD openssl_ec_ke + .keygen = ec_key_gen, + .compute_key = ecdh_compute_key, + +- .sign = ecdsa_sign, +- .sign_setup = ecdsa_sign_setup, +- .sign_sig = ecdsa_sign_sig, ++ .sign = libressl_ecdsa_sign, ++ .sign_setup = libressl_ecdsa_sign_setup, ++ .sign_sig = libressl_ecdsa_sign_sig, + +- .verify = ecdsa_verify, +- .verify_sig = ecdsa_verify_sig, ++ .verify = libressl_ecdsa_verify, ++ .verify_sig = libressl_ecdsa_verify_sig, + }; + + const EC_KEY_METHOD *default_ec_key_meth = &openssl_ec_key_method; +--- a/crypto/ec/ec_local.h ++++ b/crypto/ec/ec_local.h +@@ -342,9 +342,9 @@ struct ec_key_method_st { + int ec_key_gen(EC_KEY *eckey); + int ecdh_compute_key(unsigned char **out, size_t *out_len, + const EC_POINT *pub_key, const EC_KEY *ecdh); +-int ecdsa_verify(int type, const unsigned char *dgst, int dgst_len, ++int libressl_ecdsa_verify(int type, const unsigned char *dgst, int dgst_len, + const unsigned char *sigbuf, int sig_len, EC_KEY *eckey); +-int ecdsa_verify_sig(const unsigned char *dgst, int dgst_len, ++int libressl_ecdsa_verify_sig(const unsigned char *dgst, int dgst_len, + const ECDSA_SIG *sig, EC_KEY *eckey); + + /* +--- a/crypto/ecdsa/ecdsa.c ++++ b/crypto/ecdsa/ecdsa.c +@@ -217,7 +217,7 @@ ecdsa_prepare_digest(const unsigned char + } + + int +-ecdsa_sign(int type, const unsigned char *digest, int digest_len, ++libressl_ecdsa_sign(int type, const unsigned char *digest, int digest_len, + unsigned char *signature, unsigned int *signature_len, const BIGNUM *kinv, + const BIGNUM *r, EC_KEY *key) + { +@@ -266,7 +266,7 @@ LCRYPTO_ALIAS(ECDSA_sign); + */ + + int +-ecdsa_sign_setup(EC_KEY *key, BN_CTX *in_ctx, BIGNUM **out_kinv, BIGNUM **out_r) ++libressl_ecdsa_sign_setup(EC_KEY *key, BN_CTX *in_ctx, BIGNUM **out_kinv, BIGNUM **out_r) + { + const EC_GROUP *group; + EC_POINT *point = NULL; +@@ -517,7 +517,7 @@ ecdsa_compute_s(BIGNUM **out_s, const BI + */ + + ECDSA_SIG * +-ecdsa_sign_sig(const unsigned char *digest, int digest_len, ++libressl_ecdsa_sign_sig(const unsigned char *digest, int digest_len, + const BIGNUM *in_kinv, const BIGNUM *in_r, EC_KEY *key) + { + BN_CTX *ctx = NULL; +@@ -600,7 +600,7 @@ ECDSA_do_sign(const unsigned char *diges + LCRYPTO_ALIAS(ECDSA_do_sign); + + int +-ecdsa_verify(int type, const unsigned char *digest, int digest_len, ++libressl_ecdsa_verify(int type, const unsigned char *digest, int digest_len, + const unsigned char *sigbuf, int sig_len, EC_KEY *key) + { + ECDSA_SIG *s; +@@ -649,7 +649,7 @@ LCRYPTO_ALIAS(ECDSA_verify); + */ + + int +-ecdsa_verify_sig(const unsigned char *digest, int digest_len, ++libressl_ecdsa_verify_sig(const unsigned char *digest, int digest_len, + const ECDSA_SIG *sig, EC_KEY *key) + { + const EC_GROUP *group; +--- a/crypto/ecdsa/ecdsa_local.h ++++ b/crypto/ecdsa/ecdsa_local.h +@@ -68,12 +68,12 @@ struct ECDSA_SIG_st { + BIGNUM *s; + }; + +-int ecdsa_sign_setup(EC_KEY *eckey, BN_CTX *in_ctx, BIGNUM **out_kinv, ++int libressl_ecdsa_sign_setup(EC_KEY *eckey, BN_CTX *in_ctx, BIGNUM **out_kinv, + BIGNUM **out_r); +-int ecdsa_sign(int type, const unsigned char *digest, int digest_len, ++int libressl_ecdsa_sign(int type, const unsigned char *digest, int digest_len, + unsigned char *signature, unsigned int *signature_len, const BIGNUM *kinv, + const BIGNUM *r, EC_KEY *eckey); +-ECDSA_SIG *ecdsa_sign_sig(const unsigned char *digest, int digest_len, ++ECDSA_SIG *libressl_ecdsa_sign_sig(const unsigned char *digest, int digest_len, + const BIGNUM *in_kinv, const BIGNUM *in_r, EC_KEY *eckey); + + __END_HIDDEN_DECLS