On this device, M0/M1 and GSx memories are not
secure. To avoid any potential hacking when the device is in the default state (post
reset), accesses (all types) to all memories (secure as well as non-secure, except
BOOT-ROM and OTP) are disabled until proper security initialization is done. This
means that after reset none of the memory resources except BOOT_ROM and OTP is
accessible to the user.
The following steps are required after reset (any type of reset) to initialize the security on each CPU subsystem.
Security Initialization
- Dummy Read to address location of B0_Z1OTP_LINKPOINTER1 in Z1 OTP of Bank0
- Dummy Read to address location of B0_Z1OTP_LINKPOINTER2 in Z1 OTP of Bank0
- Dummy Read to address location of B0_Z1OTP_LINKPOINTER3 in Z1 OTP of Bank0
- Dummy Read to address location of B0_Z2OTP_LINKPOINTER1 in Z2 OTP of Bank0
- Dummy Read to address location of B0_Z2OTP_LINKPOINTER2 in Z2 OTP of Bank0
- Dummy Read to address location of B0_Z2OTP_LINKPOINTER3 in Z2 OTP of Bank0
- Dummy Read to address location of B1_Z1OTP_LINKPOINTER1 in Z1 OTP of Bank1
- Dummy Read to address location of B1_Z1OTP_LINKPOINTER2 in Z1 OTP of Bank1
- Dummy Read to address location of B1_Z1OTP_LINKPOINTER3 in Z1 OTP of Bank1
- Dummy Read to address location of B1_Z2OTP_LINKPOINTER1 in Z2 OTP of Bank1
- Dummy Read to address location of B1_Z2OTP_LINKPOINTER2 in Z2 OTP of Bank1
- Dummy Read to address location of B1_Z2OTP_LINKPOINTER3 in Z2 OTP of Bank1
- Dummy Read to address location of SECDC (0x703F0, TI-reserved register) in TI 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 Z1-JTAGLOCK in Z1
OTP
- Dummy Read to address location of Z1OTP_GPREG1, Z1OTP_GPREG2, Z1OTP_GPREG3 in Z1 OTP of Bank0
- Dummy Read to address location of Z1OTP_BOOTCTRL in Z1 OTP
- Dummy Read to address location of Z2OTP_PSWDLOCK in Z2 OTP of Bank0
- Dummy Read to address location of Z2OTP_CRCLOCK in Z2 OTP of Bank0
- Dummy Read to address location of Z2-JTAGLOCK in Z2
OTP of Bank0
- Read to memory-map register of B0_Z1_LINKPOINTER in
DCSM module to calculate the address of zone select block for Z1
- Dummy read to address location of Z1OTP_EXEONLYRAM in Z1 OTP of Bank0
- Dummy read to address location of B0_Z1OTP_EXEONLYSECT in Z1 OTP of Bank0
- Dummy read to address location of Z1OTP_GRABRAM in Z1 OTP of Bank0
- Dummy read to address location of B0_Z1OTP_GRABSECT in Z1 OTP of Bank0
- Read to memory-map register of B0_Z2_LINKPOINTER in
DCSM module to calculate the address of zone select block for Z2
- Dummy read to address location of Z2OTP_EXEONLYRAM in Z2 OTP of Bank0
- Dummy read to address location of B0_Z2OTP_EXEONLYSECT in Z2 OTP of Bank0
- Dummy read to address location of Z2OTP_GRABRAM in Z2 OTP of Bank0
- Dummy read to address location of B0_Z2OTP_GRABSECT in Z2 OTP of Bank0
- Read to memory-map register of B1_Z1_LINKPOINTER in
DCSM module to calculate the address of zone select block for Z1
- Dummy read to address location of B1_Z1OTP_EXEONLYSECT in Z1 OTP of Bank1
- Dummy read to address location of B1_Z1OTP_GRABSECT in Z1 OTP of Bank1
- Read to memory-map register of B1_Z2_LINKPOINTER in
DCSM module to calculate the address of zone select block for Z2
- Dummy read to address location of B1_Z2OTP_EXEONLYSECT in Z2 OTP of Bank1
- Dummy read to address location of B1_Z2OTP_GRABSECT in Z2 OTP of Bank1
CAUTION: Security Initialization is done
by BOOTROM code on all the resets (as part of device initialization). This is not be
part 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 (CCS IDE), the security initialization can
occur in an incorrect order, locking the device down. To avoid this, do not keep
a memory window with the USER OTP address opened in the debugger (CCS IDE) when
performing a reset.