Difference between revisions of "CM-T3x: U-Boot: Firmware Update"
(→See also) |
(→NAND firmware update for CM-T3x) |
||
(3 intermediate revisions by 2 users not shown) | |||
Line 2: | Line 2: | ||
== Introduction == | == Introduction == | ||
− | This article describes firmware update process for CM-T3x system-on-module product line. The CM-T3x product line includes the following modules: | + | CM-T3x Firmware consists of two components: X-Loader and U-Boot. |
− | * [http://compulab.co.il/ | + | This article describes the firmware update process for CM-T3x system-on-module product line. The CM-T3x product line includes the following modules: |
− | * [http://compulab.co.il/t3530/ | + | * [http://compulab.co.il/products/computer-on-modules/cm-t3517/ CM-T3517] |
+ | * [http://compulab.co.il/products/computer-on-modules/cm-t3530/ CM-T3530] | ||
+ | * [http://compulab.co.il/products/computer-on-modules/cm-t3730/ CM-T3730] | ||
== Preliminary setup == | == Preliminary setup == | ||
Line 12: | Line 14: | ||
* Turn on the CM-T3x evaluation system. The U-Boot boot-loader will start and you will get a command prompt. | * Turn on the CM-T3x evaluation system. The U-Boot boot-loader will start and you will get a command prompt. | ||
{{Note|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.}} | {{Note|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.}} | ||
− | CM-T3x firmware can be updated from an MMC/SD card or using network TFTP download. | + | |
+ | == 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 ({{filename|MLO}}) on the MMC/SD card with the newer version. | ||
+ | To update the U-Boot, just replace the U-Boot binary file ({{filename|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. | 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: Firmware Update#CM-T3x_U-Boot_Update|CM-T3x U-Boot Update]] section. | ||
− | CM-T3x | + | === CM-T3x X-Loader Update === |
+ | {{Warning|'''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 ==== |
− | |||
− | === MMC/SD card === | ||
* Copy {{filename|x-load.bin.ift}} from [[CM-T3x:_U-Boot:_Firmware_Update#U-Boot packages|U-Boot package for CM-T3x]] to the root directory of the MMC/SD card. | * Copy {{filename|x-load.bin.ift}} from [[CM-T3x:_U-Boot:_Firmware_Update#U-Boot packages|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. | * Insert the MMC/SD card into the SD socket (P13) on SB-T35. | ||
− | * Start the U-Boot MMC subsystem | + | * Start the U-Boot MMC subsystem: |
+ | On older versions of U-Boot: | ||
<pre> | <pre> | ||
# mmc init | # mmc init | ||
+ | </pre> | ||
+ | On newer versions of U-Boot: | ||
+ | <pre> | ||
+ | # mmc rescan | ||
+ | </pre> | ||
+ | |||
+ | * Check that the storage device is ready and contains the X-Loader binary: | ||
+ | <pre> | ||
# fatls mmc 0 | # fatls mmc 0 | ||
</pre> | </pre> | ||
− | * Load the X-Loader into memory | + | * Load the X-Loader into memory: |
<pre> | <pre> | ||
# fatload mmc 0 80a00000 x-load.bin.ift | # fatload mmc 0 80a00000 x-load.bin.ift | ||
</pre> | </pre> | ||
− | * Proceed to [[CM-T3x: U-Boot: Firmware Update#Flashing X-Loader|Flashing X-Loader]] section | + | * Proceed to the [[CM-T3x: U-Boot: Firmware Update#Flashing X-Loader|Flashing X-Loader]] section |
− | === TFTP download === | + | ==== USB storage ==== |
+ | * Copy {{filename|x-load.bin.ift}} from [[CM-T3x:_U-Boot:_Firmware_Update#U-Boot packages|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: | ||
+ | <pre> | ||
+ | # usb start | ||
+ | </pre> | ||
+ | * Check that the storage device is ready and contains the X-Loader binary: | ||
+ | <pre> | ||
+ | # fatls usb 0 | ||
+ | </pre> | ||
+ | * Load the X-Loader into memory: | ||
+ | <pre> | ||
+ | # fatload usb 0 80a00000 x-load.bin.ift | ||
+ | </pre> | ||
+ | * Proceed to the [[CM-T3x: U-Boot: Firmware Update#Flashing X-Loader|Flashing X-Loader]] section | ||
+ | |||
+ | ==== TFTP download ==== | ||
* Setup TFTP server | * Setup TFTP server | ||
* Put the X-Loader binary in the root directory of TFTP server | * Put the X-Loader binary in the root directory of TFTP server | ||
* Setup U-Boot networking: | * Setup U-Boot networking: | ||
+ | : for dynamic IP configuration: | ||
<pre> | <pre> | ||
# dhcp | # dhcp | ||
</pre> | </pre> | ||
− | : for | + | : or for static IP configuration: |
<pre> | <pre> | ||
# setenv ipaddr <ip address> | # setenv ipaddr <ip address> | ||
# setenv serverip <server ip> | # setenv serverip <server ip> | ||
</pre> | </pre> | ||
− | + | * Download the X-Loader to the CM-T3x RAM: | |
− | * Download the X-Loader to the CM-T3x RAM | ||
<pre> | <pre> | ||
# tftp 80a00000 x-load.bin.ift | # tftp 80a00000 x-load.bin.ift | ||
Line 52: | Line 89: | ||
* Proceed to [[CM-T3x:_U-Boot:_Firmware_Update#Flashing X-Loader|Flashing X-Loader]] section | * Proceed to [[CM-T3x:_U-Boot:_Firmware_Update#Flashing X-Loader|Flashing X-Loader]] section | ||
− | === Flashing X-Loader === | + | ==== Flashing X-Loader ==== |
{{Warning| Do not reset or power off the CM-T3x during the update process! Doing so may result in nand flash corruption!}} | {{Warning| 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: |
<pre> | <pre> | ||
# nandecc hw | # nandecc hw | ||
+ | </pre> | ||
+ | * Erase the on-board NAND flash: | ||
+ | On older versions of U-Boot (Note that the below command will erase the whole NAND flash data): | ||
+ | <pre> | ||
# nand erase | # nand erase | ||
# nand scrub | # nand scrub | ||
+ | </pre> | ||
+ | On newer versions of U-Boot: | ||
+ | <pre> | ||
+ | # nand erase 0 20000 | ||
+ | # nand scrub 0 20000 | ||
+ | </pre> | ||
+ | * Write the X-Loader image into the on-board NAND flash: | ||
+ | <pre> | ||
# nand write 80a00000 0 20000; | # nand write 80a00000 0 20000; | ||
</pre> | </pre> | ||
− | {{Important| | + | {{Important|On older U-Boot versions it is essential to install U-Boot immediately after X-Loader update}} |
− | == CM-T3x U-Boot Update == | + | === CM-T3x U-Boot Update === |
− | === MMC/SD card === | + | |
+ | ==== MMC/SD card ==== | ||
* Copy {{filename|u-boot.bin}} from [[CM-T3x:_U-Boot:_Firmware_Update#U-Boot packages|U-Boot package for CM-T3x]] to the root directory of the MMC/SD card. | * Copy {{filename|u-boot.bin}} from [[CM-T3x:_U-Boot:_Firmware_Update#U-Boot packages|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. | + | * Insert the MMC/SD card into the SD socket (P13) on SB-T35. |
− | * Start the U-Boot MMC subsystem and | + | * Start the U-Boot MMC subsystem and scan for available storage devices: |
+ | : On older U-Boot versions: | ||
<pre> | <pre> | ||
# mmc init | # mmc init | ||
+ | </pre> | ||
+ | : On newer U-Boot versions: | ||
+ | <pre> | ||
+ | # mmc rescan | ||
+ | </pre> | ||
+ | * Check that your storage device is ready and contains the U-Boot binary: | ||
+ | <pre> | ||
# fatls mmc 0 | # fatls mmc 0 | ||
</pre> | </pre> | ||
− | * Load the U-Boot into the CM-T3x RAM | + | * Load the U-Boot into the CM-T3x RAM: |
<pre> | <pre> | ||
# fatload mmc 0 80a00000 u-boot.bin | # fatload mmc 0 80a00000 u-boot.bin | ||
Line 79: | Line 137: | ||
* Proceed to [[CM-T3x:_U-Boot:_Firmware_Update#Flashing U-Boot|Flashing U-Boot]] section | * Proceed to [[CM-T3x:_U-Boot:_Firmware_Update#Flashing U-Boot|Flashing U-Boot]] section | ||
− | === TFTP download === | + | ==== USB storage ==== |
+ | * Copy {{filename|u-boot.bin}} from [[CM-T3x:_U-Boot:_Firmware_Update#U-Boot packages|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: | ||
+ | <pre> | ||
+ | # usb start | ||
+ | </pre> | ||
+ | * Check that your storage device is ready and contains the U-Boot binary: | ||
+ | <pre> | ||
+ | # fatls usb 0 | ||
+ | </pre> | ||
+ | * Load the U-Boot into the CM-T3x RAM: | ||
+ | <pre> | ||
+ | # fatload usb 0 80a00000 u-boot.bin | ||
+ | </pre> | ||
+ | * Proceed to [[CM-T3x:_U-Boot:_Firmware_Update#Flashing U-Boot|Flashing U-Boot]] section | ||
+ | |||
+ | ==== TFTP download ==== | ||
* Setup TFTP server | * Setup TFTP server | ||
* Put the U-Boot binary in the root directory of TFTP server | * Put the U-Boot binary in the root directory of TFTP server | ||
* Setup U-Boot networking: | * Setup U-Boot networking: | ||
+ | : for dynamic IP configuration: | ||
<pre> | <pre> | ||
# dhcp | # dhcp | ||
</pre> | </pre> | ||
− | : for | + | : or for static IP configuration: |
<pre> | <pre> | ||
# setenv ipaddr <ip address> | # setenv ipaddr <ip address> | ||
# setenv serverip <server ip> | # setenv serverip <server ip> | ||
</pre> | </pre> | ||
− | + | * Download the U-Boot to the CM-T3x RAM: | |
− | * Download the U-Boot to the CM-T3x RAM | ||
<pre> | <pre> | ||
# tftp 80a00000 u-boot.bin | # tftp 80a00000 u-boot.bin | ||
Line 98: | Line 173: | ||
* Proceed to [[CM-T3x: U-Boot: Firmware Update#Flashing U-Boot|Flashing U-Boot]] section | * Proceed to [[CM-T3x: U-Boot: Firmware Update#Flashing U-Boot|Flashing U-Boot]] section | ||
− | === Flashing U-Boot === | + | ==== Flashing U-Boot ==== |
{{Warning| Do not reset or power off the CM-T3x during the update process! Doing so may result in nand flash corruption!}} | {{Warning| 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: | * Flash the U-Boot onto the on-board NAND flash: | ||
Line 109: | Line 184: | ||
== U-Boot packages == | == U-Boot packages == | ||
− | * [http:// | + | U-Boot packages can be found by the following links: |
− | * [http:// | + | * [http://compulab.co.il/products/computer-on-modules/cm-t3517/#devres CM-T3517 development resources] |
+ | * [http://compulab.co.il/products/computer-on-modules/cm-t3530/#devres CM-T3530 development resources] | ||
+ | * [http://compulab.co.il/products/computer-on-modules/cm-t3730/#devres CM-T3730 development resources] | ||
== See also == | == See also == |
Latest revision as of 14:15, 29 June 2014
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: