summaryrefslogtreecommitdiffstats
path: root/src/usr/fapi2
diff options
context:
space:
mode:
authorCaleb Palmer <cnpalmer@us.ibm.com>2018-12-07 15:18:39 -0600
committerZane C. Shelley <zshelle@us.ibm.com>2018-12-11 20:51:11 -0600
commita10dc1641d321b37c0cadc49cdef1f839dca21f2 (patch)
treee358f6d60b1e4f2cb5362ba60f081937e2520647 /src/usr/fapi2
parent4a8f0e512566d1ed7466e4c132c638dfa2768ab1 (diff)
downloadtalos-hostboot-a10dc1641d321b37c0cadc49cdef1f839dca21f2.tar.gz
talos-hostboot-a10dc1641d321b37c0cadc49cdef1f839dca21f2.zip
Update dimmBadDqCheckParamGetBitmap to be generic
Change-Id: Ia1b7ab8fa257a3bdad8ea5fbd46add150a165e73 RTC: 201603 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/69581 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> 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: Brian J. Stegmiller <bjs@us.ibm.com> Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com>
Diffstat (limited to 'src/usr/fapi2')
-rw-r--r--src/usr/fapi2/dimmBadDqBitmapFuncs.C72
1 files changed, 21 insertions, 51 deletions
diff --git a/src/usr/fapi2/dimmBadDqBitmapFuncs.C b/src/usr/fapi2/dimmBadDqBitmapFuncs.C
index 46a324227..8fb4b9fe0 100644
--- a/src/usr/fapi2/dimmBadDqBitmapFuncs.C
+++ b/src/usr/fapi2/dimmBadDqBitmapFuncs.C
@@ -38,7 +38,8 @@ extern "C"
// Utility function to check parameters and get the Bad DQ bitmap
//------------------------------------------------------------------------------
fapi2::ReturnCode dimmBadDqCheckParamGetBitmap( const fapi2::Target
- <fapi2::TARGET_TYPE_MCA|fapi2::TARGET_TYPE_MBA> & i_fapiTrgt,
+ <fapi2::TARGET_TYPE_MCA|fapi2::TARGET_TYPE_MBA|fapi2::TARGET_TYPE_MEM_PORT>
+ & i_fapiTrgt,
const uint8_t i_port,
const uint8_t i_dimm,
const uint8_t i_rank,
@@ -72,67 +73,34 @@ fapi2::ReturnCode dimmBadDqCheckParamGetBitmap( const fapi2::Target
break;
}
- // Get the proc model
- TARGETING::Target* l_masterProc = nullptr;
- TARGETING::targetService().masterProcChipTargetHandle( l_masterProc );
- TARGETING::ATTR_MODEL_type l_procModel =
- l_masterProc->getAttr<TARGETING::ATTR_MODEL>();
-
// Get all functional DIMMs
TargetHandleList l_dimmList;
getChildAffinityTargets( l_dimmList, l_trgt, CLASS_NA, TYPE_DIMM );
- if ( TARGETING::MODEL_CUMULUS == l_procModel )
+ // Find the DIMM with the correct port/dimm slct
+ uint8_t l_port = 0;
+ uint8_t l_dimm = 0;
+
+ for ( auto &dimmTrgt : l_dimmList )
{
- // Find the DIMM with the correct MBA port/dimm
- uint8_t l_port = 0;
- uint8_t l_dimm = 0;
+ // Get and compare the port
+ l_port = dimmTrgt->getAttr<ATTR_MEM_PORT>();
- for ( auto &dimmTrgt : l_dimmList )
+ if ( l_port == i_port )
{
- // Get and compare the port
- l_port = dimmTrgt->getAttr<ATTR_CEN_MBA_PORT>();
+ // Get and compare the dimm
+ l_dimm = dimmTrgt->getAttr<ATTR_POS_ON_MEM_PORT>();
- if ( l_port == i_port )
- {
- // Get and compare the dimm
- l_dimm = dimmTrgt->getAttr<ATTR_CEN_MBA_DIMM>();
-
- if ( l_dimm == i_dimm )
- {
- o_dimmTrgt = dimmTrgt;
- // Port and dimm are correct, get the Bad DQ bitmap
- l_rc = FAPI_ATTR_GET( fapi2::ATTR_BAD_DQ_BITMAP,
- dimmTrgt, o_dqBitmap );
- if ( l_rc ) break;
- }
- }
- }
- }
- else if ( TARGETING::MODEL_NIMBUS == l_procModel )
- {
- for ( auto &dimmTrgt : l_dimmList )
- {
- uint32_t l_pos = dimmTrgt->getAttr<ATTR_FAPI_POS>() %
- mss::MAX_DIMM_PER_PORT;
- if ( l_pos == i_dimm )
+ if ( l_dimm == i_dimm )
{
o_dimmTrgt = dimmTrgt;
- // Get the Bad DQ bitmap by querying ATTR_BAD_DQ_BITMAP.
- l_rc = FAPI_ATTR_GET( fapi2::ATTR_BAD_DQ_BITMAP,
- o_dimmTrgt, o_dqBitmap );
- break;
+ // Port and dimm are correct, get the Bad DQ bitmap
+ l_rc = FAPI_ATTR_GET( fapi2::ATTR_BAD_DQ_BITMAP, dimmTrgt,
+ o_dqBitmap );
+ if ( l_rc ) break;
}
}
}
- else
- {
- // TODO RTC 201603 - axone/generic updates
- // Invalid target.
- FAPI_ERR( "dimmBadDqCheckParamGetBitmap: Invalid proc model" );
- l_rc = fapi2::FAPI2_RC_INVALID_ATTR_GET;
- break;
- }
if ( l_rc )
{
@@ -147,7 +115,8 @@ fapi2::ReturnCode dimmBadDqCheckParamGetBitmap( const fapi2::Target
//------------------------------------------------------------------------------
fapi2::ReturnCode p9DimmGetBadDqBitmap( const fapi2::Target
- <fapi2::TARGET_TYPE_MCA|fapi2::TARGET_TYPE_MBA> & i_fapiTrgt,
+ <fapi2::TARGET_TYPE_MCA|fapi2::TARGET_TYPE_MBA|fapi2::TARGET_TYPE_MEM_PORT>
+ & i_fapiTrgt,
const uint8_t i_dimm,
const uint8_t i_rank,
uint8_t (&o_data)[mss::BAD_DQ_BYTE_COUNT],
@@ -182,7 +151,8 @@ fapi2::ReturnCode p9DimmGetBadDqBitmap( const fapi2::Target
//------------------------------------------------------------------------------
fapi2::ReturnCode p9DimmSetBadDqBitmap( const fapi2::Target
- <fapi2::TARGET_TYPE_MCA|fapi2::TARGET_TYPE_MBA> & i_fapiTrgt,
+ <fapi2::TARGET_TYPE_MCA|fapi2::TARGET_TYPE_MBA|fapi2::TARGET_TYPE_MEM_PORT>
+ & i_fapiTrgt,
const uint8_t i_dimm,
const uint8_t i_rank,
const uint8_t (&i_data)[mss::BAD_DQ_BYTE_COUNT],
OpenPOWER on IntegriCloud