CM-T43: U-Boot: Firmware Overview

From Compulab Mediawiki
Jump to: navigation, search


This article describes the firmware for CM-T43 system-on-module. CM-T43 firmware consists of two components: Secondary Program Loader (SPL) and U-Boot. SPL is the bootstrap utility invoked by the CPU internal boot ROM code of the AM437x SoC. The AM437x boot ROM tries to boot SPL from either SD card, or SPI flash, as determined by the hardware boot selector). SPL performs minimal hardware initializations and loads U-Boot from the same boot storage device. U-Boot initializes hardware modules necessary for system boot and loads the operating system.

Package contents


  • cm-t43-firmware - U-Boot and SPL (normal and byteswapped) binaries combined to a single binary
  • MLO - SPL binary
  • u-boot.img - U-Boot binary


  • spl-2016.01-cm-t43-1.bin - SPL binary
  • spl-2016.01-cm-t43-1.bin.byteswap - Byteswapped SPL binary for SPI-flash installation
  • u-boot-2016.01-cm-t43-1.bin - U-Boot binary
  • u-boot-2016.01-cm-t43-1.patch - patch vs. v2016.01 mainline U-Boot
  • patches - ordered collection of patches, that form the single patch above (u-boot-2016.01-cm-t43-1.patch)


SPL is responsible for initial clock setup, DDR initialization and boot media controller initialization. It is loaded into the CPU internal SRAM immediately after system reset. After basic hardware setup, SPL loads the U-Boot bootloader into the system RAM and transfers control to the U-Boot bootloader. SPL resides at offsets 0x0, 0x10000, 0x20000, (a total of 3 copies) from the start of the SPI flash, and at offset 0x80000 from the start of an SD-card.


U-Boot is the bootloader used on CM-T43. It allows flexible selection of operating system boot modes, provides scripting facilities and command line interface through a serial port. U-Boot allows booting operating system from the on-board NAND flash, the on-board eMMC, or the network (TFTP/NFS server). U-Boot resides at offset 0x40000 from the start of the SPI flash, and at offset 0x80000 from the start of an SD-card.

Please consult U-Boot quick reference and U-Boot project documentation for U-Boot features and commands description.

U-Boot environment

U-Boot environment resides on the SPI flash, regardless of the boot source. The environment resides at offset 0xC0000 from the start of SPI flash, and its size is 16KiB.

Boot sources

CM-T43 can boot from either a micro SD card, or the on-board SPI flash.

The following sections describe the layout of each storage type.

Default SPI flash mapping

Offset Description Size
256KB U-Boot 448KB
704KB Reserved 64KB
768KB U-Boot environment 256KB
1MB Splash image Remaining SPI flash space

Default SD card mapping

Offset Description Size
0KB Reserved/MBR 512KB
512KB SPL 64KB
576KB U-Boot 448KB
1MB Remaining SD-card space Remaining SD-card space

See also