Init Boot
Initialize device
OBJMODE=1
AMODE = 0
MOM1MAP=1
DP = 0
OVM = 0
SPM= 0
SP = 0x400
Dummy read of
CSM password
locations
Call
SelectBootMode()
Call
ExitBoot()
Bootloader Features
www.ti.com
184
SPRUI07–March 2020
Submit Documentation Feedback
Copyright © 2020, Texas Instruments Incorporated
Boot ROM
After the dummy read of the CSM password locations, the InitBoot routine calls the SelectBootMode
function. This function determines the type of boot mode desired by the state of certain GPIO pins. This
process is described in Section 2.2.13. Once the boot is complete, the SelectBootMode function passes
back the entry point address (EntryAddr) to the InitBoot function. The EntryAddr is the location where code
execution will begin after the bootloader exits. InitBoot then calls the ExitBoot routine that then restores
CPU registers to their reset state and exits to the EntryAddr that was determined by the boot mode.
Figure 2-12. Overview of InitBoot Assembly Function
2.2.13 SelectBootMode Function
To determine the desired boot mode, the SelectBootMode function examines the state of 4 GPIO pins as
shown in Table 2-3.
For a boot mode to be selected, the pins corresponding to the desired boot mode have to be pulled low or
high until the selection process completes. Note that the state of the selection pins is not latched at reset;
they are sampled some cycles later in the SelectBootMode function. The internal pullup resistors are
enabled at reset for the boot mode selection pins. It is still suggested that the boot mode configuration be
made externally to avoid the effect of any noise on these pins.
The SelectBootMode function checks the missing clock detect bit (MCLKSTS) in the PLLSTS register to
determine if the PLL is operating in limp mode. If the PLL is operating in limp mode, the boot mode select
function takes an appropriate action depending on the boot mode selected:
• Boot to flash, OTP, SARAM, I2C-A, SPI-A, XINTF, and the parallel I/O
These modes behave as normal. The user's software must check for missing clock status and take the
appropriate action if the MCLKSTS bit is set.
• SCI-A boot
The SCI bootloader will be called. Depending on the requested baud rate, however, the device may
not be able to autobaud lock. In this case the boot ROM software will loop in the autobaud lock
function indefinitely. Should the SCI-A boot complete, the user's software must check for a missing
clock status and take the appropriate action.
• eCAN-A boot
The eCAN bootloader will not be called. Instead the boot ROM will loop indefinitely.
• McBSP boot
The McBSP loader will not be called. Instead, the boot ROM will loop indefinitely.
NOTE: The SelectBootMode routine disables the watchdog before calling the SCI, I2C, eCAN , SPI,
McBSP , or parallel bootloaders. The bootloaders do not service the watchdog and assume
that it is disabled. Before exiting, the SelectBootMode routine will re-enable the watchdog
and reset its timer.
If a bootloader is not going to be called, then the watchdog is left untouched.
When selecting a boot mode, the pins should be pulled low or high through a weak pulldown or weak pull-
up such that the device can drive them to a new state when required.