summaryrefslogtreecommitdiffstats
path: root/src/import/chips/p9/procedures/hwp/memory/lib/ecc/galois.H
diff options
context:
space:
mode:
authorJacob Harvey <jlharvey@us.ibm.com>2017-06-23 14:56:41 -0500
committerDean Sanner <dsanner@us.ibm.com>2017-07-12 08:37:53 -0400
commitda9dcab165f8e60f47ada03badaaf73b3f465baf (patch)
tree74007ac319e0aa21cde7883ebef6125345182795 /src/import/chips/p9/procedures/hwp/memory/lib/ecc/galois.H
parent545eb2ec77f2dda32ee7ffa838fa1a7f22af068e (diff)
downloadtalos-hostboot-da9dcab165f8e60f47ada03badaaf73b3f465baf.tar.gz
talos-hostboot-da9dcab165f8e60f47ada03badaaf73b3f465baf.zip
L3 mss_memdiags
Change-Id: Ic86bf80983e9ac5f79f527a4590cb435e2b8deeb Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/42432 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: ANDRE A. MARIN <aamarin@us.ibm.com> Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com> Reviewed-by: Louis Stermole <stermole@us.ibm.com> Reviewed-by: STEPHEN GLANCY <sglancy@us.ibm.com> Reviewed-by: Zane C. Shelley <zshelle@us.ibm.com> Reviewed-by: Jennifer A. Stofer <stofer@us.ibm.com> Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/42530 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> Reviewed-by: Dean Sanner <dsanner@us.ibm.com>
Diffstat (limited to 'src/import/chips/p9/procedures/hwp/memory/lib/ecc/galois.H')
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/ecc/galois.H64
1 files changed, 38 insertions, 26 deletions
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/ecc/galois.H b/src/import/chips/p9/procedures/hwp/memory/lib/ecc/galois.H
index 3161b1759..981350955 100644
--- a/src/import/chips/p9/procedures/hwp/memory/lib/ecc/galois.H
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/ecc/galois.H
@@ -28,9 +28,9 @@
/// @brief Translate ECC mark Galois codes to symbol and DQ
///
// *HWP HWP Owner: Louis Stermole <stermole@us.ibm.com>
-// *HWP HWP Backup: Brian Silver <bsilver@us.ibm.com>
+// *HWP HWP Backup: Stephen Glancy <sglancy@us.ibm.com>
// *HWP Team: Memory
-// *HWP Level: 2
+// *HWP Level: 3
// *HWP Consumed by: HB:FSP
#ifndef _MSS_ECC_GALOIS_H_
@@ -57,14 +57,17 @@ fapi2::ReturnCode galois_to_symbol( const uint8_t i_galois, uint8_t& o_symbol )
{
const auto& l_p = std::find(TT::symbol2galois, (TT::symbol2galois + MAX_DQ_BITS), i_galois);
- if (l_p == (TT::symbol2galois + MAX_DQ_BITS))
- {
- FAPI_ERR("galois_to_symbol: invalid Galois code: 0x%02x", i_galois);
- return fapi2::FAPI2_RC_INVALID_PARAMETER;
- }
+ FAPI_ASSERT( l_p != (TT::symbol2galois + MAX_DQ_BITS),
+ fapi2::MSS_INVALID_GALOIS_TO_SYMBOL()
+ .set_GALOIS(i_galois),
+ "Invalid Galois code: 0x%02x",
+ i_galois);
o_symbol = (l_p - TT::symbol2galois);
+
return fapi2::FAPI2_RC_SUCCESS;
+fapi_try_exit:
+ return fapi2::current_err;
}
///
@@ -78,14 +81,17 @@ fapi2::ReturnCode galois_to_symbol( const uint8_t i_galois, uint8_t& o_symbol )
template< fapi2::TargetType T = fapi2::TARGET_TYPE_MCA, typename TT = eccTraits<T> >
fapi2::ReturnCode symbol_to_galois( const uint8_t i_symbol, uint8_t& o_galois )
{
- if (i_symbol >= MAX_DQ_BITS)
- {
- FAPI_ERR("symbol_to_galois: invalid symbol: %d", i_symbol);
- return fapi2::FAPI2_RC_INVALID_PARAMETER;
- }
+ FAPI_ASSERT( i_symbol < MAX_DQ_BITS,
+ fapi2::MSS_INVALID_SYMBOL_FOR_GALOIS()
+ .set_SYMBOL(i_symbol),
+ "Invalid symbol: %d",
+ i_symbol);
o_galois = TT::symbol2galois[i_symbol];
+
return fapi2::FAPI2_RC_SUCCESS;
+fapi_try_exit:
+ return fapi2::current_err;
}
///
@@ -101,14 +107,17 @@ fapi2::ReturnCode dq_to_symbol( const uint8_t i_dq, uint8_t& o_symbol )
{
const auto& l_p = std::find(TT::symbol2dq, (TT::symbol2dq + MAX_DQ_BITS), i_dq);
- if (l_p == (TT::symbol2dq + MAX_DQ_BITS))
- {
- FAPI_ERR("dq_to_symbol: invalid DQ index: %d", i_dq);
- return fapi2::FAPI2_RC_INVALID_PARAMETER;
- }
+ FAPI_ASSERT( l_p != (TT::symbol2dq + MAX_DQ_BITS),
+ fapi2::MSS_INVALID_DQ_TO_SYMBOL()
+ .set_DQ(i_dq),
+ "Invalid DQ index: %d",
+ i_dq);
o_symbol = (l_p - TT::symbol2dq);
+
return fapi2::FAPI2_RC_SUCCESS;
+fapi_try_exit:
+ return fapi2::current_err;
}
///
@@ -122,14 +131,17 @@ fapi2::ReturnCode dq_to_symbol( const uint8_t i_dq, uint8_t& o_symbol )
template< fapi2::TargetType T = fapi2::TARGET_TYPE_MCA, typename TT = eccTraits<T> >
fapi2::ReturnCode symbol_to_dq( const uint8_t i_symbol, uint8_t& o_dq )
{
- if (i_symbol >= MAX_DQ_BITS)
- {
- FAPI_ERR("symbol_to_dq: invalid symbol: %d", i_symbol);
- return fapi2::FAPI2_RC_INVALID_PARAMETER;
- }
+ FAPI_ASSERT( i_symbol < MAX_DQ_BITS,
+ fapi2::MSS_INVALID_SYMBOL_TO_DQ()
+ .set_SYMBOL(i_symbol),
+ "symbol_to_dq: invalid symbol: %d",
+ i_symbol);
o_dq = TT::symbol2dq[i_symbol];
+
return fapi2::FAPI2_RC_SUCCESS;
+fapi_try_exit:
+ return fapi2::current_err;
}
///
@@ -145,8 +157,8 @@ fapi2::ReturnCode galois_to_dq( const uint8_t i_galois, uint8_t& o_dq )
{
uint8_t l_symbol = 0;
- FAPI_TRY( galois_to_symbol<T>(i_galois, l_symbol) );
- FAPI_TRY( symbol_to_dq<T>(l_symbol, o_dq) );
+ FAPI_TRY( galois_to_symbol<T>(i_galois, l_symbol), "Failed galois_to_symbol");
+ FAPI_TRY( symbol_to_dq<T>(l_symbol, o_dq), "Failed symbol_to_dq" );
fapi_try_exit:
return fapi2::current_err;
@@ -165,8 +177,8 @@ fapi2::ReturnCode dq_to_galois( const uint8_t i_dq, uint8_t& o_galois )
{
uint8_t l_symbol = 0;
- FAPI_TRY( mss::ecc::dq_to_symbol<T>(i_dq, l_symbol) );
- FAPI_TRY( mss::ecc::symbol_to_galois<T>(l_symbol, o_galois) );
+ FAPI_TRY( mss::ecc::dq_to_symbol<T>(i_dq, l_symbol), "Failed dq_to_symbol");
+ FAPI_TRY( mss::ecc::symbol_to_galois<T>(l_symbol, o_galois) , "Failed symbol_to_galois" );
fapi_try_exit:
return fapi2::current_err;
OpenPOWER on IntegriCloud