Part Number: TMS320F2800155-Q1
Issue Description: After configuring Secure Boot, flashing the .out file followed by the .hex file, the program fails to execute. Detailed Secure Boot configuration can be found in the attached dcsm.asm file. The hex utility interface is configured as follows:
boot_ex1_user_cmac_key.txt

boot_ex1_flash_hex_lnk_cpu1.cmd

The following is the OTP configuration diagram.
First, I performed the operation to configure dual-pin boot, using GPIO24 and GPIO32. The pin state was 11, corresponding to the boot of the secure flash memory.

Here are my key values.

I subsequently configured Zone2 and attempted to start with pin 0. The configuration is shown in the figure.

Also attached is the CAMC value configuration:

The corresponding camc value for hex is

;----------------------------------------------------------------------
; Zone 1
;----------------------------------------------------------------------
.sect "dcsm_otp_z1_linkpointer"
.retain
.long 0x00003FE0
.long 0x00003FE0
.long 0x00003FE0
.sect "dcsm_otp_z1_jlm_enable"
.retain
.long 0xFFFF000F ;Z1OTP_JLM_ENABLE
;; .sect "dcsm_otp_z1_jtag_pswdh"
;; .retain
;; .long 0x4BFFFFFF ;Z1OTP_JTAGPSWDH0
;; .long 0x3FFFFFFF ;Z1OTP_JTAGPSWDH1
.sect "dcsm_otp_z1_cmac_key"
.retain
.long 0xFFFFFFFF ;Z1OTP_CMACKEY0
.long 0xFFFFFFFF ;Z1OTP_CMACKEY1
.long 0xFFFFFFFF ;Z1OTP_CMACKEY2
.long 0xFFFFFFFF ;Z1OTP_CMACKEY3
.sect "dcsm_otp_z1_pswdlock"
.retain
.long 0xFB7FFFFF
.sect "dcsm_otp_z1_crclock"
.retain
.long 0x7FFFFFFF
.sect "dcsm_otp_z1_gpreg"
.retain
.long 0x5AFF1820 ;Z1OTP_GPREG1 = Z1_BOOTPIN
.long 0x5Affffff ;Z1OTP_GPREG2
.long 0x0A24040A ;Z1OTP_GPREG3 = Z1OTP_BOOTDEF_LOW
.long 0xFFFFFFFF ;Z1OTP_GPREG4 = Z1OTP_BOOTDEF_HIGH
.sect "dcsm_zsel_z1"
.retain
.long 0x12345678 ;Z1OTP_CSMPSWD0 (LSW of 128-bit password)
.long 0x17fFFFFF ;Z1OTP_CSMPSWD1
.long 0x12345678 ;Z1OTP_CSMPSWD2
.long 0x12345678 ;Z1OTP_CSMPSWD3 (MSW of 128-bit password)
.long 0x55555555 ;Z1OTP_GRABSECT1
.long 0x55555555 ;Z1OTP_GRABSECT2
.long 0x55555500 ;Z1OTP_GRABSECT3
.long 0x0000AAAA ;Z1OTP_GRABRAM1
.long 0xFFFFFFFF ;Reserved
.long 0xFFFFFFFF ;Reserved
.long 0xFFFE0000 ;Z1OTP_EXEONLYSECT1
.long 0x0000FFF0 ;Z1OTP_EXEONLYSECT2
.long 0x000000FF ;Z1OTP_EXEONLYRAM1
.long 0xFFFFFFFF ;Reserved
.long 0x12345678 ;Z1OTP_JTAGPSWDL0
.long 0x6f7fffff ;Z1OTP_JTAGPSWDL1
;----------------------------------------------------------------------
; For code security operation,after development has completed, prior to
; production, all other zone select block locations should be programmed
; to 0x0000 for maximum security.
; If the first zone select block at offset 0x10 is used, the section
; "dcsm_rsvd_z1" can be used to program these locations to 0x0000.
; This code is commented out for development.
; .sect "dcsm_rsvd_z1"
; .loop (1e0h)
; .int 0x0000
; .endloop
;----------------------------------------------------------------------
; Zone 2
;----------------------------------------------------------------------
.sect "dcsm_otp_z2_linkpointer"
.retain
.long 0x00003FE0
.long 0x00003FE0
.long 0x00003FE0
.sect "dcsm_rsvd_z2"
.retain
.long 0xFFFFFFFF ;Reserved
.sect "dcsm_otp_z2_pswdlock"
.retain
.long 0x1F7FFFFF
.sect "dcsm_otp_z2_crclock"
.retain
.long 0x3FFFFFFF
.sect "dcsm_otp_z2_gpreg"
.retain
.long 0x5AFFFFFF ;Z2OTP_GPREG1 = Z2_BOOTPIN
.long 0x5AFFFFFF ;Z2OTP_GPREG2
.long 0xFFFFFF0A ;Z2OTP_GPREG3 = Z2OTP_BOOTDEF_LOW
.long 0xFFFFFFFF ;Z2OTP_GPREG4 = Z2OTP_BOOTDEF_HIGH
.sect "dcsm_rsvd1_z2"
.retain
.long 0xFFFFFFFF ;Reserved
.long 0xFFFFFFFF ;Reserved
.sect "dcsm_zsel_z2"
.retain
.long 0x12345678 ;Z2OTP_CSMPSWD0 (LSW of 128-bit password)
.long 0x5bfFFFFF ;Z2OTP_CSMPSWD1
.long 0x12345678 ;Z2OTP_CSMPSWD2
.long 0x12345678 ;Z2OTP_CSMPSWD3 (MSW of 128-bit password)
.long 0xAAAAAAAA ;Z2OTP_GRABSECT1
.long 0xAAAAAAAA ;Z2OTP_GRABSECT2
.long 0xAAAAAA00 ;Z2OTP_GRABSECT3
.long 0x0000AAAA ;Z2OTP_GRABRAM1
.long 0xFFFFFFFF ;Reserved
.long 0xFFFFFFFF ;Reserved
.long 0xFFFFFFFF ;Z2OTP_EXEONLYSECT1
.long 0x0000FFF0 ;Z2OTP_EXEONLYSECT2
.long 0x000000FF ;Z2OTP_EXEONLYRAM1
.long 0xFFFFFFFF ;Reserved
.long 0xFFFFFFFF ;Reserved
.long 0xFFFFFFFF ;Reserved
;----------------------------------------------------------------------
; For code security operation,after development has completed, prior to
; production, all other zone select block locations should be programmed
; to 0x0000 for maximum security.
; If the first zone select block at offset 0x10 is used, the section
; "dcsm_rsvd_z2" can be used to program these locations to 0x0000.
; This code is commented out for development.
; .sect "dcsm_rsvd_z2"
; .loop (1e0h)
; .int 0x0000
; .endloop
;----------------------------------------------------------------------
; End of file
;----------------------------------------------------------------------








