diff options
author | Matt Derksen <mderkse1@us.ibm.com> | 2018-07-10 09:10:01 -0500 |
---|---|---|
committer | Zane C. Shelley <zshelle@us.ibm.com> | 2018-07-12 10:43:39 -0400 |
commit | b7906419b3bc42063fc89fe46bf04b725783e860 (patch) | |
tree | 33e2f34b5357d3b3f3b87f98d6e15fe931ab68e9 /src/usr/diag/prdf | |
parent | de5c390af3c74a98bf222cf3de57efff1f438e51 (diff) | |
download | talos-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>
Diffstat (limited to 'src/usr/diag/prdf')
-rw-r--r-- | src/usr/diag/prdf/plat/prdfPlatServices.C | 33 |
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 } |