diff --git a/devices/ipq807x_generic/patches/05-rm2-6.patch b/devices/ipq807x_generic/patches/05-rm2-6.patch deleted file mode 100644 index 08c13d789bf6..000000000000 --- a/devices/ipq807x_generic/patches/05-rm2-6.patch +++ /dev/null @@ -1,456 +0,0 @@ -From e978b0c74d962d8a12fad3ee5236b0a29dbe56ed Mon Sep 17 00:00:00 2001 -From: Chukun Pan -Date: Sat, 26 Aug 2023 23:29:20 +0800 -Subject: [PATCH] ipq807x: add support for CMCC RM2-6 - -Hardware specifications: - SoC: Qualcomm IPQ8070A - RAM: 512MB of DDR3 - Flash: 256MB Micron NAND - Ethernet: 2x 1G RJ45 port - WiFi1: QCN5024 2x2 2.4GHz - WiFi2: QCN5054 2x2 5GHz - Fan: 1x GPIO controlled - Button: Reset, WPS - -Flash instructions: - Upload factory.bin in stock firmware's upgrade page. - -Signed-off-by: Chukun Pan -Reviewed-by: Robert Marko ---- - package/firmware/ipq-wifi/Makefile | 2 + - .../arm64/boot/dts/qcom/ipq8070-rm2-6.dts | 310 ++++++++++++++++++ - target/linux/ipq807x/image/ipq807x.mk | 15 + - .../ipq807x/base-files/etc/board.d/02_network | 3 + - .../etc/hotplug.d/firmware/11-ath11k-caldata | 1 + - .../etc/hotplug.d/ieee80211/11_fix_wifi_mac | 9 +- - .../base-files/lib/upgrade/platform.sh | 1 + - 7 files changed, 337 insertions(+), 4 deletions(-) - create mode 100644 target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/ipq8070-rm2-6.dts - -diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq-wifi/Makefile -index 5806654ecfb67..34faf5c3db4cb 100644 ---- a/package/firmware/ipq-wifi/Makefile -+++ b/package/firmware/ipq-wifi/Makefile -@@ -30,6 +30,7 @@ endef - ALLWIFIBOARDS:= \ - arcadyan_aw1000 \ - buffalo_wxr-5950ax12 \ -+ cmcc_rm2-6 \ - compex_wpq873 \ - dynalink_dl-wrx36 \ - edgecore_eap102 \ -@@ -141,6 +142,7 @@ endef - - $(eval $(call generate-ipq-wifi-package,arcadyan_aw1000,Arcadyan AW1000)) - $(eval $(call generate-ipq-wifi-package,buffalo_wxr-5950ax12,Buffalo WXR-5950AX12)) -+$(eval $(call generate-ipq-wifi-package,cmcc_rm2-6,CMCC RM2-6)) - $(eval $(call generate-ipq-wifi-package,compex_wpq873,Compex WPQ-873)) - $(eval $(call generate-ipq-wifi-package,dynalink_dl-wrx36,Dynalink DL-WRX36)) - $(eval $(call generate-ipq-wifi-package,edgecore_eap102,Edgecore EAP102)) -diff --git a/target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/ipq8070-rm2-6.dts b/target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/ipq8070-rm2-6.dts -new file mode 100644 -index 0000000000000..d935e19ad248c ---- /dev/null -+++ b/target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/ipq8070-rm2-6.dts -@@ -0,0 +1,310 @@ -+// SPDX-License-Identifier: GPL-2.0-or-later OR MIT -+ -+/dts-v1/; -+ -+#include "ipq8074-512m.dtsi" -+#include "ipq8074-ac-cpu.dtsi" -+#include "ipq8074-ess.dtsi" -+#include -+#include -+#include -+ -+/ { -+ model = "CMCC RM2-6"; -+ compatible = "cmcc,rm2-6", "qcom,ipq8074"; -+ -+ aliases { -+ serial0 = &blsp1_uart5; -+ serial1 = &blsp1_uart3; -+ led-boot = &led_status_red; -+ led-failsafe = &led_status_red; -+ led-running = &led_status_blue; -+ led-upgrade = &led_status_amber; -+ /* -+ * Aliases as required by u-boot -+ * to patch MAC addresses -+ */ -+ ethernet0 = &dp4; -+ ethernet1 = &dp2; -+ ethernet2 = &dp5; -+ label-mac-device = &dp4; -+ }; -+ -+ chosen { -+ stdout-path = "serial0:115200n8"; -+ bootargs-append = " root=/dev/ubiblock0_1"; -+ }; -+ -+ keys { -+ compatible = "gpio-keys"; -+ -+ wps { -+ label = "wps"; -+ linux,code = ; -+ gpios = <&tlmm 27 GPIO_ACTIVE_LOW>; -+ }; -+ -+ reset { -+ label = "reset"; -+ linux,code = ; -+ gpios = <&tlmm 30 GPIO_ACTIVE_LOW>; -+ }; -+ }; -+ -+ leds { -+ compatible = "gpio-leds"; -+ -+ led_status_amber: status-amber { -+ color = ; -+ function = LED_FUNCTION_STATUS; -+ gpio = <&tlmm 25 GPIO_ACTIVE_HIGH>; -+ }; -+ -+ led_status_blue: status-blue { -+ color = ; -+ function = LED_FUNCTION_STATUS; -+ gpio = <&tlmm 26 GPIO_ACTIVE_HIGH>; -+ }; -+ -+ led_status_red: status-red { -+ color = ; -+ function = LED_FUNCTION_STATUS; -+ gpio = <&tlmm 31 GPIO_ACTIVE_HIGH>; -+ }; -+ }; -+ -+ fan: gpio-fan { -+ #cooling-cells = <2>; -+ compatible = "gpio-fan"; -+ gpio = <&tlmm 29 GPIO_ACTIVE_HIGH>; -+ gpio-fan,speed-map = <0 0>, <1 1>; -+ }; -+}; -+ -+&tlmm { -+ mdio_pins: mdio-pins { -+ mdc { -+ pins = "gpio68"; -+ function = "mdc"; -+ drive-strength = <8>; -+ bias-pull-up; -+ }; -+ -+ mdio { -+ pins = "gpio69"; -+ function = "mdio"; -+ drive-strength = <8>; -+ bias-pull-up; -+ }; -+ }; -+}; -+ -+&blsp1_uart3 { -+ status = "okay"; -+}; -+ -+&blsp1_uart5 { -+ status = "okay"; -+}; -+ -+&cryptobam { -+ status = "okay"; -+}; -+ -+&crypto { -+ status = "okay"; -+}; -+ -+&prng { -+ status = "okay"; -+}; -+ -+&qpic_bam { -+ status = "okay"; -+}; -+ -+&qpic_nand { -+ status = "okay"; -+ -+ nand@0 { -+ reg = <0>; -+ nand-ecc-strength = <8>; -+ nand-ecc-step-size = <512>; -+ nand-bus-width = <8>; -+ -+ partitions { -+ compatible = "qcom,smem-part"; -+ }; -+ }; -+}; -+ -+&cpu0_thermal { -+ trips { -+ cpu0_trip_active: cpu-active { -+ temperature = <60000>; -+ hysteresis = <2000>; -+ type = "active"; -+ }; -+ }; -+ -+ cooling-maps { -+ cpu-active { -+ cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; -+ trip = <&cpu0_trip_active>; -+ }; -+ }; -+}; -+ -+&cpu1_thermal { -+ trips { -+ cpu1_trip_active: cpu-active { -+ temperature = <60000>; -+ hysteresis = <2000>; -+ type = "active"; -+ }; -+ }; -+ -+ cooling-maps { -+ cpu-active { -+ cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; -+ trip = <&cpu1_trip_active>; -+ }; -+ }; -+}; -+ -+&cpu2_thermal { -+ trips { -+ cpu2_trip_active: cpu-active { -+ temperature = <60000>; -+ hysteresis = <2000>; -+ type = "active"; -+ }; -+ }; -+ -+ cooling-maps { -+ cpu-active { -+ cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; -+ trip = <&cpu2_trip_active>; -+ }; -+ }; -+}; -+ -+&cpu3_thermal { -+ trips { -+ cpu3_trip_active: cpu-active { -+ temperature = <60000>; -+ hysteresis = <2000>; -+ type = "active"; -+ }; -+ }; -+ -+ cooling-maps { -+ cpu-active { -+ cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; -+ trip = <&cpu3_trip_active>; -+ }; -+ }; -+}; -+ -+&cluster_thermal { -+ trips { -+ cluster_active: cluster-active { -+ temperature = <60000>; -+ hysteresis = <2000>; -+ type = "active"; -+ }; -+ }; -+ -+ cooling-maps { -+ cluster-active { -+ cooling-device = <&fan THERMAL_NO_LIMIT THERMAL_NO_LIMIT>; -+ trip = <&cluster_active>; -+ }; -+ }; -+}; -+ -+&mdio { -+ status = "okay"; -+ -+ pinctrl-0 = <&mdio_pins>; -+ pinctrl-names = "default"; -+ reset-gpios = <&tlmm 37 GPIO_ACTIVE_LOW>; -+ -+ ethernet-phy-package@0 { -+ compatible = "qcom,qca8075-package"; -+ #address-cells = <1>; -+ #size-cells = <0>; -+ reg = <0>; -+ -+ qca8075_1: ethernet-phy@1 { -+ compatible = "ethernet-phy-ieee802.3-c22"; -+ reg = <1>; -+ }; -+ -+ qca8075_3: ethernet-phy@3 { -+ compatible = "ethernet-phy-ieee802.3-c22"; -+ reg = <3>; -+ }; -+ -+ qca8075_4: ethernet-phy@4 { -+ compatible = "ethernet-phy-ieee802.3-c22"; -+ reg = <4>; -+ }; -+ }; -+}; -+ -+&switch { -+ status = "okay"; -+ -+ switch_lan_bmp = <(ESS_PORT2 | ESS_PORT4)>; -+ switch_wan_bmp = ; -+ switch_mac_mode = ; -+ -+ qcom,port_phyinfo { -+ port@2 { -+ port_id = <2>; -+ phy_address = <1>; -+ }; -+ port@4 { -+ port_id = <4>; -+ phy_address = <3>; -+ }; -+ port@5 { -+ port_id = <5>; -+ phy_address = <4>; -+ }; -+ }; -+}; -+ -+&edma { -+ status = "okay"; -+}; -+ -+/* -+ * Directly connect to the Hi5630 -+ * PLC (Power Line Communication) -+ */ -+&dp2 { -+ status = "okay"; -+ phy-handle = <&qca8075_1>; -+ label = "plc"; -+}; -+ -+&dp4 { -+ status = "okay"; -+ phy-handle = <&qca8075_3>; -+ label = "lan"; -+}; -+ -+&dp5 { -+ status = "okay"; -+ phy-handle = <&qca8075_4>; -+ label = "wan"; -+}; -+ -+&wifi { -+ status = "okay"; -+ -+ qcom,ath11k-calibration-variant = "CMCC-RM2-6"; -+ qcom,ath11k-fw-memory-mode = <1>; -+}; -diff --git a/target/linux/ipq807x/image/ipq807x.mk b/target/linux/ipq807x/image/ipq807x.mk -index 3a30b161b4219..3bbd0b3d112e6 100644 ---- a/target/linux/ipq807x/image/ipq807x.mk -+++ b/target/linux/ipq807x/image/ipq807x.mk -@@ -36,6 +36,21 @@ define Device/buffalo_wxr-5950ax12 - endef - TARGET_DEVICES += buffalo_wxr-5950ax12 - -+define Device/cmcc_rm2-6 -+ $(call Device/FitImage) -+ $(call Device/UbiFit) -+ DEVICE_VENDOR := CMCC -+ DEVICE_MODEL := RM2-6 -+ BLOCKSIZE := 128k -+ PAGESIZE := 2048 -+ DEVICE_DTS_CONFIG := config@ac02 -+ SOC := ipq8070 -+ IMAGES := factory.bin sysupgrade.bin -+ IMAGE/factory.bin := append-ubi | qsdk-ipq-factory-nand -+ DEVICE_PACKAGES := ipq-wifi-cmcc_rm2-6 kmod-hwmon-gpiofan -+endef -+TARGET_DEVICES += cmcc_rm2-6 -+ - define Device/compex_wpq873 - $(call Device/FitImage) - $(call Device/UbiFit) -diff --git a/target/linux/ipq807x/base-files/etc/board.d/02_network b/target/linux/ipq807x/base-files/etc/board.d/02_network -index f38c4b6698446..d24fb235055bd 100644 ---- a/target/linux/ipq807x/base-files/etc/board.d/02_network -+++ b/target/linux/ipq807x/base-files/etc/board.d/02_network -@@ -17,6 +17,9 @@ ipq807x_setup_interfaces() - xiaomi,ax9000) - ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "wan" - ;; -+ cmcc,rm2-6) -+ ucidef_set_interfaces_lan_wan "lan plc" "wan" -+ ;; - compex,wpq873|\ - linksys,mx4200v1|\ - linksys,mx4200v2|\ -diff --git a/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/11-ath11k-caldata b/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/11-ath11k-caldata -index 85d107079ee50..95011ee568e23 100644 ---- a/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/11-ath11k-caldata -+++ b/target/linux/ipq807x/base-files/etc/hotplug.d/firmware/11-ath11k-caldata -@@ -11,6 +11,7 @@ case "$FIRMWARE" in - case "$board" in - arcadyan,aw1000|\ - buffalo,wxr-5950ax12|\ -+ cmcc,rm2-6|\ - compex,wpq873|\ - dynalink,dl-wrx36|\ - edgecore,eap102|\ -diff --git a/target/linux/ipq807x/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac b/target/linux/ipq807x/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac -index 343e42d6346e1..500f01c31f13c 100644 ---- a/target/linux/ipq807x/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac -+++ b/target/linux/ipq807x/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac -@@ -18,6 +18,11 @@ case "$board" in - [ "$PHYNBR" = "0" ] && macaddr_add $(get_mac_label) 8 > /sys${DEVPATH}/macaddress - [ "$PHYNBR" = "1" ] && macaddr_add $(get_mac_label) 16 > /sys${DEVPATH}/macaddress - ;; -+ cmcc,rm2-6|\ -+ zte,mf269) -+ [ "$PHYNBR" = "0" ] && macaddr_add $(get_mac_label) 2 > /sys${DEVPATH}/macaddress -+ [ "$PHYNBR" = "1" ] && macaddr_add $(get_mac_label) 3 > /sys${DEVPATH}/macaddress -+ ;; - linksys,mx4200v1|\ - linksys,mx4200v2) - label_mac=$(mtd_get_mac_ascii devinfo hw_mac_addr) -@@ -25,8 +30,4 @@ case "$board" in - [ "$PHYNBR" = "1" ] && macaddr_add $label_mac 1 > /sys${DEVPATH}/macaddress - [ "$PHYNBR" = "2" ] && macaddr_add $label_mac 3 > /sys${DEVPATH}/macaddress - ;; -- zte,mf269) -- [ "$PHYNBR" = "0" ] && macaddr_add $(get_mac_label) 2 > /sys${DEVPATH}/macaddress -- [ "$PHYNBR" = "1" ] && macaddr_add $(get_mac_label) 3 > /sys${DEVPATH}/macaddress -- ;; - esac -diff --git a/target/linux/ipq807x/base-files/lib/upgrade/platform.sh b/target/linux/ipq807x/base-files/lib/upgrade/platform.sh -index 78842e1c4d303..b03a063af38bf 100644 ---- a/target/linux/ipq807x/base-files/lib/upgrade/platform.sh -+++ b/target/linux/ipq807x/base-files/lib/upgrade/platform.sh -@@ -44,6 +44,7 @@ platform_pre_upgrade() { - platform_do_upgrade() { - case "$(board_name)" in - arcadyan,aw1000|\ -+ cmcc,rm2-6|\ - compex,wpq873|\ - dynalink,dl-wrx36|\ - edimax,cax1800|\