diff options
author | Prem Shanker Jha <premjha2@in.ibm.com> | 2018-08-30 01:38:18 -0500 |
---|---|---|
committer | Christian R. Geddes <crgeddes@us.ibm.com> | 2018-09-28 15:01:06 -0500 |
commit | 5baacd28d51e361566f587c6b613ba679352d4ec (patch) | |
tree | f01cb0bc9279716dd59d9f119b71b28cb704eb55 | |
parent | dd13920527a89d5ecb1342d7183743b33ba8195e (diff) | |
download | talos-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>
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); |