diff options
author | Caleb Palmer <cnpalmer@us.ibm.com> | 2018-12-07 15:18:39 -0600 |
---|---|---|
committer | Zane C. Shelley <zshelle@us.ibm.com> | 2018-12-11 20:51:11 -0600 |
commit | a10dc1641d321b37c0cadc49cdef1f839dca21f2 (patch) | |
tree | e358f6d60b1e4f2cb5362ba60f081937e2520647 /src/usr/fapi2 | |
parent | 4a8f0e512566d1ed7466e4c132c638dfa2768ab1 (diff) | |
download | talos-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.C | 72 |
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], |