From 527a117abdd436084f946d57a8e2a2552f51204f Mon Sep 17 00:00:00 2001 From: Hugo Yuan <429632952@163.com> Date: Sun, 22 Aug 2021 01:27:48 +0800 Subject: [PATCH] ipq807x: add support for ZTE MF269 (#7713) --- package/firmware/ipq-wifi/Makefile | 4 +- .../firmware/ipq-wifi/board-zte_mf269.ipq8074 | Bin 0 -> 131172 bytes package/kernel/mac80211/ath.mk | 2 +- .../ipq807x/base-files/etc/board.d/02_network | 5 + .../etc/hotplug.d/firmware/11-ath11k-caldata | 3 + .../ipq807x/base-files/etc/init.d/bootcount | 10 +- .../base-files/lib/upgrade/platform.sh | 4 + .../arm64/boot/dts/qcom/ipq8071-mf269.dts | 794 ++++++++++++++++++ target/linux/ipq807x/image/generic.mk | 13 + .../900-arm64-dts-add-OpenWrt-DTS-files.patch | 5 +- 10 files changed, 835 insertions(+), 5 deletions(-) create mode 100755 package/firmware/ipq-wifi/board-zte_mf269.ipq8074 create mode 100755 target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/ipq8071-mf269.dts diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq-wifi/Makefile index a93c4f080..0baada32e 100644 --- a/package/firmware/ipq-wifi/Makefile +++ b/package/firmware/ipq-wifi/Makefile @@ -58,7 +58,8 @@ ALLWIFIBOARDS:= \ qxwlan_e2600ac \ redmi_ax6 \ xiaomi_ax3600 \ - xiaomi_ax9000 + xiaomi_ax9000 \ + zte_mf269 ALLWIFIPACKAGES:=$(foreach BOARD,$(ALLWIFIBOARDS),ipq-wifi-$(BOARD)) @@ -162,5 +163,6 @@ $(eval $(call generate-ipq-wifi-package,qxwlan_e2600ac,Qxwlan E2600AC)) $(eval $(call generate-ipq-wifi-package,redmi_ax6,Redmi AX6)) $(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)) $(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 100755 index 0000000000000000000000000000000000000000..050b1259cca44d8d1bc5079fe3494ed9d466e2e0 GIT binary patch literal 131172 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 /sys/devices/platform/soc/c000000.wifi/ieee80211/phy0/macaddress + macaddr_add $mac_addr 3 > /sys/devices/platform/soc/c000000.wifi/ieee80211/phy1/macaddress + wifi + ;; esac for q in $(ls /sys/class/net/eth*/queues/rx-*/rps_cpus); do echo f > $q; done diff --git a/target/linux/ipq807x/base-files/lib/upgrade/platform.sh b/target/linux/ipq807x/base-files/lib/upgrade/platform.sh index 087884b04..0a667df1c 100644 --- a/target/linux/ipq807x/base-files/lib/upgrade/platform.sh +++ b/target/linux/ipq807x/base-files/lib/upgrade/platform.sh @@ -36,6 +36,10 @@ platform_do_upgrade() { # Reset success flag fw_setenv flag_boot_success 0 + nand_do_upgrade "$1" + ;; + zte,mf269) + CI_UBIPART="rootfs" nand_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 100755 index 000000000..dddef205b --- /dev/null +++ b/target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/ipq8071-mf269.dts @@ -0,0 +1,794 @@ +// SPDX-License-Identifier: GPL-2.0-only +/dts-v1/; +/* Copyright (c) 2020 The Linux Foundation. All rights reserved. + */ +#include "ipq8074.dtsi" +#include "ipq8074-ac-cpu.dtsi" +#include "ipq8074-ac-nss.dtsi" +#include "ipq8074-memory-512m.dtsi" +#include +#include + +/ { + #address-cells = <0x2>; + #size-cells = <0x2>; + model = "ZTE MF269"; + compatible = "zte,mf269", "qcom,ipq8074"; + interrupt-parent = <&intc>; + + aliases { + led-boot = &power; + led-failsafe = &power; + led-running = &power; + led-upgrade = &power; + serial0 = &blsp1_uart5; + }; + + chosen { + stdout-path = "serial0"; + bootargs-append = " ubi.mtd=rootfs root=/dev/ubiblock0_1 rootfstype=squashfs"; + }; + + reserved-memory { + /delete-node/ tzapp@4a400000; + /delete-node/ q6_etr_dump@50f00000; + /delete-node/ m3_dump@51000000; + }; + + soc { + pinctrl@1000000 { + audio_gpio_pinmux { + mux_1 { + pins = "gpio62"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + output-high; + }; + + mux_2 { + pins = "gpio26"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + output-high; + }; + + mux_3 { + pins = "gpio27"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + output-high; + }; + + mux_4 { + pins = "gpio63"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + output-high; + }; + + mux_5 { + pins = "gpio67"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + output-high; + }; + + mux_6 { + pins = "gpio30"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + output-high; + }; + + mux_7 { + pins = "gpio31"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + output-high; + }; + + mux_8 { + pins = "gpio32"; + function = "gpio"; + drive-strength = <8>; + bias-pull-up; + output-high; + }; + }; + + audio_pinmux { + mux_1 { + pins = "gpio26"; + function = "audio_txbclk"; + drive-strength = <8>; + bias-pull-up; + }; + + mux_2 { + pins = "gpio27"; + function = "audio_txfsync"; + drive-strength = <8>; + bias-pull-up; + }; + + mux_3 { + pins = "gpio63"; + function = "audio_txd"; + drive-strength = <8>; + bias-pull-up; + }; + + mux_4 { + pins = "gpio30"; + function = "audio_rxbclk"; + drive-strength = <8>; + bias-pull-up; + }; + + mux_5 { + pins = "gpio31"; + function = "audio_rxfsync"; + drive-strength = <8>; + bias-pull-up; + }; + + mux_6 { + pins = "gpio32"; + function = "audio_rxd"; + drive-strength = <8>; + bias-pull-up; + }; + }; + + audio_pinmux_master { + mux_1 { + pins = "gpio62"; + function = "audio_txmclk"; + drive-strength = <8>; + bias-pull-up; + }; + + mux_2 { + pins = "gpio67"; + function = "audio_rxmclk"; + drive-strength = <8>; + bias-pull-up; + }; + }; + + audio_pinmux_slave { + mux_1 { + pins = "gpio62"; + function = "audio_txmclk"; + drive-strength = <2>; + bias-pull-up; + }; + + mux_2 { + pins = "gpio67"; + function = "audio_rxmclk"; + drive-strength = <2>; + bias-pull-up; + }; + }; + + voip_pinmux { + mux_1 { + pins = "gpio33"; + function = "pcm_drx"; + drive-strength = <8>; + bias-pull-up; + }; + + mux_2 { + pins = "gpio34"; + function = "pcm_dtx"; + drive-strength = <8>; + bias-pull-up; + }; + + mux_3 { + pins = "gpio35"; + function = "pcm_fsync"; + drive-strength = <8>; + bias-pull-up; + }; + + mux_4 { + pins = "gpio36"; + function = "pcm_pclk"; + drive-strength = <8>; + bias-pull-up; + }; + }; + + zte_pm_pinmux { + mux { + pins = "gpio47", "gpio48", "gpio29"; + function = "gpio"; + drive-strength = <8>; + bias-disable; + }; + }; + + spi_5_pins { + mux { + pins = "gpio0", "gpio2", "gpio9", "gpio16"; + function = "blsp5_spi"; + drive-strength = <8>; + bias-disable; + }; + }; + + slic_ctl_pins { + mux { + pins = "gpio59"; + function = "gpio"; + bias-pull-up; + }; + }; + + usb_mux_sel_pins: usb_mux_pins { + mux { + pins = "gpio27"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + }; + + pcie0_pins: pcie_pins { + pcie0_rst { + pins = "gpio52"; + function = "pcie0_rst"; + drive-strength = <8>; + bias-pull-down; + }; + + pcie0_wake { + pins = "gpio59"; + function = "pcie0_wake"; + drive-strength = <8>; + bias-pull-down; + }; + }; + + mdio_pins: mdio_pinmux { + mux_0 { + pins = "gpio68"; + function = "mdc"; + drive-strength = <8>; + bias-pull-up; + }; + mux_1 { + pins = "gpio69"; + function = "mdio"; + drive-strength = <8>; + bias-pull-up; + }; + mux_2 { + pins = "gpio25"; + function = "gpio"; + bias-pull-up; + }; + mux_3 { + pins = "gpio44"; + function = "gpio"; + bias-pull-up; + }; + }; + + spi_5_pins: spi-5-pins { + pins = "gpio0", "gpio2", "gpio9", "gpio16"; + function = "blsp5_spi"; + drive-strength = <8>; + bias-disable; + }; + + led_pins: led_pins { + led_pwr { + pins = "gpio56"; + function = "gpio"; + drive-strength = <8>; + bias-pull-down; + }; + }; + }; + + serial@78b3000 { + status = "ok"; + }; + + spi@78b5000 { + status = "okay"; + pinctrl-0 = <&spi_0_pins>; + pinctrl-names = "default"; + cs-select = <0>; + + m25p80@0 { + compatible = "n25q128a11"; + #address-cells = <1>; + #size-cells = <1>; + reg = <0>; + spi-max-frequency = <50000000>; + }; + }; + + dma@7984000 { + status = "ok"; + }; + + qusb@79000 { + status = "ok"; + }; + + ssphy@78000 { + status = "ok"; + }; + + usb3@8A00000 { + status = "ok"; + }; + + qusb@59000 { + status = "ok"; + }; + + ssphy@58000 { + status = "ok"; + }; + + usb3@8C00000 { + status = "ok"; + }; + + phy@84000 { + status = "ok"; + }; + + phy@86000 { + status = "ok"; + }; + + pci@20000000 { + perst-gpio = <&tlmm 52 0>; + status = "disabled"; + }; + + i2c@78b9000 { + status = "ok"; + }; + + keys { + compatible = "gpio-keys"; + + reset { + label = "reset"; + linux,code = ; + gpios = <&tlmm 46 GPIO_ACTIVE_LOW>; + }; + + wps { + label = "wps"; + linux,code = ; + gpios = <&tlmm 37 GPIO_ACTIVE_LOW>; + }; + }; + + + leds { + compatible = "gpio-leds"; + pinctrl-0 = <&led_pins>; + pinctrl-names = "default"; + + power: led@56 { + label = "power_white"; + gpio = <&tlmm 56 GPIO_ACTIVE_HIGH>; + }; + }; + + mdio: mdio@90000 { + status = "okay"; + + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; + phy-reset-gpio = <&tlmm 37 0 &tlmm 25 0 &tlmm 44 0>; + phy0: ethernet-phy@0 { + reg = <0>; + }; + phy1: ethernet-phy@1 { + reg = <1>; + }; + phy2: ethernet-phy@2 { + reg = <2>; + }; + phy3: ethernet-phy@3 { + reg = <3>; + }; + phy4: ethernet-phy@4 { + reg = <24>; + }; + phy5: ethernet-phy@5 { + reg = <28>; + }; + }; + + ess-switch@3a000000 { + 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@0 { + port_id = <1>; + phy_address = <0>; + }; + port@1 { + port_id = <2>; + phy_address = <1>; + }; + port@2 { + port_id = <3>; + phy_address = <2>; + }; + port@3 { + port_id = <4>; + phy_address = <3>; + }; + 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"; + }; + }; + port_scheduler_resource { + port@0 { + port_id = <0>; + ucast_queue = <0 143>; + mcast_queue = <256 271>; + l0sp = <0 35>; + l0cdrr = <0 47>; + l0edrr = <0 47>; + l1cdrr = <0 7>; + l1edrr = <0 7>; + }; + port@1 { + port_id = <1>; + ucast_queue = <144 159>; + mcast_queue = <272 275>; + l0sp = <36 39>; + l0cdrr = <48 63>; + l0edrr = <48 63>; + l1cdrr = <8 11>; + l1edrr = <8 11>; + }; + port@2 { + port_id = <2>; + ucast_queue = <160 175>; + mcast_queue = <276 279>; + l0sp = <40 43>; + l0cdrr = <64 79>; + l0edrr = <64 79>; + l1cdrr = <12 15>; + l1edrr = <12 15>; + }; + port@3 { + port_id = <3>; + ucast_queue = <176 191>; + mcast_queue = <280 283>; + l0sp = <44 47>; + l0cdrr = <80 95>; + l0edrr = <80 95>; + l1cdrr = <16 19>; + l1edrr = <16 19>; + }; + port@4 { + port_id = <4>; + ucast_queue = <192 207>; + mcast_queue = <284 287>; + l0sp = <48 51>; + l0cdrr = <96 111>; + l0edrr = <96 111>; + l1cdrr = <20 23>; + l1edrr = <20 23>; + }; + port@5 { + port_id = <5>; + ucast_queue = <208 223>; + mcast_queue = <288 291>; + l0sp = <52 55>; + l0cdrr = <112 127>; + l0edrr = <112 127>; + l1cdrr = <24 27>; + l1edrr = <24 27>; + }; + port@6 { + port_id = <6>; + ucast_queue = <224 239>; + mcast_queue = <292 295>; + l0sp = <56 59>; + l0cdrr = <128 143>; + l0edrr = <128 143>; + l1cdrr = <28 31>; + l1edrr = <28 31>; + }; + port@7 { + port_id = <7>; + ucast_queue = <240 255>; + mcast_queue = <296 299>; + l0sp = <60 63>; + l0cdrr = <144 159>; + l0edrr = <144 159>; + l1cdrr = <32 35>; + l1edrr = <32 35>; + }; + }; + port_scheduler_config { + port@0 { + port_id = <0>; + l1scheduler { + group@0 { + sp = <0 1>; /*L0 SPs*/ + /*cpri cdrr epri edrr*/ + cfg = <0 0 0 0>; + }; + }; + l0scheduler { + group@0 { + /*unicast queues*/ + ucast_queue = <0 4 8>; + /*multicast queues*/ + mcast_queue = <256 260>; + /*sp cpri cdrr epri edrr*/ + cfg = <0 0 0 0 0>; + }; + group@1 { + ucast_queue = <1 5 9>; + mcast_queue = <257 261>; + cfg = <0 1 1 1 1>; + }; + group@2 { + ucast_queue = <2 6 10>; + mcast_queue = <258 262>; + cfg = <0 2 2 2 2>; + }; + group@3 { + ucast_queue = <3 7 11>; + mcast_queue = <259 263>; + cfg = <0 3 3 3 3>; + }; + }; + }; + port@1 { + port_id = <1>; + l1scheduler { + group@0 { + sp = <36>; + cfg = <0 8 0 8>; + }; + group@1 { + sp = <37>; + cfg = <1 9 1 9>; + }; + }; + l0scheduler { + group@0 { + ucast_queue = <144>; + ucast_loop_pri = <16>; + mcast_queue = <272>; + mcast_loop_pri = <4>; + cfg = <36 0 48 0 48>; + }; + }; + }; + port@2 { + port_id = <2>; + l1scheduler { + group@0 { + sp = <40>; + cfg = <0 12 0 12>; + }; + group@1 { + sp = <41>; + cfg = <1 13 1 13>; + }; + }; + l0scheduler { + group@0 { + ucast_queue = <160>; + ucast_loop_pri = <16>; + mcast_queue = <276>; + mcast_loop_pri = <4>; + cfg = <40 0 64 0 64>; + }; + }; + }; + port@3 { + port_id = <3>; + l1scheduler { + group@0 { + sp = <44>; + cfg = <0 16 0 16>; + }; + group@1 { + sp = <45>; + cfg = <1 17 1 17>; + }; + }; + l0scheduler { + group@0 { + ucast_queue = <176>; + ucast_loop_pri = <16>; + mcast_queue = <280>; + mcast_loop_pri = <4>; + cfg = <44 0 80 0 80>; + }; + }; + }; + port@4 { + port_id = <4>; + l1scheduler { + group@0 { + sp = <48>; + cfg = <0 20 0 20>; + }; + group@1 { + sp = <49>; + cfg = <1 21 1 21>; + }; + }; + l0scheduler { + group@0 { + ucast_queue = <192>; + ucast_loop_pri = <16>; + mcast_queue = <284>; + mcast_loop_pri = <4>; + cfg = <48 0 96 0 96>; + }; + }; + }; + port@5 { + port_id = <5>; + l1scheduler { + group@0 { + sp = <52>; + cfg = <0 24 0 24>; + }; + group@1 { + sp = <53>; + cfg = <1 25 1 25>; + }; + }; + l0scheduler { + group@0 { + ucast_queue = <208>; + ucast_loop_pri = <16>; + mcast_queue = <288>; + mcast_loop_pri = <4>; + cfg = <52 0 112 0 112>; + }; + }; + }; + port@6 { + port_id = <6>; + l1scheduler { + group@0 { + sp = <56>; + cfg = <0 28 0 28>; + }; + group@1 { + sp = <57>; + cfg = <1 29 1 29>; + }; + }; + l0scheduler { + group@0 { + ucast_queue = <224>; + ucast_loop_pri = <16>; + mcast_queue = <292>; + mcast_loop_pri = <4>; + cfg = <56 0 128 0 128>; + }; + }; + }; + port@7 { + port_id = <7>; + l1scheduler { + group@0 { + sp = <60>; + cfg = <0 32 0 32>; + }; + group@1 { + sp = <61>; + cfg = <1 33 1 33>; + }; + }; + l0scheduler { + group@0 { + ucast_queue = <240>; + ucast_loop_pri = <16>; + mcast_queue = <296>; + cfg = <60 0 144 0 144>; + }; + }; + }; + }; + }; + + dp5: dp5 { + device_type = "network"; + compatible = "qcom,nss-dp"; + qcom,id = <5>; + reg = <0x3a001800 0x200>; + qcom,mactype = <0>; + local-mac-address = [000000000000]; + qcom,link-poll = <1>; + qcom,phy-mdio-addr = <24>; + phy-mode = "sgmii"; + mdio-bus = <&mdio>; + }; + + dp6: dp6 { + device_type = "network"; + compatible = "qcom,nss-dp"; + qcom,id = <6>; + reg = <0x3a001a00 0x200>; + qcom,mactype = <0>; + local-mac-address = [000000000000]; + qcom,link-poll = <1>; + qcom,phy-mdio-addr = <28>; + phy-mode = "sgmii"; + mdio-bus = <&mdio>; + }; + + nss-macsec0 { + compatible = "qcom,nss-macsec"; + phy_addr = <0x18>; + mdiobus = <&mdio>; + }; + nss-macsec1 { + compatible = "qcom,nss-macsec"; + phy_addr = <0x1c>; + mdiobus = <&mdio>; + }; + }; +}; + +&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"; + }; + }; +}; + + +&wifi { + status = "okay"; + qcom,board_id = <0x292>; + qcom,ath11k-calibration-variant = "ZTE-MF269"; +}; + diff --git a/target/linux/ipq807x/image/generic.mk b/target/linux/ipq807x/image/generic.mk index 2ca5af78a..853534ab7 100644 --- a/target/linux/ipq807x/image/generic.mk +++ b/target/linux/ipq807x/image/generic.mk @@ -71,3 +71,16 @@ define Device/xiaomi_ax9000 uboot-envtools 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 uboot-envtools +endef +TARGET_DEVICES += zte_mf269 diff --git a/target/linux/ipq807x/patches-5.10/900-arm64-dts-add-OpenWrt-DTS-files.patch b/target/linux/ipq807x/patches-5.10/900-arm64-dts-add-OpenWrt-DTS-files.patch index 22f201449..ca687a123 100644 --- a/target/linux/ipq807x/patches-5.10/900-arm64-dts-add-OpenWrt-DTS-files.patch +++ b/target/linux/ipq807x/patches-5.10/900-arm64-dts-add-OpenWrt-DTS-files.patch @@ -12,13 +12,14 @@ Signed-off-by: Robert Marko --- a/arch/arm64/boot/dts/qcom/Makefile +++ b/arch/arm64/boot/dts/qcom/Makefile -@@ -3,6 +3,10 @@ dtb-$(CONFIG_ARCH_QCOM) += apq8016-sbc.d +@@ -3,6 +3,11 @@ dtb-$(CONFIG_ARCH_QCOM) += apq8016-sbc.d dtb-$(CONFIG_ARCH_QCOM) += apq8096-db820c.dtb dtb-$(CONFIG_ARCH_QCOM) += apq8096-ifc6640.dtb dtb-$(CONFIG_ARCH_QCOM) += ipq6018-cp01-c1.dtb +dtb-$(CONFIG_ARCH_QCOM) += ipq8071-ax6.dtb +dtb-$(CONFIG_ARCH_QCOM) += ipq8071-ax3600.dtb -+dtb-$(CONFIG_ARCH_QCOM) += ipq8072-ax9000.dtb ++dtb-$(CONFIG_ARCH_QCOM) += ipq8071-mf269.dtb ++dtb-$(CONFIG_ARCH_QCOM) += ipq8072-ax9000.dtb +dtb-$(CONFIG_ARCH_QCOM) += ipq8074-sxr80.dtb dtb-$(CONFIG_ARCH_QCOM) += ipq8074-hk01.dtb dtb-$(CONFIG_ARCH_QCOM) += msm8916-longcheer-l8150.dtb