Hello,
I used UniFlash, to flash in a DCSM image into a 28397D processor. Here was my associated dcsm.asm and dcsm.cmd
;----------------------------------------------------------------------
; Zone 1
;----------------------------------------------------------------------
.sect "dcsm_otp_z1_linkpointer"
.retain
.long 0x1FFFFFFE
.long 0xFFFFFFFF ;Reserved
.long 0x1FFFFFFE
.long 0xFFFFFFFF ;Reserved
.long 0x1FFFFFFE
.long 0xFFFFFFFF ;Reserved
;; .sect "dcsm_otp_z1_pswdlock"
;; .retain
;; .long 0xFFFFFFFF
;; .long 0xFFFFFFFF ;Reserved
;; .sect "dcsm_otp_z1_crclock"
;; .retain
;; .long 0xFFFFFFFF
;; .long 0xFFFFFFFF ;Reserved
;; .sect "dcsm_otp_z1_bootctrl"
;; .retain
;; .long 0xFFFFFFFF ;Reserved
;; .long 0x55490B5A
.sect "dcsm_zsel_z1"
.retain
.long 0x000000FF ; Z1-EXEONLYRAM
.long 0x00003FFF ; Z1-EXEONLYSECT
.long 0x10005555 ; Z1-GRABRAM
.long 0x05555555 ; Z1-GRABSECT
.long 0x00112233
.long 0x44556677
.long 0x8899aabb
.long 0xccddeeff
MEMORY
{
PAGE 0 : /* Program Memory */
DCSM_OTP_Z1_LINKPOINTER : origin = 0x78000, length = 0x00000C
DCSM_OTP_Z1_PSWDLOCK : origin = 0x78010, length = 0x000004
DCSM_OTP_Z1_CRCLOCK : origin = 0x78014, length = 0x000004
DCSM_OTP_Z1_BOOTCTRL : origin = 0x7801C, length = 0x000004
DCSM_ZSEL_Z1_P0 : origin = 0x78030, length = 0x000010
DCSM_OTP_Z2_LINKPOINTER : origin = 0x78200, length = 0x00000C
DCSM_OTP_Z2_GPREG : origin = 0x7820C, length = 0x000004
DCSM_OTP_Z2_PSWDLOCK : origin = 0x78210, length = 0x000004
DCSM_OTP_Z2_CRCLOCK : origin = 0x78214, length = 0x000004
DCSM_OTP_Z2_BOOTCTRL : origin = 0x7821C, length = 0x000004
DCSM_ZSEL_Z2_P0 : origin = 0x78220, length = 0x000010
}
SECTIONS
{
dcsm_otp_z1_linkpointer : > DCSM_OTP_Z1_LINKPOINTER PAGE = 0
dcsm_otp_z1_pswdlock : > DCSM_OTP_Z1_PSWDLOCK PAGE = 0, type = DSECT
dcsm_otp_z1_crclock : > DCSM_OTP_Z1_CRCLOCK PAGE = 0, type = DSECT
dcsm_otp_z1_bootctrl : > DCSM_OTP_Z1_BOOTCTRL PAGE = 0, type = DSECT
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
dcsm_otp_z2_bootctrl : > DCSM_OTP_Z2_BOOTCTRL PAGE = 0, type = DSECT
dcsm_zsel_z2 : > DCSM_ZSEL_Z2_P0 PAGE = 0, type = DSECT
}
The associated release build .hex file was successfully flashed into the processor, or at leas that is what UniFlash told me. But afterwards, I can no longer unlock the processor, using the designated passwords (00112233, 44556677, 8899aabb, ccddeeff ).
I can see that the link pointer location was changed to 0x78030, as desired, and accomplished by setting the 3 LINK POINTER values to 0x1ffffffe. And it looks like the related Zone Select Block values there are the ones I programmed in. But again, I cannot unlock the processor, using the designated password values.
Please advise,
Robert