This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

TMS320F280025C: Error during flash programming after configuring DCSM Boot pin and Boot Def

Part Number: TMS320F280025C
Other Parts Discussed in Thread: UNIFLASH, SYSCONFIG

Hi,

I'm trying to configure boot settings by modifying number of boot pins using the syscfg. I'm not modifying anything else other than changing the Number of boot pins and Boot Def0 & Boot Def1. The rest of the options are set as is but when I tried to flash the program I received the following error message on the console

This is the setup in the dcsm syscfg:

I tried pulling the memory data using the uniflash and this is what I see:

Please let me know what is it that I'm missing here.

Thank you

  • It says that at address 0x78010 it's trying to program 0xA004. Is that correct data ? If you only want to configure BOOT setting then you should not enable other sections for configuration. Can you attach your dcsm.asm and dcsm.cmd file which is generated from syscfg.

    Regards,

    Vivek Singh

  • Hi Vivek,

    Im not trying to program 0xA004 to 0x78010. Attaching the dcsm.asm and dcsm.cmd files.

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    ;----------------------------------------------------------------------
    ; Zone 1
    ;----------------------------------------------------------------------
    .sect "dcsm_otp_z1_linkpointer"
    .retain
    .long 0x1FFFFFFF
    .long 0xFFFFFFFF ;Reserved
    .long 0x1FFFFFFF
    .long 0xFFFFFFFF ;Reserved
    .long 0x1FFFFFFF
    .long 0xFFFFFFFF ;Reserved
    .sect "dcsm_otp_z1_pswdlock"
    .retain
    .long 0xFB7FFFFF
    .long 0x7FFFFFFF ;Reserved
    .sect "dcsm_otp_z1_crclock"
    .retain
    .long 0x4BFFFFFF
    .long 0x3FFFFFFF ;Reserved
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    /* this linker command file is to be included if user wants to use the DCSM feature on the device
    * DCSM means Dual Zone Code Security Module.
    * This linker command file works as an addendum ot the already existing Flash/RAM linker command file
    * that the project has.
    * The sections in the *_ZoneSelectBlock.asm source file is linked as per the commands given in the file
    * NOTE - please note fill=0xFFFF, this helps if users include this file in the project by mistake and
    * doesn't provide the needed proper *_ZoneSelectBlock.asm sources .
    * Please refer to the Blinky DCSM example in the controlsuite examples for proper usage of this.
    *
    * Once users are confident that they want to program the passwords in OTP, the DSECT section type can be removed.
    *
    */
    MEMORY
    {
    PAGE 0 : /* Program Memory */
    /* Z1 OTP. LinkPointers */
    DCSM_OTP_Z1_LINKPOINTER : origin = 0x78000, length = 0x00000C
    /* Z1 OTP. GPREG1/GPREG2 */
    DCSM_OTP_Z1_GPREG : origin = 0x7800C, length = 0x000004
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • Ok, why don't you only enable the BOOT setting section for configuration in sysconfig and try the new generated code and see if that works ?

  • Hi Vivek,

    If you look at my first post, the screen shot shows that I have already setup the syscfg DCSM to enable the boot setting section for configuration but I'm getting the error.

  • Yes, you have setup the syscfg to enable the BOOT setting but you have enabled other sections also which are not needed. You can disable other section configuration and only enable BOOT SETTING and see if that works.

    Regards,

    Vivek Singh

  • Hi Vivek,

    This is the setting I tried and the error I'm getting.

    This is the snap shot of the memory location

    Also attaching the dcsm.cmd and dcsm.asm

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    ;----------------------------------------------------------------------
    ; Zone 1
    ;----------------------------------------------------------------------
    ;; .sect "dcsm_otp_z1_linkpointer"
    ;; .retain
    ;; .long 0x1FFFFFFF
    ;; .long 0xFFFFFFFF ;Reserved
    ;; .long 0x1FFFFFFF
    ;; .long 0xFFFFFFFF ;Reserved
    ;; .long 0x1FFFFFFF
    ;; .long 0xFFFFFFFF ;Reserved
    ;;
    .sect "dcsm_otp_z1_pswdlock"
    .retain
    .long 0xFB7FFFFF
    .long 0x7FFFFFFF ;Reserved
    .sect "dcsm_otp_z1_crclock"
    .retain
    .long 0x4BFFFFFF
    .long 0x3FFFFFFF ;Reserved
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    /* this linker command file is to be included if user wants to use the DCSM feature on the device
    * DCSM means Dual Zone Code Security Module.
    * This linker command file works as an addendum ot the already existing Flash/RAM linker command file
    * that the project has.
    * The sections in the *_ZoneSelectBlock.asm source file is linked as per the commands given in the file
    * NOTE - please note fill=0xFFFF, this helps if users include this file in the project by mistake and
    * doesn't provide the needed proper *_ZoneSelectBlock.asm sources .
    * Please refer to the Blinky DCSM example in the controlsuite examples for proper usage of this.
    *
    * Once users are confident that they want to program the passwords in OTP, the DSECT section type can be removed.
    *
    */
    MEMORY
    {
    PAGE 0 : /* Program Memory */
    /* Z1 OTP. LinkPointers */
    DCSM_OTP_Z1_LINKPOINTER : origin = 0x78000, length = 0x00000C
    /* Z1 OTP. GPREG1/GPREG2 */
    DCSM_OTP_Z1_GPREG : origin = 0x7800C, length = 0x000004
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

    The error says Error during Flash Programming. Address 0x00078010, Data 0x0000A004, FMSTAT 0x00000030

    How do I find out where is this 0xA004 coming from.

  • Look like address 0x78010 has been already programed with different value. See below snapshot from what you have provided.

    Since this is programmed with value 0xFB7FFFF0 and not you are trying to program it with value 0xFB7FFFFF, you are getting error because this is not allowed. This is why I was asking you to not enable configuration of PSWDLOCK and CRCLOCK in sysconfig. 

    Hope it's clear.

    Regards,

    Vivek Singh

  • Hi Vivek,

    Thanks that clarifies. I had to set Password Lock (PSWDLOCK) to Enable PWSDLOCK permanently in syscfg which generated  0xFB7FFFF0 at address 0x78010 and I was able to successfully program the OTP.

    Regards,

    Harsha