Support for Mikrotik RB3011UiAS-RM?

I mean an RB4011 that is build on AL21400 cpu.

That I understand as only basic support was added for Annapurna Labs SoC-s.
Pretty much it only boots

@adron How is RB3011 going?

Yet nothing. Now I am busy with other work. In a week I will be free and return to work on RB3011.

@adron I am having some really weird behaviour with the LHGG60-ad.
With flash modified for UART being enabled it will load image over TFTP fine and boot it, but if I UART is disabled like factory state it will fetch the image and apears to start booting but after like a minute it will reset and go back to RouterOS.
I have no idea how to debug that without any means of logging.

Hello. Try to use this patch:

diff -rNu a/image/aux-loader/Makefile b/image/aux-loader/Makefile
--- a/image/aux-loader/Makefile	2019-03-23 21:33:13.889223376 +0300
+++ b/image/aux-loader/Makefile	2019-03-23 21:32:00.000000000 +0300
@@ -50,6 +50,7 @@
 		TEXT_BASE2_FAT=$(TEXT_BASE2_FAT) 									\
 		CPU_TYPE=$(CPU_TYPE) KERNEL_IMAGE=$(LOADER_DATA)					\
 		BLOCKSIZE=$(BLOCKSIZE) PAGESIZE=$(PAGESIZE) 							\
+		UART=$(UART)												\
 		clean $(LOADER_TYPE)
 
 loader.elf: $(PKG_BUILD_DIR)/bin/loader.elf
diff -rNu a/image/Makefile b/image/Makefile
--- a/image/Makefile	2019-03-23 21:33:35.505051801 +0300
+++ b/image/Makefile	2019-03-23 21:32:41.000000000 +0300
@@ -21,6 +21,7 @@
 		TARGET_DIR="$(dir $@)" LOADER_NAME="$(notdir $@)" \
 		BOARD="$(BOARDNAME)" PLATFORM="$(PLATFORM)" \
 		BLOCKSIZE="$(BLOCKSIZE)" PAGESIZE="$(PAGESIZE)" \
+		UART="$(AUX_LOADER_UART)"	\
 		$(1) LOADER_TYPE=$(2) compile loader.$(2)
 	mv "$@.$(2)" "$@"
 	rm -rf $@.src
@@ -232,6 +233,7 @@
 	DEVICE_TITLE := MikroTik RouterBOARD RB450Gx4
 	BLOCKSIZE := 256k
 	PAGESIZE := 4096
+	AUX_LOADER_UART := NONE
 	DEVICE_PACKAGES += kmod-gpio-beeper -kmod-ath10k-ct -ath10k-firmware-qca4019-ct -wpad-basic
 	IMAGES += rootfs.bin
 	IMAGE/rootfs.bin := append-rootfs | pad-rootfs

Hm, didnt help.
This is really weird

It seems that the problem is not in the bootloader, but in the Linux kernel. The bootloader has a maximum timeout of 30 seconds. Try to disable UART in dts file.

I thought about that exact same thing and disabled anything related to UART but it still happens.
Will try a couple of combinations tommorow.

Try to add this to aux-loader:

diff -rNu a/loader.c b/loader.c
--- a/loader.c	2019-02-27 22:34:37.000000000 +0300
+++ b/loader.c	2019-03-24 12:44:56.928110856 +0300
@@ -228,6 +228,7 @@
 	printf("Starting kernel at 0x%08x\n", kernel_entry);
 	printf("\n");
 	cleanup_before_linux();
+	for(;;) watchdog_setup(5);
 	kernel_entry(kernel_p0, kernel_p1, kernel_p2);
 	reset_cpu(0);
 }

If the loader starts, then this code change will result in no device reboot.

Doesnt help, it looks like its somehow getting stuck on loader.

After exactly what time the device go into reboot?

And try to edit qcom_uart.c and leave only this content:

void serial_putc(char c){ } 

After rougly 20 seconds after image is loaded over TFTP, so basically watchdog kicks in.
It is not passing loader.
Silencing serial_putc does the trick.
That can be basically done with flags.

Hi Guys!
Thanks for the effort you have invested here.

Is there any news about RB3011?
Did you pushed the stuff into trunk?

Regarding RB4011 platform support in Linux seems not really promising: https://bootlin.com/blog/initial-support-annapurna-arm64-platform/
Nothing happend there since they released the basic platform support: https://github.com/torvalds/linux/tree/master/arch/arm64/boot/dts/al

RB4011 is a dead end, nothing upstream for it in a while.

But I am really interested in the RB3011 Stuff..

@adron I had a look at your github repos.. Are going to dig into this again?

Hello. Sorry, but now I'm busy with other work. About a month later I plan to go back and finish openwrt for rb3011.

Hello. After finishing work on a RB3011, I’ll do this.
Hap AC2 is very interesting 5 port router on IPQ-4018.

I've got a hAP AC2 and would like to assist with this port.

Currently it's experiencing the same symptoms as robimarko had with the RB3011. ( Reboots ~20 seconds after netboot attempt )

If I add: for(;;) watchdog_setup(5); then it does not reboot, but hangs forever. I've toggled DEBUG := true in ipq-aux-loader, but no serial output. The DTS definitions will need to be set, does anyone have latest Mikrotik GPL source?

These have a 16mb SPI-NOR chip so I set blocksize/pagesize to 128k/2048

I'll start tinkering where I can :slight_smile: let me know if there's anything i can try.