RM0082
BootROM
Doc ID 018672 Rev 1
829/844
38.4 Software
overview
This section describes the BootROM software for SPEAr300.
38.4.1
ARM processor modes
SPEAr BootROM runs in supervisor mode during entire execution.
38.4.2
SoC peripheral interrupts
SPEAr BootROM runs with all interrupts disabled, except in the particular case of
boot/upgrade through USB, in which case it enable the USB interrupt.
38.4.3 Memory
Overview
BootROM in SPEAr is located at 0xFFFF_0000.
Code section starts from 0xFFFF_0000 and ends at 0xFFFF_7FFF. This section contains all
the routines required to boot on SPEAr300.
38.4.4
X-Loader and U-boot Header
typedef struct image_header
{
uint32_t ih_magic; /* Image Header Magic Number */
uint32_t ih_hcrc; /* Image Header CRC Checksum */
uint32_t ih_time; /* Image Creation Timestamp */
uint32_t ih_size; /* Image Data Size */
uint32_t ih_load; /* Data Load Address */
uint32_t ih_ep; /* Entry Point Address */
uint32_t ih_dcrc; /* Image Data CRC Checksum */
uint8_t ih_os; /* Operating System */
uint8_t ih_arch; /* CPU architecture */
uint8_t ih_type; /* Image Type */
uint8_t ih_comp; /* Compression Type */
uint8_t ih_name[IH_NMLEN]; /* Image Name */
} image_header_t;
38.4.5
X-Loader and U-boot authentication
During next section of Boot Flows, X-Loader and U-boot authentication is done by the
following three steps:-