11.1 Boot Modes Overview
11.1.1 Features
SPRUFX7 – July 2008
Boot Modes
The device ARM can boot from either Async EMIF (AEMIF/OneNand) or from ARM ROM, as determined
by the setting of the device configuration pins BTSEL[1:0]. The BTSEL[1:0] pins can define the ROM boot
mode further as well. These ROM boot modes are described in more detail in the following sections.
The boot selection pins (BTSEL[1:0]) determine the ARM boot process. After reset (POR, warm reset, or
max reset), ARM program execution begins in ARM ROM at 0x0000: 8000, except when BTSEL[1:0] = 01,
indicating AEMIF (AEMIF/OneNand) boot. See
for information on the boot selection pins.
DM335’s ARM ROM boot loader (RBL) executes when the BOOTSEL[1:0] pins indicate a condition other
than the normal ARM EMIF boot.
•
If BTSEL[1:0] = 01 - Asynchronous EMIF (AEMIF boot. This mode is handled by hardware control and
does not involve the ROM. In the case of OneNAND, the user is responsible for putting any necessary
boot code in the OneNAND's boot page. This code shall configure the AEMIF module for the
OneNAND device. After the AEMIF module is configured, booting will continue immediately after the
OneNAND’s boot page with the AEMIF module managing pages thereafter.
•
The RBL supports 3 distinct boot modes:
–
BTSEL[1:0] = 00 - ARM NAND Boot
–
BTSEL[1:0] = 10 - ARM MMC/SD Boot
–
BTSEL[1:0] = 11 - ARM UART Boot
•
If NAND boot fails, then MMC/SD mode is tried.
•
If MMC/SD boot fails, then MMC/SD boot is tried again.
•
If UART boot fails, then UART boot is tried again.
•
RBL uses GIO61 to indicate boot status (can use to blink LED):
–
After reset, GIO61 is initially driven low (e.g LED off)
–
If NAND boot fails and then MMC/SD boot fails, then GIO61 shall toggle at 4Hz while MMC/SD
boot is retried.
–
If MMC/SD boot fails, then GIO61 shall toggle at 4Hz while MMC/SD boot is retried.
–
If UART boot fails, then GIO61 shall toggle at 2Hz while UART boot is retried.
–
When boot is successful, just before program control is given to UBL, GIO61 is driven high (e.g.
LED on).
–
DM335 Timer 0 shall be used to accurately toggle GIO61 at 4 Hz and 2 Hz.
•
ARM ROM Boot - NAND Mode
–
No support for a full firmware boot. Instead, copies a second stage user boot loader (UBL) from
NAND flash to ARM internal RAM (AIM) and transfers control to the user-defined UBL.
–
Support for NAND with page sizes up to 2048 bytes.
–
Support for magic number error detection and retry (up to 24 times) when loading UBL.
–
Support for up to 30KB UBL (32KB IRAM - ~2KB for RBL stack).
–
Optional, user-selectable, support for use of DMA and I-cache during RBL execution (i.e.,while
loading UBL)
–
Supports booting from 8-bit NAND devices (16-bit NAND devices are not supported)
–
Supports 4-bit ECC (1-bit ECC is not supported)
SPRUFX7 – July 2008
Boot Modes
149