On this device, certain memories are
not secured by the DCSM. To avoid any potential security risks when the device is in
the default state post-reset, all types of accesses to every secure and unsecure
memory location (except the Boot ROM and OTP) are disabled until the proper security
initialization procedure is completed by the Boot ROM.
This means that after reset, none of the memory resources except the Boot ROM and
OTP are accessible to the user until security initialization is
complete.
Note: Security initialization is done by
the Boot ROM code for all resets (as part of device initialization) that assert
SYSRSn. This does not need to be a part of of user application code.
The order of initialization matters;
hence, if a memory watch window with the USER OTP address is opened in the debugger
(with the CCS IDE), the security initialization can occur in an improper order,
consequently locking the device down. To avoid this, do not keep a memory window
with USER OTP address opened in the debugger when performing a reset.
The following steps are required by
CPU after any type of reset to initialize the security on device.
Security Initialization:
- Dummy read to address location of
SECDC (0x703F0, TI-reserved register) in TI OTP
- Dummy read to address location of
Z1OTP_LINKPOINTER1 in Z1 OTP
- Dummy read to address location of
Z1OTP_LINKPOINTER2 in Z1 OTP
- Dummy read to address location of
Z1OTP_LINKPOINTER3 in Z1 OTP
- Dummy read to address location of
Z2OTP_LINKPOINTER1 in Z2 OTP
- Dummy read to address location of
Z2OTP_LINKPOINTER2 in Z2 OTP
- Dummy read to address location of
Z2OTP_LINKPOINTER3 in Z2 OTP
- Dummy read to address location
Z1OTP_JLM_ENABLE in Z1 OTP
- Dummy read to address location of
Z1OTP_GPREG1, Z1OTP_GPREG2, Z1OTP_GPREG3, Z1OTP_GPREG4 in Z1 OTP
- Dummy read to address location of
Z1OTP_PSWDLOCK in Z1 OTP
- Dummy read to address location of
Z1OTP_CRCLOCK in Z1 OTP
- Dummy read to address location of
Z1OTP_JTAGPSWDH0, Z1OTP_JTAGPSWDH1 in Z1 OTP
- Dummy read to address location of
Z2OTP_GPREG1, Z2OTP_GPREG2, Z2OTP_GPREG3, Z2OTP_GPREG4 in Z2 OTP
- Dummy read to address location of
Z2OTP_PSWDLOCK in Z2 OTP
- Dummy read to address location of
Z2OTP_CRCLOCK in Z2 OTP
- Read to memory map register of
Z1_LINKPOINTER in DCSM module to calculate the address of zone select block for
Z1
- Dummy read to address location of
Z1OTP_GRABSECT1, Z1OTP_GRABSECT2, Z1OTP_GRABSECT3 in Z1 OTP
- Dummy read to address location of
Z1OTP_GRABRAM1
- Dummy read to address location of
Z1OTP_EXEONLYSECT1, Z1OTP_EXEONLYSECT2 in Z1 OTP
- Dummy read to address location of
Z1OTP_EXEONLYRAM1 in Z1 OTP
- Dummy read to address location of
Z1OTP_JTAGPSWDL0, Z1OTP_JTAGPSWDL1 in Z1 OTP
- Read to memory map register of
Z2_LINKPOINTER in DCSM module to calculate the address of zone select block for
Z2
- Dummy read to address location of
Z2OTP_GRABSECT1, Z2OTP_GRABSECT2, Z2OTP_GRABSECT3 in Z2 OTP
- Dummy read to address location of
Z2OTP_GRABRAM1
- Dummy read to address location of
Z2OTP_EXEONLYSECT1, Z2OTP_EXEONLYSECT2 in Z2 OTP
- Dummy read to address location of
Z2OTP_EXEONLYRAM1 in Z2 OTP