Reset Control
90
SPRUH22I – April 2012 – Revised November 2019
Copyright © 2012–2019, Texas Instruments Incorporated
System Control and Interrupts
1.3.2.1.1 Reset Handling in Master System Boot ROM
ROM is mapped to address 0x0000 0000 on the master subsystem; this ROM will be referred to as M-
Boot ROM in this document and all the supporting documents of this device. M-Boot ROM has an
exception vector table with an initial stack pointer address, reset vector, and other exception/interrupt
vectors located starting at 0x0000 0000, which is the default NVIC base address. Refer to the
Cortex-M3
manual for the NVIC exception table location and contents.
Whenever the master subsystem is reset, the Cortex M3 CPU fetches the reset vector address from the
NVIC exception table and starts executing code in M-Boot ROM. This section gives an overview of how M-
Boot ROM handles different reset causes.
Since the Cortex-M3 subsystem on this device is the master subsystem, it is brought out of reset first and
will start executing code in M-Boot ROM while the analog and control subsystem are held under reset. M-
Boot ROM software eventually brings both control and analog subsystems out of reset.
After a reset, the M-Boot ROM looks at the MRESC register to identify the reset cause. The following
sections explain M-Boot ROM actions for each reset cause.
1.3.2.1.2 POR Reset Cause:
•
M-Boot ROM initializes all master subsystem RAM(s) to 0x0000 0000. This will also zero-initialize RAM
ECC and RAM PARITY bits for respective memories. Refer to the
Internal Memory
chapter for more
details on RAM initialization.
•
The PLL is left at its default state and M-Boot ROM modifies SYSDIVSEL to /1 and M3SSDIVSEL to /1
so PLLSYSCLK = M3SSCLK = OSCCLK.
–
Note that this means both the master subsystem and control subsystem are configured to run at the
same frequency on power-up, so users have to be careful of this while selecting an OSCCLK
frequency.
•
Brings control and analog subsystems out of reset.
•
Since a POR reset also causes an XRS reset, M-Boot ROM clears both the POR and XRS bits (bits 1
and 0 respectively) in the MRESC register and continues to boot. All the resets which come out on
XRS as shown in
will set the XRS bit in the MRESC register. M-Boot ROM clears this bit if it
was set, and continues execution as per the boot procedure detailed in the
Boot ROM
chapter.
–
The reason M-Boot ROM clears bit 0 and 1 in the MRESC register for this reset cause is because if
there was a second reset for any other reason after the XRS reset, then boot ROM should not clear
out the RAM contents or reset the clock dividers to default (for example, a debugger reset by the
user while developing code on bench).
1.3.2.1.3 XRS Reset Cause
•
M-Boot ROM will zero-initialize the stack memory needed for boot ROM execution, which is part of C2
RAM (0x2000 4004 - 0x2000 4900).
–
Note that location 0x2000 4000 on C2 RAM is not ZERO-initialized by M-Boot ROM except when a
POR reset occurs because this location contains the boot status of the device for applications to
read and handle different events that might occur during boot. More details on the boot status are
given in the
Boot ROM
chapter.
•
The PLL is left at its default state and M-Boot ROM modifies SYSDIVSEL to /1 and M3SSDIVSEL to /1
so PLLSYSCLK = M3SSCLK = OSCCLK.
–
Note that this means both the master subsystem and control subsystem are configured to run at the
same frequency on power up, so users need to be careful of this while selecting an OSCCLK
frequency.
•
Brings control and analog subsystems out of reset.
•
All the resets which come out on XRS as shown in
will set the XRS bit in the MRESC
register. M-Boot ROM clears this bit if it was set, and continues execution as per the boot procedure
detailed in the
Boot ROM
chapter.
–
The reason for M-Boot ROM to clear bit 0 in the MRESC register for this reset cause is that if there
was a second reset for any other reason after the XRS reset, then boot ROM should not set clock
dividers to default (for example, a debugger reset by the user while developing code on bench).