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
www.ti.com
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 ' 0x7800-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
•
The external pin DEEPSLEEPZ/GIO0 must be driven high during chip reset in order for NAND boot
mode to work.
•
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
•
May span multiple blocks
•
Total bytes must be less than or equal to 30KByte total (size of IRAM - ~2KB stack space)
–
Starting Block of UBL:
SPRUFX7 – July 2008
Boot Modes
155