Boot from eMMC

This document provides the detailed instructions of how to flash the image to eMMC of I-Pi SMARC IMX8M plus for both Windows and Linux users.

Flashing UMS Image on eMMC

Prerequisites

  • Download the prebuilt image to the working directory on your development host click here.

  • Prepare your target board by connecting the power cord and the micro USB OTG cable to the development host.

  • Make sure your boot loader switches are in SD card (0110).

    logo

Windows Host

  • Our system typically comes with ready-to-use features. So we will flash the UMS image onto eMMC before shipping.
  • If you want to flash the UMS on eMMC again, you can start from the Flashing UMS Image on eMMC and then follow the Flashing Image on eMMC. If you do not want to flash the UMS on eMMC again, simply skip the Flashing UMS Image on eMMC.
  • Install on your development host Win32DiskImager click here. It is used to flash your system image.
  • Please click here to download the UMS Image for IMX8MP. Take an empty Micro SD card flash the UMS image on it using Win32DiskImager.
  • Put the flashed Micro SD card in the Micro SD card slot of your target device and make sure the boot settings are SD card (0110).
  • Your targeted device should now be connected to your development host via the micro USB OTG cable and power cord.
  • The targeted device will have the appearance of a storage device on your development host.
  • Flash the UMS image again with Win32DiskImager by selecting the targeted device. During this flash, the UMS image will be loaded into eMMC and the SD card.
logo
  • Once you have flashed the image onto the eMMC. Disconnect all the cables and remove the SD card.
  • Ensure the boot setting is eMMC (1000), then power-on the board and connect the micro USB OTG cable with the targeted device to your development host.
  • The targeted device will eventually appear on your development host’s storage devices list.

Flashing Image on eMMC

This procedure describes how to flash Ubuntu/Debian/Yocto/Android image to the eMMC.

Flashing Ubuntu or Debian Image

Prerequisites

  • Download the prebuilt bootable Ubuntu or Debian image to the working directory on your development host and extract them.
  • In Windows environments, please download rufus to flash the image to the eMMC.
  • In a Linux environment use dd command.

Note: All files will be erased on the eMMC.

Windows Host

  1. Launch the Rufus tool in your host device.

  2. Turn on the target device and connect the OTG cable. The host system will auto-detected your target device eMMC as a storage drive.

  3. Press the SELECT button and browse to the .img file previously downloaded to your working directory in the development host. Then click START and wait for the process to be finished.

logo

Linux Host

  1. Copy the prebuilt bootable Ubuntu/Debian image to the working directory on your development host.

  2. Turn on the target device and connect the OTG cable.

  3. Extract the downloaded image go in to the extracted directory and type the following command to flash the image in to the eMMC.

    Warning: Make sure you first properly identify the eMMC device name as for example (/dev/sdb or /dev/sdc) by using “gparted”. Data loss may result if written into the wrong device or in the worst case you kill your development host’s OS.

    $ sudo dd if=[your image].img of=/dev/sd[x]
  4. After dd has completed, enter the following command:

$ sync

Flashing Yocto Image

Prerequisites

  • Copy the prebuilt bootable Yocto image to the working directory on your development host.

  • In Windows environments, please download the Win32DiskImager to flash the image to the SD Card.

    Note: All files will be erased on the SD Card. The size should be preferable 16 GB or larger.

Windows Host

  1. Launch the Win32DiskImager tool in your host device.
  2. Turn on the target device and connect the OTG cable. The host system will auto-detected your target device eMMC as a storage drive.
  3. Choose Image file by clicking on File explorer icon.
  4. Select the image form the downloaded directory of development host, then click the Write button to start the process.
logo
  • The tool will prompt to the user that data will be lost. Select “Yes” to continue

  • Once done, click OK and and it will show the message that Write successful.

  • Turn off the target device and remove the OTG cable.

  • Power on the target device to boot up.

Linux Host

  1. Copy the prebuilt bootable Yocto image to the working directory on your development host.

  2. Turn on the target device and connect the OTG cable.

  3. Extract the downloaded image go in to the extracted directory and type the following command to flash the image in to the eMMC.

    Warning: Make sure you first properly identify the eMMC device name as for example (/dev/sdb or /dev/sdc) by using “gparted”. Data loss may result if written into the wrong device or in the worst case you kill your development host’s OS.

    $ sudo dd if=[your image].img of=/dev/sd[x]
  4. After dd has completed, enter the following command:

$ sync

Flashing Android Image

  1. Make sure you have installed and setup the UUU tool on your linux development host.

  2. set the boot switch into recovery mode (Boot settings must be “0001”).

  3. Connect USB OTG cable with the host.

  4. Power on the board.

  5. Download latest android release from here.

  6. Extract the release file.

  7. Change into android image directory.

  8. Check the target device

    $ sudo uuu -lsusb
  9. To flash the image, enter the following command:

    • For LEC-i.MX8MP 2G module
    $ cp u-boot-imx8mp-2gb-uuu.imx u-boot-imx8mp-evk-uuu.imx
    $ sudo ./uuu_imx_android_flash.sh -f imx8mp -e -m -c 28
    • For LEC-i.MX8MP 4G module
    $ cp u-boot-imx8mp-4gb-uuu.imx u-boot-imx8mp-evk-uuu.imx
    $ sudo ./uuu_imx_android_flash.sh -f imx8mp -e -m -c 28 -u 4gb
    • For LEC-i.MX8MP 8G module
    $ cp u-boot-imx8mp-8gb-uuu.imx u-boot-imx8mp-evk-uuu.imx
    $ sudo ./uuu_imx_android_flash.sh -f imx8mp -e -m -c 28 -u 8gb
  10. Turn off the device remove the OTG.

  11. Change the boot settings into eMMC(1000).

  12. Power on the target device.

Note:

  • Make sure the boot loader on the carrier board is set according to the SD card or eMMC as you boot.