summaryrefslogtreecommitdiffstats
path: root/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/omi
diff options
context:
space:
mode:
authorMark Pizzutillo <Mark.Pizzutillo@ibm.com>2019-09-16 17:08:27 -0400
committerDaniel M Crowell <dcrowell@us.ibm.com>2019-10-17 15:27:03 -0500
commit8f549e7548fb45819fc4fd8637448f428f14eec1 (patch)
tree0bd9d8d0361ba7e511794ff4b6e1ea75f2b0ccde /src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/omi
parent70b54e6ae12665ccc0070e896039faadd52333f7 (diff)
downloadtalos-hostboot-8f549e7548fb45819fc4fd8637448f428f14eec1.tar.gz
talos-hostboot-8f549e7548fb45819fc4fd8637448f428f14eec1.zip
Add code and workarounds for *_omi_setup and *_omi_train for Swift
Change-Id: I139357a553e621b25b46bee6303357c712b67be2 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/83848 Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Dev-Ready: Steven B Janssen <janssens@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: STEPHEN GLANCY <sglancy@us.ibm.com> Reviewed-by: Christian R Geddes <crgeddes@us.ibm.com> Reviewed-by: Louis Stermole <stermole@us.ibm.com> Reviewed-by: Jennifer A Stofer <stofer@us.ibm.com> Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/83905 Reviewed-by: Daniel M Crowell <dcrowell@us.ibm.com> Tested-by: Daniel M Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/omi')
-rw-r--r--src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/omi/exp_omi_utils.C34
-rw-r--r--src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/omi/exp_omi_utils.H13
2 files changed, 46 insertions, 1 deletions
diff --git a/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/omi/exp_omi_utils.C b/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/omi/exp_omi_utils.C
index 47e85362f..f8133bafb 100644
--- a/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/omi/exp_omi_utils.C
+++ b/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/omi/exp_omi_utils.C
@@ -40,6 +40,7 @@
#include <generic/memory/lib/mss_generic_attribute_getters.H>
#include <mss_explorer_attribute_getters.H>
#include <generic/memory/lib/mss_generic_system_attribute_getters.H>
+#include <lib/shared/exp_consts.H>
namespace mss
{
@@ -75,12 +76,17 @@ fapi2::ReturnCode setup_omi_dl0_config0(
l_config0.insertFromRight<EXPLR_DLX_DL0_CONFIG0_CFG_TRAIN_MODE,
EXPLR_DLX_DL0_CONFIG0_CFG_TRAIN_MODE_LEN>(i_train_mode);
+ l_config0.writeBit<EXPLR_DLX_DL0_CONFIG0_CFG_PWRMGT_ENABLE>(0);
+
+ FAPI_DBG("Writing 0x%16llx to EXPLR_DLX_DL0_CONFIG0 (0x%16llx) of %s",
+ l_config0, EXPLR_DLX_DL0_CONFIG0, mss::c_str(i_target));
+
// All other bits will be left at their default values
FAPI_TRY( fapi2::putScom(i_target, EXPLR_DLX_DL0_CONFIG0, l_config0),
"Error writing EXPLR_DLX_DL0_CONFIG0 on %s", mss::c_str(i_target));
fapi_try_exit:
- return fapi2::FAPI2_RC_SUCCESS;
+ return fapi2::current_err;
}
namespace train
@@ -142,6 +148,32 @@ fapi_try_exit:
return fapi2::current_err;
}
+///
+/// @brief Check the OMI train status on the OCMB chip
+///
+/// @param[in] i_target OCMB chil
+/// @param[out] o_state_machine_state training state mahcine
+/// @param[out] o_omi_training_status training status
+/// @return fapi2::ReturnCode
+///
+fapi2::ReturnCode omi_train_status(const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>& i_target,
+ uint8_t& o_state_machine_state,
+ fapi2::buffer<uint64_t>& o_omi_training_status)
+{
+ fapi2::buffer<uint64_t> l_omi_status;
+
+ // Check OMI training status
+ FAPI_TRY(fapi2::getScom(i_target, EXPLR_DLX_DL0_STATUS, l_omi_status));
+
+ o_omi_training_status = l_omi_status;
+ o_state_machine_state = 0;
+ l_omi_status.extractToRight<EXPLR_DLX_DL0_STATUS_STS_TRAINING_STATE_MACHINE,
+ EXPLR_DLX_DL0_STATUS_STS_TRAINING_STATE_MACHINE_LEN>(o_state_machine_state);
+
+fapi_try_exit:
+ return fapi2::current_err;
+}
+
} // ns train
} // ns omi
diff --git a/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/omi/exp_omi_utils.H b/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/omi/exp_omi_utils.H
index cb52d1ac0..5022271ee 100644
--- a/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/omi/exp_omi_utils.H
+++ b/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/omi/exp_omi_utils.H
@@ -230,6 +230,19 @@ namespace train
///
fapi2::ReturnCode setup_fw_boot_config( const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>& i_target,
std::vector<uint8_t>& o_data );
+
+///
+/// @brief Check the OMI train status on the OCMB chip
+///
+/// @param[in] i_target OCMB chil
+/// @param[out] o_state_machine_state training state mahcine
+/// @param[out] o_omi_training_status training status
+/// @return fapi2::ReturnCode
+///
+fapi2::ReturnCode omi_train_status(const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>& i_target,
+ uint8_t& o_state_machine_state,
+ fapi2::buffer<uint64_t>& o_omi_training_status);
+
} // ns train
} // ns omi
OpenPOWER on IntegriCloud