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:
Download pre-built images (Recommended for quick start) Downloand Pre-built Images
Build custom images from source (For advanced customization) Building Guide
Method 1: Flash Using uuu (Recommended)#
uuu (Universal Update Utility) is the recommended method for flashing images. It works over USB and supports both SD card and eMMC.
đź’ˇ Install uuu First
If you haven’t installed uuu yet, please see Install uuu
Prerequisites#
Connect Debug UART to your host computer
Connect USB OTG to your host computer
Power off the board
Set boot switches to SDP mode (see board-specific table above)
Insert SD card (for SD card flashing) or ensure eMMC is available
Power on the board
Flash to SD Card#
This method flashes the image to an SD card using uuu.
FRDM-IMX8MPLUS#
Linux:
sudo uuu -b sd_all imx-boot-imx8mp-lpddr4-frdm-sd.bin-flash_evk robotics-edge-image-full-jazzy-imx8mpevk.rootfs.wic.zst
Windows:
uuu.exe -b sd_all imx-boot-imx8mp-lpddr4-frdm-sd.bin-flash_evk robotics-edge-image-full-jazzy-imx8mpevk.rootfs.wic.zst
i.MX 8M Plus EVK#
Linux:
sudo uuu -b sd_all imx-boot-imx8mp-lpddr4-evk-sd.bin-flash_evk robotics-edge-image-full-jazzy-imx8mpevk.rootfs.wic.zst
Windows:
uuu.exe -b sd_all imx-boot-imx8mp-lpddr4-evk-sd.bin-flash_evk robotics-edge-image-full-jazzy-imx8mpevk.rootfs.wic.zst
i.MX 95 19x19 EVK#
Linux:
sudo uuu -b sd_all imx-boot-imx95-19x19-lpddr5-evk-sd.bin-flash_a55 robotics-edge-image-full-jazzy-imx95evk.rootfs.wic.zst
Windows:
uuu.exe -b sd_all imx-boot-imx95-19x19-lpddr5-evk-sd.bin-flash_a55 robotics-edge-image-full-jazzy-imx95evk.rootfs.wic.zst
i.MX 95 15x15 EVK#
Linux:
sudo uuu -b sd_all imx-boot-imx95-15x15-lpddr4x-evk-sd.bin-flash_a55 robotics-edge-image-full-jazzy-imx95evk.rootfs.wic.zst
Windows:
uuu.exe -b sd_all imx-boot-imx95-15x15-lpddr4x-evk-sd.bin-flash_a55 robotics-edge-image-full-jazzy-imx95evk.rootfs.wic.zst
After flashing:
Power off the board
Set to SD card boot
Power on the board
What happens during flashing:
uuu waits for USB device connection
Power on the board (in SDP mode)
uuu automatically detects the board
Bootloader is flashed to SD card
Root filesystem is written to SD card
Progress is displayed
“Success” message appears when complete
Flash to eMMC#
Flashing to eMMC provides better performance and is recommended for production deployments.
FRDM-IMX8MPLUS#
Linux:
sudo uuu -b emmc_all imx-boot-imx8mp-lpddr4-frdm-sd.bin-flash_evk robotics-edge-image-full-jazzy-imx8mp-lpddr4-frdm.rootfs.wic.zst
Windows:
uuu.exe -b emmc_all imx-boot-imx8mp-lpddr4-frdm-sd.bin-flash_evk robotics-edge-image-full-jazzy-imx8mp-lpddr4-frdm.rootfs.wic.zst
i.MX 8M Plus EVK#
Linux:
sudo uuu -b emmc_all imx-boot-imx8mp-lpddr4-evk-sd.bin-flash_evk robotics-edge-image-full-jazzy-imx8mpevk.rootfs.wic.zst
Windows:
uuu.exe -b emmc_all imx-boot-imx8mp-lpddr4-evk-sd.bin-flash_evk robotics-edge-image-full-jazzy-imx8mpevk.rootfs.wic.zst
I.MX95 19x19 EVK#
Linux:
sudo uuu -b emmc_all imx-boot-imx95-19x19-lpddr5-evk-sd.bin-flash_a55 robotics-edge-image-full-jazzy-imx95evk.rootfs.wic.zst
Windows:
uuu.exe -b emmc_all imx-boot-imx95-19x19-lpddr5-evk-sd.bin-flash_a55 robotics-edge-image-full-jazzy-imx95evk.rootfs.wic.zst
i.MX 95 15x15 EVK#
Linux:
sudo uuu -b emmc_all imx-boot-imx95-15x15-lpddr4x-evk-sd.bin-flash_a55 robotics-edge-image-full-jazzy-imx95evk.rootfs.wic.zst
Windows:
uuu.exe -b emmc_all imx-boot-imx95-15x15-lpddr4x-evk-sd.bin-flash_a55 robotics-edge-image-full-jazzy-imx95evk.rootfs.wic.zst
After flashing:
Power off the board
Set boot switches to eMMC boot mode (see board-specific table)
Power on the board
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
lsblkbefore inserting the SD cardInsert the SD card
Run
lsblkagain and look for the new deviceCheck 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 diskstatus=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#
Insert the SD card into the board
Set boot switches to SD card boot mode (see board-specific table)
Power on the board