Difference between revisions of "iMX8M Industrial Flashing Procedure"

From Voipac Wiki
Jump to navigation Jump to search
 
(107 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 />
  
== Installing uuu (Universal Upload Utility) ===
+
'''''Note: All of the steps listed below are NOT REQUIRED for standard configuration modules and development kits.'''''
 +
 
 +
== Installing Universal Upload Utility (UUU) ==
 
=== Linux ===
 
=== Linux ===
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
Line 9: Line 15:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
In .build/uuu directory there is binary called uuu which is used for flashing
+
The binary called '''''uuu''''', which is used for flashing, is located in .build/uuu directory.
  
 
=== Windows ===
 
=== Windows ===
# Go to https://github.com/NXPmicro/mfgtools/releases
+
* Go to: https://github.com/NXPmicro/mfgtools/releases
# Have look for last release. Example:     Releases/uuu_1.4.182 https://github.com/NXPmicro/mfgtools/releases/tag/uuu_1.4.182
+
* Select the latest stable release.<br />Example: '''''Releases/uuu_1.4.243''''': https://github.com/NXPmicro/mfgtools/releases/tag/uuu_1.4.243
# Download uuu.exe
+
* Download: [https://github.com/NXPmicro/mfgtools/releases/download/uuu_1.4.243/uuu.exe uuu.exe]
# Save it to C:\uuu
+
* Save the file into: C:\uuu
  
=== Flashing procedure ===
+
== Preparing the binaries ==
For flashing eMMC or SD card we need to perform several steps:
+
* 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]
  
# change switch position S1 BOOT to: 1-off, 2-on (serial downloader mode)
+
== Flashing procedure ==
# plug USB-C cable to PC and to board USB C connector
+
* Set serial downloader mode by sliding DIP switch S1 BOOT positions to: 1-OFF, 2-ON
# prepare imx-boot and *.wic files
+
[[File:iMX8M_Industrial_Development_Kit-Serial_donwloader_mode.png|400px]]<br /><br />
# run following commands for flashing media
 
'''eMMC'''
 
  
linux:
+
* 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">
 
<syntaxhighlight lang="bash">
sudo ./uuu -b emmc_all <path to imx-boot file> <path to wic file>
+
sudo ./uuu -b emmc_all imx-boot voipac-image-imx8mq-voipac.wic
 
</syntaxhighlight>
 
</syntaxhighlight>
windows:
+
==== Windows ====
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
C:\uuu>uuu.exe -b emmc_all <path to imx-boot file> <path to wic file>
+
uuu.exe -b emmc_all imx-boot voipac-image-imx8mq-voipac.wic
 
</syntaxhighlight>
 
</syntaxhighlight>
  
'''SD'''
+
=== SD Card ===
  
linux:
+
==== Linux ====
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
sudo ./uuu -b sd_all <path to imx-boot file> <path to wic file>
+
sudo ./uuu -b sd_all imx-boot voipac-image-imx8mq-voipac.wic
 
</syntaxhighlight>
 
</syntaxhighlight>
  
windows:
+
==== Windows ====
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
C:\uuu>uuu.exe -b sd_all <path to imx-boot file> <path to wic file>
+
uuu.exe -b sd_all imx-boot voipac-image-imx8mq-voipac.wic
 
</syntaxhighlight>
 
</syntaxhighlight>
  
After those steps eMMC or SD card is flashed and perform following steps to boot new image:
+
=== 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 />
  
# unplug USB-C cable from PC
+
*  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):
# change switch position S1 BOOT to: 1-on, 2-off (boot mode)
+
==== eMMC Flash Memory boot (default) ====
# be sure that S2 BOOT and S3 BOOT switches are in proper position to boot from desired peripherals (eMMC or SD)
+
[[File:iMX8M_Industrial_Development_Kit-eMMC_boot_DIP_switch_configuration.png|400px]]<br /><br />
# connect debug UART and power on board and messages should appear on serial console
+
==== 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