Hello!
I'm trying to configure DCSM module on F28377S device using a LAUNCHXL-F28377S LaunchPad.
I've modified the example blink_with_dcsm_cpu01 in order to blink the LEDs on the board (connected to GPIO12 and GPIO13). I've ran the program on the board before uncommenting the configurations on the .asm file related to the DCSM module, and it was working correclty.
After this I've modified the .cmd and .asm files to configure the code security, as shown below.
On 2837xS_dcsm_lnk.cpu1.cmd file:
dcsm_otp_z1_linkpointer : > DCSM_OTP_Z1_LINKPOINTER PAGE = 0 dcsm_otp_z1_pswdlock : > DCSM_OTP_Z1_PSWDLOCK PAGE = 0 dcsm_otp_z1_crclock : > DCSM_OTP_Z1_CRCLOCK PAGE = 0 dcsm_otp_z1_bootctrl : > DCSM_OTP_Z1_BOOTCTRL PAGE = 0 dcsm_zsel_z1 : > DCSM_ZSEL_Z1_P0 PAGE = 0 dcsm_otp_z2_linkpointer : > DCSM_OTP_Z2_LINKPOINTER PAGE = 0, type = DSECT dcsm_otp_z2_pswdlock : > DCSM_OTP_Z2_PSWDLOCK PAGE = 0, type = DSECT dcsm_otp_z2_crclock : > DCSM_OTP_Z2_CRCLOCK PAGE = 0, type = DSECT dcsm_otp_z2_bootctrl : > DCSM_OTP_Z2_BOOTCTRL PAGE = 0, type = DSECT dcsm_zsel_z2 : > DCSM_ZSEL_Z2_P0 PAGE = 0, type = DSECT
On DCSM_Z1_ZoneSelectBlock.asm file:
.sect "dcsm_otp_z1_linkpointer"
.long 0x1FFFFFFF ;Z1-LINKPOINTER1
.long 0xFFFFFFFF ;Reserved
.long 0x1FFFFFFF ;Z1-LINKPOINTER2
.long 0xFFFFFFFF ;Reserved
.long 0x1FFFFFFF ;Z1-LINKPOINTER3
.long 0xFFFFFFFF ;Reserved
.sect "dcsm_otp_z1_pswdlock"
;;.long 0xFFFFFFFF ;Z1-PSWDLOCK
;;.long 0xFFFFFFFF ;Reserved
.sect "dcsm_otp_z1_crclock"
;;.long 0xFFFFFFFF ;Z1-CRCLOCK
;;.long 0xFFFFFFFF ;Reserved
.sect "dcsm_otp_z1_bootctrl"
.long 0xFFFFFFFF ;Z1-GPREG3
.long 0x00000B5A ;Z1-BOOTCTRL
.sect "dcsm_zsel_z1"
.long 0xFFFFFFFF ;Z1-EXEONLYRAM
.long 0xFFFFFFFF ;Z1-EXEONLYSECT
.long 0x10005555 ;Z1-GRABRAM
.long 0x15555555 ;Z1-GRABSECT
.long 0x33373753 ;Z1-CSMPSWD0 (LSW of 128-bit password)
.long 0x30463238 ;Z1-CSMPSWD1
.long 0x4d533332 ;Z1-CSMPSWD2
.long 0x00000054 ;Z1-CSMPSWD3 (MSW of 128-bit password)
The rest is unmodified.
I've "grabbed" all the Sectors and RAM to the Z1 in order to allow that any code at any section can access any memory address, but is inaccessible to the user.
I can successfully lock and unlock the memory with the "On-Chip Flash" tool. I can also see the values on the DCSM registers and they are the same I've programmed.
The problem is that the program doesn't run anymore. I press the Resume button on the debug view but it stops immediately indicating (Suspended - SW Breakpoint) and I don't have any breakpoint on the code.
Best regads,
Hugo Cunha.