Additional Linux microPlatform Targets

This section provides information on running the Linux microPlatform for other targets. It is provided on a best-effort basis.

Prebuilt Binaries

Several boards have reference builds provided by Foundries.io in the latest Linux microPlatform release, available at https://github.com/foundriesio/lmp-manifest/releases/latest.

Please note that these builds are provided for reference in hopes they are useful; not all receive equal testing.

Intel Core i7 (e.g. MinnowBoard Turbot)

Click to show/hide

Set MACHINE to intel-corei7-64 when setting up your work environment with the setup-environment script:

MACHINE=intel-corei7-64 source setup-environment [BUILDDIR]

At the end of the build, your build artifacts will be found under deploy/images/intel-corei7-64. The artifact you will use to flash your microSD card is lmp-gateway-image-intel-corei7-64.wic.gz.

To flash your microSD card, run:

gunzip -f lmp-gateway-image-intel-corei7-64.wic.gz
sudo dd if=lmp-gateway-image-intel-corei7-64.wic of=/dev/mmcblkX bs=4M

Where /dev/mmcblkX is your SD card device.

Please see https://minnowboard.org/tutorials/getting-started-minnowboard-turbot-dual-e for additional board documentation.

BeagleBone Black

Click to show/hide

Set MACHINE to beaglebone-yocto when setting up your work environment with the setup-environment script:

MACHINE=beaglebone-yocto source setup-environment [BUILDDIR]

At the end of the build, your build artifacts will be found under deploy/images/beaglebone-yocto. The artifact you will use to flash your microSD card is lmp-gateway-image-beaglebone-yocto.wic.gz.

To flash your microSD card, run:

gunzip -f lmp-gateway-image-beaglebone-yocto.wic.gz
sudo dd if=lmp-gateway-image-beaglebone-yocto.wic of=/dev/mmcblkX bs=4M

Where /dev/mmcblkX is your SD card device.

Please see https://elinux.org/Beagleboard:BeagleBoneBlack for additional board documentation.

Toradex Colibri iMX7D (Aster)

Click to show/hide

Set MACHINE to colibri-imx7 when setting up your work environment with the setup-environment script:

MACHINE=colibri-imx7 source setup-environment [BUILDDIR]

At the end of the build, your build artifacts will be found under deploy/images/colibri-imx7. The artifact you will use to flash your microSD card is lmp-gateway-image-colibri-imx7.wic.gz.

To flash your microSD card, run:

gunzip -f lmp-gateway-image-colibri-imx7.wic.gz
sudo dd if=lmp-gateway-image-colibri-imx7.wic of=/dev/mmcblkX bs=4M

Where /dev/mmcblkX is your SD card device.

To update U-Boot on Toradex Colibri iMX7D 512MB NAND:

  1. From the U-Boot prompt:

    Colibri iMX7 # run setupdate
    Colibri iMX7 # run update
    
  2. Reboot and from the U-Boot prompt update the device tree based on your module (e.g. Aster):

    Colibri iMX7 # setenv fdt_board aster
    Colibri iMX7 # saveenv
    Colibri iMX7 # reset
    

To update U-Boot on Toradex Colibri iMX7D 1GB eMMC:

  1. From the U-Boot prompt, update the device tree name and boot into LMP:

    Colibri iMX7 # setenv boot_targets "mmc1 mmc0 usb0 dhcp"
    Colibri iMX7 # setenv fdt_board aster
    Colibri iMX7 # run bootcmd
    
  2. Once booted into LMP, flash U-Boot (as root):

    mkdir /tmp/boot
    mount /dev/mmcblk0p1 /tmp/boot
    echo 0 > /sys/block/mmcblk2boot0/force_ro
    dd if=/tmp/boot/u-boot-emmc.imx of=/dev/mmcblk2boot0 bs=512 seek=2
    
  3. Reboot and from the U-Boot prompt update the device tree based on your module (e.g. Aster):

    Colibri iMX7 # setenv boot_targets "mmc1 mmc0 usb0 dhcp"
    Colibri iMX7 # setenv fdt_board aster
    Colibri iMX7 # saveenv
    Colibri iMX7 # reset
    
  4. Boot LMP and change eMMC back to read-only (as root):

    echo 1 > /sys/block/mmcblk2boot0/force_ro
    

Please see https://developer.toradex.com for additional board documentation.

SiFive HiFive Unleashed Freedom U540

Click to show/hide

Set MACHINE to freedom-u540 when setting up your work environment with the setup-environment script:

MACHINE=freedom-u540 source setup-environment [BUILDDIR]

Build the Linux microPlatform minimal image lmp-mini-image instead of the usual lmp-gateway-image, as there is no golang and docker support for RISC-V yet. At the end of the build, your build artifacts will be found under deploy/images/freedom-u540. The artifact you will use to flash your microSD card is lmp-mini-image-freedom-u540.wic.gz.

To flash your microSD card, run:

gunzip -f lmp-mini-image-freedom-u540.wic.gz
sudo dd if=lmp-mini-image-freedom-u540.wic of=/dev/mmcblkX bs=4M

Where /dev/mmcblkX is your SD card device.

Please see https://www.sifive.com/boards/hifive-unleashed/ for additional board documentation.

Generic RISC-V 64 Machine

Click to show/hide

Set MACHINE to qemuriscv64 when setting up your work environment with the setup-environment script:

MACHINE=qemuriscv64 source setup-environment [BUILDDIR]

Build the Linux microPlatform minimal image lmp-mini-image instead of the usual lmp-gateway-image, as there is no golang and docker support for RISC-V yet:

bitbake lmp-mini-image

The artifacts required by QEMU are bbl (Berkeley Boot Loader + Kernel + initrd) and lmp-mini-image-qemuriscv64.ota-ext4 in deploy/images/qemuriscv64.

Boot the generic RISC-V target with QEMU

At the end of the build, change directory to where the build artifacts are found, then copy the image to where runqemu expects it and run it:

cd deploy/images/qemuriscv64
cp lmp-mini-image-qemuriscv64.ota-ext4 lmp-mini-image-qemuriscv64.ext4
runqemu nographic slirp qemuparams="-m 512"

Please see https://wiki.qemu.org/Documentation/Networking#User_Networking_.28SLIRP.29 for information and additional details on networking restrictions.

SSH into guest

You can SSH into the RISC-V 64 guest by using the port forwarded to the RISC-V 64 guest:

ssh -p 2222 fio@localhost

Please see https://wiki.qemu.org/Documentation/Platforms/RISCV for additional information.