U-Boot for CM-X300

From Compulab Mediawiki
Revision as of 07:49, 25 June 2009 by Mike (talk | contribs) (1 revision(s))
Jump to: navigation, search

Overview

The CompuLab CM-X300 module is using U-Boot boot-loader for low-level initializations and operating system loading. U-Boot is an open source firmware for wide range of embedded systems (e.g. PowerPC, ARM, MIPS, x86, ColdFire, AVR32, NIOS, etc.). On this page we will discuss only features and use cases related to CompuLab CM-X300 module. For more information on U-Boot, please refer to http://www.denx.de/wiki/U-Boot/WebHome.
The most recent CompuLab U-Boot version for CM-X300 is checked out from v2009.03 of Das U-Boot repository and can be obtained from CompuLab website in binary form. CompuLab U-Boot source will be provided on request.

CM-X300 Firmware Update process

Preliminary

Some basic steps are needed to be taken in order to update the CM-X300 firmware successfully:

  • Make sure to power off the CM-X300 board
  • Connect one end of the supplied serial cable to your module's base board and the other one to your host system
  • Start terminal console application on your host system and configure the following:
    • Set the serial port to one with the attached cable
    • Set baud rate to 38400 bps
    • 8 bit per frame
    • 1 stop bit
    • no parity
    • no flow control
  • Turn the CM-X300 board on
  • Now you should get the U-Boot command prompt in your terminal application
Admolition note.png If you have an operating system installed or U-Boot environment configured for auto boot, you will have to stop the auto boot sequence by pressing any key in your terminal application during the start of the boot process!

U-Boot firmware could be updated either from USB flash drive (with FAT filesystem), or from Network tftp download. Either method is done from U-Boot command line.

USB flash drive

Admolition note.png Please, connect your flash drive directly to the base board of the module! Do not use any USB hubs or other separating equipment!

To update the U-Boot firmware via USB flash drive, follow the instructions precisely!

  • Start the U-Boot USB subsystem and check that your storage device is ready and contains the firmware
    • Type: usb start
    • Type: fatls usb 0 to ensure you have the firmware in place
U-Boot> usb start
(Re)start USB...
USB:   scanning bus for devices... 2 USB Device(s) found
       scanning bus for storage devices... 1 Storage Device(s) found
U-Boot> fatls usb 0
  524288   cm-x300-firmware

1 file(s), 0 dir(s)
  • Load the firmware to memory
    • Type: fatload usb 0 80a00000 <firmware filename>
U-Boot> fatload usb 0 80a00000 cm-x300-firmware
reading cm-x300-firmware

524288 bytes read

Network tftp download

In order to use this update method, you need:

  • TFTP service/server installed on your host system
  • Firmware file should reside in the root directory of TFTP service

To update the U-Boot firmware via tftp download, follow the instructions precisely!

  • Download the firmware to module's memory
    • Type: tftp 80a00000 <firmware filename>
U-Boot> tftp 80a00000 cm-x300-firmware
dm9000 i/o: 0x8000010, id: 0x90000a46
DM9000: running in 16 bit mode
MAC: 00:01:c0:05:20:be
operating at 100M full duplex mode
TFTP from server 10.1.1.13; our IP address is 10.1.1.144
Filename 'cm-x300-firmware'.
Load address: 0x80a00000
Loading: ####################################
done
Bytes transferred = 524288 (80000 hex)
Admolition note.png If you get the "could not establish link" message, check that your ethernet plugs are in place and try again.

Update process

Admolition warning.png DO NOT RESET OR POWER OFF THE MODULE DURING THE UPDATE PROCESS! DOING SO MAY RESULT IN DISABLED MODULE!
  • Flash the firmware to onboard NAND storage
    • Type: nand erase 0 80000
    • Type: nand write 80a00000 0 80000
U-Boot> nand erase 0 80000

NAND erase: device 0 offset 0x0, size 0x80000
Erasing at 0x60000 -- 100% complete.
OK
U-Boot> nand write 80a00000 0 80000

NAND write: device 0 offset 0x0, size 0x80000
 524288 bytes written: OK
  • Now you may reset the board


Admolition important.png In case you use Windows CE and you update U-Boot, you will need to load the ImageUdater after the U-Boot update. There is no need to install the image again. This will update the NAND flash metadata that is crucial for Windows CE.

See also