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.

How to get the update value of memory map register of Z1_LINKPOINTER(0xB80) in DCSM module on TMS320F2805x device

Other Parts Discussed in Thread: TMS320F28054

 I refer to TMS320x2805x Piccolo Technical Reference Manual(Literature Number: SPRUHE5).

I have two blank devices. One is TMS320F28055PNT,the other is TMS320F28054PNT.

I  want to get the value of memory map register of Z1_LINKPOINTER(0xB80) for each by JTAG.

I do below steps.

---------------------------------------------------------------------------------------------------------------------------------------------------------

• Dummy read to address location of SECDC (0x3D7FFE ) in TI OTP.

• Dummy read to address location of Z1_OTPSECLOCK(0x3D7A02) in Z1 OTP.

• Dummy read to address location of Z1_BOOTMODE(0x3D7A04) in Z1 OTP.

• Dummy read to address location of Z1_LINKPOINTER(0x3D7A00) in Z1 OTP.

• Read to memory map register of Z1_LINKPOINTER(0xB80) in DCSM module to calculate the address of zone

select block for Z1.

--------------------------------------------------------------------------------------------------------------------------------------------------------

But I meet one problem.

The above method is useful for TMS320F28055PNT except TMS320F28054PNT.

   I can get the correct value(Z1_LINKPOINTER(0xB80)) from TMS320F28055PNT.The value is 0xFFFFFFFF.

   But I can not get the correct value( Z1_LINKPOINTER(0xB80) )from TMS320F28054PNT.The value is 0xC0000000.

  What's happend?

  How do I load the Z1_LINKPOINTER in Zone 1 User OTP into memory map register of Z1_LINKPOINTER(0xB80) in DCSM module?

  And then I can do 

• Read to memory map register of Z1_LINKPOINTER(0xB80) in DCSM module to calculate the address of zone

select block for Z1.

  • Hi,

    There are three link pointer locations (Z1_LINKPOINTER1/Z1_LINKPOINTER2/Z1_LINKPOINTER3) and a dummy read need to be done for all the three before reading the memory map register Z1_LINKPOINTER else it'll not be updated correctly. BOOT ROM code provided by TI has security initialization code which does read all the link pointers hence you are getting the value of Z1_LINKPOINTER register correctly on F28055 device even though you are not doing dummy read for all the three link pointer locations in OTP. This should work same way on F28054 device as well. Could you check the setting for BOOMODE pins (GPIO72/GPIO84) on F28054? If these are set to "GetMode" then device may be going through reset cycle which could create such issue. Change the BOOTMODE pins setting to something else and try again. Or just do a dummy read to all the three link pointer registers and then read the Z1_LINKPOINTER register.

    Regards,

    Vivek Singh 

  • Three link pointer locations?
    Could you help show the detail location address for Z1_LINKPOINTER1/Z1_LINKPOINTER2/Z1_LINKPOINTER3?
  • Hi Chen,

    Please refer "Figure 2-20. Location of Zone-Select Block Based on Link-Pointer" DCSM section of TRM.

    Regards,

    Vivek Singh

  • Hi,Vivek,

         I am puzzled.What you refer to  is valid for TMS320F2837xD Dual-Core Delfino MCU.

         But I operate TMS320F28054PNT device.

         location of USER OTP for TMS320F28054PNT is below:

         How should I do?

        Thanks~

    Best regards~

    Xin Chen

         

  • Hi Chen,

    Sorry, I misunderstood the part number.

    Yes, on this device there is only one LINKPOINTER location in OTP and sequence you are trying is correct.

    Could you try following steps on this -

    1) After CCS connect, issue debugger reset.

    2) Hit "Run"

    3) After CPU halts (if doesn't halt automatically, halt it manually), read the Z1-LINKPOINTER register (0xB80) from memory watch window.

    If it still does not show the correct value, to make sure there is no issue with this one specific unit (device), use another TMS320F28054PNT unit (hope you have another one) and try the same thing?

    Regards,

    Vivek Singh

  • Hi,Vivek,

     

         Ok.

         Thank you very much.

     

    Best regards~

    Xin Chen

  • Hi,Vivek,

    My TMS320F28054 device mark is below:

    ------------------------------------------------------

    TMS320

    F28054FPNT

    G4A-3CA4DCW

                  G4

    ------------------------------------------------------

           Problem is not solved.

    Z2-Linkpointer register(0xBC0) can be read correctly.

     Z1-Linkpointer register(0xB80) is read failed.It is always the reset value.

    What should I do?

           Here is my C language:

    //update and read Z2-Linkpointer
      //Z2
      temp_dcsm = *(unsigned long *)0x3D7800; // Read Z2 Linkpointer
      temp_dcsm = *(unsigned long *)0x3D7802; // Read Z2 OTPSECLOCK
      temp_dcsm = *(unsigned long *)0x3D7804; // Read Z2 BOOTMODE
      temp_dcsm = *(unsigned long *)0x3D7FFE; // Read SECDC
      temp_dcsm = *(unsigned long *)0xBC0; //Read Z2-Linkpointer out of Z2-LINKPOINTER register
      temp_dcsm1 = *(unsigned long *)0xBC2; //Read Z2-otpseclock out of Z2-LINKPOINTER register
      temp_dcsm2 = *(unsigned long *)0xBC4; //Read Z2-bootmode out of Z2-LINKPOINTER register

    //Update and read Z1-Linkpointer
      //Z1
      temp_dcsm = *(unsigned long *)0x3D7A00; // Read Z1 Linkpointer
      temp_dcsm = *(unsigned long *)0x3D7A02; // Read Z1 OTPSECLOCK
      temp_dcsm = *(unsigned long *)0x3D7A04; // Read Z1 BOOTMODE
      temp_dcsm = *(unsigned long *)0x3D7FFE; // Read SECDC
      temp_dcsm = *(unsigned long *)0xB80; //Read Z1-Linkpointer out of Z1-LINKPOINTER register
      temp_dcsm1 = *(unsigned long *)0xB82; //Read Z1-otpseclock out of Z2-LINKPOINTER register
      temp_dcsm2 = *(unsigned long *)0xB84; //Read Z1-bootmode out of Z2-LINKPOINTER register

     

    Thanks~

    Best regards~

    XIn Chen

  • Hi Chen,

    Your sequence looks ok. As asked earlier, did you try this only on one device? If yes then please try on another device and share the result.

    Regards,

    Vivek Singh

  • Hi Chen, Do you have any further update on this issue?

    Regards,

    Vivek Singh
  • Hi Chen, Is this issue still not resolved? If it's resolved then please close the thread else please let me know if you see this issue on multiple devices.

    Regards,

    Vivek Singh
  • Hi,Vivek.

        Sorry for delay.We have not  debug it any more.Please close this thread.

        Thanks~

    Xin Chen.