From 26c095cb4d27428acedf1b738507a585f1585fe4 Mon Sep 17 00:00:00 2001 From: Dirk Buchwalder Date: Fri, 5 Aug 2022 11:38:37 +0200 Subject: [PATCH] ipq807x: add Dynalink DL-WRX36 MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Dynalink DL-WRX36 is a AX WIFI router with 4 1G and 1 2.5G ports. Specifications: • CPU: Qualcomm IPQ8072A Quad core Cortex-A53 2.2GHz • RAM: 1024MB of DDR3 • Storage: 256MB Nand • Ethernet: 4x 1G RJ45 ports (QCA8075) + 1 2.5G Port (QCA8081) • WLAN: 2.4GHz: Qualcomm QCN5024 2x2 802.11b/g/n/ax 1174 Mbps PHY rate 5GHz: Qualcomm QCN5054 4x4 802.11a/b/g/n/ac/ax 2402 PHY rate • 1x USB 3.0 • 1 gpio-controlled dual color led (blue/red) • Buttons: 1x soft reset / 1x WPS • Power: 12V DC jack A poulated serial header is onboard (J1004) the connector size is a 4-pin 2.0 mm JST PH. RX/TX is working, u-boot bootwait is active, secure boot is enabled. Notes: - Serial is completely deactivated in the stock firmware image. - This commit adds only single partition support, that means sysupgrade is upgrading the current rootfs partition. - Installation can be done by serial connection or SSH access on OEM firmware Installation Instructions: Most part of the installation is performed from an initramfs image running OpenWrt, and there are two options to boot it. Boot initramfs option 1: Using serial connection (3.3V) 1. Stop auto boot to get to U-boot shell 2. Transfer initramfs image to device (openwrt-ipq807x-generic-dynalink_dl-wrx36-initramfs-uImage.itb) Tested using TFTP and a FAT-formatted USB flash drive. 3. Boot the initramfs image # bootm Boot initramfs option 2: From SSH access on OEM firmware 1. Copy the initramfs image to a FAT-formatted flash drive (tested on single-partition drive) and connect it to device USB port. 2. Change boot command so it loads the initramfs image on next boot Fallback to OEM firmware is provided. # fw_setenv bootcmd 'usb start && fatload usb 0:1 0x44000000 openwrt-ipq807x-generic-dynalink_dl-wrx36-initramfs-uImage.itb && bootm 0x44000000; bootipq' 3. Reboot the device to boot the initramfs # reboot Install OpenWrt from initramfs image: 1. Use SCP (or other way) to transfer OpenWrt factory image 2. Connect to device using SSH (on a LAN port) 3. Check MTD partition table. rootfs and rootfs_1 should be mtd18 and mtd20 depending on current OEM slot. # cat /proc/mtd 4. Do a ubiformat to both rootfs partitions: # ubiformat /dev/mtd18 -y -f /path_to/factory_image # ubiformat /dev/mtd20 -y -f /path_to/factory_image 5. Set U-boot env variable: mtdids # fw_setenv mtdids 'nand0=nand0' 6. Get offset of mtd18 to determine current OEM slot - If current OEM slot is 1, offset is 16777216 (0x1000000) - If current OEM slot is 2, offset is 127926272 (0x7a00000) # cat /sys/class/mtd/mtd18/offset 7. Set U-boot env variable: mtdparts If current OEM slot is 1, run: # fw_setenv mtdparts 'mtdparts=nand0:0x6100000@0x1000000(fs),0x6100000@0x7a00000(fs_1)' If current OEM slot is 2, run: # fw_setenv mtdparts 'mtdparts=nand0:0x6100000@0x7a00000(fs),0x6100000@0x1000000(fs_1)' 8. Set U-boot env variable: bootcmd # fw_setenv bootcmd 'setenv bootargs console=ttyMSM0,115200n8 ubi.mtd=rootfs rootfstype=squashfs rootwait; ubi part fs; ubi read 0x44000000 kernel; bootm 0x44000000#config@rt5010w-d350-rev0' 9. Reboot the device # reboot Note: this PR adds only single partition support, that means sysupgrade is upgrading the current rootfs partition Signed-off-by: Dirk Buchwalder --- package/boot/uboot-envtools/files/ipq807x | 5 + package/firmware/ipq-wifi/Makefile | 2 + .../ipq-wifi/board-dynalink_dl-wrx36.ipq8074 | Bin 0 -> 131180 bytes .../ipq807x/base-files/etc/board.d/02_network | 3 + .../etc/hotplug.d/firmware/11-ath11k-caldata | 1 + .../base-files/lib/upgrade/platform.sh | 3 + .../arm64/boot/dts/qcom/ipq8072-dl-wrx36.dts | 243 ++++++++++++++++++ target/linux/ipq807x/image/generic.mk | 13 + 8 files changed, 270 insertions(+) create mode 100644 package/firmware/ipq-wifi/board-dynalink_dl-wrx36.ipq8074 create mode 100644 target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/ipq8072-dl-wrx36.dts diff --git a/package/boot/uboot-envtools/files/ipq807x b/package/boot/uboot-envtools/files/ipq807x index 71fa7b7b799..63fd04ec5b5 100644 --- a/package/boot/uboot-envtools/files/ipq807x +++ b/package/boot/uboot-envtools/files/ipq807x @@ -8,6 +8,11 @@ touch /etc/config/ubootenv board=$(board_name) case "$board" in +dynalink,dl-wrx36) + idx="$(find_mtd_index 0:appsblenv)" + [ -n "$idx" ] && \ + ubootenv_add_uci_config "/dev/mtd$idx" "0x0" "0x40000" "0x20000" "2" + ;; edgecore,eap102) idx="$(find_mtd_index 0:appsblenv)" [ -n "$idx" ] && \ diff --git a/package/firmware/ipq-wifi/Makefile b/package/firmware/ipq-wifi/Makefile index e662f7408ac..32988910c0a 100644 --- a/package/firmware/ipq-wifi/Makefile +++ b/package/firmware/ipq-wifi/Makefile @@ -27,6 +27,7 @@ endef ALLWIFIBOARDS:= \ aruba_ap-365 \ devolo_magic-2-wifi-next \ + dynalink_dl-wrx36 \ edgecore_eap102 \ edgecore_ecw5410 \ edgecore_oap100 \ @@ -124,6 +125,7 @@ endef $(eval $(call generate-ipq-wifi-package,aruba_ap-365,Aruba AP-365)) $(eval $(call generate-ipq-wifi-package,devolo_magic-2-wifi-next,devolo Magic 2 WiFi next)) +$(eval $(call generate-ipq-wifi-package,dynalink_dl-wrx36,Dynalink DL-WRX36)) $(eval $(call generate-ipq-wifi-package,edgecore_eap102,Edgecore EAP102)) $(eval $(call generate-ipq-wifi-package,edgecore_ecw5410,Edgecore ECW5410)) $(eval $(call generate-ipq-wifi-package,edgecore_oap100,Edgecore OAP100)) diff --git a/package/firmware/ipq-wifi/board-dynalink_dl-wrx36.ipq8074 b/package/firmware/ipq-wifi/board-dynalink_dl-wrx36.ipq8074 new file mode 100644 index 0000000000000000000000000000000000000000..e529000c683492d0c3d86491bcf966811b3955e9 GIT binary patch literal 131180 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 */ + +/dts-v1/; + +#include "ipq8074.dtsi" +#include "ipq8074-hk-cpu.dtsi" +#include "ipq8074-ess.dtsi" +#include +#include +#include + +/ { + model = "Dynalink DL-WRX36"; + compatible = "dynalink,dl-wrx36", "qcom,ipq8074"; + + aliases { + led-boot = &led_system_red; + led-failsafe = &led_system_red; + led-running = &led_system_blue; + led-upgrade = &led_system_red; + serial0 = &blsp1_uart5; + /* Aliases as required by u-boot to patch MAC addresses */ + ethernet0 = &dp6_syn; + ethernet1 = &dp4; + ethernet2 = &dp3; + ethernet3 = &dp2; + ethernet4 = &dp1; + label-mac-device = &dp6_syn; + }; + + chosen { + stdout-path = "serial0:115200n8"; + bootargs-append = " root=/dev/ubiblock0_1"; + }; + + keys { + compatible = "gpio-keys"; + + reset { + label = "reset"; + gpios = <&tlmm 34 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + + wps { + label = "wps"; + gpios = <&tlmm 63 GPIO_ACTIVE_LOW>; + linux,code = ; + }; + }; + + leds { + compatible = "gpio-leds"; + + led_system_blue: system-blue { + label = "blue:system"; + gpios = <&tlmm 26 GPIO_ACTIVE_HIGH>; + color = ; + }; + + led_system_red: system-red { + label = "red:system"; + gpios = <&tlmm 25 GPIO_ACTIVE_HIGH>; + color = ; + }; + }; +}; + +&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_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 = <8>; + 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 { + status = "okay"; +}; + +&mdio { + status = "okay"; + + pinctrl-0 = <&mdio_pins>; + pinctrl-names = "default"; + reset-gpios = <&tlmm 37 GPIO_ACTIVE_LOW>; + + qca8075_0: ethernet-phy@0 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <0>; + }; + + qca8075_1: ethernet-phy@1 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <1>; + }; + + qca8075_2: ethernet-phy@2 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <2>; + }; + + qca8075_3: ethernet-phy@3 { + compatible = "ethernet-phy-ieee802.3-c22"; + reg = <3>; + }; + + qca8081: ethernet-phy@28 { + compatible = "ethernet-phy-id004d.d101"; + 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 = <0xb>; /* mac mode for uniphy instance0*/ + switch_mac_mode1 = <0xff>; /* mac mode for uniphy instance1*/ + switch_mac_mode2 = <0xc>; /* 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@5 { + port_id = <6>; + phy_address = <28>; + port_mac_sel = "QGMAC_PORT"; + }; + }; +}; + +&edma { + status = "okay"; +}; + +&dp1 { + status = "okay"; + phy-handle = <&qca8075_0>; + label = "lan4"; +}; + +&dp2 { + status = "okay"; + phy-handle = <&qca8075_1>; + label = "lan3"; +}; + +&dp3 { + status = "okay"; + phy-handle = <&qca8075_2>; + label = "lan2"; +}; + +&dp4 { + status = "okay"; + phy-handle = <&qca8075_3>; + label = "lan1"; +}; + +&dp6_syn { + status = "okay"; + phy-handle = <&qca8081>; + label = "wan"; +}; + +&wifi { + status = "okay"; + qcom,ath11k-calibration-variant = "Dynalink-DL-WRX36"; +}; diff --git a/target/linux/ipq807x/image/generic.mk b/target/linux/ipq807x/image/generic.mk index 23260ed1e78..811a32e942b 100644 --- a/target/linux/ipq807x/image/generic.mk +++ b/target/linux/ipq807x/image/generic.mk @@ -17,6 +17,19 @@ define Device/UbiFit IMAGE/sysupgrade.bin := sysupgrade-tar | append-metadata endef +define Device/dynalink_dl-wrx36 + $(call Device/FitImage) + $(call Device/UbiFit) + DEVICE_VENDOR := Dynalink + DEVICE_MODEL := DL-WRX36 + BLOCKSIZE := 128k + PAGESIZE := 2048 + DEVICE_DTS_CONFIG := config@rt5010w-d350-rev0 + SOC := ipq8072 + DEVICE_PACKAGES := ipq-wifi-dynalink_dl-wrx36 +endef +TARGET_DEVICES += dynalink_dl-wrx36 + define Device/edgecore_eap102 $(call Device/FitImage) $(call Device/UbiFit) -- 2.47.2