summaryrefslogtreecommitdiffstats
path: root/src/usr/diag/prdf/common/plugins
diff options
context:
space:
mode:
authorZane Shelley <zshelle@us.ibm.com>2018-10-05 11:20:21 -0500
committerZane C. Shelley <zshelle@us.ibm.com>2018-10-10 10:31:00 -0500
commite9ade5b4dbf715290726d24631e445ffd929c749 (patch)
tree901f195104410f85cd8f4277abb65f207fc6ad9a /src/usr/diag/prdf/common/plugins
parent52f52bb84c856d71466ee19acdd8943565be39cc (diff)
downloadblackbird-hostboot-e9ade5b4dbf715290726d24631e445ffd929c749.tar.gz
blackbird-hostboot-e9ade5b4dbf715290726d24631e445ffd929c749.zip
PRD: PM error log parser updates
Change-Id: Ied11902f672af344357ae8950dc2dbc81db0bea8 CQ: SW447793 Backport: release-fips922 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/67093 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Caleb N. Palmer <cnpalmer@us.ibm.com> Reviewed-by: Prem Shanker Jha <premjha2@in.ibm.com> Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com> Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/67215 Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Diffstat (limited to 'src/usr/diag/prdf/common/plugins')
-rw-r--r--src/usr/diag/prdf/common/plugins/prdfProcLogParse.C45
1 files changed, 32 insertions, 13 deletions
diff --git a/src/usr/diag/prdf/common/plugins/prdfProcLogParse.C b/src/usr/diag/prdf/common/plugins/prdfProcLogParse.C
index 4a145a962..ae7287d76 100644
--- a/src/usr/diag/prdf/common/plugins/prdfProcLogParse.C
+++ b/src/usr/diag/prdf/common/plugins/prdfProcLogParse.C
@@ -391,6 +391,7 @@ uint32_t parseRegFfdc( ErrlUsrParser& i_parser, uint8_t* i_buf, uint32_t i_lengt
secLength = (i_regList.size() * 8) + sizeof( FfdcSummSubSectHdr );
secLength = (secLength > i_length) ? i_length : secLength;
+
uint32_t l_currentLength = sizeof( FfdcSummSubSectHdr );
for( itRegList = i_regList.begin(); itRegList != i_regList.end();
@@ -398,6 +399,7 @@ uint32_t parseRegFfdc( ErrlUsrParser& i_parser, uint8_t* i_buf, uint32_t i_lengt
{
if( l_currentLength > secLength )
{
+
break;
}
@@ -459,14 +461,6 @@ uint32_t parsePpeFfdc( ErrlUsrParser& i_parser, uint8_t* i_buf, uint32_t i_lengt
do
{
- //NOTE: Ensure this register list always matches with list in
- //file p9_pm_recovery_ffdc_base.C
- l_ppeRegList[ XSR ] = (char*) "XSR";
- l_ppeRegList[ IAR ] = (char*) "IAR";
- l_ppeRegList[ IR ] = (char*) "IR";
- l_ppeRegList[ EDR ] = (char*) "EDR";
- l_ppeRegList[ SPRG0 ] = (char*) "SPRG0";
-
FfdcSummSubSectHdr* l_pSubSecHdr = (FfdcSummSubSectHdr*)i_buf;
uint32_t* l_secBufPtr = (uint32_t*)( i_buf + sizeof( FfdcSummSubSectHdr ) );
@@ -502,7 +496,7 @@ uint32_t parsePpeFfdc( ErrlUsrParser& i_parser, uint8_t* i_buf, uint32_t i_lengt
break;
}
- secLength = (l_ppeRegList.size() * 4) + sizeof( FfdcSummSubSectHdr );
+ secLength = ( l_ppeRegList.size() * 4) + sizeof( FfdcSummSubSectHdr );
secLength = (secLength > i_length) ? i_length : secLength;
l_currentLength = sizeof( FfdcSummSubSectHdr );
@@ -572,7 +566,15 @@ uint32_t parseCmeFfdc( ErrlUsrParser& i_parser, uint8_t* i_buf, uint32_t i_lengt
if( l_rc )
{
- break;
+ if( SECTION_INVALID == l_rc )
+ {
+ l_rc = PARSE_SUCCESS;
+ continue;
+ }
+ else
+ {
+ break;
+ }
}
i_parser.PrintBlank();
@@ -673,6 +675,20 @@ uint32_t parseSysState( ErrlUsrParser& i_parser, uint8_t* i_buf, uint32_t i_leng
{
//NOTE: Ensure this register list always matches with list in
//file p9_pm_recovery_ffdc_occ.C
+ l_occRegMap.push_back( "CME 0 FIR" );
+ l_occRegMap.push_back( "CME 1 FIR" );
+ l_occRegMap.push_back( "CME 2 FIR" );
+ l_occRegMap.push_back( "CME 3 FIR" );
+ l_occRegMap.push_back( "CME 4 FIR" );
+ l_occRegMap.push_back( "CME 5 FIR" );
+ l_occRegMap.push_back( "CME 6 FIR" );
+ l_occRegMap.push_back( "CME 7 FIR" );
+ l_occRegMap.push_back( "CME 8 FIR" );
+ l_occRegMap.push_back( "CME 9 FIR" );
+ l_occRegMap.push_back( "CME 10 FIR" );
+ l_occRegMap.push_back( "CME 11 FIR" );
+ l_occRegMap.push_back( "OCC FIR" );
+ l_occRegMap.push_back( "PBA FIR" );
l_occRegMap.push_back( "CCSR" );
l_occRegMap.push_back( "QSSR" );
l_occRegMap.push_back( "OCCFLG" );
@@ -746,6 +762,7 @@ uint32_t parseCppmFfdc( ErrlUsrParser& i_parser, uint8_t* i_buf, uint32_t i_leng
{
if( SECTION_INVALID == l_rc )
{
+ l_rc = PARSE_SUCCESS;
continue;
}
else
@@ -753,6 +770,7 @@ uint32_t parseCppmFfdc( ErrlUsrParser& i_parser, uint8_t* i_buf, uint32_t i_leng
break;
}
}
+
}
return l_rc;
@@ -773,12 +791,12 @@ uint32_t parseQppmFfdc( ErrlUsrParser& i_parser, uint8_t* i_buf, uint32_t i_leng
std::vector < std::string > l_qppmRegMap;
uint32_t l_rc = PARSE_SUCCESS;
char l_lineStr[LINE_LENGTH];
- uint32_t l_qppmSectn = (i_length / (FFDC_SUMMARY_SIZE_QPPM_REG) );
+ uint32_t l_qppmSectn = (i_length / (FFDC_SUMMARY_SIZE_QPPM_REG) );
const char* lines = "---------------------------------------------";
-
//NOTE: Ensure this register list always matches with list in
//file p9_pm_recovery_ffdc_qppm.C
+
l_qppmRegMap.push_back( "GPMMR" );
l_qppmRegMap.push_back( "EQ_SSHSRC" );
l_qppmRegMap.push_back( "QPPM_DPLL_FREQ" );
@@ -806,6 +824,7 @@ uint32_t parseQppmFfdc( ErrlUsrParser& i_parser, uint8_t* i_buf, uint32_t i_leng
{
if( SECTION_INVALID == l_rc )
{
+ l_rc = PARSE_SUCCESS;
continue;
}
else
@@ -829,7 +848,7 @@ uint32_t parseQppmFfdc( ErrlUsrParser& i_parser, uint8_t* i_buf, uint32_t i_leng
* @return PARSE_SUCCESS if parsing succeeds, error code otherwise.
*/
bool parsePmFfdcData( void* i_buf, uint32_t i_length,
- ErrlUsrParser& i_parser, errlver_t i_subsec )
+ ErrlUsrParser& i_parser, errlver_t i_subsec )
{
uint32_t l_rc = PARSE_SUCCESS;
using namespace p9_stop_recov_ffdc;
OpenPOWER on IntegriCloud