Flashing Guide#

This guide covers advanced flashing methods for NXP i.MX development boards, including uuu flashing to SD card and eMMC and dd method.

Prerequisites

Before proceeding with this guide, make sure you have:

  • Completed the basic getting started guide for your board

  • Downloaded the pre-built images or built custom images

  • Installed uuu tool (see Install uuu Flash Tool)


Board-Specific Information#

Boot Switch Configuration#

Each board has different boot switch configurations. Refer to the table below for your specific board.

FRDM-IMX8MPLUS#

Boot Switch: SW5[1-4]

Boot Mode

SW5-1

SW5-2

SW5-3

SW5-4

USB Serial Download (SDP)

0

0

0

1

eMMC Boot

0

0

1

0

SD Card Boot

0

0

1

1

i.MX 8M Plus EVK#

Boot Switch: SW4[1-4]

Boot Mode

SW4-1

SW4-2

SW4-3

SW4-4

USB Serial Download (SDP)

0

0

0

1

eMMC Boot

0

0

1

0

SD Card Boot

0

0

1

1

IMX95-EVK (19x19, 15x15)#

Boot Switch: SW7[1-4]

Boot Mode

SW7-1

SW7-2

SW7-3

SW7-4

USB Serial Download (SDP)

0

0

0

1

eMMC Boot

0

0

1

0

SD Card Boot

0

0

1

1

Note: 0 = OFF, 1 = ON

Image Files#

You can obtain the required image files in two ways:

  1. Download pre-built images (Recommended for quick start) Downloand Pre-built Images

  2. Build custom images from source (For advanced customization) Building Guide



Method 2: Flash Using dd (Linux Only)#

The dd method provides manual control over the flashing process. This method doesn’t require the board to be in SDP mode.

Note: When to Use dd

Use the dd method when:

  • You prefer manual control over the process

  • uuu is not available or not working

  • You want to understand the low-level flashing process

  • You need to create custom partitions

Step 1: Extract the Compressed Image#

i.MX 8M Plus series

zstd -d robotics-edge-image-full-jazzy-imx8mpevk.rootfs.wic.zst

i.MX95 series

zstd -d robotics-edge-image-full-jazzy-imx95evk.rootfs.wic.zst

Step 2: Identify SD Card Device#

lsblk

Look for your SD card. Common device names:

  • /dev/sdb - USB SD card reader

  • /dev/mmcblk0 - Built-in SD card reader

Example output:

NAME        MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
sda           8:0    0 238.5G  0 disk
├─sda1        8:1    0   512M  0 part /boot/efi
└─sda2        8:2    0   238G  0 part /
sdb           8:16   1  14.9G  0 disk
└─sdb1        8:17   1  14.9G  0 part /media/user/SD_CARD

⚠️ Warning

Double-check the device name!

Using the wrong device (e.g., /dev/sda) will overwrite your system disk and make your computer unbootable.

Tips to identify the correct device:

  • Run lsblk before inserting the SD card

  • Insert the SD card

  • Run lsblk again and look for the new device

  • Check the size matches your SD card

Step 3: Unmount SD Card#

sudo umount /dev/sdX*

Replace /dev/sdX with your actual SD card device (e.g., /dev/sdb).

Step 4: Write Root Filesystem for Platform#

i.MX 8M Plus series

sudo dd if=robotics-edge-image-full-jazzy-imx8mpevk.rootfs.wic of=/dev/sdX bs=4M conv=fsync status=progress

i.MX95 series

sudo dd if=robotics-edge-image-full-jazzy-imx95evk.rootfs.wic of=/dev/sdX bs=4M conv=fsync status=progress

Parameters explained:

  • if= - Input file (source image)

  • of= - Output file (destination device)

  • bs=4M - Block size (4MB for faster writing)

  • conv=fsync - Ensure data is physically written to disk

  • status=progress - Show progress during writing

Step 5: Write Bootloader for Specific Board#

The bootloader must be written at a specific offset for each board.

FRDM-IMX8MPLUS:

sudo dd if=imx-boot-imx8mp-lpddr4-frdm-sd.bin-flash_evk of=/dev/sdX bs=1k seek=32 conv=fsync status=progress

i.MX 8M Plus EVK:

sudo dd if=imx-boot-imx8mp-lpddr4-evk-sd.bin-flash_evk of=/dev/sdX bs=1k seek=32 conv=fsync status=progress

IMX95 19x19 EVK:

sudo dd if=imx-boot-imx95-19x19-lpddr5-evk-sd.bin-flash_a55 of=/dev/sdX bs=1k seek=32 conv=fsync status=progress

IMX95 15x15 EVK:

sudo dd if=imx-boot-imx95-19x19-lpddr5-evk-sd.bin-flash_a55 of=/dev/sdX bs=1k seek=32 conv=fsync status=progress

Step 6: Sync and Eject#

sync
sudo eject /dev/sdX

Step 7: Boot the Board#

  1. Insert the SD card into the board

  2. Set boot switches to SD card boot mode (see board-specific table)

  3. Power on the board