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.

TMS320F28386D: JLM Enable register in OTP can't be programmed using CCS

Part Number: TMS320F28386D
Other Parts Discussed in Thread: UNIFLASH

Hello all,

I'm trying to program the Z1OTP_JLM_ENABLE Register (address 0x78006) with the value 0xFFFF0000 to enable the JTAGLOCK feature on the device. Code Composer Studio v12 and Uniflash v8.2 both return the same error below. The rest of the flash process completes successfully.

C28xx_CPU1: Error during Flash Programming. Address 0x00078004, FMSTAT (STATCMD on some devices) 0x00000030
C28xx_CPU1: Please make sure the memory location you are programming have not already been programmed.

I'm sure the location hasn't been programmed already, also I'm only programming 0x78006 and NOT 0x78004, so where does this address come from?

Using the On-Chip Flash tool to manually program the JTAGLOCK always works on my devices, but we need it embedded in the .out file.

The relevant lines in the linkerscript:

MEMORY
{
PAGE 0:

PAGE 1:

    Z1_OTP_JLM_ENABLE       : origin = 0x78006, length = 0x000002



}

SECTIONS
{
    z1_otp_jtaglock_enable     : > Z1_OTP_JLM_ENABLE

}

The .asm part:

   .sect "z1_otp_jtaglock_enable"
      .retain
      .long 0xFFFF0000

Thanks for the help in advance!

  • I'm sure the location hasn't been programmed already, also I'm only programming 0x78006 and NOT 0x78004, so where does this address come from?

    Flash locations are programmed as 64bit word hence you see error for address 0x78004.

    I would suggest to use the security (DCSM)  tool to generate the asm file and cmd file to avoid these issues.

    Regards,

    Vivek Singh

  • I used the security tool, and it generates the same things (only naming is a bit different), otherwise both the address and the value are the same.

    Flash locations are programmed as 64bit word hence you see error for address 0x78004.

    Does this mean that 0x78006 can't be programmed directly, but addresses need to be aligned to 64-bit? In this case, how can the On-Chip Flash tool do it?

  • While programming the value of 0xFFFF0000 to address 0x78006, please consider programming the value of 0x78004 with the same value that is already there in the OTP.  Check if this resolves the error you are seeing. 

    Thanks & Regards

    Pramod

  • Edit: this indeed solved the issue, I just needed to program all the linkpointers from address 0x78000.  Thanks a lot!

    Hi Pramod,

    Thanks for you reply,

    0x78004 location is linkpointer3, which by default is 0x3FFF0000. Unfortunately, programming that value there gives the same error, and loading gets cancelled.

  • Hi, I believe the default is 0x00003FFF and not 0x3FFF0000. Please check this before attempting the programming. 

    Thanks & Regards

    Pramod