ipq807x: add Dynalink DL-WRX36
authorDirk Buchwalder <buchwalder@posteo.de>
Fri, 5 Aug 2022 09:38:37 +0000 (11:38 +0200)
committerRobert Marko <robimarko@gmail.com>
Mon, 16 Jan 2023 11:42:23 +0000 (12:42 +0100)
commit26c095cb4d27428acedf1b738507a585f1585fe4
tree82226e233f5b93bf11ad97baf686296978bee0f6
parent6e03304c76aee6fc5c3139f4af8c24665ec7f89b
ipq807x: add Dynalink DL-WRX36

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 <buchwalder@posteo.de>
package/boot/uboot-envtools/files/ipq807x
package/firmware/ipq-wifi/Makefile
package/firmware/ipq-wifi/board-dynalink_dl-wrx36.ipq8074 [new file with mode: 0644]
target/linux/ipq807x/base-files/etc/board.d/02_network
target/linux/ipq807x/base-files/etc/hotplug.d/firmware/11-ath11k-caldata
target/linux/ipq807x/base-files/lib/upgrade/platform.sh
target/linux/ipq807x/files/arch/arm64/boot/dts/qcom/ipq8072-dl-wrx36.dts [new file with mode: 0644]
target/linux/ipq807x/image/generic.mk