CM-A510: U-Boot: Firmware Overview
Contents
Introduction
This article describes the firmware for CM-A510 system-on-module. The CompuLab CM-A510 System-on-Module / Computer-on-Module firmware consists of two components: Binary Header and U-Boot. Binary Header is the bootstrap code invoked by the CPU internal boot ROM code of the 88AP510 SoC. The 88AP510 boot ROM tries to boot Binary Header from either SATA drive, or SPI flash, as determined by the hardware boot selector (BOOT SELECT button). Binary Header performs DRAM initialization. U-Boot initializes hardware modules necessary for system boot and loads the operating system.
Package contents
images
- cm-a510-firmware - U-Boot and Binary Header combined to a single binary, compatible for boot from SPI flash.
u-boot
- u-boot-2009.08-cm-a510-2.bin - U-Boot binary.
- bin-header-sata-cm-a510-2.bin - Binary Header, compatible for boot from SATA drive.
- u-boot-2009.08-cm-a510-2.patch - patch vs. v2009.08 mainline U-Boot
- patches - ordered collection of patches, that form the single patch above (u-boot-2009.08-cm-a510-2.patch)
Binary Header
Binary Header is responsible for DDR initialization. It is loaded into the CPU internal SRAM immediately after system reset.
U-Boot
U-Boot is the bootloader used on CM-A510. 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 or the network (TFTP/NFS server).
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 64KB.
Boot sources
CM-A510 can boot from either a SATA drive, or the on-board SPI flash.
The following sections describe the layout of each storage type.
Default SPI flash mapping
Offset | Description | Size |
---|---|---|
0KB | Binary Header and U-Boot combined to a single binary | 768KB |
768KB | U-Boot environment | 64KB |
832KB | Reserved | Remaining SPI flash space |
Default SATA drive mapping
Offset | Description | Size |
---|---|---|
0KB | Reserved/MBR | 512Byte |
512Byte | Binary Header | 32KB |
32KB | U-Boot | 992KB |
1MB | Reserved | 1MB |
2MB | Remaining SATA drive space | Remaining SATA drive space |
fdisk output for the 250GB sample bootable SATA drive:
Disk /dev/sdg: 250.1 GB, 250059350016 bytes 81 heads, 63 sectors/track, 95707 cylinders, total 488397168 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: 0x6a86f067 Device Boot Start End Blocks Id System /dev/sdg1 2048 488397167 244197560 83 Linux