How to install to RB750GR3?

Anyone have a compiled initramfs image with @sidepipe's patch? I tried compiling it myself but wound up with an unbootable image.

So I have been playing with hEXr3 a fair bit recently, and RouterBOOT does behave differently (not altogether unexpected) on this "new architecture" (what MikroTik calls "mmips", which I assume means multiprocessor MIPS) than it does on other RouterBOARDs I've experimented on in the past.

After some false starts, I managed to get a kernel built with MikroTik's own patches + a small OWRT userland (from the Chaos Calmer era, embedded as Initramfs) to boot on the thing. Since this kernel has MT's version of YAFFS, I had no trouble examining -- and even messing with -- the flash contents.

First, the "mmips" version of RouterBOOT doesn't give users the option to custom-partition the flash storage. I imagine this is because they have been slowly moving to smaller SPI (I believe NOR) flash chips in newer models, and RouterOS barely fits in the 16MiB it is equipped with. I guess because "dynamic" partitioning is no longer a thing, not to mention the space constraints of the flash, there is now only one partition that holds everything, not separate kernel and root partitions. In fact, RouterBOOT still passes a boot_part_size parameter to the kernel, but it is equal to the total flash size (16MiB, but expressed in bytes) since there is no longer any distinguishing between "boot_part" and the main partition.

Even so, what the RouterOS mmips kernel does is take boot_part_size, subtract 256KiB from it, and then registers the first 256KiB of NOR as mtd1 and the remaining space as mtd0. Why the heck it does this, I don't know. It calls mtd1 "RouterBootFake". RouterBOOT itself actually lives on a separate (and smaller...on my board it is 512KiB apparently) flash chip from RouterOS, and seems to fit inside a MTD partition (enumerated as mtd2 by the kernel) that is 256KiB in size...I guess they wanted to reserve the right/ability to source flash parts even smaller than 512KiB for RouterBOOT. "RouterBootFake", though, was just filled with zeros when I checked. Maybe they plan to do something with that space later; I dunno.

Where it gets interesting is that there was no file called "kernel" anywhere on the RouterOS partition. Turns out that as of RouterOS 6.x, NPKs are now just SquashFS images with a custom header at the front, but for "routeros-[arch]-6.xx.x.npk" or "system-[arch]-6.xx.x.npk", they also concatenate the kernel image(s) on the end of that file. And when you install RouterOS, that NPK is written to a part of the filesystem, and then also hard-linked to '/bootimage'. RouterBOOT looks for /bootimage in the YAFFS filesystem that starts at offset 0x40000, checks to see if it is a valid NPK, and if so, goes searching for the kernel ELF image in the NPK and boots that. And where it gets REALLY weird is that if you delete all references to the file (even /bootimage as well as the native place where the NPK is stored, /var/pdb/.../image) except for at least one (e.g., 'ln /bootimage /lost+found/qwerty' or some such thing), RouterBOOT will still be able to locate the kernel and boot it. And this still works even if you wipe out RouterBOOT settings/reset to defaults. It's as if once it has found the file on the YAFFS partition, it is "marking" it somehow in a non-visible or non-obvious way within the YAFFS structures itself.

Fortunately, mmips RouterBOOT will still also look for '/kernel' on mtd0 and boot an ELF image sans-NPK-header stored there, too, though a '/bootimage' with valid NPK header takes precedence if both are present.

It also appears as though the RBM11G and RBM33G boards (both based around the very same SoC) are supported by OpenWRT now, and the support assumes that the stock bootloader is present. There really is no reason at this point why the hEXr3/750Gr3 support can't be made to work the same way rather than require a U-Boot flash, and indeed from reading the mailing list, it sounds like things are headed in that direction. In fact, I think that the RBM11G/33G support even lays out the flash partitions the same way that RouterOS' kernel does. So the only thing that would potentially hold one back from using a stock, netbootable OpenWRT kernel with an embedded initramfs userland to monkey around with ("jailbreak") an installed RouterOS is the right set of modifications to YAFFS.

1 Like

I have gotten this working on 18.06 head.

The patches are here (for 18.06 head):
http://swm.pp.se/openwrt-rb750g3/0103-MIPS-ralink-rb750gr3-routerboot-append-dtb.patch
http://swm.pp.se/openwrt-rb750g3/0103-MIPS-ralink-rb750gr3-routerboot-append-dtsi.patch

An image that has support for the latest flash chip and can be tftp booted from Mikrotik bootloader can be found here:

http://swm.pp.se/openwrt-rb750g3/18.head.vmlinux-initramfs.elf

