Difference between revisions of "CM-T3x: U-Boot: Firmware Overview"

From Compulab Mediawiki
Jump to: navigation, search
 
(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/t3517/html/t3517-cm-datasheet.htm CM-T3517]
+
* [http://compulab.co.il/products/computer-on-modules/cm-t3517/ CM-T3517]
* [http://compulab.co.il/t3530/html/t3530-cm-datasheet.htm CM-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 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.
+
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. 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 {{filename|u-boot.bin}}.
+
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-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.
+
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-T3530: Linux: Booting from MMC/SD card]] for further details.
+
 
 +
{{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
| 640
+
| 512
 
|-
 
|-
| 0x120000
+
| 0x100000
| Reserved  
+
| Splash Screen image  
| 1280
+
| 1408
 
|-
 
|-
 
| 0x260000
 
| 0x260000
Line 58: Line 69:
 
|}
 
|}
  
== Know issues ==
+
== Default MMC/SD card mapping ==
* If U-Boot environment variable {{parameter|bootdelay}} is set to 0 or an invalid value, automatic OS boot cannot be stopped.
+
{| 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

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.


Admolition note.png 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

CM-T3x 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

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

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


Admolition note.png Offset and size of the first partition must match! Otherwise U-Boot can damage files that will overlap with U-Boot environment!
Admolition note.png 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.

See also