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.

TMS320F28374S: usage of Zone 1 OTP Flash and ECC program

Part Number: TMS320F28374S

Hi,

There is a picture showing the map of Zone 1 OTP below.See that please.

Question 1:How to deal with the reseved locations in OTP when loading(burnning) data into OTP?

Question 2 and 3:How to calcute the final value of  Z1-LINKPOINTER refer to Z1-LINKPOINTER1, Z1-LINKPOINTER2 and Z1-LINKPOINTER3? Would you tell me the algoritm?

Question 4:ECC combination is 64bit data + 8bit ecc.Technical reference manual says Z1-LINKPOINTER 1,Z1-LINKPOINTER 2,Z1-LINKPOINTER 3 is not protected by ECC.But location 0x78002,0x78006

and 0x7800A are in range of Zx-LINKPOINTERx ECC combination.I think that those reserved locations are also not protected by ECC.Is that right?

Question 5:Can code or data prefetch  trigger  an ECC error interrupt?Such as:flash section1 is programmed data and ECC.But flash section2 is not.Cpu may  prefetch flash section2 when running on the boundary location of flash section1.

Hi,

  • Hello Xin,

    1. Do not allocate/program anything to those reserved locations.  

    2/3. I will ask our security expert to answer this for you.  Hope you went through the TRM chapter.  

    4. Users should not program ECC for the locations 0x78000 - 0x7800B.  F2837xS Flash API also blocks programming ECC for the link-pointer locations including non-linkpointer locations in this range.  Anyways, users should not program anything in reserved locations.

    5. Yes, you are correct.  Prefetch mechanism can cause ECC errors in the scenario that you explained.

    Thanks and regards,

    Vamsi

  • On following question -

    Question 2 and 3:How to calcute the final value of  Z1-LINKPOINTER refer to Z1-LINKPOINTER1, Z1-LINKPOINTER2 and Z1-LINKPOINTER3? Would you tell me the algoritm?

    Final (resolved) linkpointer value is captured in Zx_LINKPOINTER register. Using this one, user need to calculate the address for valid Zone Select Block. Please refer section "2.13.1.5.1 C Code Example to get Zone Select Block Addr for Zone1" in TRM to understand the algorithm for the same.

    Regards,

    Vivek Singh

  • Hello Vamsi,
    Thanks~
    Xin
  • Hi,Vivek,
    I have known how to update Zx_LINKPOINTER register by dummy reading some locations.Then,I can get the Zx_LINKPOINTER registers.As well, I have known user need to calculate the address for valid Zone Select Block using the value of Zx_LINKPOINTER registers.
    But is not enough information for me.
    I want to do a burning tool using F2837xS Flash API.Sometimes,I will get an application image(hex file or .out file) which has linked Zx-LinkPointer section(Z1-LINKPOINTER1 ,Z1-LINKPOINTER2,Z1-LINKPOINTER3),linked more than one group of ZoneSelectBlock(16x16Bits).For reprogrammed device(some groups of ZoneSelectBlock(16x16Bits) has been programmed),Maybe I should know which group of ZoneSelectBlock(16x16Bits) should be loaded into zone1 OTP.
    So I should calcute the Final (resolved) linkpointer value in programmer using user Zx-linkpointerx setting(Z1-LINKPOINTER1 ,Z1-LINKPOINTER2,Z1-LINKPOINTER3) .
    Would you tell me how to implement it in programmer?
    Thanks~
    Xin
  • Hi Xin,

    I did not understand your query -

    Are you asking how to program the device which already has linkpointer and security setting programmed? If yes then there are two things to note -

    If you need to change the security settings (e.g. program new password values or memory configuration) then you need to unlock the device and then change the linkpointer value to next Zone Select Block and  program the new security setting at new Zone Select Block locations.

    If you want to program the flash without changing the security settings then there are two options-

    1. Unlock the device and program the flash.
    2. If unlocking the device is not an option then you need to have your programmer programmed in one of the secure flash sector and based on SW boot option copy the same to secure RAM and run it to program the new image into secure flash.

    Hope this helps.

    Regards,

    Vivek Singh

  • Hi Vivek,
    Thanks~
    Best regards~
    Xin