Skip to main content

Firmware update procedure for SkyHigh eMMC


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.


  • 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.

00271102Apalis iMX6Q 1GB V1.1C
00271103Apalis iMX6Q 1GB V1.1D
00271124Apalis iMX6Q 1GB V1.1Y
00291102Apalis iMX6D 512MB V1.1C
00391101Colibri iMX7D 1GB V1.1B
00141101Colibri iMX6S 256MB V1.1B
00141124Colibri iMX6S 256MB V1.1Y
00151101Colibri iMX6DL 512MB V1.1B
00151124Colibri iMX6DL 512MB V1.1Y



This firmware should only be applied to SkyHigh S40FC004C1B1C00010 and S40FC004C1B1C00310 eMMC devices featured on Toradex SoMs. Applying this firmware to any other device may cause issues, and is not supported neither by Toradex nor by SkyHigh.

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.

  1. Firmware update package downloaded from Toradex. Please contact us to get it.
  2. Extract the package and copy the contents to the module to be checked.
  3. Go to the folder where the tool was copied and run:
# ./

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.

Send Feedback!