summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9/utils
diff options
context:
space:
mode:
authorPrasad Bg Ranganath <prasadbgr@in.ibm.com>2017-06-12 01:26:30 -0500
committerSachin Gupta <sgupta2m@in.ibm.com>2017-09-20 12:46:19 -0400
commitc76531552e839fb9cb83865e1e9a039f3436eee3 (patch)
treed8edd63b4632876c886af0790a256a4f1189ec46 /src/import/chips/p9/utils
parente52f9abcc8460f0bdb2c02c09d1678ddf9dab6ed (diff)
downloadtalos-sbe-c76531552e839fb9cb83865e1e9a039f3436eee3.tar.gz
talos-sbe-c76531552e839fb9cb83865e1e9a039f3436eee3.zip
SBE:Putring: Added more debug information
Change-Id: I20ef41aec0492544ee84963b12701e8d5f410f79 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/41668 Reviewed-by: Gregory S. Still <stillgs@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: PPE CI <ppe-ci+hostboot@us.ibm.com> Reviewed-by: Sachin Gupta <sgupta2m@in.ibm.com> Reviewed-by: PARVATHI RACHAKONDA <prachako@in.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/41669 Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Diffstat (limited to 'src/import/chips/p9/utils')
-rw-r--r--src/import/chips/p9/utils/p9_putRingUtils.C37
-rw-r--r--src/import/chips/p9/utils/p9_putRingUtils.H4
2 files changed, 34 insertions, 7 deletions
diff --git a/src/import/chips/p9/utils/p9_putRingUtils.C b/src/import/chips/p9/utils/p9_putRingUtils.C
index ee89c810..cdbf67cb 100644
--- a/src/import/chips/p9/utils/p9_putRingUtils.C
+++ b/src/import/chips/p9/utils/p9_putRingUtils.C
@@ -219,7 +219,8 @@ fapi2::ReturnCode standardScan(
const uint8_t i_chipletId,
opType_t i_operation,
uint64_t i_opVal,
- uint64_t i_scanData)
+ uint64_t i_scanData,
+ const uint16_t i_ringId)
{
FAPI_INF(">> standardScan");
@@ -332,7 +333,16 @@ fapi2::ReturnCode standardScan(
{
l_rc = fapi2::FAPI2_RC_PLAT_ERR_SEE_DATA;
FAPI_ERR("Max attempts exceeded checking OPCG_DONE");
- break;
+ FAPI_ASSERT(false,
+ fapi2::P9_PUTRING_OPCG_DONE_TIMEOUT()
+ .set_TARGET(l_parent)
+ .set_CHIPLET_ID(l_chiplet)
+ .set_SCOM_ADDRESS(l_scomAddress)
+ .set_SCOM_DATA(l_scomData)
+ .set_ROTATE_COUNT(l_rotateCount)
+ .set_RINGID(i_ringId)
+ .set_RETURN_CODE(l_rc),
+ "ROTATE operation failed due to timeout");
}
}// end of for loop
}
@@ -362,6 +372,8 @@ fapi2::ReturnCode standardScan(
}
while(0);
+fapi_try_exit:
+
FAPI_INF("<< standardScan");
return l_rc;
}
@@ -546,9 +558,21 @@ fapi2::ReturnCode verifyHeader(const fapi2::Target<fapi2::TARGET_TYPE_ALL>&
if(l_readHeader != i_header)
{
- FAPI_ERR("Read header(%016x) data incorrect", uint64_t(l_readHeader));
+ FAPI_ERR("Read CHECKWORD (%016x) data incorrect and total bit decoded 0x%016x",
+ uint64_t(l_readHeader), (uint64_t)i_bitsDecoded);
l_rc = fapi2::FAPI2_RC_PLAT_ERR_RING_HEADER_CHECK;
- break;
+ FAPI_ASSERT(false,
+ fapi2::P9_PUTRING_CHECKWORD_DATA_MISMATCH()
+ .set_TARGET(i_target)
+ .set_CHIPLET_ID(l_chiplet)
+ .set_SCOM_ADDRESS(l_scomAddress)
+ .set_SCOM_DATA(l_readHeader)
+ .set_BITS_DECODED(i_bitsDecoded)
+ .set_RINGID(i_ringId)
+ .set_RINGMODE(i_ringMode)
+ .set_RETURN_CODE(l_rc),
+ "CHECKWORD DATA mismatch");
+
}
if ((i_ringMode & fapi2::RING_MODE_SET_PULSE_NSL))
@@ -565,7 +589,7 @@ fapi2::ReturnCode verifyHeader(const fapi2::Target<fapi2::TARGET_TYPE_ALL>&
if(l_rc != fapi2::FAPI2_RC_SUCCESS)
{
- FAPI_ERR("Error during writing header %016x", l_header);
+ FAPI_ERR("Error during writing header %016x for NSL mode", l_header);
break;
}
@@ -573,6 +597,7 @@ fapi2::ReturnCode verifyHeader(const fapi2::Target<fapi2::TARGET_TYPE_ALL>&
}
while(0);
+fapi_try_exit:
return l_rc;
}
@@ -1449,7 +1474,7 @@ fapi2::ReturnCode rs4DecompressionSvc(
}
// Verify header
- l_rc = verifyHeader(i_target, l_header, l_chipletId, i_ringMode);
+ l_rc = verifyHeader(i_target, l_header, l_chipletId, i_ringMode, l_bitsDecoded, l_ringId);
if(l_rc)
{
diff --git a/src/import/chips/p9/utils/p9_putRingUtils.H b/src/import/chips/p9/utils/p9_putRingUtils.H
index fdd6b752..198a8de8 100644
--- a/src/import/chips/p9/utils/p9_putRingUtils.H
+++ b/src/import/chips/p9/utils/p9_putRingUtils.H
@@ -141,13 +141,15 @@ void getRingProperties(const RingID i_ringId,
/// @param[in] i_operation Type of operation to perform - ROTATE/SCAN
/// @param[in] i_opVal Number of bits for the operation
/// @param[in] i_scanData This value has to be scanned when i_operation is SCAN
+/// @param[in] i_ringId Ring id value for debug info
/// @return FAPI2_RC_SUCCESS if success, else error code.
fapi2::ReturnCode standardScan(
const fapi2::Target<fapi2::TARGET_TYPE_ALL>& i_target,
const uint8_t i_chipletId,
opType_t i_operation,
uint64_t i_opVal,
- uint64_t i_scanData = 0);
+ uint64_t i_scanData = 0,
+ const uint16_t i_ringId = 0);
/// @brief Function to set the Scan Region
/// @param[in] i_target Chiplet Target of Scan
OpenPOWER on IntegriCloud