Cannot boot MR12

Hello!

Trying trying to boot a Meraki MR12 with 21.02.3. I can get it to boot from TFTP with the older builds that still have a uBoot file from here, but not the latest official.

Trying booting with:

setenv bootcmd bootm 0xbf0a0000; saveenv;
tftpboot 0c00000 openwrt-21.02.3-ath79-generic-meraki_mr12-initramfs-kernel.bin;
bootm 0c00000;

Boot log:

## Booting image at 00c00000 ...
   Image Name:   MIPS OpenWrt Linux-5.4.188
   Created:      2022-04-16  12:59:34 UTC
   Image Type:   MIPS Linux Kernel Image (lzma compressed)
   Data Size:    2049652 Bytes =  2 MB
   Load Address: 80060000
   Entry Point:  80060000
   Verifying Checksum ... OK
   Uncompressing Kernel Image ... OK
No initrd
## Transferring control to Linux (at address 80060000) ...
## Giving linux memsize in bytes, 67108864

Starting kernel ...

[    0.000000] Linux version 5.4.188 (builder@buildhost) (gcc version 8.4.0 (OpenWrt GCC 8.4.0 r16554-1d4dea6d4f)) #0 Sat Apr 16 12:59:34 2022
[    0.000000] printk: bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 00019374 (MIPS 24Kc)
[    0.000000] MIPS: machine is Meraki MR12
[    0.000000] SoC: Atheros AR7242 rev 1
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] Primary instruction cache 64kB, VIPT, 4-way, linesize 32 bytes.
[    0.000000] Primary data cache 32kB, 4-way, VIPT, cache aliases, linesize 32 bytes
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x0000000003ffffff]
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x0000000003ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000003ffffff]
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 16240
[    0.000000] Kernel command line: console=ttyS0,115200 rootfstype=squashfs,jffs2
[    0.000000] Dentry cache hash table entries: 8192 (order: 3, 32768 bytes, linear)
[    0.000000] Inode-cache hash table entries: 4096 (order: 2, 16384 bytes, linear)
[    0.000000] Writing ErrCtl register=00000000
[    0.000000] Readback ErrCtl register=00000000
[    0.000000] mem auto-init: stack:off, heap alloc:off, heap free:off
[    0.000000] Memory: 57276K/65536K available (5259K kernel code, 192K rwdata, 688K rodata, 1212K init, 205K bss, 8260K reserved, 0K cma-reserved)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=1, Nodes=1
[    0.000000] NR_IRQS: 51
[    0.000000] random: get_random_bytes called from 0x80661a28 with crng_init=0
[    0.000000] CPU clock: 400.000 MHz
[    0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 9556302233 ns
[    0.000012] sched_clock: 32 bits at 200MHz, resolution 5ns, wraps every 10737418237ns
[    0.007924] Calibrating delay loop... 265.98 BogoMIPS (lpj=531968)
[    0.050064] pid_max: default: 32768 minimum: 301
[    0.054929] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.062247] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.076537] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 7645041785100000 ns
[    0.086318] futex hash table entries: 256 (order: -1, 3072 bytes, linear)
[    0.093271] pinctrl core: initialized pinctrl subsystem
[    0.102216] NET: Registered protocol family 16
[    0.146188] clocksource: Switched to clocksource MIPS
[    0.152738] thermal_sys: Registered thermal governor 'step_wise'
[    0.153263] NET: Registered protocol family 2
[    0.163940] IP idents hash table entries: 2048 (order: 2, 16384 bytes, linear)
[    0.172396] tcp_listen_portaddr_hash hash table entries: 512 (order: 0, 4096 bytes, linear)
[    0.180851] TCP established hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.188530] TCP bind hash table entries: 1024 (order: 0, 4096 bytes, linear)
[    0.195592] TCP: Hash tables configured (established 1024 bind 1024)
[    0.202159] UDP hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.208780] UDP-Lite hash table entries: 256 (order: 0, 4096 bytes, linear)
[    0.216143] NET: Registered protocol family 1
[    0.220585] PCI: CLS 0 bytes, default 32
[    0.230156] workingset: timestamp_bits=14 max_order=14 bucket_order=0
[    0.248080] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.253972] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.284126] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 251)
[    0.295109] pinctrl-single 18040028.pinmux: 64 pins, size 8
[    0.302097] Serial: 8250/16550 driver, 16 ports, IRQ sharing enabled
[    0.312218] printk: console [ttyS0] disabled
[    0.316628] 18020000.uart: ttyS0 at MMIO 0x18020000 (irq = 9, base_baud = 12500000) is a 16550A
[    0.325340] printk: console [ttyS0] enabled
[    0.325340] printk: console [ttyS0] enabled
[    0.333761] printk: bootconsole [early0] disabled
[    0.333761] printk: bootconsole [early0] disabled
[    0.357709] spi-nor spi0.0: mx25l12805d (16384 Kbytes)
[    0.363041] 5 fixed-partitions partitions found on MTD device spi0.0
[    0.369444] Creating 5 MTD partitions on "spi0.0":
[    0.374293] 0x000000000000-0x000000040000 : "u-boot"
[    0.380758] 0x000000040000-0x000000080000 : "u-boot-env"
[    0.387593] 0x000000080000-0x0000000a0000 : "config"
[    0.394033] 0x0000000a0000-0x000000fe0000 : "firmware"
[    0.428702] 0x000000fe0000-0x000001000000 : "art"
[    1.096330] ag71xx 19000000.eth: connected to PHY at mdio.0:04 [uid=004dd04e, driver=Generic PHY]
[    1.106343] eth0: Atheros AG71xx at 0xb9000000, irq 4, mode: rgmii-id
[    1.130180] random: fast init done
[    1.778251] switch0: Atheros AR724X/AR933X built-in rev. 2 switch registered on mdio.1
[    1.820351] ag71xx 1a000000.eth: connected to PHY at fixed-0:00 [uid=00000000, driver=Generic PHY]
[    1.830455] eth1: Atheros AG71xx at 0xba000000, irq 5, mode: gmii
[    1.837088] i2c /dev entries driver
[    1.844676] NET: Registered protocol family 10
[    1.858659] Segment Routing with IPv6
[    1.862584] NET: Registered protocol family 17
[    1.867157] bridge: filtering via arp/ip/ip6tables is no longer available by default. Update your scripts to load br_netfilter if you need this.
[    1.880203] 8021q: 802.1Q VLAN Support v1.8
[    1.885800] PCI host bridge /ahb/apb/pcie-controller@180c0000 ranges:
[    1.892407]  MEM 0x0000000010000000..0x0000000013ffffff
[    1.897696]   IO 0x0000000000000000..0x0000000000000000
[    1.903245] PCI host bridge to bus 0000:00
[    1.907431] pci_bus 0000:00: root bus resource [mem 0x10000000-0x13ffffff]
[    1.914360] pci_bus 0000:00: root bus resource [io  0x0000]
[    1.919985] pci_bus 0000:00: root bus resource [??? 0x00000000 flags 0x0]
[    1.926829] pci_bus 0000:00: No busn resource found for root bus, will use [bus 00-ff]
[    1.934866] pci 0000:00:00.0: [168c:002a] type 00 class 0x028000
[    1.940996] pci 0000:00:00.0: reg 0x10: [mem 0x10000000-0x1000ffff 64bit]
[    1.948017] pci 0000:00:00.0: supports D1
[    1.952079] pci 0000:00:00.0: PME# supported from D0 D1 D3hot
[    1.959552] pci_bus 0000:00: busn_res: [bus 00-ff] end is updated to 00
[    1.966263] pci 0000:00:00.0: BAR 0: assigned [mem 0x10000000-0x1000ffff 64bit]
[    1.975083] hctosys: unable to open rtc device (rtc0)
[    1.981650] /dev/root: Can't open blockdev
[    1.985882] VFS: Cannot open root device "(null)" or unknown-block(0,0): error -6
[    1.993418] Please append a correct "root=" boot option; here are the available partitions:
[    2.001837] 1f00             256 mtdblock0 
[    2.001842]  (driver?)
[    2.008448] 1f01             256 mtdblock1 
[    2.008452]  (driver?)
[    2.015057] 1f02             128 mtdblock2 
[    2.015060]  (driver?)
[    2.021653] 1f03           15616 mtdblock3 
[    2.021657]  (driver?)
[    2.028258] 1f04             128 mtdblock4 
[    2.028262]  (driver?)
[    2.034870] Kernel panic - not syncing: VFS: Unable to mount root fs on unknown-block(0,0)
[    2.043183] Rebooting in 1 seconds..

