Marvell ARMADA 7K/8K and MACCHIATObin support

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

Marvell ARMADA 7K/8K and MACCHIATObin support

Mark Kettenis
Hi Folks,

I recently got myself a MACCHIATObin board

  https://www.solid-run.com/marvell-armada-family/macchiatobin/
  http://wiki.macchiatobin.net/tiki-index.php

with the intention to make OpenBSD run on it.  I made some good
progress and the board is now somewhat usable.  At this point the
standard xhci(4), ahci(4) and the new dwpcie(4) drivers work.  So the
SB 3.0 port, the three SATA ports and the PCIe x4 slot function.  The
uSD slot, onboard eMMC and the onboard network interfaces don't work
yet.  Especially the latter is unfortunate for a networking oriented
board like this.  So I'll be working on that in the near future.

As usual the firmware siatuation is a bit of a mess.  The firmware
that comes with the board is a fairly recent U-Boot version but it is
buggy and crashes when it loads the OpenBSD EFI boot loader.  A
firmware built from the last vendor sources exhibits the same
problems.  Mainline U-Boot does a better job but also has bugs.  Only
booting from uSD-card works reliably.  Booting from USB works somewhat
but makes the bootloader crash roughly 50% of the time.  Fortunately
the board resets itself and then tries again.  Booting from SATA or
network doesn't work.

I have made working firmware available at:

  https://sibelius.home.xs4all.nl/firmware/armada-8040-mcbin/flash-image.bin

and a usable device tree at:

  https://sibelius.home.xs4all.nl/firmware/armada-8040-mcbin/armada-8040-mcbin.dtb

My recommendation is to put the firmware (and only the firmware) on a
uSD card with:

  # dd if=flash-image.bin of=/dev/sdXc seek=4096

Then put miniroot63.fs (use a -current snapshot) onto a USB key/disk with:

  # dd if=miniroot63.fs of=/dev/sdXc bs=1m

and copy the device tree onto the msdos filesystem on the USB key/disk with:

  # mount /dev/sdXi /mnt
  # mkdir /mnt/marvell
  # cp armada-8040-mcbin.dtb /mnt/marvell
  # umount /mnt

Configure the jumpers or dip switches on the board to boot from uSD
card and plug in both the uSD card and the USB key/drive.  Turning on
the board should get you into the OpenBSD installer.  After
installation you'll have to copy the devicetree onto the disk you
installed on once more.

With 4 Cortex-A72 cores at 1.6 GHz.  The board is pretty fast.  IT is
only a little bit slower than my SoftIron Overdrive 1000.