CM-A510: U-Boot: Firmware Overview

From Compulab Mediawiki
Jump to: navigation, search

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-3.bin - U-Boot binary.
  • bin-header-sata-cm-a510-3.bin - Binary Header, compatible for boot from SATA drive.
  • u-boot-2009.08-cm-a510-3.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-3.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

See also