![background image](http://html.mh-extra.com/html/texas-instruments/tms320dm335/tms320dm335_user-manual_1097123152.webp)
Power on
Run the ROM boot
loader in ROM
Copy the user boot loader
in NAND memory to IRAM
Jump to user boot loader
entry point in IRAM
Copy user MAIN program
in NAND memory to DDR
in DDR
Run MAIN program
ROM boot loader
User boot loader
ARM ROM Boot Modes
www.ti.com
If a valid UBL is not found here, as determined by reading a valid UBL magic number, the next block is
searched. Searching continues for up to 24 blocks. This provision for additional searching is made in case
the first few consecutive blocks have been marked as bad (i.e., they have errors). Searching 24 blocks is
sufficient to handle the errors found in virtually all NAND devices.
When a valid UBL signature is found, the corresponding block number (from 1 to 24) is written to the last
32 bits of ARM internal memory (0x7ffc-0x8000). This feature is provided as a basic debug mechanism.
By reading these 32 bits of memory, via JTAG for example, you can determine in which block the RBL
found a valid UBL signature. If no valid UBL signature is found after searching 24 blocks, the RBL will try
to boot via MMC/SD.
If a valid UBL is found, the UBL descriptor is read and processed. The descriptor gives the information
required for loading and control transfer to the UBL. The UBL is then read and processed. The RBL may
enable any combination of faster EMIF and I-Cache operations based on information in the UBL descriptor
first. Additionally, the descriptor provides information on whether or not DMA should be used during UBL
copying. Once the user-specified start-up conditions are set, the RBL copies the UBL into ARM internal
RAM, starting at address 0x0000: 0020.
Note:
The actual copying is performed on the lower 30KB of the TCM data area: 0x10020 -
0x1781F.
The NAND RBL uses the hardware 4-bit ECC to determine if a read error occurs while reading the UBL
into ARM IRAM. If a 4-bit ECC read error is detected, the UBL will correct the error via the ECC correction
algorithm. If the read fails for any other reason, the copy will immediately halt for that instance on magic
number and then the RBL will continue to search the next block following the block in which the magic
number was found for another instance of a magic number. When another magic number is found, the
process is repeated. Using this retry process, the magic number and UBL can be duplicated up to 24
times, giving significant redundancy and error resilience to NAND read errors.
Figure 11-3. NAND Boot Flow
Boot Modes
152
SPRUFX7 – July 2008