www.ti.com
Data
Syndrome
Data
Syndrome
Data
Syndrome
Data
Syndrome
1 Page
(2048+64
byte)
512+16
byte
512+16
byte
512+16
byte
512+16
byte
11.2.1.1 NAND Boot Detailed Flow
ARM ROM Boot Modes
Figure 11-5. 4-Bit ECC Format for 2048+64 Byte Page Size
An overview of the NAND Boot process is shown in the flow chart in
and exemplified in
. The following steps describe the NAND Boot process:
•
Initialize the stack in the upper ~2K of RAM1 (RAM1 ' 0x4000-0x7FFF). Do not use the last 32-bits of
IRAM (0x7ffc-0x8000) for stack, because these will be written with valid block number.
•
Disable all interrupts, IRQ and FIQ
•
Read the FASTBOOT bit in the BOOTCFG register in the System Module to determine if a normal boot
or a fastboot is required. This section describes the normal NAND boot mode, for information on Fast
Boot from NAND, refer to the section titled “Fast NAND Boot”. The external pin DEEPSLEEPZ/GIO0
must be driven high during chip reset for normal NAND boot, otherwise driven low during chip reset for
Fast Boot.
•
Read the device Id of NAND and get the parameters for NAND from a table in ROM.
•
Initialize the NAND region according to the parameters for the NAND flash (see Table 3)
•
Search for the User Boot-Loader magic number in the blocks after CIS/IDI page (CIS/IDI is generally
block 0, page 0). See
. Magic number is detected based on reading 0xA1ACEDxx in the
first 32-bits of page 0 in a block. Only Page 0 of blocks 1 to 24 will be read and searched for the magic
number. The magic number for all blocks will be read to ascertain that the block is not an invalid block.
For debug purposes, when a valid UBL magic number is found, the corresponding block number (from
1 to 24) shall be written to the last 32 bits of ARM internal memory (0x7ffc-0x8000). The UBL
Descriptor provides the necessary details of the user boot-loader. See Table 1 and Table 2 for details
of the UBL Descriptor. The UBL Descriptor consists of the following parameters (all UBL parameters
are 32-bits wide):
–
Entry Point Address: absolute entry point AFTER loading UBL
•
Must be in range 0x0020 - 0x781C
–
Number of NAND pages in UBL:
•
Must be contiguous pages
156
Boot Modes
SPRUFB3 – September 2007