From 2b61148f23a3714b5a0bc3339efe5e9db9776d00 Mon Sep 17 00:00:00 2001 From: Robert Marko Date: Tue, 11 Jan 2022 00:50:37 +0100 Subject: [PATCH] ipq807x: Add Xiaomi AX9000 Xiaomi AX9000 is a premium 802.11ax "tri"-band router/AP. Specifications: * CPU: Qualcomm IPQ8072A Quad core Cortex-A53 2.2GHz * RAM: 1024MB of DDR3 * Storage: 256MB of parallel NAND * Ethernet: * 4x1G RJ45 ports (QCA8075) with 1x status LED per port * 1x2.5G RJ45 port (QCA8081) with 1x status LED * WLAN: * PCI based Qualcomm QCA9889 1x1 802.11ac Wawe 2 for IoT * 2.4GHz: Qualcomm QCN5024 4x4@40MHz 802.11b/g/n/ax 1147 Mbps PHY rate * 5.8GHz: Qualcomm QCN5054 4x4@80MHz or 2x2@160MHz 802.11a/b/g/n/ac/ax 2402Mbps PHY rate * 5GHz: PCI based Qualcomm QCN9024 4x4@160MHz 802.11a/b/g/n/ac/ax 4804Mbps PHY rate * USB: 1x USB3.0 Type-A port * LED-s: * System (Blue and Yellow) * Network (Blue and Yellow) * RGB light bar on top in X shape * Buttons: * 1x Power switch * 1x Soft reset * 1x Mesh button * Power: 12V DC Jack Installation instructions: Obtaining SSH access is mandatory https://openwrt.org/inbox/toh/xiaomi/ax9000#obtain_ssh_access Installation is done by the ubiformat method, through SSH: 1. Open an SSH shell to the router 2. Copy the file openwrt-ipq807x-generic-xiaomi_ax9000-initramfs-factory.ubi to the /tmp directory 3. Check which rootfs partition is your router booted in (0 = rootfs | 1 = rootfs_1): nvram get flag_boot_rootfs 4. Find the rootfs and rootfs_1 mtd indexes respectively: cat /proc/mtd Please confirm if mtd21 and mtd22 are the correct indexes from above! 5. Use the command ubiformat to flash the opposite mtd with UBI image: If nvram get flag_boot_rootfs returned 0: ubiformat /dev/mtd22 -y -f /tmp/openwrt-ipq807x-generic-xiaomi_ax9000-initramfs-factory.ubi && nvram set flag_boot_rootfs=1 && nvram set flag_last_success=1 && nvram commit otherwise: ubiformat /dev/mtd21 -y -f /tmp/openwrt-ipq807x-generic-xiaomi_ax9000-initramfs-factory.ubi && nvram set flag_boot_rootfs=0 && nvram set flag_last_success=0 && nvram commit 6. Reboot the device by: reboot Previous commands flashed an ubinized OpenWrt initramfs that will serve as the intermediate step since OpenWrt uses unified rootfs in order to fully utilize NAND and provide enough space for packages. Continue in order to pernamently flash OpenWrt: 7. SSH into OpenWrt from one of the LAN ports 8. Copy the file openwrt-ipq807x-generic-xiaomi_ax9000-squashfs-sysupgrade.bin to the /tmp directory 9. Sysupgrade the device: sysupgrade -n /tmp/openwrt-ipq807x-generic-xiaomi_ax9000-squashfs-sysupgrade.bin Device will reboot with OpenWrt, and then sysupgrade can be used to upgrade the device when desired. Signed-off-by: Robert Marko --- board-xiaomi_ax9000.ipq8074 | Bin 0 -> 131176 bytes board-xiaomi_ax9000.qca9889 | Bin 0 -> 2260 bytes board-xiaomi_ax9000.qcn9074 | Bin 0 -> 131176 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 board-xiaomi_ax9000.ipq8074 create mode 100644 board-xiaomi_ax9000.qca9889 create mode 100644 board-xiaomi_ax9000.qcn9074 diff --git a/board-xiaomi_ax9000.ipq8074 b/board-xiaomi_ax9000.ipq8074 new file mode 100644 index 0000000000000000000000000000000000000000..052bb0516ab0487d0441aa624f1dd7ef8ae4dac3 GIT binary patch literal 131176 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 literal 0 HcmV?d00001 diff --git a/board-xiaomi_ax9000.qcn9074 b/board-xiaomi_ax9000.qcn9074 new file mode 100644 index 0000000000000000000000000000000000000000..5d5c2061a7d48c0d768c6dfe01c6bafd61aac2e3 GIT binary patch literal 131176 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 DH2=xt literal 0 HcmV?d00001 -- 2.30.2