summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorPrem Shanker Jha <premjha2@in.ibm.com>2018-08-30 01:38:18 -0500
committerChristian R. Geddes <crgeddes@us.ibm.com>2018-09-28 15:01:06 -0500
commit5baacd28d51e361566f587c6b613ba679352d4ec (patch)
treef01cb0bc9279716dd59d9f119b71b28cb704eb55
parentdd13920527a89d5ecb1342d7183743b33ba8195e (diff)
downloadtalos-hostboot-5baacd28d51e361566f587c6b613ba679352d4ec.tar.gz
talos-hostboot-5baacd28d51e361566f587c6b613ba679352d4ec.zip
PM Malfunction: Fixed issues with user data section parser plugin.
Commit addresses some parsing issues in following data section - XIRs of CMEs, SGPE, PGPE - CPMM and QPPM section - Fixed the address issue Change-Id: I8fd7fa1cf76f465bcc40f87824f17b6a8c03bbc6 CQ: SW444956 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/65482 Reviewed-by: RANGANATHPRASAD G. BRAHMASAMUDRA <prasadbgr@in.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: HWSV CI <hwsv-ci+hostboot@us.ibm.com> Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com> Reviewed-by: AMIT J. TENDOLKAR <amit.tendolkar@in.ibm.com> Reviewed-by: Gregory S. Still <stillgs@us.ibm.com> Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/65815 Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
-rw-r--r--src/import/chips/p9/procedures/hwp/pm/p9_pm_callout.C7
-rw-r--r--src/import/chips/p9/procedures/hwp/pm/p9_pm_recovery_ffdc_cme.C2
-rw-r--r--src/import/chips/p9/procedures/hwp/pm/p9_pm_recovery_ffdc_occ.C8
-rw-r--r--src/import/chips/p9/procedures/hwp/pm/p9_pm_recovery_ffdc_pgpe.C2
-rw-r--r--src/import/chips/p9/procedures/hwp/pm/p9_pm_recovery_ffdc_sgpe.C4
-rw-r--r--src/import/hwpf/fapi2/include/collect_reg_ffdc.H2
6 files changed, 18 insertions, 7 deletions
diff --git a/src/import/chips/p9/procedures/hwp/pm/p9_pm_callout.C b/src/import/chips/p9/procedures/hwp/pm/p9_pm_callout.C
index dff4805a8..5fcd860c4 100644
--- a/src/import/chips/p9/procedures/hwp/pm/p9_pm_callout.C
+++ b/src/import/chips/p9/procedures/hwp/pm/p9_pm_callout.C
@@ -403,8 +403,11 @@ extern "C"
if( l_summSectn < MAX_FFDC_SUMMARY_SECTN_CNT )
{
- StopErrLogSectn l_ffdcSubSectn( l_pSummary, l_sectnSize, l_summSectn );
- o_ffdcList.push_back( l_ffdcSubSectn );
+ if( l_summSectn != CME_GLOBAL_VAR_SECTN )
+ {
+ StopErrLogSectn l_ffdcSubSectn( l_pSummary, l_sectnSize, l_summSectn );
+ o_ffdcList.push_back( l_ffdcSubSectn );
+ }
}
}
diff --git a/src/import/chips/p9/procedures/hwp/pm/p9_pm_recovery_ffdc_cme.C b/src/import/chips/p9/procedures/hwp/pm/p9_pm_recovery_ffdc_cme.C
index 7c2791473..26bdad302 100644
--- a/src/import/chips/p9/procedures/hwp/pm/p9_pm_recovery_ffdc_cme.C
+++ b/src/import/chips/p9/procedures/hwp/pm/p9_pm_recovery_ffdc_cme.C
@@ -434,7 +434,7 @@
l_pCmeSummaryHdr->iv_subSectnId = PLAT_CME;
l_pCmeSummaryHdr->iv_majorNum = CME_MAJ_NUM;
l_pCmeSummaryHdr->iv_minorNum = CME_MIN_NUM;
- l_pCmeSummaryHdr->iv_secValid = l_pCmeLayout->iv_ppeFfdcHdr.iv_ppeFfdcHdr.iv_sectionsValid;
+ l_pCmeSummaryHdr->iv_secValid = htobe16(l_pCmeLayout->iv_ppeFfdcHdr.iv_ppeFfdcHdr.iv_sectionsValid);
if( !l_pCmeSummaryHdr->iv_secValid )
{
diff --git a/src/import/chips/p9/procedures/hwp/pm/p9_pm_recovery_ffdc_occ.C b/src/import/chips/p9/procedures/hwp/pm/p9_pm_recovery_ffdc_occ.C
index 271f0af8a..798208592 100644
--- a/src/import/chips/p9/procedures/hwp/pm/p9_pm_recovery_ffdc_occ.C
+++ b/src/import/chips/p9/procedures/hwp/pm/p9_pm_recovery_ffdc_occ.C
@@ -470,6 +470,7 @@ namespace p9_stop_recov_ffdc
fapi2::ReturnCode PlatOcc::generateSummary( void * i_pHomer )
{
+ FAPI_DBG(" >> PlatOcc::generateSummary" );
HomerFfdcRegion * l_pHomerFfdc =
( HomerFfdcRegion *)( (uint8_t *)i_pHomer + FFDC_REGION_HOMER_BASE_OFFSET );
OccFfdcRegion * l_pOccLayout = ( OccFfdcRegion * ) &l_pHomerFfdc->iv_occFfdcRegion;
@@ -483,7 +484,7 @@ namespace p9_stop_recov_ffdc
l_pSysConfigHdr->iv_subSectnId = PLAT_OCC;
l_pSysConfigHdr->iv_majorNum = SYS_CONFIG_MAJ_NUM;
l_pSysConfigHdr->iv_minorNum = SYS_CONFIG_MIN_NUM;
- l_pSysConfigHdr->iv_secValid = l_pOccFfdcHdr->iv_sectionsValid;
+ l_pSysConfigHdr->iv_secValid = htobe16(l_pOccFfdcHdr->iv_sectionsValid);
if( l_pSysConfigHdr->iv_secValid )
{
@@ -493,17 +494,22 @@ namespace p9_stop_recov_ffdc
FFDC_SUMMARY_SCOM_REG_SIZE ) ; //copying first FIR value
l_pFirEntry++;
+ l_pFirEntry++;
+ l_pFirEntry++;
+ l_pFirEntry++;
memcpy( &l_pSysConfig->iv_occPbaFir[FFDC_SUMMARY_SCOM_REG_SIZE],
&l_pFirEntry->iv_scomData,
FFDC_SUMMARY_SCOM_REG_SIZE ); //copying second FIR value
+
PlatPmComplex::extractScomSummaryReg( l_pOccReg,
FFDC_OCC_REGS_SIZE,
&l_pSysConfig->iv_configReg[0] );
}
+ FAPI_DBG(" << PlatOcc::generateSummary" );
return fapi2::FAPI2_RC_SUCCESS;
}
diff --git a/src/import/chips/p9/procedures/hwp/pm/p9_pm_recovery_ffdc_pgpe.C b/src/import/chips/p9/procedures/hwp/pm/p9_pm_recovery_ffdc_pgpe.C
index 0c661da1b..93c52753f 100644
--- a/src/import/chips/p9/procedures/hwp/pm/p9_pm_recovery_ffdc_pgpe.C
+++ b/src/import/chips/p9/procedures/hwp/pm/p9_pm_recovery_ffdc_pgpe.C
@@ -290,7 +290,7 @@
l_pPgpeSummaryHdr->iv_subSectnId = PLAT_PGPE;
l_pPgpeSummaryHdr->iv_majorNum = PGPE_MAJ_NUM;
l_pPgpeSummaryHdr->iv_minorNum = PGPE_MIN_NUM;
- l_pPgpeSummaryHdr->iv_secValid = l_pPgpeFfdcHdr->iv_sectionsValid;
+ l_pPgpeSummaryHdr->iv_secValid = htobe16(l_pPgpeFfdcHdr->iv_sectionsValid);
if( l_pPgpeSummaryHdr->iv_secValid )
{
diff --git a/src/import/chips/p9/procedures/hwp/pm/p9_pm_recovery_ffdc_sgpe.C b/src/import/chips/p9/procedures/hwp/pm/p9_pm_recovery_ffdc_sgpe.C
index 077059fba..1ed28b53c 100644
--- a/src/import/chips/p9/procedures/hwp/pm/p9_pm_recovery_ffdc_sgpe.C
+++ b/src/import/chips/p9/procedures/hwp/pm/p9_pm_recovery_ffdc_sgpe.C
@@ -327,6 +327,7 @@
fapi2::ReturnCode PlatSgpe::generateSummary( void * i_pHomer )
{
+ FAPI_DBG( ">> PlatSgpe::generateSummary" )
HomerFfdcRegion * l_pHomerFfdc =
( HomerFfdcRegion *)( (uint8_t *)i_pHomer + FFDC_REGION_HOMER_BASE_OFFSET );
PpeFfdcLayout * l_pSgpeLayout = ( PpeFfdcLayout * ) &l_pHomerFfdc->iv_sgpeFfdcRegion;
@@ -337,7 +338,7 @@
l_pSgpeSummaryHdr->iv_subSectnId = PLAT_SGPE;
l_pSgpeSummaryHdr->iv_majorNum = SGPE_MAJ_NUM;
l_pSgpeSummaryHdr->iv_minorNum = SGPE_MIN_NUM;
- l_pSgpeSummaryHdr->iv_secValid = l_pSgpeFfdcHdr->iv_sectionsValid;
+ l_pSgpeSummaryHdr->iv_secValid = htobe16(l_pSgpeFfdcHdr->iv_sectionsValid);
if( l_pSgpeSummaryHdr->iv_secValid )
{
@@ -352,6 +353,7 @@
l_pHomerFfdc->iv_ffdcSummaryRegion.iv_sgpeScoreBoard.iv_dataSize );
}
+ FAPI_DBG( "<< PlatSgpe::generateSummary" )
return fapi2::FAPI2_RC_SUCCESS;
}
diff --git a/src/import/hwpf/fapi2/include/collect_reg_ffdc.H b/src/import/hwpf/fapi2/include/collect_reg_ffdc.H
index aa5dd5176..98f1f3b80 100644
--- a/src/import/hwpf/fapi2/include/collect_reg_ffdc.H
+++ b/src/import/hwpf/fapi2/include/collect_reg_ffdc.H
@@ -436,7 +436,7 @@ ReturnCode collectRegisterAndAddressData(std::vector<T>& i_addresses, U& i_reade
l_address = htobe64(l_address);
l_data = htobe64(l_data);
- l_addr = l_address;
+ l_addr = l_address >> 32;
memcpy(o_pData, &l_addr, sizeof(uint32_t));
o_pData += sizeof(uint32_t);
OpenPOWER on IntegriCloud