Any ideas? Thanks!

Based on the name, this would only be the 1st half of the initramfs, the kernel, you're missing the rootfs, which the error also indicates.

The MR12 page links to the M16 page, which says to load just the kernel and then run sysupgrade with the rootfs file once it is running. But I think this only works if the kernel file is a uboot file, but I don't know where to find an official build of that. I also tried using the older uboot file from here (which correctly booted from tftpboot) but sysupgrade complains since one is ar71 and once is ath79.

I also tried flashing both (not just running from tftpboot), same exact error:

tftpboot 0x80010000 openwrt-21.02.3-ath79-generic-meraki_mr12-initramfs-kernel.bin;
erase 0x9fda0000 +0x240000;
cp.b 0x80010000 0x9fda0000 0x240000;

tftpboot 0x80010000 openwrt-21.02.3-ath79-generic-meraki_mr12-squashfs-sysupgrade.bin
erase 0x9f080000 +0xD20000;
cp.b 0x80010000 0x9f080000 0xD20000;

setenv bootcmd bootm 0x9fda0000; 
saveenv;

This sequence came from here since the MR16 page has addresses for the MR16. But really I think I tried all permutations. Note that the official rootfs file is labeled as -sysupgrade. It seems like some change was made in the flash process but that isn't yet reflected in the docs.

Could be, but then the older images should work, and you should be able to sysupgrade to whatever version you'd like to run, after the initial flash.

Pay attention to the ar71xx -> ath79 notes.

Post your printenv from uboot.

@hurricos any guidance?