From c8b8a6adca5bfb49a9312eb3ba17a68f53ffd63e Mon Sep 17 00:00:00 2001 From: Hugo Yuan <429632952@163.com> Date: Thu, 8 Sep 2022 20:27:05 +0800 Subject: [PATCH] ipq807x: add support for ZTE MF269 Co-authored-by: AmadeusGhost <42570690+AmadeusGhost@users.noreply.github.com> Signed-off-by: Tianling Shen --- package/boot/uboot-envtools/files/ipq807x | 3 +- package/firmware/ipq-wifi/Makefile | 2 + .../firmware/ipq-wifi/board-zte_mf269.ipq8074 | Bin 0 -> 131172 bytes .../ipq807x/base-files/etc/board.d/02_network | 24 +- .../etc/hotplug.d/firmware/11-ath11k-caldata | 3 +- .../etc/hotplug.d/ieee80211/11_fix_wifi_mac | 18 ++ .../base-files/lib/upgrade/platform.sh | 4 + .../arm64/boot/dts/qcom/ipq8071-mf269.dts | 212 ++++++++++++++++++ target/linux/ipq807x/image/generic.mk | 13 ++ 9 files changed, 276 insertions(+), 3 deletions(-) create mode 100644 package/firmware/ipq-wifi/board-zte_mf269.ipq8074 create mode 100644 target/linux/ipq807x/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac create mode 100644 target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/ipq8071-mf269.dts diff --git a/package/boot/uboot-envtools/files/ipq807x b/package/boot/uboot-envtools/files/ipq807x index 5c5b77089ac..4444021defe 100644 --- a/package/boot/uboot-envtools/files/ipq807x +++ b/package/boot/uboot-envtools/files/ipq807x @@ -27,7 +27,8 @@ edimax,cax1800) ;; redmi,ax6|\ xiaomi,ax3600|\ -xiaomi,ax9000) +xiaomi,ax9000|\ +zte,mf269) idx="$(find_mtd_index 0:appsblenv)" [ -n "$idx" ] && \ ubootenv_add_uci_config "/dev/mtd$idx" "0x0" "0x10000" "0x20000" diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq-wifi/Makefile index 32988910c0a..763eeb3a137 100644 --- a/package/firmware/ipq-wifi/Makefile +++ b/package/firmware/ipq-wifi/Makefile @@ -38,6 +38,7 @@ ALLWIFIBOARDS:= \ wallys_dr40x9 \ xiaomi_ax3600 \ xiaomi_ax9000 \ + zte_mf269 \ zyxel_nbg7815 ALLWIFIPACKAGES:=$(foreach BOARD,$(ALLWIFIBOARDS),ipq-wifi-$(BOARD)) @@ -122,6 +123,7 @@ $(eval $(call generate-ipq-wifi-package,redmi_ax6,Redmi AX6)) $(eval $(call generate-ipq-wifi-package,wallys_dr40x9,Wallys DR40X9)) $(eval $(call generate-ipq-wifi-package,xiaomi_ax3600,Xiaomi AX3600)) $(eval $(call generate-ipq-wifi-package,xiaomi_ax9000,Xiaomi AX9000)) +$(eval $(call generate-ipq-wifi-package,zte_mf269,ZTE MF269)) $(eval $(call generate-ipq-wifi-package,zyxel_nbg7815,Zyxel NBG7815)) $(foreach PACKAGE,$(ALLWIFIPACKAGES),$(eval $(call BuildPackage,$(PACKAGE)))) diff --git a/package/firmware/ipq-wifi/board-zte_mf269.ipq8074 b/package/firmware/ipq-wifi/board-zte_mf269.ipq8074 new file mode 100644 index 0000000000000000000000000000000000000000..473fceabc4e532a3099c0210562a31188e0c1988 GIT binary patch literal 131172 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 literal 0 HcmV?d00001 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 004ab4fdc62..a597aee68f2 100644 --- a/target/linux/ipq807x/base-files/etc/board.d/02_network +++ b/target/linux/ipq807x/base-files/etc/board.d/02_network @@ -16,7 +16,8 @@ ipq807x_setup_interfaces() xiaomi,ax9000) ucidef_set_interfaces_lan_wan "lan1 lan2 lan3 lan4" "wan" ;; - edgecore,eap102) + edgecore,eap102|\ + zte,mf269) ucidef_set_interfaces_lan_wan "lan" "wan" ;; edimax,cax1800) @@ -38,9 +39,31 @@ ipq807x_setup_interfaces() esac } +ipq807x_setup_macs() +{ + local board="$1" + local lan_mac="" + local wan_mac="" + local label_mac="" + + case "$board" in + zte,mf269) + wan_mac="$(mtd_get_mac_binary mac 0x0)" + [ "$wan_mac" != "00:00:00:00:00:00" ] || wan_mac="$(get_mac_binary "$(find_mtd_chardev mac)" 0x20000)" + lan_mac="$(macaddr_add "$wan_mac" 1)" + label_mac="$wan_mac" + ;; + esac + + [ -n "$lan_mac" ] && ucidef_set_interface_macaddr "lan" "$lan_mac" + [ -n "$wan_mac" ] && ucidef_set_interface_macaddr "wan" "$wan_mac" + [ -n "$label_mac" ] && ucidef_set_label_macaddr "$label_mac" +} + board_config_update board=$(board_name) ipq807x_setup_interfaces $board +ipq807x_setup_macs $board board_config_flush exit 0 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 524211ef43e..61ea555247e 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 @@ -18,6 +18,7 @@ case "$FIRMWARE" in redmi,ax6|\ xiaomi,ax3600|\ xiaomi,ax9000|\ + zte,mf269|\ zyxel,nbg7815) caldata_extract "0:art" 0x1000 0x20000 ;; 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 new file mode 100644 index 00000000000..c8a8c6ad2b9 --- /dev/null +++ b/target/linux/ipq807x/base-files/etc/hotplug.d/ieee80211/11_fix_wifi_mac @@ -0,0 +1,19 @@ +[ "$ACTION" == "add" ] || exit 0 + +PHYNBR=${DEVPATH##*/phy} + +[ -n $PHYNBR ] || exit 0 + +. /lib/functions.sh +. /lib/functions/system.sh + +board=$(board_name) + +case "$board" in + zte,mf269) + mac_addr="$(mtd_get_mac_binary mac 0x0)" + [ "$mac_addr" != "00:00:00:00:00:00" ] || mac_addr="$(get_mac_binary "$(find_mtd_chardev mac)" 0x20000)" + [ "$PHYNBR" = "0" ] && macaddr_add "$mac_addr" 2 > "/sys${DEVPATH}/macaddress" + [ "$PHYNBR" = "1" ] && macaddr_add "$mac_addr" 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 346cc390f3124..d9a81e1e22d2b 100644 --- a/target/linux/ipq807x/base-files/lib/upgrade/platform.sh +++ b/target/linux/ipq807x/base-files/lib/upgrade/platform.sh @@ -109,6 +109,10 @@ platform_do_upgrade() { CI_ROOT_UBIPART="rootfs" nand_do_upgrade "$1" ;; + zte,mf269) + CI_UBIPART="rootfs" + nand_do_upgrade "$1" + ;; *) default_do_upgrade "$1" ;; diff --git a/target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/ipq8071-mf269.dts b/target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/ipq8071-mf269.dts new file mode 100644 index 00000000000..be76ddf12e4 --- /dev/null +++ b/target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/ipq8071-mf269.dts @@ -0,0 +1,212 @@ +// 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 + +/ { + model = "ZTE MF269"; + compatible = "zte,mf269", "qcom,ipq8074"; + + aliases { + serial0 = &blsp1_uart5; + led-boot = &led_system_white; + led-failsafe = &led_system_white; + led-running = &led_system_white; + led-upgrade = &led_system_white; + }; + + chosen { + stdout-path = "serial0:115200n8"; + bootargs-append = " root=/dev/ubiblock0_1"; + }; + + keys { + compatible = "gpio-keys"; + + reset { + label = "reset"; + gpios = <&tlmm 46 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + + wps { + label = "wps"; + gpios = <&tlmm 37 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + }; + + leds { + compatible = "gpio-leds"; + + led_system_white: system-white { + label = "white:system"; + gpio = <&tlmm 56 GPIO_ACTIVE_HIGH>; + }; + }; +}; + +&tlmm { + mdio_pins: mdio-pins { + mdc { + pins = "gpio68"; + function = "mdc"; + drive-strength = <8>; + bias-pull-up; + }; + + mido { + pins = "gpio69"; + function = "mdio"; + drive-strength = <8>; + bias-pull-up; + }; + }; + + usb_vbus_pins: usb-vbus-pins { + usb-pins { + pins = "gpio29"; + function = "gpio"; + drive-strength = <8>; + bias-disable; + output-high; + }; + }; +}; + +&blsp1_spi1 { + pinctrl-0 = <&spi_0_pins>; + pinctrl-names = "default"; + cs-select = <0>; + status = "okay"; + + flash@0 { + compatible = "jedec,spi-nor"; + #address-cells = <1>; + #size-cells = <1>; + reg = <0>; + spi-max-frequency = <50000000>; + }; +}; + +&blsp1_uart5 { + status = "okay"; +}; + +&prng { + status = "okay"; +}; + +&cryptobam { + status = "okay"; +}; + +&crypto { + status = "okay"; +}; + +&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"; + }; + }; +}; + +&qusb_phy_0 { + status = "okay"; +}; + +&ssphy_0 { + status = "okay"; +}; + +&usb_0 { + pinctrl-0 = <&usb_vbus_pins>; + pinctrl-names = "default"; + status = "okay"; +}; + +&mdio { + status = "okay"; + + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; + + qca8075_24: ethernet-phy@24 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <24>; + reset-gpios = <&tlmm 25 GPIO_ACTIVE_LOW>; + }; + + qca8075_28: ethernet-phy@28 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <28>; + reset-gpios = <&tlmm 44 GPIO_ACTIVE_LOW>; + }; +}; + +&switch { + status = "okay"; + + switch_cpu_bmp = <0x1>; /* cpu port bitmap */ + switch_lan_bmp = <0x3e>; /* lan port bitmap */ + switch_wan_bmp = <0x40>; /* wan port bitmap */ + switch_mac_mode = <0x0>; /* mac mode for uniphy instance0*/ + switch_mac_mode1 = <0xf>; /* mac mode for uniphy instance1*/ + switch_mac_mode2 = <0xf>; /* mac mode for uniphy instance2*/ + bm_tick_mode = <0>; /* bm tick mode */ + tm_tick_mode = <0>; /* tm tick mode */ + + qcom,port_phyinfo { + port@4 { + port_id = <5>; + phy_address = <24>; + port_mac_sel = "QGMAC_PORT"; + }; + port@5 { + port_id = <6>; + phy_address = <28>; + port_mac_sel = "QGMAC_PORT"; + }; + }; +}; + +&edma { + status = "okay"; +}; + +&dp5_syn { + status = "okay"; + phy-handle = <&qca8075_24>; + label = "lan"; +}; + +&dp6_syn { + status = "okay"; + phy-handle = <&qca8075_28>; + label = "wan"; +}; + +&wifi { + status = "okay"; + + qcom,ath11k-calibration-variant = "ZTE-MF269"; + qcom,ath11k-fw-memory-mode = <1>; +}; --- a/target/linux/ipq807x/image/generic.mk +++ b/target/linux/ipq807x/image/generic.mk @@ -147,6 +147,19 @@ endif endef TARGET_DEVICES += xiaomi_ax9000 + +define Device/zte_mf269 + $(call Device/FitImage) + $(call Device/UbiFit) + DEVICE_VENDOR := ZTE + DEVICE_MODEL := MF269 + BLOCKSIZE := 128k + PAGESIZE := 2048 + DEVICE_DTS_CONFIG := config@ac04 + SOC := ipq8071 + DEVICE_PACKAGES := ipq-wifi-zte_mf269 +endef +TARGET_DEVICES += zte_mf269 define Device/zyxel_nbg7815 $(call Device/FitImage)