Difference between revisions of "iMX8M Industrial Flashing Procedure"

From Voipac Wiki
Jump to navigation Jump to search
(Created page with "Page describe how to flash iMX8M eMMC and SD card")
 
 
(113 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Page describe how to flash iMX8M eMMC and SD card
+
[[Category:iMX8M Industrial Development Kit]]
 +
[[Category:iMX8M Industrial Software]]
 +
<!-- -->
 +
<div style="float:right">__TOC__</div>
 +
This page describes how to flash [https://downloads.voipac.com/index.php?p=iMX8M_Industrial_Development_Kit/module/software binaries] into iMX8M Industrial Module's eMMC Flash memory or into SD card that is located on the iMX Development Baseboard.<br /><br />
 +
 
 +
'''''Note: All of the steps listed below are NOT REQUIRED for standard configuration modules and development kits.'''''
 +
 
 +
== Installing Universal Upload Utility (UUU) ==
 +
=== Linux ===
 +
<syntaxhighlight lang="bash">
 +
git clone ssh://git@github.com/NXPmicro/mfgtools.git
 +
cd mfgtools
 +
mkdir .build && cd .build && cmake .. && make -j`nproc`
 +
</syntaxhighlight>
 +
 
 +
The binary called '''''uuu''''', which is used for flashing, is located in .build/uuu directory.
 +
 
 +
=== Windows ===
 +
* Go to: https://github.com/NXPmicro/mfgtools/releases
 +
* Select the latest stable release.<br />Example: '''''Releases/uuu_1.4.243''''': https://github.com/NXPmicro/mfgtools/releases/tag/uuu_1.4.243
 +
* Download: [https://github.com/NXPmicro/mfgtools/releases/download/uuu_1.4.243/uuu.exe uuu.exe]
 +
* Save the file into: C:\uuu
 +
 
 +
== Preparing the binaries ==
 +
* Download the default bootloader file: [https://downloads.voipac.com/files/iMX8M_Industrial_Development_Kit/module/software/yocto/binaries/imx-boot imx-boot]
 +
* Download the default WIC filesystem image: [https://downloads.voipac.com/files/iMX8M_Industrial_Development_Kit/module/software/filesystem/voipac-image-imx8mq-voipac.wic voipac-image-imx8mq-voipac.wic]
 +
 
 +
== Flashing procedure ==
 +
* Set serial downloader mode by sliding DIP switch S1 BOOT positions to: 1-OFF, 2-ON
 +
[[File:iMX8M_Industrial_Development_Kit-Serial_donwloader_mode.png|400px]]<br /><br />
 +
 
 +
* Plug USB Micro-B cable to baseboard CONSOLE connector and PC<br />'''''Note:''''' Make sure that UART1 and UART2 jumpers are in CP2105 positions (USB/UART bridge).<br />
 +
[[image:iMX_Development_Baseboard-Serial_console_jumpers.png|594px]]<br /><br />
 +
 
 +
* Plug USB-C cable to baseboard USB-C connector and PC<br />'''''Note:''''' Powering of the development kit is not required during the flashing procedure.<br />'''''Note:''''' After connecting 2 development board cables, 2 serial ports named ''Silicon Labs CP210x USB to UART Bridge'' should appear in the controlling PC.<br />
 +
[[image:iMX8M Industrial Development Kit-Serial-consoles-recognized.png|594px]]<br /><br />
 +
 
 +
* Download and copy imx-boot and *.wic files into ''uuu\'' directory
 +
* Choose one of the following commands to start the flashing process:
 +
=== eMMC Flash Memory (default) ===
 +
 
 +
==== Linux ====
 +
<syntaxhighlight lang="bash">
 +
sudo ./uuu -b emmc_all imx-boot voipac-image-imx8mq-voipac.wic
 +
</syntaxhighlight>
 +
==== Windows ====
 +
<syntaxhighlight lang="bash">
 +
uuu.exe -b emmc_all imx-boot voipac-image-imx8mq-voipac.wic
 +
</syntaxhighlight>
 +
 
 +
=== SD Card ===
 +
 
 +
==== Linux ====
 +
<syntaxhighlight lang="bash">
 +
sudo ./uuu -b sd_all imx-boot voipac-image-imx8mq-voipac.wic
 +
</syntaxhighlight>
 +
 
 +
==== Windows ====
 +
<syntaxhighlight lang="bash">
 +
uuu.exe -b sd_all imx-boot voipac-image-imx8mq-voipac.wic
 +
</syntaxhighlight>
 +
 
 +
=== Flashing logs ===
 +
==== UUU ====
 +
<syntaxhighlight lang="bash">
 +
Microsoft Windows [Version 10.0.19045.2486]
 +
(c) Microsoft Corporation. All rights reserved.
 +
 
 +
C:\Users\voipac>cd c:\uuu
 +
 
 +
c:\uuu>uuu.exe -b emmc_all imx-boot voipac-image-imx8mq-voipac.wic
 +
uuu (Universal Update Utility) for nxp imx chips -- libuuu_1.4.243-0-ged48c51
 +
 
 +
Success 1    Failure 0
 +
 
 +
 
 +
2:22    8/ 8 [Done                                  ] FB: done
 +
 
 +
c:\uuu>
 +
</syntaxhighlight>
 +
 
 +
[[image:iMX8M Industrial Development Kit-Flashing binaries.png|750px]]
 +
 
 +
==== Serial console ====
 +
<syntaxhighlight lang="bash">
 +
.....................................................
 +
downloading of 16776244 bytes finished
 +
request 00000000bf1428c0 was not queued to ep1in-bulk
 +
writing to partition 'all'
 +
sparse flash target is mmc:0
 +
writing to partition 'all' for sparse, buffer size 16776244
 +
Flashing sparse image at offset 0
 +
Flashing Sparse Image
 +
........ wrote 16776192 bytes to 'all'
 +
request 00000000bf1428c0 was not queued to ep1in-bulk
 +
Starting download of 7807028 bytes
 +
request 00000000bf1428c0 was not queued to ep1in-bulk
 +
...........................................................
 +
downloading of 7807028 bytes finished
 +
request 00000000bf1428c0 was not queued to ep1in-bulk
 +
writing to partition 'all'
 +
sparse flash target is mmc:0
 +
writing to partition 'all' for sparse, buffer size 7807028
 +
Flashing sparse image at offset 0
 +
Flashing Sparse Image
 +
........ wrote 7806976 bytes to 'all'
 +
request 00000000bf1428c0 was not queued to ep1in-bulk
 +
request 00000000bf1428c0 was not queued to ep1in-bulk
 +
Starting download of 1168032 bytes
 +
request 00000000bf1428c0 was not queued to ep1in-bulk
 +
........
 +
downloading of 1168032 bytes finished
 +
request 00000000bf1428c0 was not queued to ep1in-bulk
 +
writing to partition 'bootloader'
 +
Initializing 'bootloader'
 +
switch to partitions #1, OK
 +
mmc0(part 1) is current device
 +
Writing 'bootloader'
 +
 
 +
MMC write: dev # 0, block # 66, count 2282 ... 2282 blocks written: OK
 +
Writing 'bootloader' DONE!
 +
request 00000000bf1428c0 was not queued to ep1in-bulk
 +
Detect USB boot. Will enter fastboot mode!
 +
request 00000000bf1428c0 was not queued to ep1in-bulk
 +
Detect USB boot. Will enter fastboot mode!
 +
request 00000000bf1428c0 was not queued to ep1in-bulk
 +
</syntaxhighlight>
 +
 
 +
== Running the newly flashed binaries ==
 +
After completing the above steps, eMMC Flash memory or SD Card is flashed and the following steps are to be performed to boot the new image:
 +
 
 +
* Unplug USB-C cable from PC
 +
* Set Boot mode by sliding DIP switch S1 BOOT positions to: 1-ON, 2-OFF
 +
[[File:iMX8M_Industrial_Development_Kit-Boot_mode.png|400px]]<br /><br />
 +
 
 +
*  Make sure that S2 BOOT and S3 BOOT DIP switches are in correct positions in order to boot from the selected storage media (eMMC Flash memory or SD Card):
 +
==== eMMC Flash Memory boot (default) ====
 +
[[File:iMX8M_Industrial_Development_Kit-eMMC_boot_DIP_switch_configuration.png|400px]]<br /><br />
 +
==== SD Card boot ====
 +
[[File:iMX8M_Industrial_Development_Kit-SD_boot_DIP_switch_configuration.png|400px]]<br /><br />
 +
* Connect USB Micro-B debug cable, switch on the power and the development kit starts booting with the new binaries<br /><br />

Latest revision as of 14:46, 11 September 2024

This page describes how to flash binaries into iMX8M Industrial Module's eMMC Flash memory or into SD card that is located on the iMX Development Baseboard.

Note: All of the steps listed below are NOT REQUIRED for standard configuration modules and development kits.

Installing Universal Upload Utility (UUU)

Linux

git clone ssh://git@github.com/NXPmicro/mfgtools.git
cd mfgtools
mkdir .build && cd .build && cmake .. && make -j`nproc`

The binary called uuu, which is used for flashing, is located in .build/uuu directory.

Windows

Preparing the binaries

Flashing procedure

  • Set serial downloader mode by sliding DIP switch S1 BOOT positions to: 1-OFF, 2-ON

iMX8M Industrial Development Kit-Serial donwloader mode.png

  • Plug USB Micro-B cable to baseboard CONSOLE connector and PC
    Note: Make sure that UART1 and UART2 jumpers are in CP2105 positions (USB/UART bridge).

iMX Development Baseboard-Serial console jumpers.png

  • Plug USB-C cable to baseboard USB-C connector and PC
    Note: Powering of the development kit is not required during the flashing procedure.
    Note: After connecting 2 development board cables, 2 serial ports named Silicon Labs CP210x USB to UART Bridge should appear in the controlling PC.

iMX8M Industrial Development Kit-Serial-consoles-recognized.png

  • Download and copy imx-boot and *.wic files into uuu\ directory
  • Choose one of the following commands to start the flashing process:

eMMC Flash Memory (default)

Linux

sudo ./uuu -b emmc_all imx-boot voipac-image-imx8mq-voipac.wic

Windows

uuu.exe -b emmc_all imx-boot voipac-image-imx8mq-voipac.wic

SD Card

Linux

sudo ./uuu -b sd_all imx-boot voipac-image-imx8mq-voipac.wic

Windows

uuu.exe -b sd_all imx-boot voipac-image-imx8mq-voipac.wic

Flashing logs

UUU

Microsoft Windows [Version 10.0.19045.2486]
(c) Microsoft Corporation. All rights reserved.

C:\Users\voipac>cd c:\uuu

c:\uuu>uuu.exe -b emmc_all imx-boot voipac-image-imx8mq-voipac.wic
uuu (Universal Update Utility) for nxp imx chips -- libuuu_1.4.243-0-ged48c51

Success 1    Failure 0


2:22     8/ 8 [Done                                  ] FB: done

c:\uuu>

iMX8M Industrial Development Kit-Flashing binaries.png

Serial console

.....................................................
downloading of 16776244 bytes finished
request 00000000bf1428c0 was not queued to ep1in-bulk
writing to partition 'all'
sparse flash target is mmc:0
writing to partition 'all' for sparse, buffer size 16776244
Flashing sparse image at offset 0
Flashing Sparse Image
........ wrote 16776192 bytes to 'all'
request 00000000bf1428c0 was not queued to ep1in-bulk
Starting download of 7807028 bytes
request 00000000bf1428c0 was not queued to ep1in-bulk
...........................................................
downloading of 7807028 bytes finished
request 00000000bf1428c0 was not queued to ep1in-bulk
writing to partition 'all'
sparse flash target is mmc:0
writing to partition 'all' for sparse, buffer size 7807028
Flashing sparse image at offset 0
Flashing Sparse Image
........ wrote 7806976 bytes to 'all'
request 00000000bf1428c0 was not queued to ep1in-bulk
request 00000000bf1428c0 was not queued to ep1in-bulk
Starting download of 1168032 bytes
request 00000000bf1428c0 was not queued to ep1in-bulk
........
downloading of 1168032 bytes finished
request 00000000bf1428c0 was not queued to ep1in-bulk
writing to partition 'bootloader'
Initializing 'bootloader'
switch to partitions #1, OK
mmc0(part 1) is current device
Writing 'bootloader'

MMC write: dev # 0, block # 66, count 2282 ... 2282 blocks written: OK
Writing 'bootloader' DONE!
request 00000000bf1428c0 was not queued to ep1in-bulk
Detect USB boot. Will enter fastboot mode!
request 00000000bf1428c0 was not queued to ep1in-bulk
Detect USB boot. Will enter fastboot mode!
request 00000000bf1428c0 was not queued to ep1in-bulk

Running the newly flashed binaries

After completing the above steps, eMMC Flash memory or SD Card is flashed and the following steps are to be performed to boot the new image:

  • Unplug USB-C cable from PC
  • Set Boot mode by sliding DIP switch S1 BOOT positions to: 1-ON, 2-OFF

iMX8M Industrial Development Kit-Boot mode.png

  • Make sure that S2 BOOT and S3 BOOT DIP switches are in correct positions in order to boot from the selected storage media (eMMC Flash memory or SD Card):

eMMC Flash Memory boot (default)

iMX8M Industrial Development Kit-eMMC boot DIP switch configuration.png

SD Card boot

iMX8M Industrial Development Kit-SD boot DIP switch configuration.png

  • Connect USB Micro-B debug cable, switch on the power and the development kit starts booting with the new binaries