Hi,
Function SL_SelfTest_PBIST() has the following code which claims that PBIST error would activate nERROR and thus that check is made
/* If nERROR is active then do not proceed with tests that trigger nERROR */
if((boolean)(TRUE) == SL_ESM_nERROR_Active()){
SL_Log_Error(FUNC_ID_ST_PBIST, ERR_TYPE_ENTRY_CON, 2u);
return(retVal);
I couldn't find any sources for ESM nor any mentions in PBIST paragraph in TRM how that could happen. I also generated a code which results to PBIST failure and error pin is not activated
------ Code ------
// use not suitable algo (RAM) for given ROM memories
vClearAndWait_nError();
retVal = SL_SelfTest_PBIST( PBIST_EXECUTE, PBIST_RAMGROUP_01_PBIST_ROM | PBIST_RAMGROUP_02_STC_ROM, PBISTALGO_MARCH13N_RED_1PORT );
if (!retVal)
{
initSTFailCount++;
for(;;)
{
}/* Wait */
}
while (TRUE != SL_SelfTest_WaitCompletion_PBIST());
retVal = SL_SelfTest_Status_PBIST(&failInfoPBIST);
if( (retVal) && (failInfoPBIST.stResult == ST_FAIL) ) {
initSTPassCount++;
} else {
(void)SL_SelfTest_PBIST_StopExec(); // if status returns false, then PBIST is not stopped, stop here just in case
initSTFailCount++;
for(;;)
{
}/* Wait */
}
}
------ Code ends ------
If PBIST doesn't activate nERROR why that function then checks in the entry that nERROR is not active - seems useless and annoying check and is actually a bug?