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.

DCSM - F28379D

Hello,

I'm somewhat new to the DCSM module, and am trying to get it to work for the F28379D.  I've reviewed most of the literature and examples, but still not having much luck.  Initially, I'd like to just activate a single zone (1), for all Flash and RAM.  I'm initially doing this under emulation, but will need to do for Flash boot as well.  I've seen two examples of trying to set the OTP, one assembly and one via #pragmas.  Preference would be the pragma approach, but I've gotten neither to work.  I'll start questions with the #pragma.  Below is what I've put in my main routine.  It was taken from one of the f2837x examples:

#pragma RETAIN( otp_data )

#pragma DATA_SECTION( otp_data, "dcsm_zsel_z1" );

const int32_t otp_data[ NUM_ZONE_SELECT_BLOCK ] =
{
0xFFFFFFFF,
0xFFFFFFFF,
(
DCSM_Z2_GRABRAMR_GRAB_RAM0_S | DCSM_Z2_GRABRAMR_GRAB_RAM1_S | DCSM_Z2_GRABRAMR_GRAB_RAM2_S |
DCSM_Z2_GRABRAMR_GRAB_RAM3_S | DCSM_Z2_GRABRAMR_GRAB_RAM4_S | DCSM_Z2_GRABRAMR_GRAB_RAM5_S |
DCSM_Z2_GRABRAMR_GRAB_RAM6_S | DCSM_Z2_GRABRAMR_GRAB_RAM7_S | DCSM_Z2_GRABRAMR_GRAB_CLA1_S
),
(
DCSM_Z2_GRABSECTR_GRAB_SECTA_S | DCSM_Z2_GRABSECTR_GRAB_SECTB_S | DCSM_Z2_GRABSECTR_GRAB_SECTC_S |
DCSM_Z2_GRABSECTR_GRAB_SECTD_S | DCSM_Z2_GRABSECTR_GRAB_SECTE_S | DCSM_Z2_GRABSECTR_GRAB_SECTF_S |
DCSM_Z2_GRABSECTR_GRAB_SECTG_S | DCSM_Z2_GRABSECTR_GRAB_SECTH_S | DCSM_Z2_GRABSECTR_GRAB_SECTI_S |
DCSM_Z2_GRABSECTR_GRAB_SECTJ_S | DCSM_Z2_GRABSECTR_GRAB_SECTK_S | DCSM_Z2_GRABSECTR_GRAB_SECTL_S |
DCSM_Z2_GRABSECTR_GRAB_SECTM_S | DCSM_Z2_GRABSECTR_GRAB_SECTN_S
),
0xF0F0F0F0,
0xF0F0F0F0,
0xF0F0F0F0,
0xF0F0F0F0 };

#endif

I've left the default 0xffffffff for EXEONLYRAM and EXEONLYSELECT, and changed the GRABRAM and GRABSECT to include all as secure (modified to use the defines the hw_dcsm.h file provided in the examples).  But when I load in the code, via emulator download, I see no change in these DCSM_Z1_REGS values, when looking in the registers window in CCS.  What should I be expecting?

For reference, here is my DCSM .cmd, also obtained from examples:

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 = 0x78020, 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
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
dcsm_otp_z2_pswdlock : > DCSM_OTP_Z2_PSWDLOCK PAGE = 0
dcsm_otp_z2_crclock : > DCSM_OTP_Z2_CRCLOCK PAGE = 0
dcsm_otp_z2_bootctrl : > DCSM_OTP_Z2_BOOTCTRL PAGE = 0
dcsm_zsel_z2 : > DCSM_ZSEL_Z2_P0 PAGE = 0
}

This is added into the project, in addition to 2837xD_FLASH_lnk_cpu1.cmd.

Please advise,

Robert

  • Hi Robert,

    We have security tool to generate the .asm and .cmd file as per the user requirement. Please go through this link to understand how to use the tool and see if this makes it easy create the required configuration. Let us know if you have any feedback or query about this tool and usage.

    Regards,

    Vivek Singh

  • Thanks for the reply.  I am using CCS 7.3, though, and cannot upgrade it to CCS 9.2 at this time (as required by the security tool).

    Please advise,

    Robert