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.

PBIST Errata #4 related changes in HALCOGEN 3.08.01

Other Parts Discussed in Thread: HALCOGEN, TMS570LS0432

Hello Support,

I see that pbistSelfCheck() in HALCOGEN 3.08.01 is not using the following any more due to PBIST ERRATA #4

 /* Algorithm code is loaded from ROM */
 pbistREG->ROM = 0x3U;        

Instead it is using some hidden command sequence.

But for pbistRun(), I see that it is using the same old method as mentioned above.

Can you please explain why old method will not work for pbistSelfCheck() but it will still work for pbistRun()?

Or, I am missing something.

Any better explanations related to the PBIST ERRATA #4 as performed within HALCOGEN 3.08.01 will help me a lot.

Is it that PBIST ERRATA #4 occurs for only FAIL Test case of FSRF0 and FSRF1 bits [Stuck at ZERO test]?

Thank you.
Regards
Pashan

 

  • Hi Pashan,
    This has been assigned to our expert on diagnostics.

  • Hi Pashan,

    It turns out that the owner of this code is the best person to answer this question and he will not return until next week.  We've asked but can only speculate as to the rationale at this time.  We will get back to you next week.

  • Hi Pashan

    PBIST module has the capability to run the algorithm outside ROM.

    pbistSelfCheck()
    Purpose : Check if error captured by PBIST is reported to the system via ESM.
    HALCoGen ver 3.06.00 Implementation
           -- Run wrong algorithm on selected memory, this reports an error.
           -- Issue: Might be affected because of PBIST errata # 4, since Algo's are loded from ROM.
    HALCoGen ver 3.08.0x Implementation
           -- Custom always fail algo, this will not use the ROM and just set a fail.   

    errata_PBIST_4()
    Purpose : Make sure ROM is ready before loading the algorithm. Doing a ROM read for couple of times ( HALCoGen does 1000 read access to ROM) is the proposed workaround. The Custom algorithm does exactly this, HALCoGen also does a check for number cycles it took for this read accesses.

  • Hello Prathap,

    pbistSelfCheck()
    Purpose : Check if error captured by PBIST is reported to the system via ESM.

    Can you please tell me which channel of ESM Status Register will be SET for the above mentioned condition in your previous mail?
    Please assume TMS570LS0432 device.

    Thank you>
    Regards
    Pashan

  • Hi Pashan,

    Sorry, I take back my original comment, No ESM is hooked.

    Below is the corrected responce to the post.

    PBIST module has the capability to run the algorithm outside ROM.

    pbistSelfCheck()
    Purpose : Check if PBIST module is able to capture the error and upate the status registers. Negative checking of PBIST module functionality.
    HALCoGen ver 3.06.00 Implementation
           -- Run wrong algorithm on selected memory, this reports an error.
           -- Issue: Might be affected because of PBIST errata # 4, since Algo's are loded from ROM.
    HALCoGen ver 3.08.0x Implementation
           -- Custom always fail algo, this will not use the ROM and just set a fail.   

    errata_PBIST_4()
    Purpose : Make sure ROM is ready before loading the algorithm. Doing a ROM read for couple of times ( HALCoGen does 1000 read access to ROM) is the proposed workaround. The Custom algorithm does exactly this, HALCoGen also does a check for number cycles it took for this read accesses.

  • Hello Prathap,

    In the spnz197b.pdf for PBIST#4, following are mentioned as wrokaround :

    A more sophisticated workaround is to use the errata_PBIST_4() function provided in HALCoGen version 3.08.00 or later.

    Question is "According to the ERRATA, only errata_PBIST_4() function is needed and pbistselfCheck() can go on using the older method of pbistREG->ROM = 0x3U;"

    Is that correct or I must used those MAGIC Numbers of pbistSelfCheck() as present in 3.08.01?

    I am asking this because we have Flash size limitation for the CODE Space.

    Older method of "pbistREG->ROM = 0x3U;" will take lesser code than the new pbistSelfCheck() using MAGIC Numbers.

    If it is a MUST for the ERRATA PBIST#4 correction, then I will try to add the new pbistSelfCheck(). Instead I will use the older one.

    Please confirm which way to go for pbistSelfCheck().

    Thank you.
    Regards
    Pashan

  • Hi Pashan,

    If you have code Size restriction, you can go ahead and use 3.06.00 pbistSelfCheck() routine. As you mentioned correctly, errata_PBIST_4(); is a must and should be called before using PBIST.

    3.08.0 pbistSelfCheck() routine does not take much time, ofcourse the Code size more compared to 3.06.00 pbistSelfCheck() routine.
    The advanctage in 3.08.01 pbistSelfCheck() routine is ROM Algorithm is not used, so it kind of isolates PBIST and tests standalone.

  • Hello Prathap,

    In the spnz197b.pdf for PBIST#4 errata, I found the following :

    "Reading the PBIST ROM eventually brings it out of this condtion. One workaround is to use a software loop to measure the execution time of the PBIST algorithm. If the execution time is much shorter than normal, ignore the results and rerun the PBIST test."

    If I follow the above mentioned method instead of using errata_PBIST_4(), because of Code Size restriction, then does the "Reading the PBIST ROM" time depend upon either Algorithm or RAM Group Selected in any way [RINFOL/RINFOU and ALGO Register contents]?

    That means does "Reading the PBIST ROM" time duration is same whether invalid algorithm is selected for the selected RAM group?

    Please confirm.
    Thank you.
    Regards
    Pashan