From 41364f5268362480a05b638f0a051f2fb2caf276 Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Wed, 1 Mar 2023 12:52:55 +0800 Subject: [PATCH] ipq807x: Add Zyxel Armor G5 (NBG7815) support --- package/firmware/ipq-wifi/Makefile | 2 + .../ipq-wifi/board-zyxel_nbg7815.ipq8074 | Bin 0 -> 131176 bytes .../ipq807x/base-files/etc/board.d/02_network | 1 + .../etc/hotplug.d/firmware/11-ath11k-caldata | 3 +- .../base-files/lib/upgrade/platform.sh | 1 + .../arm64/boot/dts/qcom/ipq8074-nbg7815.dts | 741 ++++++++++++++++++ .../arm64/boot/dts/qcom/ipq8074-nbg7815.dts | 445 +++++++++++ target/linux/ipq807x/image/generic.mk | 17 + .../900-arm64-dts-add-OpenWrt-DTS-files.patch | 3 +- ...0900-arm64-dts-add-OpenWrt-DTS-files.patch | 3 +- 10 files changed, 1213 insertions(+), 3 deletions(-) create mode 100644 package/firmware/ipq-wifi/board-zyxel_nbg7815.ipq8074 create mode 100644 target/linux/ipq807x/files-5.10/arch/arm64/boot/dts/qcom/ipq8074-nbg7815.dts create mode 100644 target/linux/ipq807x/files-5.15/arch/arm64/boot/dts/qcom/ipq8074-nbg7815.dts diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq-wifi/Makefile index d15a1ca4f..637c23977 100644 --- a/package/firmware/ipq-wifi/Makefile +++ b/package/firmware/ipq-wifi/Makefile @@ -62,6 +62,7 @@ ALLWIFIBOARDS:= \ xiaomi_ax9000 \ zte_mf263 \ zte_mf269 \ + zyxel_nbg7815 \ tplink_xtr10890 ALLWIFIPACKAGES:=$(foreach BOARD,$(ALLWIFIBOARDS),ipq-wifi-$(BOARD)) @@ -170,6 +171,7 @@ $(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_mf263,ZTE MF263)) $(eval $(call generate-ipq-wifi-package,zte_mf269,ZTE MF269)) +$(eval $(call generate-ipq-wifi-package,zyxel_nbg7815,Zyxel NBG7815)) $(eval $(call generate-ipq-wifi-package,tplink_xtr10890,TPLINK XTR10890)) $(foreach PACKAGE,$(ALLWIFIPACKAGES),$(eval $(call BuildPackage,$(PACKAGE)))) diff --git a/package/firmware/ipq-wifi/board-zyxel_nbg7815.ipq8074 b/package/firmware/ipq-wifi/board-zyxel_nbg7815.ipq8074 new file mode 100644 index 0000000000000000000000000000000000000000..3a1c88b76eabfe3ed262811cf8a674ccb737cee2 GIT binary patch literal 131176 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 + * Copyright (c) 2023, Andre Valentin + */ + +/dts-v1/; + +#include "ipq8074.dtsi" +#include "ipq8074-hk-cpu.dtsi" +#include "ipq8074-ac-nss.dtsi" +#include +#include +#include + +/ { + #address-cells = <2>; + #size-cells = <2>; + model = "Zyxel NBG7815"; + compatible = "zyxel,nbg7815", "qcom,ipq8074"; + + aliases { + sdhc1 = &sdhc_1; /* SDC1 eMMC slot */ + serial0 = &blsp1_uart5; + serial1 = &blsp1_uart3; + /* Alias as required by u-boot to patch MAC addresses */ + ethernet0 = &dp1; + ethernet1 = &dp2; + ethernet2 = &dp3; + ethernet3 = &dp4; + ethernet4 = &dp5; + ethernet5 = &dp6; + label-mac-device = &dp1; + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; + + keys { + compatible = "gpio-keys"; + + reset { + label = "reset"; + linux,code = ; + gpios = <&tlmm 54 GPIO_ACTIVE_LOW>; + }; + }; +}; + +&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"; +}; + +&prng { + status = "okay"; +}; + +&cryptobam { + status = "okay"; +}; + +&crypto { + status = "okay"; +}; + +&qpic_bam { + status = "okay"; +}; + + +&blsp1_spi1 { + pinctrl-0 = <&spi_0_pins>; + pinctrl-names = "default"; + cs-gpios = <0>; + status = "okay"; + + /* + * Bootloader will find the NAND DT node by the compatible and + * then "fixup" it by adding the partitions from the SMEM table + * using the legacy bindings thus making it impossible for us + * to change the partition table or utilize NVMEM for calibration. + * So add a dummy partitions node that bootloader will populate + * and set it as disabled so the kernel ignores it instead of + * printing warnings due to the broken way bootloader adds the + * partitions. + */ + partitions { + status = "disabled"; + }; + + + flash@0 { + #address-cells = <1>; + #size-cells = <1>; + reg = <0>; + compatible = "jedec,spi-nor"; + spi-max-frequency = <50000000>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "0:sbl1"; + reg = <0x0 0x50000>; + read-only; + }; + + partition@50000 { + label = "0:mibib"; + reg = <0x50000 0x10000>; + read-only; + }; + + partition@60000 { + label = "0:bootconfig"; + reg = <0x60000 0x20000>; + read-only; + }; + + partition@80000 { + label = "0:bootconfig1"; + reg = <0x80000 0x20000>; + read-only; + }; + + partition@a0000 { + label = "0:qsee"; + reg = <0xa0000 0x180000>; + read-only; + }; + + partition@220000 { + label = "0:qsee_1"; + reg = <0x220000 0x180000>; + read-only; + }; + + partition@3a0000 { + label = "0:devcfg"; + reg = <0x3a0000 0x10000>; + read-only; + }; + + partition@3b0000 { + label = "0:devcfg_1"; + reg = <0x3b0000 0x10000>; + read-only; + }; + + partition@3c0000 { + label = "0:apdp"; + reg = <0x3c0000 0x10000>; + read-only; + }; + + partition@3d0000 { + label = "0:apdp_1"; + reg = <0x3d0000 0x10000>; + read-only; + }; + + partition@3e0000 { + label = "0:rpm"; + reg = <0x3e0000 0x40000>; + read-only; + }; + + partition@420000 { + label = "0:rpm_1"; + reg = <0x420000 0x40000>; + read-only; + }; + + partition@460000 { + label = "0:cdt"; + reg = <0x460000 0x10000>; + read-only; + }; + + partition@470000 { + label = "0:cdt_1"; + reg = <0x470000 0x10000>; + read-only; + }; + + partition@480000 { + label = "0:appsbl"; + reg = <0x480000 0xc0000>; + read-only; + }; + + partition@540000 { + label = "0:appsbl_1"; + reg = <0x540000 0xc0000>; + read-only; + }; + + partition@600000 { + compatible = "u-boot,env"; + label = "0:appsblenv"; + reg = <0x600000 0x10000>; + + macaddr_lan: ethaddr { + }; + }; + + partition@610000 { + label = "0:art"; + reg = <0x610000 0x40000>; + read-only; + }; + + partition@650000 { + label = "0:ethphyfw"; + reg = <0x650000 0x80000>; + read-only; + }; + + partition@6d0000 { + label = "0:crt"; + reg = <0x6d0000 0x10000>; + read-only; + }; + + partition@6e0000 { + label = "dual_flag"; + reg = <0x6e0000 0x10000>; + }; + + partition@6f0000 { + label = "reserved"; + reg = <0x6f0000 0x110000>; + read-only; + }; + }; + }; +}; + +&mdio { + status = "okay"; + + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; + reset-gpios = <&tlmm 37 GPIO_ACTIVE_LOW>; + + ethernet-phy@0 { + reg = <0>; + }; + + ethernet-phy@1 { + reg = <1>; + }; + + ethernet-phy@2 { + reg = <2>; + }; + + ethernet-phy@3 { + reg = <3>; + }; + + ethernet-phy@28 { + reg = <28>; + }; + + ethernet-phy@8 { + compatible ="ethernet-phy-ieee802.3-c45"; + reg = <8>; + }; + +}; + +&ess_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 = <0xd>; /* 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 = <28>; + port_mac_sel = "QGMAC_PORT"; + }; + port@5 { + port_id = <6>; + ethernet-phy-ieee802.3-c45; + phy_address = <8>; + }; + }; + + 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>; + }; + }; + }; + }; +}; + +&soc { + dp1: dp1 { + device_type = "network"; + compatible = "qcom,nss-dp"; + qcom,id = <1>; + reg = <0x3a001000 0x200>; + qcom,mactype = <0>; + local-mac-address = [000000000000]; + qcom,link-poll = <1>; + qcom,phy-mdio-addr = <0>; + phy-mode = "sgmii"; + mdio-bus = <&mdio>; + }; + + dp2: dp2 { + device_type = "network"; + compatible = "qcom,nss-dp"; + qcom,id = <2>; + reg = <0x3a001200 0x200>; + qcom,mactype = <0>; + local-mac-address = [000000000000]; + qcom,link-poll = <1>; + qcom,phy-mdio-addr = <1>; + phy-mode = "sgmii"; + mdio-bus = <&mdio>; + }; + + dp3: dp3 { + device_type = "network"; + compatible = "qcom,nss-dp"; + qcom,id = <3>; + reg = <0x3a001400 0x200>; + qcom,mactype = <0>; + local-mac-address = [000000000000]; + qcom,link-poll = <1>; + qcom,phy-mdio-addr = <2>; + phy-mode = "sgmii"; + mdio-bus = <&mdio>; + }; + + dp4: dp4 { + device_type = "network"; + compatible = "qcom,nss-dp"; + qcom,id = <4>; + reg = <0x3a001600 0x200>; + qcom,mactype = <0>; + local-mac-address = [000000000000]; + qcom,link-poll = <1>; + qcom,phy-mdio-addr = <3>; + phy-mode = "sgmii"; + mdio-bus = <&mdio>; + }; + + dp5: dp5 { + device_type = "network"; + compatible = "qcom,nss-dp"; + qcom,id = <5>; + reg = <0x3a001800 0x200>; + qcom,mactype = <1>; + local-mac-address = [000000000000]; + qcom,link-poll = <1>; + qcom,phy-mdio-addr = <28>; + phy-mode = "sgmii"; + mdio-bus = <&mdio>; + }; + + dp6: dp6 { + device_type = "network"; + compatible = "qcom,nss-dp"; + qcom,id = <6>; + reg = <0x3a007000 0x3fff>; + qcom,mactype = <1>; + local-mac-address = [000000000000]; + qcom,link-poll = <1>; + qcom,phy-mdio-addr = <8>; + phy-mode = "sgmii"; + mdio-bus = <&mdio>; + }; +}; + +&blsp1_i2c2 { + pinctrl-0 = <&i2c_0_pins>; + pinctrl-names = "default"; + status = "okay"; + + tmp103@70 { + compatible = "ti,tmp103"; + reg = <0x70>; + }; +}; + +&sdhc_1 { + qcom,clk-rates = <400000 25000000 50000000 100000000 \ + 192000000 384000000>; + qcom,bus-speed-mode = "HS200_1p8v", "DDR_1p8v"; + qcom,nonremovable; + status = "ok"; +}; + +&ssphy_0 { + status = "okay"; +}; + +&qusb_phy_0 { + status = "okay"; +}; + +&ssphy_1 { + status = "okay"; +}; + +&qusb_phy_1 { + status = "okay"; +}; + +&usb_0 { + status = "okay"; +}; + +&usb_1 { + status = "okay"; +}; + +&wifi { + status = "okay"; + + qcom,ath11k-calibration-variant = "Zyxel-NBG7815"; +}; diff --git a/target/linux/ipq807x/files-5.15/arch/arm64/boot/dts/qcom/ipq8074-nbg7815.dts b/target/linux/ipq807x/files-5.15/arch/arm64/boot/dts/qcom/ipq8074-nbg7815.dts new file mode 100644 index 000000000..537dd5203 --- /dev/null +++ b/target/linux/ipq807x/files-5.15/arch/arm64/boot/dts/qcom/ipq8074-nbg7815.dts @@ -0,0 +1,445 @@ +// SPDX-License-Identifier: GPL-2.0-or-later OR MIT +/* + * Copyright (c) 2022, Karol Przybylski + * Copyright (c) 2023, Andre Valentin + */ + +/dts-v1/; + +#include "ipq8074.dtsi" +#include "ipq8074-hk-cpu.dtsi" +#include "ipq8074-ess.dtsi" +#include +#include +#include + + +/ { + model = "Zyxel NBG7815"; + compatible = "zyxel,nbg7815", "qcom,ipq8074"; + + aliases { + serial0 = &blsp1_uart5; + serial1 = &blsp1_uart3; + /* Alias as required by u-boot to patch MAC addresses */ + ethernet0 = &dp1; + label-mac-device = &dp1; + }; + + chosen { + stdout-path = "serial0:115200n8"; + }; + + keys { + compatible = "gpio-keys"; + + reset { + label = "reset"; + linux,code = ; + gpios = <&tlmm 54 GPIO_ACTIVE_LOW>; + }; + }; +}; + +&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"; +}; + +&prng { + status = "okay"; +}; + +&cryptobam { + status = "okay"; +}; + +&crypto { + status = "okay"; +}; + +&qpic_bam { + status = "okay"; +}; + + +&blsp1_spi1 { + pinctrl-0 = <&spi_0_pins>; + pinctrl-names = "default"; + cs-gpios = <0>; + status = "okay"; + + /* + * Bootloader will find the NAND DT node by the compatible and + * then "fixup" it by adding the partitions from the SMEM table + * using the legacy bindings thus making it impossible for us + * to change the partition table or utilize NVMEM for calibration. + * So add a dummy partitions node that bootloader will populate + * and set it as disabled so the kernel ignores it instead of + * printing warnings due to the broken way bootloader adds the + * partitions. + */ + partitions { + status = "disabled"; + }; + + + flash@0 { + #address-cells = <1>; + #size-cells = <1>; + reg = <0>; + compatible = "jedec,spi-nor"; + spi-max-frequency = <50000000>; + + partitions { + compatible = "fixed-partitions"; + #address-cells = <1>; + #size-cells = <1>; + + partition@0 { + label = "0:sbl1"; + reg = <0x0 0x50000>; + read-only; + }; + + partition@50000 { + label = "0:mibib"; + reg = <0x50000 0x10000>; + read-only; + }; + + partition@60000 { + label = "0:bootconfig"; + reg = <0x60000 0x20000>; + read-only; + }; + + partition@80000 { + label = "0:bootconfig1"; + reg = <0x80000 0x20000>; + read-only; + }; + + partition@a0000 { + label = "0:qsee"; + reg = <0xa0000 0x180000>; + read-only; + }; + + partition@220000 { + label = "0:qsee_1"; + reg = <0x220000 0x180000>; + read-only; + }; + + partition@3a0000 { + label = "0:devcfg"; + reg = <0x3a0000 0x10000>; + read-only; + }; + + partition@3b0000 { + label = "0:devcfg_1"; + reg = <0x3b0000 0x10000>; + read-only; + }; + + partition@3c0000 { + label = "0:apdp"; + reg = <0x3c0000 0x10000>; + read-only; + }; + + partition@3d0000 { + label = "0:apdp_1"; + reg = <0x3d0000 0x10000>; + read-only; + }; + + partition@3e0000 { + label = "0:rpm"; + reg = <0x3e0000 0x40000>; + read-only; + }; + + partition@420000 { + label = "0:rpm_1"; + reg = <0x420000 0x40000>; + read-only; + }; + + partition@460000 { + label = "0:cdt"; + reg = <0x460000 0x10000>; + read-only; + }; + + partition@470000 { + label = "0:cdt_1"; + reg = <0x470000 0x10000>; + read-only; + }; + + partition@480000 { + label = "0:appsbl"; + reg = <0x480000 0xc0000>; + read-only; + }; + + partition@540000 { + label = "0:appsbl_1"; + reg = <0x540000 0xc0000>; + read-only; + }; + + partition@600000 { + compatible = "u-boot,env"; + label = "0:appsblenv"; + reg = <0x600000 0x10000>; + + macaddr_lan: ethaddr { + }; + }; + + partition@610000 { + label = "0:art"; + reg = <0x610000 0x40000>; + read-only; + }; + + partition@650000 { + label = "0:ethphyfw"; + reg = <0x650000 0x80000>; + read-only; + }; + + partition@6d0000 { + label = "0:crt"; + reg = <0x6d0000 0x10000>; + read-only; + }; + + partition@6e0000 { + label = "dual_flag"; + reg = <0x6e0000 0x10000>; + }; + + partition@6f0000 { + label = "reserved"; + reg = <0x6f0000 0x110000>; + read-only; + }; + }; + }; +}; + +&mdio { + status = "okay"; + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; + reset-gpios = <&tlmm 37 GPIO_ACTIVE_LOW>; + + qca8075_1: ethernet-phy@0 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0>; + }; + + qca8075_2: ethernet-phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <1>; + }; + + qca8075_3: ethernet-phy@2 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <2>; + }; + + qca8075_4: ethernet-phy@3 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <3>; + }; + + qca8081: ethernet-phy@4{ + compatible = "ethernet-phy-id004d.d101"; + reg = <28>; + reset-gpios = <&tlmm 31 GPIO_ACTIVE_LOW>; + }; + + aqr113c: ethernet-phy@5 { + compatible = "ethernet-phy-ieee802.3-c45"; + reg = <8>; + reset-gpios = <&tlmm 63 GPIO_ACTIVE_LOW>; + }; +}; + +&switch { + status = "okay"; + + switch_cpu_bmp = <0x1>; + switch_lan_bmp = <0x3e>; + switch_wan_bmp = <0x40>; + switch_mac_mode = <0x0>; + switch_mac_mode1 = <0xf>; + switch_mac_mode2 = <0xd>; + bm_tick_mode = <0>; + tm_tick_mode = <0>; + + 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 = <28>; + port_mac_sel = "QGMAC_PORT"; + }; + + port@5 { + port_id = <6>; + ethernet-phy-ieee802.3-c45; + phy_address = <8>; + }; + }; +}; + +&edma { + status = "okay"; +}; + +&dp1 { + status = "okay"; + phy-handle = <&qca8075_1>; + label = "lan1"; + nvmem-cells = <&macaddr_lan>; + nvmem-cell-names = "mac-address-ascii"; +}; + +&dp2 { + status = "okay"; + phy-handle = <&qca8075_2>; + label = "lan2"; + nvmem-cells = <&macaddr_lan>; + nvmem-cell-names = "mac-address-ascii"; +}; + +&dp3 { + status = "okay"; + phy-handle = <&qca8075_3>; + label = "lan3"; + nvmem-cells = <&macaddr_lan>; + nvmem-cell-names = "mac-address-ascii"; +}; + +&dp4 { + status = "okay"; + phy-handle = <&qca8075_4>; + label = "lan4"; + nvmem-cells = <&macaddr_lan>; + nvmem-cell-names = "mac-address-ascii"; +}; + +&dp5 { + status = "okay"; + phy-handle = <&qca8081>; + label = "wan"; + nvmem-cells = <&macaddr_lan>; + nvmem-cell-names = "mac-address-ascii"; + mac-address-increment = <1>; +}; + +&dp6_syn { + status = "okay"; + phy-handle = <&aqr113c>; + label = "10g"; + nvmem-cells = <&macaddr_lan>; + nvmem-cell-names = "mac-address-ascii"; +}; + +&blsp1_i2c2 { + pinctrl-0 = <&i2c_0_pins>; + pinctrl-names = "default"; + status = "okay"; + + tmp103@70 { + compatible = "ti,tmp103"; + reg = <0x70>; + }; +}; + +&sdhc_1 { + status = "okay"; + /* unstable, problem with the hs400 > h200 speed switch */ + /delete-property/ mmc-hs400-1_8v; + mmc-hs200-1_8v; + mmc-ddr-1_8v; + vqmmc-supply = <&l11>; +}; + +&ssphy_0 { + status = "okay"; +}; + +&qusb_phy_0 { + status = "okay"; +}; + +&ssphy_1 { + status = "okay"; +}; + +&qusb_phy_1 { + status = "okay"; +}; + +&usb_0 { + status = "okay"; +}; + +&usb_1 { + status = "okay"; +}; + +&wifi { + status = "okay"; + + qcom,ath11k-calibration-variant = "Zyxel-NBG7815"; +}; diff --git a/target/linux/ipq807x/image/generic.mk b/target/linux/ipq807x/image/generic.mk index 8cbf99f75..b3d96d91a 100644 --- a/target/linux/ipq807x/image/generic.mk +++ b/target/linux/ipq807x/image/generic.mk @@ -70,3 +70,20 @@ define Device/tplink_xtr10890 DEVICE_PACKAGES := ipq-wifi-tplink_xtr10890 uboot-envtools endef TARGET_DEVICES += tplink_xtr10890 + +define Device/zyxel_nbg7815 + $(call Device/FitImage) + DEVICE_VENDOR := ZYXEL + DEVICE_MODEL := NBG7815 + DEVICE_TITLE := Zyxel Armor G5 (NBG7815) + DEVICE_DTS_CONFIG := config@nbg7815 + BLOCKSIZE := 128k + PAGESIZE := 2048 + SOC := ipq8074 + IMAGES += factory.bin sysupgrade.bin + IMAGE/factory.bin := append-rootfs | pad-rootfs | pad-to 64k + IMAGE/sysupgrade.bin/squashfs := append-rootfs | pad-to 64k | sysupgrade-tar rootfs=$$$$@ | append-metadata + DEVICE_PACKAGES := ipq-wifi-zyxel_nbg7815 kmod-ath11k-pci e2fsprogs kmod-fs-ext4 losetup kmod-hwmon-tmp103 +endef +TARGET_DEVICES += zyxel_nbg7815 + 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 1e5f25b84..47139bc71 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,7 +12,7 @@ Signed-off-by: Robert Marko --- a/arch/arm64/boot/dts/qcom/Makefile +++ b/arch/arm64/boot/dts/qcom/Makefile -@@ -3,6 +3,12 @@ dtb-$(CONFIG_ARCH_QCOM) += apq8016-sbc.d +@@ -3,6 +3,13 @@ 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 @@ -22,6 +22,7 @@ Signed-off-by: Robert Marko +dtb-$(CONFIG_ARCH_QCOM) += ipq8071-mf269.dtb +dtb-$(CONFIG_ARCH_QCOM) += ipq8078-xtr10890.dtb +dtb-$(CONFIG_ARCH_QCOM) += ipq8070-tl-er2260t.dtb ++dtb-$(CONFIG_ARCH_QCOM) += ipq8074-nbg7815.dtb dtb-$(CONFIG_ARCH_QCOM) += ipq8074-hk01.dtb dtb-$(CONFIG_ARCH_QCOM) += msm8916-longcheer-l8150.dtb dtb-$(CONFIG_ARCH_QCOM) += msm8916-mtp.dtb diff --git a/target/linux/ipq807x/patches-5.15/0900-arm64-dts-add-OpenWrt-DTS-files.patch b/target/linux/ipq807x/patches-5.15/0900-arm64-dts-add-OpenWrt-DTS-files.patch index 540329207..e91a00083 100644 --- a/target/linux/ipq807x/patches-5.15/0900-arm64-dts-add-OpenWrt-DTS-files.patch +++ b/target/linux/ipq807x/patches-5.15/0900-arm64-dts-add-OpenWrt-DTS-files.patch @@ -12,7 +12,7 @@ Signed-off-by: Robert Marko --- a/arch/arm64/boot/dts/qcom/Makefile +++ b/arch/arm64/boot/dts/qcom/Makefile -@@ -4,6 +4,12 @@ dtb-$(CONFIG_ARCH_QCOM) += apq8094-sony- +@@ -4,6 +4,13 @@ dtb-$(CONFIG_ARCH_QCOM) += apq8094-sony- dtb-$(CONFIG_ARCH_QCOM) += apq8096-db820c.dtb dtb-$(CONFIG_ARCH_QCOM) += apq8096-ifc6640.dtb dtb-$(CONFIG_ARCH_QCOM) += ipq6018-cp01-c1.dtb @@ -22,6 +22,7 @@ Signed-off-by: Robert Marko +dtb-$(CONFIG_ARCH_QCOM) += ipq8071-mf269.dtb +dtb-$(CONFIG_ARCH_QCOM) += ipq8072-301w.dtb +dtb-$(CONFIG_ARCH_QCOM) += ipq8078-xtr10890.dtb ++dtb-$(CONFIG_ARCH_QCOM) += ipq8074-nbg7815.dtb dtb-$(CONFIG_ARCH_QCOM) += ipq8074-hk01.dtb dtb-$(CONFIG_ARCH_QCOM) += ipq8074-hk10-c1.dtb dtb-$(CONFIG_ARCH_QCOM) += ipq8074-hk10-c2.dtb