Firmware update procedure for SkyHigh eMMC
Introduction
This article explains the procedure to update the SkyHigh eMMC's firmware, due to a problem that affects modules with this eMMC, in which the durability of the chip is reduced while using pSLC mode.
So, for customers using pSLC mode and expecting an increase of the module and memory's endurance with constant writing to the eMMC, it's recommended to follow this article steps and update the firmware.
This article complies with the typographic conventions.
Requirements
- Affected module with SkyHigh eMMC;
- Serial (exclusive) connection to Linux and bootloader terminal;
- USB stick, SD card or ethernet connection.
Affected modules
The next table shows the relation of the affected modules and PID8.
PID8 | Module |
---|---|
00271102 | Apalis iMX6Q 1GB V1.1C |
00271103 | Apalis iMX6Q 1GB V1.1D |
00271124 | Apalis iMX6Q 1GB V1.1Y |
00291102 | Apalis iMX6D 512MB V1.1C |
00391101 | Colibri iMX7D 1GB V1.1B |
00141101 | Colibri iMX6S 256MB V1.1B |
00141124 | Colibri iMX6S 256MB V1.1Y |
00151101 | Colibri iMX6DL 512MB V1.1B |
00151124 | Colibri iMX6DL 512MB V1.1Y |
Instructions
In order to run the check tool, the module needs to be running linux kernel >= 5.4. If your build runs an older kernel, you can use the Toradex Easy Installer serial console. For instructions see Loading Toradex Easy Installer.
- Firmware update package downloaded from Toradex.
- Extract the package and copy the contents to the module to be checked.
- Go to the folder where the tool was copied and run:
# ./checkandupdfware.sh
The script will check the current version of the firmware and update it if necessary. If the firmware needs to be updated, it will output:
Firmware needs to be updated
Updating Firmware
Single ioctl - pre-define Multiple block write
Start, chunk size 4096
PROGRAMMED 0 sectors==============
FFU status 0x0, 0x0
Programmed 4096/524288 bytes
PROGRAMMED 8 sectors==============
FFU status 0x0, 0x0
Programmed 8192/524288 bytes
PROGRAMMED 16 sectors==============
FFU status 0x0, 0x0
...
Programmed 507904/524288 bytes
PROGRAMMED 992 sectors==============
FFU status 0x0, 0x0
Programmed 512000/524288 bytes
PROGRAMMED 1000 sectors==============
FFU status 0x0, 0x0
Programmed 516096/524288 bytes
PROGRAMMED 1008 sectors==============
FFU status 0x0, 0x0
Programmed 520192/524288 bytes
PROGRAMMED 1016 sectors==============
FFU status 0x0, 0x0
Programmed 524288/524288 bytes
Programmed 524288/524288 bytes
Programming finished with status 0
FFU finished successfully, please reboot system
=================================================================================
= Power Cycle is needed after Firmware update, Software Reboot will not work =
= Run the script again after power cycle to check if the update was successful =
=================================================================================
After the power cycle or if the module is already updated, the script will output:
Checking Firmare before update
The firmware version is correct, no action required.