summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9/procedures/hwp/pm
diff options
context:
space:
mode:
authorPrem Shanker Jha <premjha2@in.ibm.com>2017-01-10 05:35:49 -0600
committerChristian R. Geddes <crgeddes@us.ibm.com>2017-01-16 09:17:13 -0500
commitd02ef46e2d00833f22e6f7953485b2dd63a31a08 (patch)
tree55979979baf717ee837186d6efb81727c576a18e /src/import/chips/p9/procedures/hwp/pm
parenta1cab72496e8af3958c0dfc2690afe80e2728a24 (diff)
downloadtalos-hostboot-d02ef46e2d00833f22e6f7953485b2dd63a31a08.tar.gz
talos-hostboot-d02ef46e2d00833f22e6f7953485b2dd63a31a08.zip
PM: Fixed placement issue associated with core repair rings in HOMER.
Commit fixes issue reported with ec_repr ring. Ring payload was starting from the incorrect location. As a result, repair ring for even core in a given EX would have header bytes overwritten. Problem impacts RS4v2 and RSv3 alike. It did not break putring because - Ring offset in the index was still correct - Puting doesn't uses the header bytes which were overwritten. Change-Id: I4a8941927242d5ed391031740142f9c1039bb585 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/34654 Reviewed-by: RANGANATHPRASAD G. BRAHMASAMUDRA <prasadbgr@in.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com> Reviewed-by: ASHISH A. MORE <ashish.more@in.ibm.com> Reviewed-by: Gregory S. Still <stillgs@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/34656 Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
Diffstat (limited to 'src/import/chips/p9/procedures/hwp/pm')
-rw-r--r--src/import/chips/p9/procedures/hwp/pm/p9_hcode_image_build.C13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/import/chips/p9/procedures/hwp/pm/p9_hcode_image_build.C b/src/import/chips/p9/procedures/hwp/pm/p9_hcode_image_build.C
index a39941612..1bf79981b 100644
--- a/src/import/chips/p9/procedures/hwp/pm/p9_hcode_image_build.C
+++ b/src/import/chips/p9/procedures/hwp/pm/p9_hcode_image_build.C
@@ -615,7 +615,7 @@ extern "C"
sgpeFlag |= SGPE_STOP_11_TO_8_BIT_POS;
}
- FAPI_DBG("STOP_11_to_8 : %s", attrVal ? "TRUE" : "FALSE" );
+ FAPI_DBG("STOP_11_to_8 : %s", attrVal ? "TRUE" : "FALSE" );
//Handling SGPE specific flag
FAPI_TRY(FAPI_ATTR_GET(fapi2::ATTR_PROC_FABRIC_ADDR_BAR_MODE,
@@ -629,7 +629,7 @@ extern "C"
sgpeFlag |= SGPE_PROC_FAB_ADDR_BAR_MODE_POS;
}
- FAPI_DBG("SMALL_SYSTEM : %s", attrVal ? "TRUE" : "FALSE" );
+ FAPI_DBG("SMALL_SYSTEM : %s", attrVal ? "TRUE" : "FALSE" );
//Updating flag field in CME/SGPE Image header
pCmeHdr->g_cme_mode_flags = SWIZZLE_4_BYTE(cmeFlag);
pSgpeHdr->g_sgpe_reserve_flags = SWIZZLE_4_BYTE(sgpeFlag);
@@ -1575,8 +1575,11 @@ extern "C"
maxCoreSpecRingLength = ringLength > maxCoreSpecRingLength ? ringLength : maxCoreSpecRingLength;
}
- maxCoreSpecRingLength += sizeof(CoreSpecRingList_t);
- ROUND_OFF_32B(maxCoreSpecRingLength);
+ if( maxCoreSpecRingLength > 0 )
+ {
+ maxCoreSpecRingLength += sizeof(CoreSpecRingList_t);
+ ROUND_OFF_32B(maxCoreSpecRingLength);
+ }
FAPI_DBG("Max Instance Spec Ring 0x%08X", maxCoreSpecRingLength);
// Let us copy the rings now.
@@ -1588,7 +1591,7 @@ extern "C"
for( uint32_t exId = 0; exId < MAX_CME_PER_CHIP; exId++ )
{
pRingStart = (uint8_t*)&i_pHomer->cpmrRegion.cmeSramRegion[io_ringLength + ( exId * maxCoreSpecRingLength ) ];
- pRingPayload = &i_pHomer->cpmrRegion.cmeSramRegion[ io_ringLength + ( exId * maxCoreSpecRingLength ) ];
+ pRingPayload = pRingStart + sizeof(CoreSpecRingList_t);
pScanRingIndex = (uint16_t*)pRingStart;
if( !i_chipState.isExFunctional( exId ) )
OpenPOWER on IntegriCloud