Difference between revisions of "CM-T3x: U-Boot: Firmware Overview"
(→Default MMC/SD card mapping) |
|||
(6 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
== Introduction == | == Introduction == | ||
This article describes firmware for CM-T3x system-on-module product line. The CM-T3x product line includes the following modules: | This article describes firmware for CM-T3x system-on-module product line. The CM-T3x product line includes the following modules: | ||
− | * [http://compulab.co.il/ | + | * [http://compulab.co.il/products/computer-on-modules/cm-t3517/ CM-T3517] |
− | * [http://compulab.co.il/t3530/ | + | * [http://compulab.co.il/products/computer-on-modules/cm-t3530/ CM-T3530] |
+ | * [http://compulab.co.il/products/computer-on-modules/cm-t3730/ CM-T3730] | ||
− | 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 | + | 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 OMAP3x SoC. |
+ | 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 == | ||
Line 14: | Line 16: | ||
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 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 | + | U-Boot resides in the system NAND flash starting from offset 0x80000 or in a file on MMC/SD card. In case an MMC/SD card is used as boot media, U-Boot binary should be present in card's root directory and named {{filename|u-boot.bin}}. |
U-Boot allows booting operating system from the on-board NAND flash, MMC/SD card or from network. | 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 [http://www.denx.de/wiki/U-Boot/Documentation U-Boot project documentation] for U-Boot features and commands description. | Please consult [[U-Boot quick reference]] and [http://www.denx.de/wiki/U-Boot/Documentation U-Boot project documentation] for U-Boot features and commands description. | ||
+ | |||
+ | === U-Boot environment === | ||
+ | U-Boot environment can reside on the NAND flash or on the MMC/SD card. | ||
+ | In case the NAND flash is used, two blocks at offset 0x260000 are used for the U-Boot environment.<br> | ||
+ | In case the MMC/SD card is used, 32 sectors (512 byte) at offset 0x400 are used for the U-Boot environment. | ||
== Boot sources == | == Boot sources == | ||
− | CM- | + | CM-T3730 with on-board NAND flash, CM-T3530 and CM-T3517 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 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. | * 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- | + | |
+ | {{Note|Make sure the E6 jumper is not installed for CM-T3730 with on-board micro SD card.}} | ||
+ | |||
+ | Please refer to [[CM-T3x: Linux: Booting from MMC/SD card]] for further details. | ||
== Default NAND flash mapping == | == Default NAND flash mapping == | ||
Line 39: | Line 50: | ||
| 0x80000 | | 0x80000 | ||
| U-Boot | | U-Boot | ||
− | | | + | | 512 |
|- | |- | ||
− | | | + | | 0x100000 |
− | | | + | | Splash Screen image |
− | | | + | | 1408 |
|- | |- | ||
| 0x260000 | | 0x260000 | ||
Line 58: | Line 69: | ||
|} | |} | ||
− | == | + | == Default MMC/SD card mapping == |
− | + | {| cellpadding="3" border="1" style="border: 1px solid rgb(85, 85, 85); border-collapse: collapse;" | |
+ | |+ CM-T3x MMC/SD card mapping | ||
+ | |- | ||
+ | ! Partition | ||
+ | ! Description | ||
+ | ! Offset (Bytes) | ||
+ | ! Size (Bytes) | ||
+ | |- | ||
+ | | /dev/sdc | ||
+ | | U-Boot environment | ||
+ | | 0x400 | ||
+ | | 0x4000 | ||
+ | |- | ||
+ | | /dev/sdc1 | ||
+ | | Boot | ||
+ | | 0x100000 | ||
+ | | 0x75A2000 | ||
+ | |- | ||
+ | | /dev/sdc2 | ||
+ | | Linux file system | ||
+ | | 0x7700000 | ||
+ | | remaining MMC/SD card space | ||
+ | |} | ||
+ | |||
+ | {{filename|fdisk}} output for the 8GB sample MMC/SD card: | ||
+ | <pre> | ||
+ | Disk /dev/sde: 8035 MB, 8035237888 bytes | ||
+ | 32 heads, 32 sectors/track, 15326 cylinders, total 15693824 sectors | ||
+ | Units = sectors of 1 * 512 = 512 bytes | ||
+ | Sector size (logical/physical): 512 bytes / 512 bytes | ||
+ | I/O size (minimum/optimal): 512 bytes / 512 bytes | ||
+ | Disk identifier: 0x710ab397 | ||
+ | |||
+ | Device Boot Start End Blocks Id System | ||
+ | /dev/sde1 * 2048 242959 120456 c W95 FAT32 (LBA) | ||
+ | /dev/sde2 243712 15693823 7725056 83 Linux | ||
+ | </pre> | ||
+ | |||
+ | {{note|Offset and size of the first partition must match! Otherwise U-Boot can damage files that will overlap with U-Boot environment!}} | ||
+ | {{note|Micro SD card supplied from CompuLab with CM-T3x modules may not have the second partition. In such case the partition can be created with {{cmd|fdisk}} utility.}} | ||
+ | |||
+ | == See also == | ||
+ | * [[U-Boot quick reference]] | ||
+ | * [[U-Boot images]] | ||
+ | * [http://www.denx.de/wiki/U-Boot/Documentation U-Boot documentation] | ||
+ | * [http://processors.wiki.ti.com/index.php/SD/MMC_format_for_OMAP3_boot SD/MMC format for OMAP3 boot] | ||
+ | |||
[[Category:U-Boot|Firmware Overview]] | [[Category:U-Boot|Firmware Overview]] | ||
[[Category:CM-T3517|U-Boot: Firmware Overview]] | [[Category:CM-T3517|U-Boot: Firmware Overview]] | ||
[[Category:CM-T3530|U-Boot: Firmware Overview]] | [[Category:CM-T3530|U-Boot: Firmware Overview]] | ||
+ | [[Category:CM-T3730|U-Boot: Firmware Overview]] |
Latest revision as of 12:19, 11 November 2013
Contents
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 OMAP3x SoC. 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 or in a file on MMC/SD card. 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.
U-Boot environment
U-Boot environment can reside on the NAND flash or on the MMC/SD card.
In case the NAND flash is used, two blocks at offset 0x260000 are used for the U-Boot environment.
In case the MMC/SD card is used, 32 sectors (512 byte) at offset 0x400 are used for the U-Boot environment.
Boot sources
CM-T3730 with on-board NAND flash, CM-T3530 and CM-T3517 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.
Make sure the E6 jumper is not installed for CM-T3730 with on-board micro SD card. |
Please refer to CM-T3x: Linux: Booting from MMC/SD card for further details.
Default NAND flash mapping
Offset | Description | Size (kilobytes) |
---|---|---|
0x0 | X-Loader | 512 |
0x80000 | U-Boot | 512 |
0x100000 | Splash Screen image | 1408 |
0x260000 | U-Boot environment | 256 |
0x2a0000 | Linux kernel | 4096 |
0x6a0000 | Linux filesystem | remaining NAND flash space |
Default MMC/SD card mapping
Partition | Description | Offset (Bytes) | Size (Bytes) |
---|---|---|---|
/dev/sdc | U-Boot environment | 0x400 | 0x4000 |
/dev/sdc1 | Boot | 0x100000 | 0x75A2000 |
/dev/sdc2 | Linux file system | 0x7700000 | remaining MMC/SD card space |
fdisk output for the 8GB sample MMC/SD card:
Disk /dev/sde: 8035 MB, 8035237888 bytes 32 heads, 32 sectors/track, 15326 cylinders, total 15693824 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x710ab397 Device Boot Start End Blocks Id System /dev/sde1 * 2048 242959 120456 c W95 FAT32 (LBA) /dev/sde2 243712 15693823 7725056 83 Linux
Offset and size of the first partition must match! Otherwise U-Boot can damage files that will overlap with U-Boot environment! |
Micro SD card supplied from CompuLab with CM-T3x modules may not have the second partition. In such case the partition can be created with fdisk utility. |