M-Boot ROM Description
546
SPRUH22I – April 2012 – Revised November 2019
Copyright © 2012–2019, Texas Instruments Incorporated
ROM Code and Peripheral Booting
6.5.7.9
M-Boot ROM: Boot-to-OTP, OTP EntryPoint
The M-Boot ROM user OTP entry point by default is fixed to 0x68082C in OTP. This location is referred to
as M_BOOT_ROM_OTP_ENTRY_POINT in this document. If a user selects boot-to-OTP boot-mode
option using boot mode GPIO pins, then M-Boot ROM branches to location 0x68082C in OTP. User
applications which use this option must have their main() function located at this address or have a branch
to main() at this location. The boot-to-OTP option should be used if a custom boot loader is desired in the
application.
6.5.8 M-Boot ROM Clock Initialization
On this device, PLL is disabled and bypassed by default on power-up or after an external reset. M-Boot
ROM doesn’t enable PLL and keeps it at its default state on power or after an external reset. M-Boot
ROM, however, configures input clocks for both the master subsystem and control subsystem by
modifying the SYSDIVSEL divider and M3SSCLK dividers as below. Please refer to the Clocking section
of the
System Control and Interrupts
chapter for more details on these clock dividers.
Table 6-7. M-Boot ROM Clock Settings
Divider
Default on Power up or on External
reset
M-Boot ROM setting
SYSDIVSEL
Divide by 8
Divide by 1
(PLLSYSCLK = MainOscClock/8)
(PLLSYSCLK = MainOscClock/1)
M3SSDIVSEL
Divide by 4
Divide by 1
(M3SSCLK = PLLSYSCLK/4)
(M3SSCLK = PLLSYSCLK = MainOscClk)
M-Boot ROM modifies the dividers as shown in
for all the reset types that pull external reset
input to reset the master subsystem, except for a debugger reset or software reset. Refer to the Resets
section in the
System Control and Interrupts
chapter for further discussion.
NOTE:
Configuring the above dividers make a master subsystem and control subsystem RUN at the
same frequency which is equal to MAINOSC frequency selected by user. So users should be
aware of this fact while selecting a MAINOSC clock frequency. Remember that PLL is by
passed during normal boot.
6.5.9 M-Boot ROM GPIO Assignments for Each Boot Mode
The table below gives information on the GPIOs used for each boot mode on M-Boot ROM. More details
on the boot mode are provided further in this document.
Table 6-8. M-Boot ROM Boot Mode GPIO Assignments
M-Boot ROM Boot
Mode
Peripheral
Boot Function
Name for pin
Direction
GPIO(s) used
Pin Mux Assignment
Peripheral Mode
Alternate Mode
Core Select
Serial Boot Mode
UART0
UART0_RX
Input
PA0_GPIO0
1
0(default)
Master(default)
UART0_TX
Ouput
PA1_GPIO1
1
0(default)
Master(default)
I2C0
I2C0_CLK
Input
PB2_GPIO10
1
0(default)
Master(default)
I2C_DATA
BI-Directional
PB3_GPIO11
1
0(default)
Master(default)
SSI0
SSI0_CS
Input
PA3_GPIO3
1
0(default)
Master(default)
SSI0_CLK
Input
PA2_GPIO2
1
0(default)
Master(default)
SSI0_TX
Output
PA5_GPIO5
1
0(default)
Master(default)
SSI0_RX
Input
PA4_GPIO4
1
0(default)
Master(default)
Parallel Boot Mode
GPIO (s)
D0
Input
PA0_GPIO0
0(default)
0(default)
Master(default)
D1
Input
PA1_GPIO1
0(default)
0(default)
Master(default)
D2
Input
PA2_GPIO2
0(default)
0(default)
Master(default)
D3
Input
PA3_GPIO3
0(default)
0(default)
Master(default)
D4
Input
PA4_GPIO4
0(default)
0(default)
Master(default)
D5
Input
PA5_GPIO5
0(default)
0(default)
Master(default)