Hi everyone.
It seems that the MX64 is now supported by the latest release build of OpenWRT. However instructions on how to get it running are sorta hard to follow as they are based on the MX65, (See https://openwrt.org/toh/meraki/mx65w )
The page for the MX64 still says not supported but the firmware selector suggest it's supported (https://firmware-selector.openwrt.org/?version=24.10.0&target=bcm53xx%2Fgeneric&id=meraki_mx64 )
Anyone got that working. Googling the internets have proved somewhat shady results and since this version is the first one that kinda officially supports the MX64, recent how-to are not easy to come with.
If needed I can provide some help with the hardware and console output.
Otherwise, this MX64 will go back to the archive box for future generations.
Thanks
Dante
March 24, 2025, 12:07am
2
Have you seen the instructions in the commit adding support for this device?
main
← clayface:master
opened 04:11PM - 16 Mar 21 UTC
This commit adds OpenWrt support for the MX64 and MX65, which use the bcm5862x "… Northstar Plus" platform.
Note that wireless capability on the MX64W and MX65W is not supported, but these devices will work otherwise.
Further, early MX64 units use an A0 variant of the BCM958625 SoC which lacks cache coherency and uses a different "secondary-boot-reg". As a consequence a different device tree is needed.
Installation of OpenWrt requires changing u-boot to a custom version. This is due to the stock u-boot "nand read" command being limited to load only 2MB, in spite of the bootkernel1 and bootkernel2 partitions both being 3MB in the stock layout. It is also required to allow booting via USB and enabling cache coherency.
###########################################################################
MX64 Hardware info:
CPU: Broadcom BCM58625 Cortex A9 @ 1200Mhz
RAM: 2 GB (4 x 4Gb SK Hynix H5TC4G83CFR)
Storage: 1 GB (Micron MT29F8G08ABACA)
Networking: BCM58625 internal switch (5x 1GbE ports)
USB: 1x USB2.0
Serial: Internal header
MX65 Hardware info:
CPU: Broadcom BCM58625 Cortex A9 @ 1200Mhz
RAM: 2 GB (4 x 4Gb SK Hynix H5TC4G83CFR)
Storage: 1 GB (Micron MT29F8G08ABACA)
Networking: BCM58625 internal switch (2x 1GbE ports, used for WAN ports 1 & 2)
2x Qualcomm QCA8337 switches (10x 1GbE ports, used for LAN ports 3 - 12)
PSE: Broadcom BCM59111KMLG connected to LAN ports 11 & 12
USB: 1x USB2.0
Serial: Internal header
The wireless versions of these devices feature the same hardware, with additional 2x Broadcom wireless BCM43520KMLG chips on the PCI bus.
###########################################################################
Initial installation steps:
1. Compile OpenWrt for the MX64 or MX65.
2. If installing onto an MX64, set up a local webserver.
3. On the device, boot into diagnostic mode by holding reset when powering on the device. Continue to hold reset until the orange LED begins to flash white. On used units the white flash may be difficult to see.
4. Plug an Ethernet cable into the first LAN port, set the host to 192.168.1.2 and confirm telnet connectivity to 192.168.1.1.
###########################################################################
U-boot installation: MX65 Only
1. Prepare a USB drive formatted to FAT. Download uboot_mx65 to the USB drive from the following location:
https://github.com/clayface/U-boot-MX64-20190430_MX65
2. Once you have telnet access to the MX65, plug in the USB stick and run the following commands. This is the most dangerous step so please ensure the dd command is entered correctly:
`cd /tmp/media/sda1`
`dd if=uboot_mx65 of=/dev/mtdblock0`
3. Once this has successfully completed, power off the device.
###########################################################################
U-boot installation: MX64 Only
1. Newer fw versions require extra steps to support OpenWrt. To check, please connect via telnet and run:
`cat /sys/block/mtdblock0/ro`
If the result is 1, your mtd0 is locked will need to perform extra steps detailed later. If the result is 0 then skip these.
2. For later reference, run the following command:
`devmem 0x18000000`
If devmem is not found then try:
`devmem2 0x18000000`
If the output begins with anything between "0x3F00-0x3F03" you will need to use the A0 release. For any other output, eg "0x3F04" or higher, use the regular MX64 image.
3. Set up a webserver to serve uboot_mx64 from the following location:
https://github.com/clayface/U-boot-MX64-20190430_MX64
4. (Only if mtd0 is locked) You will also need the mtd-rw.ko kernel module to unlock the partition. An mtd executable is also needed to write the mtd block. These can be downloaded from the previous location. Place these on the web server as well.
5. (Only if mtd0 is locked) Use wget to retrieve the files on the MX64:
`wget http://192.168.1.2/mtd-rw.ko`
`insmod mtd-rw.ko i_want_a_brick=1`
and confirm the unlock is set with dmesg
`mtd-rw: mtd0: setting writeable flag`
7. Download and install u-boot. If you did not need to unlock the mtd0 partition then use dd to write the file, with caution:
`wget http://192.168.1.2/uboot_mx64`
`dd if=uboot_mx64 of=/dev/mtdblock0`
If you needed to unlock the mtd0 partition using the mtd-rw module, run these commands instead to install u-boot instead:
`wget http://192.168.1.2/mtd`
`chmod +x mtd`
`wget http://192.168.1.2/uboot_mx64`
`./mtd write uboot_mx64 /dev/mtd0`
8. Once successfully completed, power off the device
###########################################################################
OpenWrt Installation:
1. Having compiled OpenWrt earlier, please copy the file
`bin/targets/bcm5862x/generic/openwrt-bcm5862x-generic-meraki_XXX-initramfs-kernel.bin`
to a FAT formatted USB drive, where XXX is mx64, mx64a0 or mx65 depending on which device you have. Do not rename the initramfs file.
2. With the USB drive already inserted, power on the device while holding the reset button. A different white/orange flashing pattern will occur shortly after power on. Let go of the reset button. The device is now booting into OpenWrt initramfs stored on the USB drive.
3. Ensuring Ethernet is plugged into a LAN port with IP set in the 192.168.1.0/24 range excluding 192.168.1.1, use SCP to copy the sysupgrade file to 192.168.1.1:/tmp, eg:
`scp bin/targets/bcm5862x/generic/openwrt-bcm5862x-generic-meraki_mx65-squashfs-sysupgrade.bin 192.168.1.1:/tmp`
4. Connect by SSH to 192.168.1.1 and run sysupgrade:
`sysupgrade /tmp/openwrt-bcm5862x-generic-meraki_mx65-squashfs-sysupgrade.bin`
5. OpenWrt should now be installed on the device.
###########################################################################
Notes:
The modified sources for U-boot are available for the MX64 [1] and MX65 [2]
[1] https://github.com/clayface/U-boot-MX64-20190430_MX64
[2] https://github.com/clayface/U-boot-MX64-20190430_MX65
Signed-off-by: Matthew Hagan <mnhagan88@gmail.com>
1 Like
Dante
April 14, 2025, 4:33pm
3
Did you get this working in the end?