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.

TMS320F28388D: DCSM Unsecure C28x zone1

Part Number: TMS320F28388D
Other Parts Discussed in Thread: UNIFLASH

I used the unlock code from the official routine as follows:

volatile long int *CSM = (volatile long int *)0x5F010; //CSM register file volatile
long int *CSMPWL = (volatile long int *)0x78020;
volatile int tmp;
int I;
for (I=0;I<4;I++) tmp = *CSMPWL++;
*CSM++ = 0x93D99252; // Register Z1_CSMKEY0 at 0x5F010
*CSM++ = 0x0C66CABE; // Register Z1_CSMKEY1 at 0x5F012
*CSM++ = 0x28721FD1; // Register Z1_CSMKEY2 at 0x5F014
*CSM++ = 0x577F8C55; // Register Z1_CSMKEY3 at 0x5F016

But the console prompts 

zone1 OTP flash

DCSM_Z1_REGS Registers

I also try the unlock button in the uniflash setting,but it can't unlock the flash blocks which i choose.

  • Hi,

    Please check the GEL file which is a part of your ccxml. Looking at the screenshots you provided, I am suspecting that the CSMKEYs are getting overriden by the default values within the GEL file. Please modify the same and give it a try and let me know if it resolves your issue. 

    Thanks & Regards

    Pramod

  • Thank You Very Much.   I think the problem has been solved. 

    I don't have a separate GEL file in my project, but I found the corresponding option in CCXML file.

    The default GEL file is C:\ti\ccs1011\ccs\ccs_base\emulation\gel\f28388d_cpu1.gel

    After that I modified the gel file.

    The unlocking operation was successful.

  • But after the encryption operation, only the flash under CPU1 was successfully encrypted, and the flash under CPU2 and CM were not encrypted

  • Hi,

    Please open a separate thread for your new query since the query in this thread is already addressed. I'll be closing this thread now. 

    Thanks & Regards

    Pramod