OpenBSD on gl.inet MV-1000 (Brume)

This page describes installing OpenBSD onto a gl.inet GL-MV1000[0] (aka Brume) device.

Brume device internals

Installing

This process starts from the stock firmware or OpenWRT installed onto the internal eMMC device. You will need a micro SD card and a 3.3v UART connected to the console pins.
  1. Grab a an OpenBSD miniroot71.img for 7.1 or -current and write it to an sdcard (dd if=miniroot71.img of=/dev/sdXc bs=1k).

  2. Grab the OEM firmware, extract armada-gl-mv1000-emmc.dtb from it (or grab it from here) and copy it to the root of the first partition of the sdcard (mount /dev/sdXi /mnt; cp armada-gl-mv1000-emmc.dtb /mnt; umount /mnt).

    Using the .dtb file that ships with OpenWRT will cause OpenBSD 7.1 to report sdhc0: base clock frequency unknown errors and not find the sdcard. This was fixed after 7.1.

    If your device still has the stock firmware you can probably skip this step and change the first "load mmc 1:1" in the bootcmd below to "load mmc 0:1" to load the vendor-supplied .dtb from the internal eMMC device.

  3. Connect the serial console and ethernet to the Brume. Power it on and type "gl" into the console to interrupt the boot sequence. At the Marvel>> prompt set some variables. Firstly, if your device is using a random mac address, you may want to set it to a fixed value to prevent it eating all your DHCP addresses.
    Warning: neta@30000 (eth0) using random MAC address - 5e:f4:db:4f:af:8c
    eth0: neta@30000 [PRIME]
    Hit "gl" key to stop booting in 2 seconds
    Marvel>> setenv ethaddr 5e:f4:db:4f:af:8c
    
    In all cases, set the bootcmd variable to load the DTB file and OpenBSD bootloader from from the sdcard and run it:
    Marvel>> setenv bootcmd 'load mmc 1:1 ${fdt_addr} armada-gl-mv1000-emmc.dtb; load mmc 1:1 ${kernel_addr} efi/boot/bootaa64.efi; bootefi ${kernel_addr} ${fdt_addr}'
    Marvel>> saveenv
    

  4. Boot from the sdcard by typing "boot". At this point the OpenBSD bsd.rd should boot from the sdcard and you can perform a normal network installation back to the sdcard (which should be sd0 in the installer, but will be sd1 when the system reboots). Leave the "i" partition on the sdcard and all of the internal eMMC unchanged. If you make a mistake after you start writing to the sdcard you'll need to to start again at step 1.

    Support status

    The good:

    The ok:

    The bad:

    References

    Vendor U-Boot fork on github

    Stock firmware boot log

    OpenBSD boot log

    eeprom -p when booted with armada-gl-mv1000-emmc.dtb

    eeprom -p when booted with armada-3720-gl-mv1000.dtb