summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt Derksen <mderkse1@us.ibm.com>2018-07-10 09:10:01 -0500
committerZane C. Shelley <zshelle@us.ibm.com>2018-07-12 10:43:39 -0400
commitb7906419b3bc42063fc89fe46bf04b725783e860 (patch)
tree33e2f34b5357d3b3f3b87f98d6e15fe931ab68e9
parentde5c390af3c74a98bf222cf3de57efff1f438e51 (diff)
downloadtalos-hostboot-b7906419b3bc42063fc89fe46bf04b725783e860.tar.gz
talos-hostboot-b7906419b3bc42063fc89fe46bf04b725783e860.zip
Call fapi2::getSPD() via FAPI_INVOKE_HWP
Fixing bad address: 408bc038 error Change-Id: I34e5207c6d466f59e5ad6fecd1f5391118c5139a CQ:SW437309 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/62128 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Caleb N. Palmer <cnpalmer@us.ibm.com> Reviewed-by: Benjamin J. Weisenbeck <bweisenb@us.ibm.com> Reviewed-by: Brian J. Stegmiller <bjs@us.ibm.com> Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/62183 Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
-rw-r--r--src/usr/diag/prdf/plat/prdfPlatServices.C33
1 files changed, 18 insertions, 15 deletions
diff --git a/src/usr/diag/prdf/plat/prdfPlatServices.C b/src/usr/diag/prdf/plat/prdfPlatServices.C
index 83cf98cba..9ffde276c 100644
--- a/src/usr/diag/prdf/plat/prdfPlatServices.C
+++ b/src/usr/diag/prdf/plat/prdfPlatServices.C
@@ -187,8 +187,8 @@ uint32_t getSpdData(TARGETING::TargetHandle_t i_target,
size_t & o_len)
{
#define PRDF_FUNC "[PlatServices::getSPDdata] "
- uint32_t rc = SUCCESS;
- fapi2::ReturnCode l_rc;
+ uint32_t o_rc = SUCCESS;
+ errlHndl_t l_errl = nullptr;
o_len = 0;
@@ -196,39 +196,42 @@ uint32_t getSpdData(TARGETING::TargetHandle_t i_target,
do {
// SPD interface call with NULL blob to get size data
- l_rc = fapi2::getSPD(l_fapi2_dimm, NULL, o_len);
+ FAPI_INVOKE_HWP(l_errl, fapi2::getSPD, l_fapi2_dimm, NULL, o_len);
- // Expect to return the size or non failure
- if(l_rc != fapi2::FAPI2_RC_SUCCESS)
+ // Check for a valid size returned without an error
+ if(nullptr != l_errl)
{
- PRDF_ERR( PRDF_FUNC "Failed to get SPD size from DIMM with HUID= 0x%x, rc: 0x%02X",
- TARGETING::get_huid(i_target), uint32_t(l_rc) );
- rc = FAIL;
+ PRDF_ERR( PRDF_FUNC "Failed to get SPD size from DIMM with HUID=0x%x",
+ TARGETING::get_huid(i_target) );
+ PRDF_COMMIT_ERRL( l_errl, ERRL_ACTION_REPORT );
+
+ o_rc = FAIL;
break;
}
else if (o_len == 0)
{
- PRDF_ERR( PRDF_FUNC "Failed to get SPD size data of DIMM with HUID= 0x%x",
+ PRDF_ERR( PRDF_FUNC "SPD size data of DIMM with HUID=0x%x returned 0",
TARGETING::get_huid(i_target) );
- rc = FAIL;
+ o_rc = FAIL;
break;
}
// allocate the blob data of mem size length to hold data
o_data = reinterpret_cast<uint8_t *>(malloc(o_len));
- memset(o_data,0 ,o_len);
+ memset(o_data, 0, o_len);
- l_rc = fapi2::getSPD(l_fapi2_dimm, o_data, o_len);
- if ( l_rc != fapi2::FAPI2_RC_SUCCESS )
+ FAPI_INVOKE_HWP(l_errl, fapi2::getSPD, l_fapi2_dimm, o_data, o_len);
+ if ( nullptr != l_errl )
{
PRDF_ERR( PRDF_FUNC "Failed to read data from DIMM with HUID= 0x%x",
TARGETING::get_huid(i_target) );
- rc = FAIL;
+ PRDF_COMMIT_ERRL( l_errl, ERRL_ACTION_REPORT );
+ o_rc = FAIL;
break;
}
} while (0);
- return rc;
+ return o_rc;
#undef PRDF_FUNC
}
OpenPOWER on IntegriCloud