CM-T3x: U-Boot: Firmware Overview

From Compulab Mediawiki
Revision as of 09:34, 16 December 2010 by Mike (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Introduction

This article describes firmware 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. X-Loader is the bootstrap utility invoked by the boot ROM code of the CPU. X-Loader performs minimal hardware initialization and loads stage two bootloader, namely U-Boot. U-Boot initializes hardware modules necessary for system boot and loads the operating system.

X-Loader

X-Loader resides in the first erase block of the system NAND flash or in a file on MMC/SD card. It is loaded into the CPU internal SRAM immediately after system reset. The CPU internal boot ROM determines what storage media to use in accordance with BOOT_SOURCE signal value (pin 65 of connector P1 on CM-T3x). SB-T35 allows easy switch between NAND and MMC/SD boot.

X-Loader is responsible for initial clock setup, DDR initialization and boot media controller initialization. After basic hardware setup X-Loader loads U-Boot bootloader into the system RAM and transfers control to the U-Boot bootloader.

U-Boot

U-Boot is the stage two bootloader used on CM-T3x. It allows flexible selection of operating system boot modes, provides scripting facilities and command line interface through serial port.

U-Boot resides in the system NAND flash starting from offset 0x80000. In addition, two blocks at offset 0x260000 are used by the U-Boot environment. In case an MMC/SD card is used as boot media, U-Boot binary should be present in card's root directory and named u-boot.bin.

U-Boot allows booting operating system from the on-board NAND flash, MMC/SD card or from network. Please consult U-Boot quick reference and U-Boot project documentation for U-Boot features and commands description.

Boot sources

CM-T3x can boot either from on-board NAND flash or from MMC/SD card. The boot source can be selected using jumper E6 or button SW1 on SB-T35.

  • To boot the system from the on-board NAND flash make sure that jumper E6 is not present.
  • To boot the system from the MMC/SD card install jumper E6 before power-on or hold button SW1 during system startup.

Please refer to CM-T3530: Linux: Booting from MMC/SD card for further details.

Default NAND flash mapping

CM-T3x NAND flash mapping
Offset Description Size (kilobytes)
0x0 X-Loader 512
0x80000 U-Boot 640
0x120000 Reserved 1280
0x260000 U-Boot environment 256
0x2a0000 Linux kernel 4096
0x6a0000 Linux filesystem remaining NAND flash space

Know issues

  • If U-Boot environment variable bootdelay is set to 0 or an invalid value, automatic OS boot cannot be stopped.