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.

TM4E123GH6ZRB: Unwanted locked EEPROM

Part Number: TM4E123GH6ZRB


We use Tiva TM4E123GH6ZRB as Embedded Controller on x86 COM-Express boards, based on both AMD and Intel chipsets, and we use its internal EEPROM to store permanent data, used when starting from G3 state (fully powered off device) to correctly identify and initialize the system.

In the last couple of months we started to find some boards with strange behavior, quickly recognized as a consequence of EEPROM write operations systematically failing.

After investigating, we discovered that the EEPROM was locked, as it is after password protecting it, and the only way to recover the parts was to use the Debug Mass Erase register: we did this with C.C.S. debug via JTAG, stopping the device and writing the register with the 0xE37B0001 pattern by hand.

Actually, our code does never use the locking mechanism, so writnig accidentally to the password registers is very unlikely even in vase of erratic code; this is why it is natural to pose some questions:

- does TI kernel code (SYS/BIOS 6.35.04.50) ever access those registers?

- could be for some reason that some chips came from TI with EEPROM already locked?

- does anyone know about similar cases, and if yes, what can they say on the subject?

Thanks in advance to anyone who can contribute to solve this issues

Fabio

  • Hi Fabio,

    Fabio Antonio CASSINI said:
    - does TI kernel code (SYS/BIOS 6.35.04.50) ever access those registers?

    I don't think so.  Are you using TI-RTOS in your application?

    Fabio Antonio CASSINI said:

    - could be for some reason that some chips came from TI with EEPROM already locked?

    No.

    I have some questions. Is the entire EEPROM locked or some blocks are locked? When you said the EEPROM is write protected, can you confirm that the NOPERM bit in the EEDONE register is set when you attempt to write? 

     Can you also setup watchpoint registers to watch for any writes from the CPU to the EEPROM registers? This will help debug if any CPU writes to the password registers. 

  • Thank you, Chrales,
    your quick answer is very appreciated!

    Here are my answers point by point:

    - Are you using TI-RTOS in your application?
    I confirm I use TI-RTOS.

    - Is the entire EEPROM locked or some blocks are locked?
    The entire EEPROM is locked: the NOPERM bit in the EEDONE register is set until I perform the Debug Mass Erase.

    - Can you also setup watchpoint registers to watch for any writes from the CPU to the EEPROM registers?
    I did it and I saw no such writes; take into account that this thing can not obviously work across Full Power OFF and then ON cycles.

    Another questions that arises is whether any kind of electrical shock could cause the locking action: I am thinking about power bounces when power is suddenly removed...

    Thank you again for your words: have a nice day!

    Fabio
  • Hi Fabio,
    Do you remember if you have any power loss or reset while in the middle of an EEprom write operation?

    After you perform a mass erase, did the EEprom become locked right away with the first EEprom write or it becomes locked after many EEprom write operations? Basically, how long do you need to wait for the problem to occur?

    Can you repeat the same behavior on other units you have?
  • Hi, Charles.

    The true problem is that I could not reply that behavior under control: anytime we work on our development environments, no problems of that kind occur.

    Actually there is the chance of a power loss during EEPROM write, because of possible updates of some permanent data; but we never experimented such a block; do you think power loss could be the cause?

    We had about ten cases until now, and after Debug Mass Erase we never saw the problem again on the same part: it seems we have a sort of one-time event; in any case: unfortunately we just have not been able to reproduce the lock.

    Just yesterday I heard of one specific customer stating that the malfunctioning we discovered due to this lock came after some time of our module plugged-in on their carrier: may be we can understand more analizing their hardware. More on this later...

    Cheers

        Fabio

  • Hi Fabio,
    Do you have any update since last time? Please be aware of the errata associated with the EEprom memory particularly the MEM#03, MEM#04, MEM#07.
  • Hi, Charles,

    thank you for your attention.

    We worked with the customer's carrier board, and we discovered there were problems due to a retarded LPC clock that caused malfunctioning LPC transactions; we are still not able to understand why and how this can cause the EEPROM blocking, and a few times we found the device Flash containing our code corrupted.

    I gave a look to the errata you mention: I was aware of these possibilities, but until now we never encountered such a problem, and our certifications test also power interructions.

    I will keep you in touch for any news... have a nice day!

        Fabio

  • Hi Fabio,
    Please do let us know if any updates. I will first close this thread for now and you can reopen it or create a new post once you have some updates.
  • Hi, Charles,

    I apologize for the delay, but I was out of office in these days.

    I confirm we can close the thread: I suspect there can be situations of power failure during writes, so I am investigating in that direction; I will reopen the thread only if I am not able to resolve.

    Thank you again for your comments: have a nice day!

        Fabio