Then I was able to use above instructions on how to update to uboot etc, and then I used uboot to tftp flash the 18.06 squashfs nightly (not 18.06.1, didn't have support for the new flash chip). This required me to solder in a serial console though.

That yielded mtd0-mtd6 and I can then use the installation normally with opkg update/install etc.

There is really no need for all this error-prone, warranty-voiding hassle:

There's a native support patch here:
https://patchwork.ozlabs.org/patch/953454/

It's been reported working here:
https://lists.openwrt.org/pipermail/openwrt-devel/2018-October/014443.html

T.

which branches of openwrt realeses does this patch compatible with? i've tried unsuccessfully to apply the patch to 18.06.1 source code.

I built the 'native' (RouterBOOT) version of the origin/master 3 times over the last month. Personally i prefer to have a version of the firmware, which doesn't replace the mikrotik bootloader and offers the possibility to revert to the mikrotik's firmware.

New to Openwrt i found some discussion around whether it's useful to have the u-boot flashed version in the build system, which doesn't allow to revert to stock firmware. Is there anyone around that knows policies about that? Makes it sense to maintain 2 versions of the same target or drop one?

So far my build looks quite stable, thanks to everyone that helped support this device in LEDE and OpenWRT.

Build "Sun Dec 9" on top of "origin/master commit f939598b7a7ce2079722295603e2dcee93ad310d".

root@charon:~# cat /proc/mtd
dev:    size   erasesize  name
mtd0: 0000f000 00010000 "bootloader1"
mtd1: 00001000 00010000 "hard-config"
mtd2: 0000f000 00010000 "bootloader2"
mtd3: 00001000 00001000 "soft_config"
mtd4: 00001000 00010000 "bios"
mtd5: 00fc0000 00010000 "firmware"
mtd6: 001e0000 00010000 "kernel"
mtd7: 00de0000 00010000 "rootfs"
mtd8: 00480000 00010000 "rootfs_data"

Kernel log

[    0.000000] Linux version 4.14.82 (###@###) (gcc version 7.3.0 (OpenWrt GCC 7.3.0 r8665+3-f939598b7a)) #0 SMP Sun Dec 9 02:06:47 2018
[    0.000000] SoC Type: MediaTek MT7621 ver:1 eco:3
[    0.000000] bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 0001992f (MIPS 1004Kc)
[    0.000000] MIPS: machine is MikroTik RouterBOARD 750Gr3
[    0.000000] Determined physical RAM map:
[    0.000000]  memory: 10000000 @ 00000000 (usable)
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] VPE topology {2,2} total 4
[    0.000000] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes.
[    0.000000] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
[    0.000000] MIPS secondary cache 256kB, 8-way, linesize 32 bytes.
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x000000000fffffff]
[    0.000000]   HighMem  empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x000000000fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000000fffffff]
[    0.000000] On node 0 totalpages: 65536
[    0.000000] free_area_init_node: node 0, pgdat 8058ff80, node_mem_map 81003000
[    0.000000]   Normal zone: 512 pages used for memmap
[    0.000000]   Normal zone: 0 pages reserved
[    0.000000]   Normal zone: 65536 pages, LIFO batch:15
[    0.000000] random: get_random_bytes called from start_kernel+0x90/0x4a4 with crng_init=0
[    0.000000] percpu: Embedded 14 pages/cpu @81210000 s26192 r8192 d22960 u57344
[    0.000000] pcpu-alloc: s26192 r8192 d22960 u57344 alloc=14*4096
[    0.000000] pcpu-alloc: [0] 0 [0] 1 [0] 2 [0] 3 
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 65024
[    0.000000] Kernel command line: console=ttyS0,115200 rootfstype=squashfs,jffs2
[    0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Writing ErrCtl register=00032a88
[    0.000000] Readback ErrCtl register=00032a88
[    0.000000] Memory: 253364K/262144K available (4469K kernel code, 230K rwdata, 996K rodata, 244K init, 248K bss, 8780K reserved, 0K cma-reserved, 0K highmem)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] Hierarchical RCU implementation.
[    0.000000] NR_IRQS: 256
[    0.000000] CPU Clock: 880MHz
[    0.000000] clocksource: GIC: mask: 0xffffffffffffffff max_cycles: 0xcaf478abb4, max_idle_ns: 440795247997 ns
[    0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 4343773742 ns
[    0.000009] sched_clock: 32 bits at 440MHz, resolution 2ns, wraps every 4880645118ns
[    0.007806] Calibrating delay loop... 586.13 BogoMIPS (lpj=2930688)
[    0.073974] pid_max: default: 32768 minimum: 301
[    0.078740] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.085248] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.094019] Hierarchical SRCU implementation.
[    0.099166] smp: Bringing up secondary CPUs ...
[    5.647679] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes.
[    5.647688] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
[    5.647699] MIPS secondary cache 256kB, 8-way, linesize 32 bytes.
[    5.647833] CPU1 revision is: 0001992f (MIPS 1004Kc)
[    0.163911] Synchronize counters for CPU 1: done.
[    1.481742] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes.
[    1.481751] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
[    1.481760] MIPS secondary cache 256kB, 8-way, linesize 32 bytes.
[    1.481830] CPU2 revision is: 0001992f (MIPS 1004Kc)
[    0.254977] Synchronize counters for CPU 2: done.
[    8.961111] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes.
[    8.961119] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
[    8.961127] MIPS secondary cache 256kB, 8-way, linesize 32 bytes.
[    8.961203] CPU3 revision is: 0001992f (MIPS 1004Kc)
[    0.340155] Synchronize counters for CPU 3: done.
[    0.370006] smp: Brought up 1 node, 4 CPUs
[    0.377587] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.387368] futex hash table entries: 1024 (order: 3, 32768 bytes)
[    0.393658] pinctrl core: initialized pinctrl subsystem
[    0.400235] NET: Registered protocol family 16
[    0.413598] FPU Affinity set after 11720 emulations
[    0.422887] mt7621_gpio 1e000600.gpio: registering 32 gpios
[    0.428690] mt7621_gpio 1e000600.gpio: registering 32 gpios
[    0.434446] mt7621_gpio 1e000600.gpio: registering 32 gpios
[    0.442599] clocksource: Switched to clocksource GIC
[    0.449005] NET: Registered protocol family 2
[    0.453935] TCP established hash table entries: 2048 (order: 1, 8192 bytes)
[    0.460817] TCP bind hash table entries: 2048 (order: 2, 16384 bytes)
[    0.467236] TCP: Hash tables configured (established 2048 bind 2048)
[    0.473630] UDP hash table entries: 256 (order: 1, 8192 bytes)
[    0.479390] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
[    0.485839] NET: Registered protocol family 1
[    0.490124] PCI: CLS 0 bytes, default 32
[    0.722546] 4 CPUs re-calibrate udelay(lpj = 2924544)
[    0.729012] Crashlog allocated RAM at address 0x3f00000
[    0.734427] workingset: timestamp_bits=30 max_order=16 bucket_order=0
[    0.746390] random: fast init done
[    0.748028] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.748038] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.752444] io scheduler noop registered
[    0.752451] io scheduler deadline registered (default)
[    0.775106] gpio-export gpio_export: 4 gpio(s) exported
[    0.781034] Serial: 8250/16550 driver, 3 ports, IRQ sharing disabled
[    0.788688] console [ttyS0] disabled
[    0.792227] 1e000c00.uartlite: ttyS0 at MMIO 0x1e000c00 (irq = 18, base_baud = 3125000) is a 16550A
[    0.801236] console [ttyS0] enabled
[    0.808111] bootconsole [early0] disabled
[    0.816723] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    0.823582] MediaTek Nand driver init, version v2.1 Fix AHB virt2phys error
[    0.830858] spi-mt7621 1e000b00.spi: sys_freq: 220000000
[    0.847296] m25p80 spi0.0: w25q128 (16384 Kbytes)
[    0.852045] 6 fixed-partitions partitions found on MTD device spi0.0
[    0.858388] Creating 6 MTD partitions on "spi0.0":
[    0.863187] 0x000000000000-0x00000000f000 : "bootloader1"
[    0.869566] 0x00000000f000-0x000000010000 : "hard-config"
[    0.875893] 0x000000010000-0x00000001f000 : "bootloader2"
[    0.882117] 0x000000020000-0x000000021000 : "soft_config"
[    0.888414] 0x000000030000-0x000000031000 : "bios"
[    0.894156] 0x000000040000-0x000001000000 : "firmware"
[    1.148856] 2 minor-fw partitions found on MTD device firmware
[    1.154720] 0x000000040000-0x000000220000 : "kernel"
[    1.160557] 0x000000220000-0x000001000000 : "rootfs"
[    1.166328] mtd: device 7 (rootfs) set to be root filesystem
[    1.172227] 1 squashfs-split partitions found on MTD device rootfs
[    1.178427] 0x000000b80000-0x000001000000 : "rootfs_data"
[    1.185430] libphy: Fixed MDIO Bus: probed
[    1.254615] libphy: mdio: probed
[    2.657368] mtk_soc_eth 1e100000.ethernet: loaded mt7530 driver
[    2.663983] mtk_soc_eth 1e100000.ethernet eth0: mediatek frame engine at 0xbe100000, irq 21
[    2.674646] NET: Registered protocol family 10
[    2.680379] Segment Routing with IPv6
[    2.684161] NET: Registered protocol family 17
[    2.688626] 8021q: 802.1Q VLAN Support v1.8
[    2.695025] hctosys: unable to open rtc device (rtc0)
[    2.720270] VFS: Mounted root (squashfs filesystem) readonly on device 31:7.
[    2.727883] Freeing unused kernel memory: 244K
[    2.732321] This architecture does not have kernel memory protection.
[    3.837223] random: crng init done
[    3.930079] mtk_soc_eth 1e100000.ethernet eth0: port 0 link up
[    4.562166] mtk_soc_eth 1e100000.ethernet eth0: port 1 link up
[    4.763611] init: Console is alive
[    4.767240] init: - watchdog -
[    5.056209] mtk_soc_eth 1e100000.ethernet eth0: port 2 link up
[    7.720471] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    7.782968] usbcore: registered new interface driver usbfs
[    7.788547] usbcore: registered new interface driver hub
[    7.794032] usbcore: registered new device driver usb
[    7.823995] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver
[    7.831531] ehci-platform: EHCI generic platform driver
[    7.844647] xhci-mtk 1e1c0000.xhci: 1e1c0000.xhci supply vbus not found, using dummy regulator
[    7.853373] xhci-mtk 1e1c0000.xhci: 1e1c0000.xhci supply vusb33 not found, using dummy regulator
[    7.862296] xhci-mtk 1e1c0000.xhci: xHCI Host Controller
[    7.867638] xhci-mtk 1e1c0000.xhci: new USB bus registered, assigned bus number 1
[    7.882744] xhci-mtk 1e1c0000.xhci: hcc params 0x01401198 hci version 0x96 quirks 0x00210010
[    7.891222] xhci-mtk 1e1c0000.xhci: irq 20, io mem 0x1e1c0000
[    7.897932] hub 1-0:1.0: USB hub found
[    7.901751] hub 1-0:1.0: 2 ports detected
[    7.906328] xhci-mtk 1e1c0000.xhci: xHCI Host Controller
[    7.911635] xhci-mtk 1e1c0000.xhci: new USB bus registered, assigned bus number 2
[    7.919120] xhci-mtk 1e1c0000.xhci: Host supports USB 3.0  SuperSpeed
[    7.925730] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[    7.934647] hub 2-0:1.0: USB hub found
[    7.938457] hub 2-0:1.0: 1 port detected
[    8.005878] sdhci: Secure Digital Host Controller Interface driver
[    8.012053] sdhci: Copyright(c) Pierre Ossman
[    8.019455] sdhci-pltfm: SDHCI platform and OF driver helper
[    8.027050] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[    8.042946] init: - preinit -
[    8.275841] mmc0: new high speed SDHC card at address aaaa
[    8.282462] mmcblk0: mmc0:aaaa SE32G 29.7 GiB 
[    8.290393]  mmcblk0: p1
[   10.067535] mtk_soc_eth 1e100000.ethernet: PPE started
[   13.632176] jffs2: notice: (493) jffs2_build_xattr_subsystem: complete building xattr subsystem, 6 of xdatum (3 unchecked, 3 orphan) and 31 of xref (3 dead, 0 orphan) found.
[   13.651818] mount_root: switching to jffs2 overlay
[   13.684048] overlayfs: upper fs does not support tmpfile.
[   13.777494] urandom-seed: Seeding with /etc/urandom.seed
[   13.934259] mtk_soc_eth 1e100000.ethernet: 0x100 = 0x6060000c, 0x10c = 0x80818
[   13.953708] procd: - early -
[   13.956686] procd: - watchdog -
[   14.682798] procd: - watchdog -
[   14.686244] procd: - ubus -
[   14.952718] procd: - init -
[   15.377319] kmodloader: loading kernel modules from /etc/modules.d/*
[   15.387652] tun: Universal TUN/TAP device driver, 1.6
[   15.397581] ip6_tables: (C) 2000-2006 Netfilter Core Team
[   15.413418] Loading modules backported from Linux version v4.19-rc5-0-g6bf4ca7fbc85
[   15.421073] Backport generated by backports.git v4.19-rc5-1-0-g05571dcd
[   15.441423] Ebtables v2.0 registered
[   15.447257] ip_tables: (C) 2000-2006 Netfilter Core Team
[   15.464650] nf_conntrack version 0.5.0 (4096 buckets, 16384 max)
[   15.511247] usbcore: registered new interface driver usblp
[   15.530909] xt_time: kernel timezone is -0000
[   15.569225] PPP generic driver version 2.4.2
[   15.575358] NET: Registered protocol family 24
[   15.588963] batman_adv: B.A.T.M.A.N. advanced openwrt-2018.4-0 (compatibility version 15) loaded
[   15.601385] kmodloader: done loading kernel modules from /etc/modules.d/*
[   23.813487] mtk_soc_eth 1e100000.ethernet: PPE started
[   23.825932] br-lan: port 1(eth0.1) entered blocking state
[   23.831332] br-lan: port 1(eth0.1) entered disabled state
[   23.837472] device eth0.1 entered promiscuous mode
[   23.842298] device eth0 entered promiscuous mode
[   23.850434] br-lan: port 1(eth0.1) entered blocking state
[   23.855982] br-lan: port 1(eth0.1) entered forwarding state
[   23.862000] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready
[   24.833630] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready

My current .diff inspired of Thibaut's work https://patchwork.ozlabs.org/patch/953454/

diff --git a/target/linux/ramips/base-files/etc/board.d/02_network b/target/linux/ramips/base-files/etc/board.d/02_network
index c207b7cad4..0f2fb678d1 100755
--- a/target/linux/ramips/base-files/etc/board.d/02_network
+++ b/target/linux/ramips/base-files/etc/board.d/02_network
@@ -215,9 +215,9 @@ ramips_setup_interfaces()
 	jhr-n805r|\
 	jhr-n825r|\
 	jhr-n926r|\
+	mikrotik,rb750gr3|\
 	mikrotik,rbm33g|\
 	mzk-wdpr|\
-	rb750gr3|\
 	rt-n14u|\
 	skylab,skw92a|\
 	tplink,c20-v4|\
diff --git a/target/linux/ramips/base-files/lib/ramips.sh b/target/linux/ramips/base-files/lib/ramips.sh
index 307ab35c3c..7abdb60d27 100755
--- a/target/linux/ramips/base-files/lib/ramips.sh
+++ b/target/linux/ramips/base-files/lib/ramips.sh
@@ -418,9 +418,6 @@ ramips_board_detect() {
 	*"R6220")
 		name="r6220"
 		;;
-	*"RB750Gr3")
-		name="rb750gr3"
-		;;
 	*"RE350 v1")
 		name="re350-v1"
 		;;
diff --git a/target/linux/ramips/base-files/lib/upgrade/platform.sh b/target/linux/ramips/base-files/lib/upgrade/platform.sh
index 8c7b818221..2f2d21674a 100755
--- a/target/linux/ramips/base-files/lib/upgrade/platform.sh
+++ b/target/linux/ramips/base-files/lib/upgrade/platform.sh
@@ -137,7 +137,6 @@ platform_check_image() {
 	px-4885-4M|\
 	px-4885-8M|\
 	netgear,r6120|\
-	rb750gr3|\
 	re6500|\
 	rp-n53|\
 	rt5350f-olinuxino|\
@@ -315,6 +314,7 @@ platform_check_image() {
 		nand_do_platform_check "$board" "$1"
 		return $?;
 		;;
+	mikrotik,rb750gr3|\
 	mikrotik,rbm11g|\
 	mikrotik,rbm33g|\
 	re350-v1)
@@ -342,6 +342,7 @@ platform_pre_upgrade() {
 	local board=$(board_name)
 
 	case "$board" in
+	mikrotik,rb750gr3|\
 	mikrotik,rbm11g|\
 	mikrotik,rbm33g)
 		[ -z "$(rootfs_type)" ] && mtd erase firmware
diff --git a/target/linux/ramips/dts/RB750Gr3.dts b/target/linux/ramips/dts/RB750Gr3.dts
index 6b18cce78f..ddb0a69e5a 100644
--- a/target/linux/ramips/dts/RB750Gr3.dts
+++ b/target/linux/ramips/dts/RB750Gr3.dts
@@ -7,13 +7,13 @@
 
 / {
 	compatible = "mikrotik,rb750gr3", "mediatek,mt7621-soc";
-	model = "MikroTik RB750Gr3";
+	model = "MikroTik RouterBOARD 750Gr3";
 
 	aliases {
-		led-boot = &led_pwr;
-		led-failsafe = &led_pwr;
-		led-running = &led_pwr;
-		led-upgrade = &led_pwr;
+		led-boot = &led_usr;
+		led-failsafe = &led_usr;
+		led-running = &led_usr;
+		led-upgrade = &led_usr;
 	};
 
 	memory@0 {
@@ -22,18 +22,19 @@
 	};
 
 	chosen {
-		bootargs = "console=ttyS0,57600";
+		bootargs = "console=ttyS0,115200";
 	};
 
 	gpio-leds {
 		compatible = "gpio-leds";
 
-		led_pwr: pwr {
+		pwr {
 			label = "rb750gr3:blue:pwr";
 			gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
+			default-state = "on";
 		};
 
-		usr {
+		led_usr: usr {
 			label = "rb750gr3:green:usr";
 			gpios = <&gpio0 0 GPIO_ACTIVE_HIGH>;
 		};
@@ -46,7 +47,7 @@
 		mode {
 			label = "mode";
 			gpios = <&gpio0 13 GPIO_ACTIVE_LOW>;
-			linux,code = <KEY_RFKILL>;
+			linux,code = <BTN_0>;
 		};
 
 		res {
@@ -67,9 +68,20 @@
 		};
 
 		usb {
-			gpio-export,name = "usb";
+			gpio-export,name = "usb_poweroff";
 			gpio-export,output = <1>;
-			gpios = <&gpio0 12 GPIO_ACTIVE_HIGH>;
+			gpios = <&gpio0 12 GPIO_ACTIVE_LOW>;
+		};
+
+		poe_out {
+			gpio-export,name = "poe_passthrough";
+			gpio-export,output = <0>;
+			gpios = <&gpio0 17 GPIO_ACTIVE_HIGH>;
+		};
+
+		poe_status {
+			gpio-export,name = "poe_status";
+			gpios = <&gpio0 7 GPIO_ACTIVE_HIGH>;
 		};
 	};
 };
@@ -77,53 +89,65 @@
 &spi0 {
 	status = "okay";
 
-	m25p80@0 {
+	w25q128@0 {
 		compatible = "jedec,spi-nor";
 		reg = <0>;
-		spi-max-frequency = <10000000>;
-		m25p,chunked-io = <32>;
+		spi-max-frequency = <3125000>;
 
 		partitions {
+			label = "RouterBoot";
+			reg = <0x0 0x40000>;
+			read-only;
 			compatible = "fixed-partitions";
 			#address-cells = <1>;
 			#size-cells = <1>;
-
 			partition@0 {
-				label = "u-boot";
-				reg = <0x0 0x30000>;
+				label = "bootloader1";
+				reg = <0x0 0xf000>;
 				read-only;
 			};
 
-			partition@30000 {
-				label = "u-boot-env";
-				reg = <0x30000 0x10000>;
+			hard_config: partition@f000 {
+				label = "hard-config";
+				reg = <0xf000 0x1000>;
 				read-only;
 			};
 
-			factory: partition@40000 {
-				label = "factory";
-				reg = <0x40000 0x10000>;
+			partition@100000 {
+				label = "bootloader2";
+				reg = <0x10000 0xf000>;
+				read-only;
+			};
+
+			partition@20000 {
+				label = "soft_config";
+				reg = <0x20000 0x1000>;
+			};
+
+			partition@30000 {
+				label = "bios";
+				reg = <0x30000 0x1000>;
 				read-only;
 			};
 
-			partition@50000 {
-				compatible = "denx,uimage";
+			partition@40000 {
 				label = "firmware";
-				reg = <0x50000 0xfb0000>;
+				reg = <0x040000 0xfc0000>;
 			};
 		};
 	};
 };
 
 &ethernet {
-	mtd-mac-address = <&factory 0xe000>;
+	mtd-mac-address = <&hard_config 0x0010>;
 	mtd-mac-address-increment = <1>;
 };
 
 &pinctrl {
 	state_default: pinctrl0 {
 		gpio {
-			ralink,group = "i2c", "uart2", "uart3", "pcie", "rgmii2", "jtag";
+			ralink,group = "uart2", "uart3", "jtag", "wdt";
 			ralink,function = "gpio";
 		};
 	};
diff --git a/target/linux/ramips/image/mt7621.mk b/target/linux/ramips/image/mt7621.mk
index 92bdbcf743..190e02d9ed 100644
--- a/target/linux/ramips/image/mt7621.mk
+++ b/target/linux/ramips/image/mt7621.mk
@@ -297,14 +297,6 @@ define Device/r6220
 endef
 TARGET_DEVICES += r6220
 
-define Device/rb750gr3
-  DTS := RB750Gr3
-  IMAGE_SIZE := $(ralink_default_fw_size_16M)
-  DEVICE_TITLE := MikroTik RB750Gr3
-  DEVICE_PACKAGES := kmod-usb3 uboot-envtools
-endef
-TARGET_DEVICES += rb750gr3
-
 define Device/MikroTik
   BLOCKSIZE := 64k
   IMAGE_SIZE := 16128k
@@ -316,6 +308,13 @@ define Device/MikroTik
 	append-rootfs | pad-rootfs | append-metadata | check-size $$$$(IMAGE_SIZE)
 endef
 
+define Device/mikrotik_rb750gr3
+  $(Device/MikroTik)
+  DTS := RB750Gr3
+  DEVICE_TITLE := MikroTik RouterBOARD RB750Gr3
+endef
+TARGET_DEVICES += mikrotik_rb750gr3
+
 define Device/mikrotik_rbm33g
   $(Device/MikroTik)
   DTS := RBM33G
1 Like

Personally I think the u-boot version was only useful prior to the point when someone worked out how to arrange the OpenWRT layout to allow RouterBOOT to boot it... since then it makes no sense to replace the bootloader if you don't have to. The only possible issue is the fact there will be people out there with u-boot versions of the hardware - dropping that version would mean they can't upgrade... not sure how many people that actually affects though, and even then if they backed up the flash initially they could always revert.

Is it possible to maintain the u-boot version and the RouterBOOT version at the same time ?
rb750gr3.bin and mikrotik_rb750gr3.bin, for example.

I bought RB750Gr3 couple days ago and had a luck with the patch mentioned here. It had minor issues I fixed. I am going to send my review to original patch author in a few.

Updated Patch: "Native" support of the MikroTik RouterBOARD 750Gr3, without reflashing the bootloader.

Serial Console output:

OpenWrt kernel loader for MIPS based SoC
Copyright (C) 2011 Gabor Juhos <juhosg@openwrt.org>
Decompressing kernel... done!
Starting kernel at 80001000...

[    0.000000] Linux version 4.14.90 (anton@0xcaf3d00d) (gcc version 7.4.0 (OpenWrt GCC 7.4.0 r8915-74af8a833a)) #0 SMP Fri Dec 28 11:45:23 2018
[    0.000000] SoC Type: MediaTek MT7621 ver:1 eco:3
[    0.000000] bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 0001992f (MIPS 1004Kc)
[    0.000000] MIPS: machine is MikroTik RouterBOARD 750Gr3
[    0.000000] Determined physical RAM map:
[    0.000000]  memory: 10000000 @ 00000000 (usable)
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] VPE topology {2,2} total 4
[    0.000000] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes.
[    0.000000] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
[    0.000000] MIPS secondary cache 256kB, 8-way, linesize 32 bytes.
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x000000000fffffff]
[    0.000000]   HighMem  empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x000000000fffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x000000000fffffff]
[    0.000000] random: get_random_bytes called from start_kernel+0x90/0x4a0 with crng_init=0
[    0.000000] percpu: Embedded 14 pages/cpu @81210000 s26000 r8192 d23152 u57344
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 65024
[    0.000000] Kernel command line: console=ttyS0,115200 rootfstype=squashfs,jffs2
[    0.000000] PID hash table entries: 1024 (order: 0, 4096 bytes)
[    0.000000] Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
[    0.000000] Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
[    0.000000] Writing ErrCtl register=000060a1
[    0.000000] Readback ErrCtl register=000060a1
[    0.000000] Memory: 253428K/262144K available (4429K kernel code, 229K rwdata, 972K rodata, 244K init, 248K bss, 8716K reserved, 0K cma-reserved, 0K highmem)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] Hierarchical RCU implementation.
[    0.000000] NR_IRQS: 256
[    0.000000] CPU Clock: 880MHz
[    0.000000] clocksource: GIC: mask: 0xffffffffffffffff max_cycles: 0xcaf478abb4, max_idle_ns: 440795247997 ns
[    0.000000] clocksource: MIPS: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 4343773742 ns
[    0.000009] sched_clock: 32 bits at 440MHz, resolution 2ns, wraps every 4880645118ns
[    0.007803] Calibrating delay loop... 586.13 BogoMIPS (lpj=2930688)
[    0.073973] pid_max: default: 32768 minimum: 301
[    0.078737] Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.085245] Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes)
[    0.094002] Hierarchical SRCU implementation.
[    0.099136] smp: Bringing up secondary CPUs ...
[    0.775315] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes.
[    0.775325] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
[    0.775336] MIPS secondary cache 256kB, 8-way, linesize 32 bytes.
[    0.775467] CPU1 revision is: 0001992f (MIPS 1004Kc)
[    0.163873] Synchronize counters for CPU 1: done.
[    9.422345] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes.
[    9.422353] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
[    9.422361] MIPS secondary cache 256kB, 8-way, linesize 32 bytes.
[    9.422429] CPU2 revision is: 0001992f (MIPS 1004Kc)
[    0.254914] Synchronize counters for CPU 2: done.
[    9.511636] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes.
[    9.511643] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
[    9.511650] MIPS secondary cache 256kB, 8-way, linesize 32 bytes.
[    9.511724] CPU3 revision is: 0001992f (MIPS 1004Kc)
[    0.340087] Synchronize counters for CPU 3: done.
[    0.369938] smp: Brought up 1 node, 4 CPUs
[    0.377602] clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 19112604462750000 ns
[    0.387384] futex hash table entries: 1024 (order: 3, 32768 bytes)
[    0.393650] pinctrl core: initialized pinctrl subsystem
[    0.400031] NET: Registered protocol family 16
[    0.421451] mt7621_gpio 1e000600.gpio: registering 32 gpios
[    0.427238] mt7621_gpio 1e000600.gpio: registering 32 gpios
[    0.433015] mt7621_gpio 1e000600.gpio: registering 32 gpios
[    0.441280] clocksource: Switched to clocksource GIC
[    0.447722] NET: Registered protocol family 2
[    0.452657] TCP established hash table entries: 2048 (order: 1, 8192 bytes)
[    0.459544] TCP bind hash table entries: 2048 (order: 2, 16384 bytes)
[    0.465959] TCP: Hash tables configured (established 2048 bind 2048)
[    0.472363] UDP hash table entries: 256 (order: 1, 8192 bytes)
[    0.478128] UDP-Lite hash table entries: 256 (order: 1, 8192 bytes)
[    0.484576] NET: Registered protocol family 1
[    0.721220] 4 CPUs re-calibrate udelay(lpj = 2924544)
[    0.727530] Crashlog allocated RAM at address 0x3f00000
[    0.732916] workingset: timestamp_bits=30 max_order=16 bucket_order=0
[    0.746291] squashfs: version 4.0 (2009/01/31) Phillip Lougher
[    0.752140] jffs2: version 2.2 (NAND) (SUMMARY) (LZMA) (RTIME) (CMODE_PRIORITY) (c) 2001-2006 Red Hat, Inc.
[    0.764676] random: fast init done
[    0.768537] io scheduler noop registered
[    0.772409] io scheduler deadline registered (default)
[    0.778327] gpio-export gpio_export: 4 gpio(s) exported
[    0.784266] Serial: 8250/16550 driver, 3 ports, IRQ sharing disabled
[    0.791882] console [ttyS0] disabled
[    0.795418] 1e000c00.uartlite: ttyS0 at MMIO 0x1e000c00 (irq = 18, base_baud = 3125000) is a 16550A
[    0.804432] console [ttyS0] enabled
[    0.804432] console [ttyS0] enabled
[    0.811307] bootconsole [early0] disabled
[    0.811307] bootconsole [early0] disabled
[    0.819922] cacheinfo: Unable to detect cache hierarchy for CPU 0
[    0.826787] MediaTek Nand driver init, version v2.1 Fix AHB virt2phys error
[    0.834172] spi-mt7621 1e000b00.spi: sys_freq: 220000000
[    0.849209] m25p80 spi0.0: w25q128jv (16384 Kbytes)
[    0.854130] 2 fixed-partitions partitions found on MTD device spi0.0
[    0.860451] Creating 2 MTD partitions on "spi0.0":
[    0.865246] 0x000000000000-0x000000040000 : "RouterBoot"
[    0.871604] 5 fixed-partitions partitions found on MTD device RouterBoot
[    0.878285] Creating 5 MTD partitions on "RouterBoot":
[    0.883432] 0x000000000000-0x00000000f000 : "bootloader1"
[    0.889731] 0x00000000f000-0x000000010000 : "hard_config"
[    0.896066] 0x000000010000-0x00000001f000 : "bootloader2"
[    0.902417] 0x000000020000-0x000000021000 : "soft_config"
[    0.908709] 0x000000030000-0x000000031000 : "bios"
[    0.914481] 0x000000040000-0x000001000000 : "firmware"
[    0.921574] 2 minor-fw partitions found on MTD device firmware
[    0.927392] Creating 2 MTD partitions on "firmware":
[    0.932358] 0x000000000000-0x0000001e0000 : "kernel"
[    0.938205] 0x0000001e0000-0x000000fc0000 : "rootfs"
[    0.943925] mtd: device 8 (rootfs) set to be root filesystem
[    0.949791] 1 squashfs-split partitions found on MTD device rootfs
[    0.955987] 0x000000440000-0x000000fc0000 : "rootfs_data"
[    0.962967] libphy: Fixed MDIO Bus: probed
[    1.033289] libphy: mdio: probed
[    2.436048] mtk_soc_eth 1e100000.ethernet: loaded mt7530 driver
[    2.442666] mtk_soc_eth 1e100000.ethernet eth0: mediatek frame engine at 0xbe100000, irq 21
[    2.453274] NET: Registered protocol family 10
[    2.458968] Segment Routing with IPv6
[    2.462735] NET: Registered protocol family 17
[    2.467199] 8021q: 802.1Q VLAN Support v1.8
[    2.473179] hctosys: unable to open rtc device (rtc0)
[    2.497683] VFS: Mounted root (squashfs filesystem) readonly on device 31:8.
[    2.505262] Freeing unused kernel memory: 244K
[    2.509699] This architecture does not have kernel memory protection.
[    3.896381] random: crng init done
[    4.320971] mtk_soc_eth 1e100000.ethernet eth0: port 1 link up
[    4.706089] init: Console is alive
[    4.709719] init: - watchdog -
[    5.554396] kmodloader: loading kernel modules from /etc/modules-boot.d/*
[    5.617602] usbcore: registered new interface driver usbfs
[    5.623236] usbcore: registered new interface driver hub
[    5.628661] usbcore: registered new device driver usb
[    5.642731] xhci-mtk 1e1c0000.xhci: 1e1c0000.xhci supply vbus not found, using dummy regulator
[    5.651419] xhci-mtk 1e1c0000.xhci: 1e1c0000.xhci supply vusb33 not found, using dummy regulator
[    5.660289] xhci-mtk 1e1c0000.xhci: xHCI Host Controller
[    5.665643] xhci-mtk 1e1c0000.xhci: new USB bus registered, assigned bus number 1
[    5.681408] xhci-mtk 1e1c0000.xhci: hcc params 0x01401198 hci version 0x96 quirks 0x0000000000210010
[    5.690581] xhci-mtk 1e1c0000.xhci: irq 20, io mem 0x1e1c0000
[    5.697256] hub 1-0:1.0: USB hub found
[    5.701066] hub 1-0:1.0: 2 ports detected
[    5.705609] xhci-mtk 1e1c0000.xhci: xHCI Host Controller
[    5.710916] xhci-mtk 1e1c0000.xhci: new USB bus registered, assigned bus number 2
[    5.718401] xhci-mtk 1e1c0000.xhci: Host supports USB 3.0  SuperSpeed
[    5.725011] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.
[    5.733900] hub 2-0:1.0: USB hub found
[    5.737715] hub 2-0:1.0: 1 port detected
[    5.744055] kmodloader: done loading kernel modules from /etc/modules-boot.d/*
[    5.771564] init: - preinit -
[    7.385914] mtk_soc_eth 1e100000.ethernet: PPE started
Press the [f] key and hit [enter] to enter failsafe mode
Press the [1], [2], [3] or [4] key and hit [enter] to select the debug level
[   10.990221] jffs2: notice: (462) jffs2_build_xattr_subsystem: complete building xattr subsystem, 8 of xdatum (2 unchecked, 6 orphan) and 10 of xref (6 dead,.
[   11.011509] mount_root: switching to jffs2 overlay
[   11.044727] overlayfs: upper fs does not support tmpfile.
[   11.062406] urandom-seed: Seeding with /etc/urandom.seed
[   11.157903] mtk_soc_eth 1e100000.ethernet: 0x100 = 0x6060000c, 0x10c = 0x80818
[   11.173494] procd: - early -
[   11.176467] procd: - watchdog -
[   11.831463] procd: - watchdog -
[   11.834918] procd: - ubus -
[   12.130534] procd: - init -
Please press Enter to activate this console.
[   12.427092] kmodloader: loading kernel modules from /etc/modules.d/*
[   12.437116] ip6_tables: (C) 2000-2006 Netfilter Core Team                                 
[   12.450694] ip_tables: (C) 2000-2006 Netfilter Core Team                                  
[   12.462225] nf_conntrack version 0.5.0 (4096 buckets, 16384 max)                          
[   12.501075] xt_time: kernel timezone is -0000                                             
[   12.510979] PPP generic driver version 2.4.2                                          
[   12.516508] NET: Registered protocol family 24
[   12.523261] kmodloader: done loading kernel modules from /etc/modules.d/*
[   18.764841] mtk_soc_eth 1e100000.ethernet: PPE started
[   18.778341] br-lan: port 1(eth0.1) entered blocking state
[   18.783876] br-lan: port 1(eth0.1) entered disabled state
[   18.789957] device eth0.1 entered promiscuous mode
[   18.795149] device eth0 entered promiscuous mode
[   18.803657] br-lan: port 1(eth0.1) entered blocking state
[   18.809078] br-lan: port 1(eth0.1) entered forwarding state
[   18.815146] IPv6: ADDRCONF(NETDEV_UP): br-lan: link is not ready
[   19.791916] IPv6: ADDRCONF(NETDEV_CHANGE): br-lan: link becomes ready
1 Like

fyi: OpenWRT pull request https://github.com/openwrt/openwrt/pull/1686.

1 Like

Hello @arapov I have a RB750Gr3 and would like to build the image (both the elf and sysupdate) from your source. How do i check out/pull your source?
Sorry if this is a basic question, but I'm still very new to GitHub.

@mattholt, you may wish to make a new thread in the For Developers section.

1 Like

Just clone the branch or switch to the RB750Gr3-hEX branch.
e.g. git clone --single-branch --branch RB750Gr3-hEX https://github.com/arapov/openwrt.git

I do hope to see the patch in openwrt soon. :wink:

1 Like

Thank you for the link to your branch.
I have compiled your source, and when I try to boot from the .elf file I get a kernel panic. with 'Failed to find mtk,mt7621-sysc node'

  • The RAM map address range also is different.
  • After Initmem setup, It states no valid tree found, continuing without.

Do you think its something I have got wrong in the .config file?

Console output:

[    0.000000] Linux version 4.14.90 (mattholt@devbox) (gcc version 7.4.0 (OpenWrt GCC 7.4.0 r8918-23bd893)) #0 SMP Thu Jan 3 13:12:31 2019
[    0.000000] SoC Type: MediaTek MT7621 ver:1 eco:3
[    0.000000] bootconsole [early0] enabled
[    0.000000] CPU0 revision is: 0001992f (MIPS 1004Kc)
[    0.000000] Determined physical RAM map:
[    0.000000]  memory: 02000000 @ 00000000 (usable)
[    0.000000] Initrd not found or empty - disabling initrd
[    0.000000] VPE topology {2,2} total 4
[    0.000000] Primary instruction cache 32kB, VIPT, 4-way, linesize 32 bytes.
[    0.000000] Primary data cache 32kB, 4-way, PIPT, no aliases, linesize 32 bytes
[    0.000000] MIPS secondary cache 256kB, 8-way, linesize 32 bytes.
[    0.000000] Zone ranges:
[    0.000000]   Normal   [mem 0x0000000000000000-0x0000000001ffffff]
[    0.000000]   HighMem  empty
[    0.000000] Movable zone start for each node
[    0.000000] Early memory node ranges
[    0.000000]   node   0: [mem 0x0000000000000000-0x0000000001ffffff]
[    0.000000] Initmem setup node 0 [mem 0x0000000000000000-0x0000000001ffffff]
[    0.000000] OF: fdt: No valid device tree found, continuing without
[    0.000000] random: get_random_bytes called from start_kernel+0x90/0x4a4 with crng_init=0
[    0.000000] percpu: Embedded 14 pages/cpu @81046000 s26192 r8192 d22960 u57344
[    0.000000] Built 1 zonelists, mobility grouping on.  Total pages: 8128
[    0.000000] Kernel command line: rootfstype=squashfs,jffs2
[    0.000000] PID hash table entries: 128 (order: -3, 512 bytes)
[    0.000000] Dentry cache hash table entries: 4096 (order: 2, 16384 bytes)
[    0.000000] Inode-cache hash table entries: 2048 (order: 1, 8192 bytes)
[    0.000000] Writing ErrCtl register=000244ef
[    0.000000] Readback ErrCtl register=000244ef
[    0.000000] Memory: 23752K/32768K available (4468K kernel code, 231K rwdata, 996K rodata, 2484K init, 248K bss, 9016K reserved, 0K cma-reserved, 0K highmem)
[    0.000000] SLUB: HWalign=32, Order=0-3, MinObjects=0, CPUs=4, Nodes=1
[    0.000000] Hierarchical RCU implementation.
[    0.000000] NR_IRQS: 256
[    0.000000] Kernel panic - not syncing: Failed to find mtk,mt7621-sysc node
[    0.000000] Rebooting in 1 seconds..
[    0.000000] Reboot failed -- System halted

1 Like

update: Patches are in @mkresin's staging tree: https://git.openwrt.org/?p=openwrt/staging/mkresin.git

@mattholt, I guess we may use different approach and .config. I followed the common manual for mikrotik boards: https://openwrt.org/toh/mikrotik/common.

Matt, you can check the configuration which is working for me here: https://gist.github.com/arapov/fffbfd11b4d90316719db5c07db7ef35

1 Like

The official snapshot firmware for RB750Gr3 could be flashed via netboot now, and it has been renamed to mikrotik_rb750gr3-initramfs-kernel.bin and mikrotik_rb750gr3-squashfs-sysupgrade.bin

Attention! You can not upgrade from 18.06.1 version directly.

Thanks all devs.

2 Likes

I am now trying to get the latest snapshot version onto my device. I can successfully boot the device from tftp and I tried a sysupgrade from that. This results in an mtd layout that is as follows:

root@OpenWrt:/# cat /proc/mtd 
dev:    size   erasesize  name
mtd0: 00040000 00010000 "RouterBoot"
mtd1: 0000f000 00010000 "bootloader1"
mtd2: 00001000 00010000 "hard_config"
mtd3: 0000f000 00010000 "bootloader2"
mtd4: 00001000 00010000 "soft_config"
mtd5: 00001000 00010000 "bios"
mtd6: 00fc0000 00010000 "firmware"
mtd7: 001f0000 00010000 "kernel"
mtd8: 00dd0000 00010000 "rootfs"
mtd9: 00c60000 00010000 "rootfs_data

"

When uboot tries to boot from flash after sysupgrade I get:

3: System Boot system code via Flash.
## Booting image at bfc50000 ...
Bad Magic Number,1FE665C3
U-Boot 1.1.3 (May 31 2018 - 10:11:11)
MT7621 # printenv
bootcmd=tftp
bootdelay=5
ethaddr="00:AA:BB:CC:DD:10"
BootType=3
ipaddr=192.168.1.2
serverip=192.168.1.1
baudrate=115200
stdin=serial
stdout=serial
stderr=serial

Environment size: 161/4092 bytes

Am I just missing some settings in uboot, or where should I look next?

2 Likes

The latest snapshot firmware is built for working with mikrotik's original bootloader 'RouterBoot', not with u-boot. Device which bootloader was replaced with u-boot should use 18.06.1 firmware.

1 Like

18.06.1 won't boot on my RB750Gr3 (see above comment from me regarding snapshot in october working with added support for the flash I have). So does this mean that my device with u-boot won't be supported by regular OpenWrt stable relases going forward?