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.

TMS320F280039-Q1: How to judge if DCSM is enable or isn't enable

Part Number: TMS320F280039-Q1


Tool/software:

Hi experts,

I ask this for my customer. My customer is Tier1, and the OEM ask them to keep the DCSM is disabled until the OEM send the CSM password through the SCI to chip.

So when the product is shipped from the Teri1, the DCSM is disabled and they will use FLASH API to enable the DCSM and change the CSM password in their application, and when the chip receives the command from OEM host computer, it will program the OTP register and enable the DCSM. And if they enable the DCSM, they need to unlock the DCSM if they want to read the value in secure zone like below code.

But they found if they don't enable the DCSM(before OEM inject the password to chip), and once code execute above code to try unsecure the DCSM(although in this time the DCSM is not enable), the code will run into illegal interrupt and the code can't execute normally. But if DCSM is enable(OEM have already inject the password), no matter how the password is correct or not, the code will not run into the illegal interrupt. 

So they need to judge if DCSM is enabled or is not enable when code execute the unsecure code, now they compare the value in ZxOTP_CSMPSWD0, if ZxOTP_CSMPSWD0 == 0xFFFF, it means the DCSM is not enabled; but if ZxOTP_CSMPSWD0 not equal to 0xFFFF, it means the DCSM is enabled;

They want to confirm:

1. Can they use this way to judge whether DCSM is enabled or is not enabled? Are there any risks if they use this way?

2. If it have risk, do you recommend other ways to judge?

BRs

Shuqing