diff options
-rw-r--r-- | src/import/chips/ocmb/explorer/procedures/hwp/memory/exp_scominit.C | 58 | ||||
-rw-r--r-- | src/import/chips/ocmb/explorer/procedures/hwp/memory/exp_scominit.H | 31 |
2 files changed, 89 insertions, 0 deletions
diff --git a/src/import/chips/ocmb/explorer/procedures/hwp/memory/exp_scominit.C b/src/import/chips/ocmb/explorer/procedures/hwp/memory/exp_scominit.C index 6cc3f2470..3c6767a94 100644 --- a/src/import/chips/ocmb/explorer/procedures/hwp/memory/exp_scominit.C +++ b/src/import/chips/ocmb/explorer/procedures/hwp/memory/exp_scominit.C @@ -22,3 +22,61 @@ /* permissions and limitations under the License. */ /* */ /* IBM_PROLOG_END_TAG */ + +/// +/// @file exp_scominit.C +/// @brief Contains explorer scominits +/// +// *HWP HWP Owner: Andre Marin <aamarin@us.ibm.com> +// *HWP HWP Backup: Stephen Glancy <sglancy@us.ibm.com> +// *HWP Team: Memory +// *HWP Level: 3 +// *HWP Consumed by: Memory + +#include <fapi2.H> +#include <generic/memory/lib/utils/c_str.H> +#include <generic/memory/lib/utils/count_dimm.H> +#include <generic/memory/lib/utils/find.H> +#include <explorer_scom.H> + +extern "C" +{ + + /// + /// @brief Scominit for Explorer + /// @param[in] i_target the OCMB target to operate on + /// @return FAPI2_RC_SUCCESS iff ok + /// + fapi2::ReturnCode exp_scominit( const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>& i_target) + { + if (mss::count_dimm(i_target) == 0) + { + FAPI_INF("... skipping mss_scominit %s - no DIMM ...", mss::c_str(i_target)); + return fapi2::FAPI2_RC_SUCCESS; + } + + // We need to make sure we hit all ports + const auto& l_port_targets = mss::find_targets<fapi2::TARGET_TYPE_MEM_PORT>(i_target); + + fapi2::Target<fapi2::TARGET_TYPE_SYSTEM> FAPI_SYSTEM; + const auto& l_mc = i_target.getParent<fapi2::TARGET_TYPE_OMI>() + .getParent<fapi2::TARGET_TYPE_MCC>() + .getParent<fapi2::TARGET_TYPE_MI>() + .getParent<fapi2::TARGET_TYPE_MC>(); + + for(const auto& l_port : l_port_targets) + { + fapi2::ReturnCode l_rc; + FAPI_INF("phy scominit for %s", mss::c_str(l_port)); + FAPI_EXEC_HWP(l_rc, explorer_scom, i_target, l_port, FAPI_SYSTEM, l_mc); + + FAPI_TRY(l_rc, "Error from explorer.scom.initfile %s", mss::c_str(l_port)); + } + + return fapi2::FAPI2_RC_SUCCESS; + + fapi_try_exit: + FAPI_INF("End MSS SCOM init"); + return fapi2::current_err; + } +} diff --git a/src/import/chips/ocmb/explorer/procedures/hwp/memory/exp_scominit.H b/src/import/chips/ocmb/explorer/procedures/hwp/memory/exp_scominit.H index 9053b0501..1e12a797c 100644 --- a/src/import/chips/ocmb/explorer/procedures/hwp/memory/exp_scominit.H +++ b/src/import/chips/ocmb/explorer/procedures/hwp/memory/exp_scominit.H @@ -22,3 +22,34 @@ /* permissions and limitations under the License. */ /* */ /* IBM_PROLOG_END_TAG */ + +/// +/// @file exp_scominit.H +/// @brief SCOM inits for explorer +/// +// *HWP HWP Owner: Stephen Glancy <sglancy@us.ibm.com> +// *HWP HWP Backup: Andre Marin <aamarin@us.ibm.com> +// *HWP Team: Memory +// *HWP Level: 3 +// *HWP Consumed by: FSP:HB + +#ifndef __EXP_SCOMINIT__ +#define __EXP_SCOMINIT__ + +#include <fapi2.H> + +typedef fapi2::ReturnCode (*exp_scominit_FP_t) (const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>&); + +extern "C" +{ + + /// + /// @brief Scominit for Explorer + /// @param[in] i_target the OCMB target to operate on + /// @return FAPI2_RC_SUCCESS iff ok + /// + fapi2::ReturnCode exp_scominit( const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>& i_target); + +} + +#endif |