CM-T3x: U-Boot: Firmware Update
Failure in CM-T3x firmware update may prevent proper boot from on-board NAND flash. It is recommended to create a bootable MMC/SD card before updating CM-T3x firmware |
Contents
Introduction
CM-T3x Firmware consists of two components: X-Loader and U-Boot. This article describes the firmware update process for CM-T3x system-on-module product line. The CM-T3x product line includes the following modules:
Preliminary setup
- Make sure to power off the CM-T3x evaluation platform
- Connect the host PC to the SB-T35 base-board (connector P12) via the serial cable supplied with the evaluation kit.
- Start terminal emulation software on your PC. Set baud rate to 115200 bps, 8 bit per frame, 1 stop bit, no parity, no flow control.
- Turn on the CM-T3x evaluation system. The U-Boot boot-loader will start and you will get a command prompt.
If the boot settings of your CM-T3x are different than default, you may need to press and hold ^C while turning the CM-T3x on, in order to get command prompt. |
SD-Card Firmware Update for CM-T3x
The firmware can be updated using a workstation with an SD card reader, or using CM-T3x module Linux environment. To update the X-Loader, just replace the X-Loader binary file (MLO) on the MMC/SD card with the newer version. To update the U-Boot, just replace the U-Boot binary file (u-boot.bin) on the MMC/SD card with the newer version.
NAND firmware update for CM-T3x
CM-T3x firmware can be updated from an MMC/SD card, USB storage, or using network TFTP download. Both methods are performed from the U-Boot command line. The U-Boot bootloader can be installed and updated independently without updating the existing X-Loader. In newer versions of U-Boot, X-Loader can also be updated independantly and without updating U-Boot. If only U-Boot update is necessary, please continue to CM-T3x U-Boot Update section.
CM-T3x X-Loader Update
Older U-Boot versions can only install X-Loader to completely erased NAND flash! The procedure for older U-Boot versions erases the entire NAND flash! |
MMC/SD card
- Copy x-load.bin.ift from U-Boot package for CM-T3x to the root directory of the MMC/SD card.
- Insert the MMC/SD card into the SD socket (P13) on SB-T35.
- Start the U-Boot MMC subsystem:
On older versions of U-Boot:
# mmc init
On newer versions of U-Boot:
# mmc rescan
- Check that the storage device is ready and contains the X-Loader binary:
# fatls mmc 0
- Load the X-Loader into memory:
# fatload mmc 0 80a00000 x-load.bin.ift
- Proceed to the Flashing X-Loader section
USB storage
- Copy x-load.bin.ift from U-Boot package for CM-T3x to the root directory of the USB storage device.
- Plug the USB storage device into the USB host connector (P17) on SB-T35.
- Start the U-Boot USB subsystem:
# usb start
- Check that the storage device is ready and contains the X-Loader binary:
# fatls usb 0
- Load the X-Loader into memory:
# fatload usb 0 80a00000 x-load.bin.ift
- Proceed to the Flashing X-Loader section
TFTP download
- Setup TFTP server
- Put the X-Loader binary in the root directory of TFTP server
- Setup U-Boot networking:
- for dynamic IP configuration:
# dhcp
- or for static IP configuration:
# setenv ipaddr <ip address> # setenv serverip <server ip>
- Download the X-Loader to the CM-T3x RAM:
# tftp 80a00000 x-load.bin.ift
- Proceed to Flashing X-Loader section
Flashing X-Loader
Do not reset or power off the CM-T3x during the update process! Doing so may result in nand flash corruption! |
- Select NAND ECC type:
# nandecc hw
- Erase the on-board NAND flash:
On older versions of U-Boot (Note that the below command will erase the whole NAND flash data):
# nand erase # nand scrub
On newer versions of U-Boot:
# nand erase 0 20000 # nand scrub 0 20000
- Write the X-Loader image into the on-board NAND flash:
# nand write 80a00000 0 20000;
On older U-Boot versions it is essential to install U-Boot immediately after X-Loader update |
CM-T3x U-Boot Update
MMC/SD card
- Copy u-boot.bin from U-Boot package for CM-T3x to the root directory of the MMC/SD card.
- Insert the MMC/SD card into the SD socket (P13) on SB-T35.
- Start the U-Boot MMC subsystem and scan for available storage devices:
- On older U-Boot versions:
# mmc init
- On newer U-Boot versions:
# mmc rescan
- Check that your storage device is ready and contains the U-Boot binary:
# fatls mmc 0
- Load the U-Boot into the CM-T3x RAM:
# fatload mmc 0 80a00000 u-boot.bin
- Proceed to Flashing U-Boot section
USB storage
- Copy u-boot.bin from U-Boot package for CM-T3x to the root directory of the USB storage device.
- Plug the USB storage device into the USB host connector (P17) on SB-T35.
- Start the U-Boot USB subsystem:
# usb start
- Check that your storage device is ready and contains the U-Boot binary:
# fatls usb 0
- Load the U-Boot into the CM-T3x RAM:
# fatload usb 0 80a00000 u-boot.bin
- Proceed to Flashing U-Boot section
TFTP download
- Setup TFTP server
- Put the U-Boot binary in the root directory of TFTP server
- Setup U-Boot networking:
- for dynamic IP configuration:
# dhcp
- or for static IP configuration:
# setenv ipaddr <ip address> # setenv serverip <server ip>
- Download the U-Boot to the CM-T3x RAM:
# tftp 80a00000 u-boot.bin
- Proceed to Flashing U-Boot section
Flashing U-Boot
Do not reset or power off the CM-T3x during the update process! Doing so may result in nand flash corruption! |
- Flash the U-Boot onto the on-board NAND flash:
# nandecc sw # nand erase 80000 60000 # nand write 80a00000 80000 60000
- Reset the CM-T3x evaluation platform
U-Boot packages
U-Boot packages can be found by the following links: