openwrt/target/linux
Paweł Owoc 9bdaebaff3 qualcommax: ipq807x: add support for Linksys MX8500
Hardware specification:
========
SoC: Qualcomm IPQ8072A
Flash: 512MB (Fidelix FMND4G08S3J-ID)
RAM: 1GB (2x Kingston DDR3L D2516ECMDXGJD)
Ethernet: 1x 10/100/1000/2500/5000Mbps (Marvell AQR114C)
Ethernet: 4x 10/100/1000Mbps (Qualcomm QCA8075)
WiFi1: 6GHz ax 4x4 (Qualcomm QCN9024 + Skyworks SKY85784-11) - channels 33-229
WiFi2: 5GHz ax 4x4 (Qualcomm QCN5054 + Skyworks SKY85755-11) - channels 36-177
WiFi3: 2.4GHz ax 4x4 (Qualcomm QCN5024 + Skyworks SKY8340-11)
IoT: Bluetooth 5, Zigbee and Thread (NXP K32W041)
LED: 1x RGB status (NXP PCA9633)
USB: 1x USB 3.0
Button: WPS, Reset

Flash instructions:
========
1. Manually upgrade firmware using openwrt-qualcommax-ipq807x-linksys_mx8500-squashfs-factory.bin image.
More details can be found here: https://www.linksys.com/support-article?articleNum=47547
After first boot check actual partition:
- fw_printenv -n boot_part
and install firmware on second partition using command in case of 2:
- mtd -r -e kernel -n write openwrt-qualcommax-ipq807x-linksys_mx8500-squashfs-factory.bin kernel
and in case of 1:
- mtd -r -e alt_kernel -n write openwrt-qualcommax-ipq807x-linksys_mx8500-squashfs-factory.bin alt_kernel

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/mtd21 0 0
- nandwrite -p /dev/mtd21 openwrt-qualcommax-ipq807x-linksys_mx8500-squashfs-factory.bin
or in case of 1:
- flash_erase /dev/mtd23 0 0
- nandwrite -p /dev/mtd23 openwrt-qualcommax-ipq807x-linksys_mx8500-squashfs-factory.bin
After first boot install firmware on second partition:
- mtd -r -e kernel -n write openwrt-qualcommax-ipq807x-linksys_mx8500-squashfs-factory.bin kernel
or:
- mtd -r -e alt_kernel -n write openwrt-qualcommax-ipq807x-linksys_mx8500-squashfs-factory.bin alt_kernel

3. Installation from initramfs image using USB drive:
Put the initramfs image on the USB drive:
- dd bs=1M if=openwrt-qualcommax-ipq807x-linksys_mx8500-initramfs-uImage.itb of=/dev/sda
Stop u-boot and run:
- usb start && usbboot $loadaddr 0 && bootm $loadaddr
Write firmware to the flash from initramfs:
- mtd -e kernel -n write openwrt-qualcommax-ipq807x-linksys_mx8500-squashfs-factory.bin kernel
and:
- mtd -r -e alt_kernel -n write openwrt-qualcommax-ipq807x-linksys_mx8500-squashfs-factory.bin alt_kernel

4. Back to the OEM firmware:
- mtd -e kernel -n write FW_MX8500_1.0.11.208937_prod.img kernel
and:
- mtd -r -e alt_kernel -n write FW_MX8500_1.0.11.208937_prod.img alt_kernel

5. USB recovery:
Put the initramfs image on the USB:
- dd bs=1M if=openwrt-qualcommax-ipq807x-linksys_mx8500-initramfs-uImage.itb of=/dev/sda
Set u-boot env:
- fw_setenv bootusb 'usb start && usbboot $loadaddr 0 && bootm $loadaddr'
- fw_setenv bootcmd 'run bootusb; if test $auto_recovery = no; then bootipq; elif test $boot_part = 1; then run bootpart1; else run bootpart2; fi'

AQR firmware:
========
1. Firmware loading:
To properly load the firmware and initialize AQR PHY, we must use the u-boot aq_load_fw function.
To do this, you need to modify u-boot env:
With USB recovery:
- fw_setenv bootcmd 'aq_load_fw; run bootusb; if test $auto_recovery = no; then bootipq; elif test $boot_part = 1; then run bootpart1; else run bootpart2; fi'
and without:
- fw_setenv bootcmd 'aq_load_fw; if test $auto_recovery = no; then bootipq; elif test $boot_part = 1; then run bootpart1; else run bootpart2; fi'

2. Firmware updating:
Newer firmware (AQR-G4_v5.6.5-AQR_WNC_SAQA-L2_GT_ID45287_VER24005.cld) is available in the latest OEM firmware.
To load this firmware via u-boot, we need to add the MBN header and update 0:ethphyfw partition.
For MBN header we can use script from this repository: https://github.com/testuser7/aqr_mbn_tool
- python aqr_mbn_tool.py AQR-G4_v5.6.5-AQR_WNC_SAQA-L2_GT_ID45287_VER24005.cld
To update partition we need to install kmod-mtd-rw package first:
- insmod mtd-rw.ko i_want_a_brick=1
- mtd -e /dev/mtd26 -n write aqr_fw.mbn /dev/mtd26

