summaryrefslogtreecommitdiffstats
path: root/src/import
diff options
context:
space:
mode:
authorDan Crowell <dcrowell@us.ibm.com>2019-10-18 17:24:25 -0500
committerDaniel M Crowell <dcrowell@us.ibm.com>2019-10-30 14:29:45 -0500
commit4924154e6010b820fad881164c4c0c691569fcd1 (patch)
treec9b2c9b2fd04f833684390f2f143b8b5a3f30f9b /src/import
parent38949a9bbbbba1cb0e23f9eb19473937446a9269 (diff)
downloadtalos-hostboot-4924154e6010b820fad881164c4c0c691569fcd1.tar.gz
talos-hostboot-4924154e6010b820fad881164c4c0c691569fcd1.zip
Create FW interfaces to execute memory diagnostics
Created 2 files, each encapsulating the functionality to drive memdiags for either Nimbus or Explorer. Change-Id: Ice58b4eb43c51b30ed5ba22c7b5d042eea5e4bfe Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/85588 Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Dev-Ready: STEPHEN GLANCY <sglancy@us.ibm.com> Tested-by: Hostboot CI <hostboot-ci+hostboot@us.ibm.com> Reviewed-by: ANDRE A MARIN <aamarin@us.ibm.com> Reviewed-by: STEPHEN GLANCY <sglancy@us.ibm.com> Reviewed-by: Jennifer A Stofer <stofer@us.ibm.com> Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/85592 Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/import')
-rw-r--r--src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/hwp_wrappers_exp.C169
-rw-r--r--src/import/chips/p9/procedures/hwp/memory/lib/utils/hwp_wrappers_nim.C169
-rw-r--r--src/import/generic/memory/lib/prd/hwp_wrappers.H119
-rw-r--r--src/import/generic/memory/lib/utils/mcbist/gen_mss_mcbist.H2
4 files changed, 374 insertions, 85 deletions
diff --git a/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/hwp_wrappers_exp.C b/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/hwp_wrappers_exp.C
new file mode 100644
index 000000000..03ba1a1de
--- /dev/null
+++ b/src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/hwp_wrappers_exp.C
@@ -0,0 +1,169 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/import/chips/ocmb/explorer/procedures/hwp/memory/lib/hwp_wrappers_exp.C $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2019 */
+/* [+] International Business Machines Corp. */
+/* */
+/* */
+/* Licensed under the Apache License, Version 2.0 (the "License"); */
+/* you may not use this file except in compliance with the License. */
+/* You may obtain a copy of the License at */
+/* */
+/* http://www.apache.org/licenses/LICENSE-2.0 */
+/* */
+/* Unless required by applicable law or agreed to in writing, software */
+/* distributed under the License is distributed on an "AS IS" BASIS, */
+/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */
+/* implied. See the License for the specific language governing */
+/* permissions and limitations under the License. */
+/* */
+/* IBM_PROLOG_END_TAG */
+
+///
+/// @file hwp_wrappers_exp.C
+/// @brief Main wrapper file for PRD calling Explorer memory procedure code
+///
+// *HWP HWP Owner: Matthew Hickman <Matthew.Hickman@ibm.com>
+// *HWP HWP Backup: Andre Marin <aamarin@us.ibm.com>
+// *HWP Team: Memory
+// *HWP Level: 3
+// *HWP Consumed by: HB:FSP
+
+#include <fapi2.H>
+#include <lib/shared/exp_defaults.H>
+#include <lib/mcbist/exp_mcbist_traits.H>
+#include <lib/dimm/exp_rank.H>
+#include <lib/mc/exp_port.H>
+#include <lib/mcbist/exp_mcbist.H>
+#include <generic/memory/lib/utils/dimm/kind.H>
+#include <generic/memory/lib/utils/mcbist/gen_mss_mcbist.H>
+#include <generic/memory/lib/utils/mcbist/gen_mss_memdiags.H>
+
+///
+/// @brief Memdiags stop command wrapper for Explorer
+/// @param[in] i_target the target
+/// @return FAPI2_RC_SUCCESS iff ok
+///
+fapi2::ReturnCode exp_stop( const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>& i_target )
+{
+ return mss::memdiags::stop<mss::mc_type::EXPLORER>(i_target);
+}
+
+///
+/// @brief Memdiags Super Fast Init command wrapper for Nimbus
+/// @param[in] i_target the target behind which all memory should be initialized
+/// @param[in] i_pattern an index representing a pattern to use to init memory (defaults to 0)
+/// @return FAPI2_RC_SUCCESS iff everything ok
+///
+fapi2::ReturnCode exp_sf_init( const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>& i_target,
+ const uint64_t i_pattern )
+{
+ return mss::memdiags::sf_init<mss::mc_type::EXPLORER>(i_target, i_pattern);
+}
+
+///
+/// @brief Memdiags Super Fast Read command wrapper for Explorer
+/// @param[in] i_target the target behind which all memory should be read
+/// @param[in] i_stop stop conditions
+/// @param[in] i_address mcbist::address representing the address from which to start.
+// Defaults to the first address behind the target
+/// @param[in] i_end whether to end, and where
+/// Defaults to stop after slave rank
+/// @param[in] i_end_address mcbist::address representing the address to end.
+// Defaults to TT::LARGEST_ADDRESS
+/// @return FAPI2_RC_SUCCESS iff everything ok
+///
+fapi2::ReturnCode exp_sf_read( const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>& i_target,
+ const mss::mcbist::stop_conditions<mss::mc_type::EXPLORER>& i_stop,
+ const mss::mcbist::address& i_address,
+ const mss::mcbist::end_boundary i_end,
+ const mss::mcbist::address& i_end_address )
+{
+ return mss::memdiags::sf_read<mss::mc_type::EXPLORER>(i_target, i_stop, i_address, i_end, i_end_address);
+}
+
+///
+/// @brief Continuous background scrub command wrapper for Explorer
+/// @param[in] i_target the target behind which all memory should be scrubbed
+/// @param[in] i_stop stop conditions
+/// @param[in] i_speed the speed to scrub
+/// @param[in] i_address mcbist::address representing the address from which to start.
+/// @return FAPI2_RC_SUCCESS iff everything ok
+///
+fapi2::ReturnCode exp_background_scrub( const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>& i_target,
+ const mss::mcbist::stop_conditions<mss::mc_type::EXPLORER>& i_stop,
+ const mss::mcbist::speed i_speed,
+ const mss::mcbist::address& i_address )
+{
+ return mss::memdiags::background_scrub<mss::mc_type::EXPLORER>(i_target, i_stop, i_speed, i_address);
+}
+
+///
+/// @brief Targeted scrub command wrapper for Explorer
+/// @param[in] i_target the target behind which all memory should be scrubbed
+/// @param[in] i_stop stop conditions
+/// @param[in] i_speed the speed to scrub
+/// @param[in] i_start_address mcbist::address representing the address from which to start.
+/// @param[in] i_end_address mcbist::address representing the address at which to end.
+/// @param[in] i_end whether to end, and where
+/// @return FAPI2_RC_SUCCESS iff everything ok
+///
+fapi2::ReturnCode exp_targeted_scrub( const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>& i_target,
+ const mss::mcbist::stop_conditions<mss::mc_type::EXPLORER>& i_stop,
+ const mss::mcbist::address& i_start_address,
+ const mss::mcbist::address& i_end_address,
+ const mss::mcbist::end_boundary i_end )
+{
+ return mss::memdiags::targeted_scrub<mss::mc_type::EXPLORER>(i_target, i_stop, i_start_address, i_end_address, i_end);
+}
+
+///
+/// @brief Continue current command wrapper for Explorer
+/// @param[in] i_target the target
+/// @param[in] i_end whether to end, and where (default - don't stop at end of rank)
+/// @param[in] i_stop stop conditions (default - 0 meaning 'don't change conditions')
+/// @param[in] i_speed the speed to scrub (default - SAME_SPEED meaning leave speed untouched)
+/// @return FAPI2_RC_SUCCESS iff ok
+///
+fapi2::ReturnCode exp_continue_cmd( const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>& i_target,
+ const mss::mcbist::end_boundary i_end,
+ const mss::mcbist::stop_conditions<mss::mc_type::EXPLORER>& i_stop,
+ const mss::mcbist::speed i_speed )
+{
+ return mss::memdiags::continue_cmd<mss::mc_type::EXPLORER>(i_target, i_end, i_stop, i_speed);
+}
+
+///
+/// @brief Broadcast mode check wrapper for Explorer
+/// @param[in] i_target the target to effect
+/// @return o_capable - yes iff these vector of targets are broadcast capable
+///
+const mss::states exp_is_broadcast_capable(const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>& i_target)
+{
+ return mss::states::NO;
+}
+
+
+///
+/// @brief Broadcast mode check wrapper for Explorer
+/// @param[in] i_targets the vector of targets to analyze
+/// @return o_capable - yes iff these vector of targets are broadcast capable
+///
+const mss::states exp_is_broadcast_capable(const std::vector<fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>>& i_targets)
+{
+ return mss::states::NO;
+}
+
+///
+/// @brief Broadcast mode check wrapper for Explorer
+/// @param[in] i_kinds the dimms to effect
+/// @return o_capable - yes iff these vector of targets are broadcast capable
+///
+const mss::states exp_is_broadcast_capable(const std::vector<mss::dimm::kind<mss::mc_type::EXPLORER>>& i_kinds)
+{
+ return mss::states::NO;
+}
diff --git a/src/import/chips/p9/procedures/hwp/memory/lib/utils/hwp_wrappers_nim.C b/src/import/chips/p9/procedures/hwp/memory/lib/utils/hwp_wrappers_nim.C
new file mode 100644
index 000000000..7f5dd54e7
--- /dev/null
+++ b/src/import/chips/p9/procedures/hwp/memory/lib/utils/hwp_wrappers_nim.C
@@ -0,0 +1,169 @@
+/* IBM_PROLOG_BEGIN_TAG */
+/* This is an automatically generated prolog. */
+/* */
+/* $Source: src/import/chips/p9/procedures/hwp/memory/lib/utils/hwp_wrappers_nim.C $ */
+/* */
+/* OpenPOWER HostBoot Project */
+/* */
+/* Contributors Listed Below - COPYRIGHT 2019 */
+/* [+] International Business Machines Corp. */
+/* */
+/* */
+/* Licensed under the Apache License, Version 2.0 (the "License"); */
+/* you may not use this file except in compliance with the License. */
+/* You may obtain a copy of the License at */
+/* */
+/* http://www.apache.org/licenses/LICENSE-2.0 */
+/* */
+/* Unless required by applicable law or agreed to in writing, software */
+/* distributed under the License is distributed on an "AS IS" BASIS, */
+/* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or */
+/* implied. See the License for the specific language governing */
+/* permissions and limitations under the License. */
+/* */
+/* IBM_PROLOG_END_TAG */
+
+///
+/// @file hwp_wrappers_nim.C
+/// @brief Main wrapper file for PRD calling Nimbus memory procedure code
+///
+// *HWP HWP Owner: Matthew Hickman <Matthew.Hickman@ibm.com>
+// *HWP HWP Backup: Andre Marin <aamarin@us.ibm.com>
+// *HWP Team: Memory
+// *HWP Level: 3
+// *HWP Consumed by: HB:FSP
+
+#include <fapi2.H>
+#include <lib/shared/nimbus_defaults.H>
+#include <lib/mcbist/mcbist_traits.H>
+#include <generic/memory/lib/utils/dimm/kind.H>
+#include <lib/dimm/nimbus_kind.H>
+#include <lib/dimm/rank.H>
+#include <mss.H>
+#include <generic/memory/lib/utils/mcbist/gen_mss_mcbist.H>
+#include <generic/memory/lib/utils/mcbist/gen_mss_memdiags.H>
+
+///
+/// @brief Memdiags stop command wrapper for Nimbus
+/// @param[in] i_target the target
+/// @return FAPI2_RC_SUCCESS iff ok
+///
+fapi2::ReturnCode nim_stop( const fapi2::Target<fapi2::TARGET_TYPE_MCBIST>& i_target )
+{
+ return mss::memdiags::stop<mss::mc_type::NIMBUS>(i_target);
+}
+
+///
+/// @brief Memdiags Super Fast Init command wrapper for Nimbus
+/// @param[in] i_target the target behind which all memory should be initialized
+/// @param[in] i_pattern an index representing a pattern to use to init memory (defaults to 0)
+/// @return FAPI2_RC_SUCCESS iff everything ok
+///
+fapi2::ReturnCode nim_sf_init( const fapi2::Target<fapi2::TARGET_TYPE_MCBIST>& i_target,
+ const uint64_t i_pattern )
+{
+ return mss::memdiags::sf_init<mss::mc_type::NIMBUS>(i_target, i_pattern);
+}
+
+///
+/// @brief Memdiags Super Fast Read command wrapper for Nimbus
+/// @param[in] i_target the target behind which all memory should be read
+/// @param[in] i_stop stop conditions
+/// @param[in] i_address mcbist::address representing the address from which to start.
+// Defaults to the first address behind the target
+/// @param[in] i_end whether to end, and where
+/// Defaults to stop after slave rank
+/// @param[in] i_end_address mcbist::address representing the address to end.
+// Defaults to TT::LARGEST_ADDRESS
+/// @return FAPI2_RC_SUCCESS iff everything ok
+///
+fapi2::ReturnCode nim_sf_read( const fapi2::Target<fapi2::TARGET_TYPE_MCBIST>& i_target,
+ const mss::mcbist::stop_conditions<mss::mc_type::NIMBUS>& i_stop,
+ const mss::mcbist::address& i_address,
+ const mss::mcbist::end_boundary i_end,
+ const mss::mcbist::address& i_end_address )
+{
+ return mss::memdiags::sf_read<mss::mc_type::NIMBUS>(i_target, i_stop, i_address, i_end, i_end_address);
+}
+
+///
+/// @brief Continuous background scrub command wrapper for Nimbus
+/// @param[in] i_target the target behind which all memory should be scrubbed
+/// @param[in] i_stop stop conditions
+/// @param[in] i_speed the speed to scrub
+/// @param[in] i_address mcbist::address representing the address from which to start.
+/// @return FAPI2_RC_SUCCESS iff everything ok
+///
+fapi2::ReturnCode nim_background_scrub( const fapi2::Target<fapi2::TARGET_TYPE_MCBIST>& i_target,
+ const mss::mcbist::stop_conditions<mss::mc_type::NIMBUS>& i_stop,
+ const mss::mcbist::speed i_speed,
+ const mss::mcbist::address& i_address )
+{
+ return mss::memdiags::background_scrub<mss::mc_type::NIMBUS>(i_target, i_stop, i_speed, i_address);
+}
+
+///
+/// @brief Targeted scrub command wrapper for Nimbus
+/// @param[in] i_target the target behind which all memory should be scrubbed
+/// @param[in] i_stop stop conditions
+/// @param[in] i_speed the speed to scrub
+/// @param[in] i_start_address mcbist::address representing the address from which to start.
+/// @param[in] i_end_address mcbist::address representing the address at which to end.
+/// @param[in] i_end whether to end, and where
+/// @return FAPI2_RC_SUCCESS iff everything ok
+///
+fapi2::ReturnCode nim_targeted_scrub( const fapi2::Target<fapi2::TARGET_TYPE_MCBIST>& i_target,
+ const mss::mcbist::stop_conditions<mss::mc_type::NIMBUS>& i_stop,
+ const mss::mcbist::address& i_start_address,
+ const mss::mcbist::address& i_end_address,
+ const mss::mcbist::end_boundary i_end )
+{
+ return mss::memdiags::targeted_scrub<mss::mc_type::NIMBUS>(i_target, i_stop, i_start_address, i_end_address, i_end);
+}
+
+///
+/// @brief Continue current command wrapper for Nimbus
+/// @param[in] i_target the target
+/// @param[in] i_end whether to end, and where (default - don't stop at end of rank)
+/// @param[in] i_stop stop conditions (default - 0 meaning 'don't change conditions')
+/// @param[in] i_speed the speed to scrub (default - SAME_SPEED meaning leave speed untouched)
+/// @return FAPI2_RC_SUCCESS iff ok
+///
+fapi2::ReturnCode nim_continue_cmd( const fapi2::Target<fapi2::TARGET_TYPE_MCBIST>& i_target,
+ const mss::mcbist::end_boundary i_end,
+ const mss::mcbist::stop_conditions<mss::mc_type::NIMBUS>& i_stop,
+ const mss::mcbist::speed i_speed )
+{
+ return mss::memdiags::continue_cmd<mss::mc_type::NIMBUS>(i_target, i_end, i_stop, i_speed);
+}
+
+///
+/// @brief Broadcast mode check wrapper for Nimbus
+/// @param[in] i_target the target to effect
+/// @return o_capable - yes iff these vector of targets are broadcast capable
+///
+const mss::states nim_is_broadcast_capable(const fapi2::Target<fapi2::TARGET_TYPE_MCBIST>& i_target)
+{
+ return mss::mcbist::is_broadcast_capable<mss::mc_type::NIMBUS>(i_target);
+}
+
+
+///
+/// @brief Broadcast mode check wrapper for Nimbus
+/// @param[in] i_targets the vector of targets to analyze
+/// @return o_capable - yes iff these vector of targets are broadcast capable
+///
+const mss::states nim_is_broadcast_capable(const std::vector<fapi2::Target<fapi2::TARGET_TYPE_MCA>>& i_targets)
+{
+ return mss::mcbist::is_broadcast_capable<mss::mc_type::NIMBUS>(i_targets);
+}
+
+///
+/// @brief Broadcast mode check wrapper for Nimbus
+/// @param[in] i_kinds the dimms to effect
+/// @return o_capable - yes iff these vector of targets are broadcast capable
+///
+const mss::states nim_is_broadcast_capable(const std::vector<mss::dimm::kind<mss::mc_type::NIMBUS>>& i_kinds)
+{
+ return mss::mcbist::is_broadcast_capable(i_kinds);
+}
diff --git a/src/import/generic/memory/lib/prd/hwp_wrappers.H b/src/import/generic/memory/lib/prd/hwp_wrappers.H
index 723d55b02..7a50ca786 100644
--- a/src/import/generic/memory/lib/prd/hwp_wrappers.H
+++ b/src/import/generic/memory/lib/prd/hwp_wrappers.H
@@ -39,26 +39,22 @@
#include <fapi2.H>
#include <generic/memory/lib/utils/mcbist/gen_mss_mcbist.H>
#include <generic/memory/lib/utils/mcbist/gen_mss_memdiags.H>
+#include <generic/memory/lib/utils/mcbist/gen_mss_mcbist_traits.H>
+#include <chips/ocmb/explorer/procedures/hwp/memory/lib/mcbist/exp_mcbist_traits.H>
///
/// @brief Memdiags stop command wrapper for Nimbus
/// @param[in] i_target the target
/// @return FAPI2_RC_SUCCESS iff ok
///
-fapi2::ReturnCode nim_stop( const fapi2::Target<fapi2::TARGET_TYPE_MCBIST>& i_target )
-{
- return mss::memdiags::stop<mss::mc_type::NIMBUS>(i_target);
-}
+fapi2::ReturnCode nim_stop( const fapi2::Target<fapi2::TARGET_TYPE_MCBIST>& i_target );
///
/// @brief Memdiags stop command wrapper for Explorer
/// @param[in] i_target the target
/// @return FAPI2_RC_SUCCESS iff ok
///
-fapi2::ReturnCode exp_stop( const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>& i_target )
-{
- return mss::memdiags::stop<mss::mc_type::EXPLORER>(i_target);
-}
+fapi2::ReturnCode exp_stop( const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>& i_target );
///
/// @brief Memdiags Super Fast Init command wrapper for Nimbus
@@ -67,10 +63,7 @@ fapi2::ReturnCode exp_stop( const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>& i
/// @return FAPI2_RC_SUCCESS iff everything ok
///
fapi2::ReturnCode nim_sf_init( const fapi2::Target<fapi2::TARGET_TYPE_MCBIST>& i_target,
- const uint64_t i_pattern = PATTERN_0 )
-{
- return mss::memdiags::sf_init<mss::mc_type::NIMBUS>(i_target, i_pattern);
-}
+ const uint64_t i_pattern );
///
/// @brief Memdiags Super Fast Init command wrapper for Nimbus
@@ -79,10 +72,7 @@ fapi2::ReturnCode nim_sf_init( const fapi2::Target<fapi2::TARGET_TYPE_MCBIST>& i
/// @return FAPI2_RC_SUCCESS iff everything ok
///
fapi2::ReturnCode exp_sf_init( const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>& i_target,
- const uint64_t i_pattern = PATTERN_0 )
-{
- return mss::memdiags::sf_init<mss::mc_type::EXPLORER>(i_target, i_pattern);
-}
+ const uint64_t i_pattern );
///
/// @brief Memdiags Super Fast Read command wrapper for Nimbus
@@ -97,14 +87,11 @@ fapi2::ReturnCode exp_sf_init( const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>
/// @return FAPI2_RC_SUCCESS iff everything ok
///
fapi2::ReturnCode nim_sf_read( const fapi2::Target<fapi2::TARGET_TYPE_MCBIST>& i_target,
- const stop_conditions<mss::mc_type::NIMBUS>& i_stop,
+ const mss::mcbist::stop_conditions<mss::mc_type::NIMBUS>& i_stop,
const mss::mcbist::address& i_address = mss::mcbist::address(),
- const end_boundary i_end = end_boundary::STOP_AFTER_SLAVE_RANK,
+ const mss::mcbist::end_boundary i_end = mss::mcbist::end_boundary::STOP_AFTER_SLAVE_RANK,
const mss::mcbist::address& i_end_address = mss::mcbist::address(
- mcbistTraits<mss::mc_type::NIMBUS, fapi2::TARGET_TYPE_MCBIST>::LARGEST_ADDRESS) )
-{
- return mss::memdiags::sf_read<mss::mc_type::NIMBUS>(i_target, i_stop, i_address, i_end, i_end_address);
-}
+ mss::mcbistTraits<mss::mc_type::NIMBUS, fapi2::TARGET_TYPE_MCBIST>::LARGEST_ADDRESS) );
///
/// @brief Memdiags Super Fast Read command wrapper for Explorer
@@ -119,15 +106,13 @@ fapi2::ReturnCode nim_sf_read( const fapi2::Target<fapi2::TARGET_TYPE_MCBIST>& i
/// @return FAPI2_RC_SUCCESS iff everything ok
///
fapi2::ReturnCode exp_sf_read( const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>& i_target,
- const stop_conditions<mss::mc_type::EXPLORER>& i_stop,
+ const mss::mcbist::stop_conditions<mss::mc_type::EXPLORER>& i_stop,
const mss::mcbist::address& i_address = mss::mcbist::address(),
- const end_boundary i_end = end_boundary::STOP_AFTER_SLAVE_RANK,
+ const mss::mcbist::end_boundary i_end = mss::mcbist::end_boundary::STOP_AFTER_SLAVE_RANK,
const mss::mcbist::address& i_end_address = mss::mcbist::address(
- mcbistTraits<mss::mc_type::EXPLORER, fapi2::TARGET_TYPE_OCMB_CHIP>::LARGEST_ADDRESS) )
-{
- return mss::memdiags::sf_read<MC>(i_target, i_stop, i_address, i_end, i_end_address);
-}
+ mss::mcbistTraits<mss::mc_type::EXPLORER, fapi2::TARGET_TYPE_OCMB_CHIP>::LARGEST_ADDRESS) );
+#if 0 // These functions aren't required at the moment, but leaving here in case
///
/// @brief Continuous background scrub command wrapper for Nimbus
/// @param[in] i_target the target behind which all memory should be scrubbed
@@ -137,12 +122,9 @@ fapi2::ReturnCode exp_sf_read( const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>
/// @return FAPI2_RC_SUCCESS iff everything ok
///
fapi2::ReturnCode nim_background_scrub( const fapi2::Target<fapi2::TARGET_TYPE_MCBIST>& i_target,
- const stop_conditions<mss::mc_type::NIMBUS>& i_stop,
+ const mss::mcbist::stop_conditions<mss::mc_type::NIMBUS>& i_stop,
const speed i_speed,
- const mss::mcbist::address& i_address )
-{
- return mss::memdiags::background_scrub<mss::mc_type::NIMBUS>(i_target, i_stop, i_speed, i_address);
-}
+ const mss::mcbist::address& i_address );
///
/// @brief Continuous background scrub command wrapper for Explorer
@@ -153,12 +135,9 @@ fapi2::ReturnCode nim_background_scrub( const fapi2::Target<fapi2::TARGET_TYPE_M
/// @return FAPI2_RC_SUCCESS iff everything ok
///
fapi2::ReturnCode exp_background_scrub( const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>& i_target,
- const stop_conditions<mss::mc_type::EXPLORER>& i_stop,
+ const mss::mcbist::stop_conditions<mss::mc_type::EXPLORER>& i_stop,
const speed i_speed,
- const mss::mcbist::address& i_address )
-{
- return mss::memdiags::background_scrub<mss::mc_type::EXPLORER>(i_target, i_stop, i_speed, i_address);
-}
+ const mss::mcbist::address& i_address );
///
/// @brief Targeted scrub command wrapper for Nimbus
@@ -171,13 +150,10 @@ fapi2::ReturnCode exp_background_scrub( const fapi2::Target<fapi2::TARGET_TYPE_O
/// @return FAPI2_RC_SUCCESS iff everything ok
///
fapi2::ReturnCode nim_targeted_scrub( const fapi2::Target<fapi2::TARGET_TYPE_MCBIST>& i_target,
- const stop_conditions<mss::mc_type::NIMBUS>& i_stop,
+ const mss::mcbist::stop_conditions<mss::mc_type::NIMBUS>& i_stop,
const mss::mcbist::address& i_start_address,
const mss::mcbist::address& i_end_address,
- const end_boundary i_end )
-{
- return mss::memdiags::targeted_scrub<mss::mc_type::NIMBUS>(i_target, i_stop, i_start_address, i_end_address, i_end);
-}
+ const mss::mcbist::end_boundary i_end );
///
/// @brief Targeted scrub command wrapper for Explorer
@@ -190,13 +166,10 @@ fapi2::ReturnCode nim_targeted_scrub( const fapi2::Target<fapi2::TARGET_TYPE_MCB
/// @return FAPI2_RC_SUCCESS iff everything ok
///
fapi2::ReturnCode exp_targeted_scrub( const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>& i_target,
- const stop_conditions<mss::mc_type::EXPLORER>& i_stop,
+ const mss::mcbist::stop_conditions<mss::mc_type::EXPLORER>& i_stop,
const mss::mcbist::address& i_start_address,
const mss::mcbist::address& i_end_address,
- const end_boundary i_end )
-{
- return mss::memdiags::targeted_scrub<mss::mc_type::EXPLORER>(i_target, i_stop, i_start_address, i_end_address, i_end);
-}
+ const mss::mcbist::end_boundary i_end );
///
/// @brief Continue current command wrapper for Nimbus
@@ -207,13 +180,10 @@ fapi2::ReturnCode exp_targeted_scrub( const fapi2::Target<fapi2::TARGET_TYPE_OCM
/// @return FAPI2_RC_SUCCESS iff ok
///
fapi2::ReturnCode nim_continue_cmd( const fapi2::Target<fapi2::TARGET_TYPE_MCBIST>& i_target,
- const end_boundary i_end = end_boundary::DONT_CHANGE,
- const stop_conditions<mss::mc_type::NIMBUS>& i_stop = stop_conditions<mss::mc_type::NIMBUS>
- (stop_conditions<mss::mc_type::NIMBUS>::DONT_CHANGE),
- const speed i_speed = speed::SAME_SPEED )
-{
- return mss::memdiags::continue_cmd<mss::mc_type::NIMBUS>(i_target, i_end, i_stop, i_speed);
-}
+ const mss::mcbist::end_boundary i_end = mss::mcbist::end_boundary::DONT_CHANGE,
+ const mss::mcbist::stop_conditions<mss::mc_type::NIMBUS>& i_stop = mss::mcbist::stop_conditions<mss::mc_type::NIMBUS>
+ (mss::mcbist::stop_conditions<mss::mc_type::NIMBUS>::DONT_CHANGE),
+ const speed i_speed = speed::SAME_SPEED );
///
/// @brief Continue current command wrapper for Explorer
@@ -224,23 +194,18 @@ fapi2::ReturnCode nim_continue_cmd( const fapi2::Target<fapi2::TARGET_TYPE_MCBIS
/// @return FAPI2_RC_SUCCESS iff ok
///
fapi2::ReturnCode exp_continue_cmd( const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>& i_target,
- const end_boundary i_end = end_boundary::DONT_CHANGE,
- const stop_conditions<mss::mc_type::EXPLORER>& i_stop = stop_conditions<mss::mc_type::EXPLORER>
- (stop_conditions<mss::mc_type::EXPLORER>::DONT_CHANGE),
- const speed i_speed = speed::SAME_SPEED )
-{
- return mss::memdiags::continue_cmd<mss::mc_type::EXPLORER>(i_target, i_end, i_stop, i_speed);
-}
+ const mss::mcbist::end_boundary i_end = mss::mcbist::end_boundary::DONT_CHANGE,
+ const mss::mcbist::stop_conditions<mss::mc_type::EXPLORER>& i_stop =
+ mss::mcbist::stop_conditions<mss::mc_type::EXPLORER>
+ (mss::mcbist::stop_conditions<mss::mc_type::EXPLORER>::DONT_CHANGE),
+ const speed i_speed = speed::SAME_SPEED );
///
/// @brief Broadcast mode check wrapper for Nimbus
/// @param[in] i_target the target to effect
/// @return o_capable - yes iff these vector of targets are broadcast capable
///
-const mss::states nim_is_broadcast_capable(const fapi2::Target<fapi2::TARGET_TYPE_MCBIST>& i_target)
-{
- return is_broadcast_capable<mss::mc_type::NIMBUS>(i_target);
-}
+const mss::states nim_is_broadcast_capable(const fapi2::Target<fapi2::TARGET_TYPE_MCBIST>& i_target);
///
@@ -248,10 +213,7 @@ const mss::states nim_is_broadcast_capable(const fapi2::Target<fapi2::TARGET_TYP
/// @param[in] i_targets the vector of targets to analyze
/// @return o_capable - yes iff these vector of targets are broadcast capable
///
-const mss::states nim_is_broadcast_capable(const std::vector<fapi2::Target<fapi2::TARGET_TYPE_MCBIST>>& i_targets)
-{
- return is_broadcast_capable<mss::mc_type::NIMBUS>(i_targets);
-}
+const mss::states nim_is_broadcast_capable(const std::vector<fapi2::Target<fapi2::TARGET_TYPE_MCBIST>>& i_targets);
///
/// @brief Broadcast mode check wrapper for Nimbus
@@ -259,19 +221,13 @@ const mss::states nim_is_broadcast_capable(const std::vector<fapi2::Target<fapi2
/// @return o_capable - yes iff these vector of targets are broadcast capable
///
const mss::states nim_is_broadcast_capable(const std::vector<mss::dimm::kind>& i_kinds);
-{
- return is_broadcast_capable(i_kinds);
-}
///
/// @brief Broadcast mode check wrapper for Explorer
/// @param[in] i_target the target to effect
/// @return o_capable - yes iff these vector of targets are broadcast capable
///
-const mss::states exp_is_broadcast_capable(const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>& i_target)
-{
- return mss::states::NO;
-}
+const mss::states exp_is_broadcast_capable(const fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>& i_target);
///
@@ -279,10 +235,7 @@ const mss::states exp_is_broadcast_capable(const fapi2::Target<fapi2::TARGET_TYP
/// @param[in] i_targets the vector of targets to analyze
/// @return o_capable - yes iff these vector of targets are broadcast capable
///
-const mss::states exp_is_broadcast_capable(const std::vector<fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>>& i_targets)
-{
- return mss::states::NO;
-}
+const mss::states exp_is_broadcast_capable(const std::vector<fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP>>& i_targets);
///
/// @brief Broadcast mode check wrapper for Explorer
@@ -290,8 +243,6 @@ const mss::states exp_is_broadcast_capable(const std::vector<fapi2::Target<fapi2
/// @return o_capable - yes iff these vector of targets are broadcast capable
///
const mss::states exp_is_broadcast_capable(const std::vector<mss::dimm::kind>& i_kinds);
-{
- return mss::states::NO;
-}
+#endif
#endif
diff --git a/src/import/generic/memory/lib/utils/mcbist/gen_mss_mcbist.H b/src/import/generic/memory/lib/utils/mcbist/gen_mss_mcbist.H
index 32f1d79c3..004f62092 100644
--- a/src/import/generic/memory/lib/utils/mcbist/gen_mss_mcbist.H
+++ b/src/import/generic/memory/lib/utils/mcbist/gen_mss_mcbist.H
@@ -2848,7 +2848,7 @@ inline fapi2::buffer<uint64_t> generate_eccspare_pattern(const pattern& i_patter
/// @return FAPI2_RC_SUCCSS iff ok
///
template< mss::mc_type MC, fapi2::TargetType T, typename TT = mcbistTraits<MC, T> >
-inline fapi2::ReturnCode load_eccspare_pattern( const fapi2::Target<T>& i_target, const pattern& i_pattern,
+fapi2::ReturnCode load_eccspare_pattern( const fapi2::Target<T>& i_target, const pattern& i_pattern,
const bool i_invert );
///
OpenPOWER on IntegriCloud