Skip to content

Commit 579a9fb

Browse files
qualcommax: ipq50xx: add support for Linksys MX6200
Linksys MX6200 is a triband Wi-Fi 6E wireless router. Speficiations: * SoC: Qualcomm IPQ5018 (64-bit dual-core ARM Cortex-A53 @ 1.0Ghz) * Memory: Nanya NT5CC256M16ER-EK (512 MiB DDR3-933) * Serial Port: 3v3 TTL 115200n8 * Wi-Fi: IPQ5018 (2x2 2.4 Ghz 802.11b/g/n/ax) QCN6102 (2x2:2 5 Ghz 802.11an/ac/ax) QCN6122 (2x2:2 6 Ghz 802.11an/ac/ax) * Ethernet: IPQ5018 integrated virtual switch connected to: - LAN Port: Internal IPQ5018 GE PHY - WAN Port: Maxlinear Ethernet GPY115C PHY * Flash: Macronix MX35UF2GE4AD (256 MiB) * LEDs: 1x multi-color PWM LED * Buttons: 1x WPS (GPIO 27 Active Low) 1x Reset (GPIO 28 Acive Low) * FCC ID: 2AYRA-08436 Flash instructions: ************************************************************************ NOTE: serial access is required! Although the web UI allows you to install the Openwrt image, secure boot is enabled which will prevent booting an unsigned image. The boot sequence must be adjusted in U-boot to allow booting unsigned images. ************************************************************************ 1. On OEM firmware, login to the web UI (typically @ http://192.168.1.1) and click 'CA' in the bottom right corner. Then click -> Connectivity -> Manual Upgrade. Alternatively, browse to http://<router IP>/fwupdate.html. Upload openwrt-qualcommax-ipq50xx-linksys_mx6200-squashfs-factory.ubi. Continue with step 5. 2. Installation using serial connection from OEM firmware: (default login: root, password: admin): fw_printenv -n boot_part In case of 2: flash_erase /dev/mtd18 0 0 nandwrite -p /dev/mtd18 openwrt-qualcommax-ipq50xx-linksys_mx6200-squashfs-factory.ubi swith to alternate partition using command: fw_setenv boot_part 1 reboot or in case of 1: flash_erase /dev/mtd19 0 0 nandwrite -p /dev/mtd19 openwrt-qualcommax-ipq50xx-linksys_mx6200-squashfs-factory.ubi switch to alternate partition using command: fw_setenv boot_part 2 reboot Continue with step 5. 3. Installation using serial connection from initramfs setup tftp server listening on IP in 192.168.1.0/24 (other than the router IP 192.168.1.1). In U-boot, load the initramfs image to memory: tftp $loadaddr <your IP>:openwrt-qualcommax-ipq50xx-linksys_mx6200-initramfs-uImage.itb boot the image using command: bootm $loadaddr when fully booted, scp the sysupgrade image to your router IP (default: 192.168.1.1): scp -O <path>/openwrt-qualcommax-ipq50xx-linksys_mx6200-squashfs-sysypgrade.bin root@192.168.1.1:/tmp/ use sysupgrade to flash the image to nand: sysupgrade -n -v /tmp/openwrt-qualcommax-ipq50xx-linksys_mx6200-squashfs-sysupgrade.bin Continue with step 5. 4. Optionally install on alternate partition, after first boot check actual partition: fw_printenv -n boot_part in case of 1, install firmware on alternate partition using command: mtd -r -e rootfs_1 -n write openwrt-qualcommax-ipq50xx-linksys_mx6200-squashfs-factory.ubi rootfs_1 and in case of 2: mtd -r -e rootfs -n write openwrt-qualcommax-ipq50xx-linksys_mx6200-squashfs-factory.ubi rootfs Continue with step 5. 5. Setup U-boot for dual booting signed (stock) and non-signed (Openwrt) images with auto-detection. From U-boot, run: setenv setnandbootargs 'setenv bootargs init=/sbin/init ubi.mtd=${partrootfs} root=mtd:ubi_rootfs rootfstype=squashfs rootwait' setenv nandinitcmd 'setenv mtdids nand0=nand0; setenv mtdparts mtdparts=nand0:0x${imgsize}@0x${prikern}(rootfs),0x${imgsize}@0x${altkern}(rootfs_1); ubi part $partrootfs 2048' setenv setrootfscmd 'if test $boot_part = 1; then setenv partrootfs rootfs; else setenv partrootfs rootfs_1; fi' setenv readhdr1cmd 'ubi read $loadaddr kernel 0x40; setexpr IMGOFF $loadaddr + 0x10; setexpr CODEOFF $loadaddr + 0x14; setexpr SIGOFF $loadaddr + 0x1c; setexpr CERTOFF $loadaddr + 0x24' setenv readhdr2cmd 'setexpr.l HDR *$loadaddr; setexpr.l IMGSZ *$IMGOFF; setexpr.l CODESZ *$CODEOFF; setexpr.l SIGSZ *$SIGOFF; setexpr.l CERTSZ *$CERTOFF; setexpr TSIZE $CODESZ + $SIGSZ; setexpr TSIZE $TSIZE + $CERTSZ' setenv testmbncmd 'if test $HDR -ne edfe0dd0 -a $IMGSZ -eq $TSIZE; then bootipq; else ubi read $loadaddr kernel $kernsize; run setnandbootargs; bootm $loadaddr; fi' setenv bootcmd2 'if test $auto_recovery = no; then bootipq; else run setrootfscmd; run nandinitcmd; run readhdr1cmd; run readhdr2cmd; run testmbncmd; fi' saveenv 6. Back to the OEM firmware. Download firmware from OEM website: MX6200: https://support.linksys.com/kb/article/408-en/ From serial or SSH: fw_printenv boot_part in case of 1: mtd -r -e rootfs -n write FW_MX6200_1.0.11.216041_prod.signed.img rootfs else in case of 2: mtd -r -e rootfs_1 -n write FW_MX6200_1.0.11.216041_prod.signed.img rootfs_1 Signed-off-by: George Moussalem <george.moussalem@outlook.com>
1 parent 36ab5d8 commit 579a9fb

File tree

9 files changed

+517
-0
lines changed

9 files changed

+517
-0
lines changed

package/boot/uboot-tools/uboot-envtools/files/qualcommax_ipq50xx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ glinet,gl-b3000)
1919
linksys,mr5500|\
2020
linksys,mx2000|\
2121
linksys,mx5500|\
22+
linksys,mx6200|\
2223
linksys,spnmx56)
2324
ubootenv_add_mtd "u_env" "0x0" "0x40000" "0x20000"
2425
;;

package/firmware/ipq-wifi/Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ ALLWIFIBOARDS:= \
5555
linksys_mx4200 \
5656
linksys_mx5300 \
5757
linksys_mx5500 \
58+
linksys_mx6200 \
5859
linksys_mx8500 \
5960
linksys_spnmx56 \
6061
linksys_whw03 \
@@ -234,6 +235,7 @@ $(eval $(call generate-ipq-wifi-package,linksys_mx2000,Linksys MX2000))
234235
$(eval $(call generate-ipq-wifi-package,linksys_mx4200,Linksys MX4200))
235236
$(eval $(call generate-ipq-wifi-package,linksys_mx5300,Linksys MX5300))
236237
$(eval $(call generate-ipq-wifi-package,linksys_mx5500,Linksys MX5500))
238+
$(eval $(call generate-ipq-wifi-package,linksys_mx6200,Linksys MX6200))
237239
$(eval $(call generate-ipq-wifi-package,linksys_mx8500,Linksys MX8500))
238240
$(eval $(call generate-ipq-wifi-package,linksys_spnmx56,Linksys SPNMX56))
239241
$(eval $(call generate-ipq-wifi-package,linksys_whw03,Linksys WHW03))

0 commit comments

Comments
 (0)