Signed-off-by: Paweł Owoc <frut3k7@gmail.com>
Link: https://github.com/openwrt/openwrt/pull/14883
Signed-off-by: Robert Marko <robimarko@gmail.com>
2024-05-16 20:27:36 +02:00
..
airoha airoha: set KERNEL_TESTING_PATCHVER:=6.6 2024-05-12 12:52:16 +02:00
apm821xx apm821xx: restore 6.1 config+patches 2024-04-05 09:26:26 +02:00
archs38 archs38: remove 5.15 support 2024-03-29 09:58:45 +01:00
armsr armsr: armv8: enable serial console for Renesas platforms 2024-05-07 13:01:20 +01:00
at91 at91: 5.15: remove old config and patch files 2024-04-28 17:50:37 +02:00
ath79 ag71xx: Slightly simplify 'ag71xx_rx_packets()' 2024-05-14 12:21:02 +02:00
bcm27xx bcm27xx: correct cmdline.txt consoles for procd 2024-05-01 20:22:42 +02:00
bcm47xx kernel: bump 5.15 to 5.15.158 2024-05-12 12:16:18 +02:00
bcm53xx kernel: bump 6.1 to 6.1.89 2024-04-30 20:18:15 +02:00
bcm4908 bcm4908: set kernel 6.6 as a testing version 2024-04-27 12:14:00 +02:00
bmips bmips: Build U-Boot into the XG6846 target 2024-05-01 21:32:23 +02:00
d1 d1: define subtarget specifically 2024-04-08 21:52:51 +02:00
gemini gemini: Bump to kernel v6.6 2024-05-08 16:57:32 +02:00
generic generic: 6.6: add patch to support AQR114C PHY ID 2024-05-16 20:27:36 +02:00
imx imx: kernel: add imx8mp PCI support 2024-03-24 21:19:10 +01:00
ipq40xx ipq40xx: fixup remaining devices that dont use QCA807x PHY 2024-05-12 10:56:16 +02:00
ipq806x ipq806x: mr42/mr52: fix PCIe ports 2024-05-16 19:28:16 +02:00
ixp4xx ixp4xx: add Generic subtarget definition 2023-12-09 14:45:50 +01:00
kirkwood kernel: move mv88e6xxx fix to generic backports 2024-04-26 19:56:19 +03:00
lantiq lantiq: add patch to fix the reset gpio handling in the pci driver 2024-05-15 08:54:58 +02:00
layerscape treewide: disable spectre mitigation on unaffected Arm32 targets 2024-03-23 20:00:49 +01:00
loongarch64 loongarch64: new target 2024-05-04 14:14:16 +08:00
malta malta: refresh kernel 6.6 configuration 2024-04-29 00:24:02 +02:00
mediatek mediatek: filogic: add support for Cudy M3000 v1 2024-05-11 17:18:51 +02:00
mpc85xx mpc85xx: convert WS-AP3710i to simpleImage wrapper 2024-04-29 03:18:54 +02:00
mvebu mvebu: switch to kernel 6.6 2024-05-12 11:29:23 +02:00
mxs mxs: drop 6.1 support 2024-04-25 14:33:22 +02:00
octeon octeon: convert to new LED color/function format where possible 2024-02-07 14:48:41 +01:00
octeontx kernel: bump 5.15 to 5.15.155 2024-04-16 23:11:25 +02:00
omap omap: drop kernel 5.15 2024-02-13 19:05:48 +01:00
pistachio pistachio: 6.1: refresh kernel patches 2024-04-22 11:27:05 +02:00
qoriq qoriq: add kernel 6.1 support 2024-04-18 00:30:03 +03:00
qualcommax qualcommax: ipq807x: add support for Linksys MX8500 2024-05-16 20:27:36 +02:00
ramips ramips: Fix use mac-base for TP-Link TL-MR6400 v4 and v5 2024-05-16 13:11:08 +03:00
realtek realtek: Trap LLDP packets to the CPU 2024-05-10 16:03:51 +02:00
rockchip rockchip: switch to kernel 6.6 2024-05-09 10:43:37 +02:00
sifiveu sifiveu: drop 6.1 support 2024-04-30 11:02:48 +02:00
starfive generic: 6.1: backport AXP PMIC support 2024-03-26 21:56:57 +01:00
sunxi sunxi: add support for Lichee Pi Zero Dock (V3s) board 2024-05-04 00:41:02 +02:00
tegra treewide: remove files for building 5.10 kernel 2023-05-12 13:02:43 +02:00
uml uml: restore 6.1 config + patches 2024-03-23 21:38:00 +01:00
x86 x86: generic: config-6.6: add/remove default syms 2024-05-05 21:22:31 +02:00
zynq zynq: 5.15: remove files 2024-05-01 10:26:41 +02:00
Makefile linux: add dtb makefile target to targets list 2024-02-08 23:04:55 +01:00