diff options
Diffstat (limited to 'src/usr/isteps/istep13/call_mss_draminit_mc.C')
-rw-r--r-- | src/usr/isteps/istep13/call_mss_draminit_mc.C | 82 |
1 files changed, 74 insertions, 8 deletions
diff --git a/src/usr/isteps/istep13/call_mss_draminit_mc.C b/src/usr/isteps/istep13/call_mss_draminit_mc.C index cee7771bf..54b790de2 100644 --- a/src/usr/isteps/istep13/call_mss_draminit_mc.C +++ b/src/usr/isteps/istep13/call_mss_draminit_mc.C @@ -5,7 +5,7 @@ /* */ /* OpenPOWER HostBoot Project */ /* */ -/* Contributors Listed Below - COPYRIGHT 2015,2017 */ +/* Contributors Listed Below - COPYRIGHT 2015,2019 */ /* [+] International Business Machines Corp. */ /* */ /* */ @@ -44,8 +44,14 @@ //From Import Directory (EKB Repository) #include <config.h> #include <fapi2.H> +#ifdef CONFIG_AXONE +#include <exp_draminit_mc.H> +#include <chipids.H> // for EXPLORER ID +#else #include <p9_mss_draminit_mc.H> #include <p9c_mss_draminit_mc.H> +#endif + using namespace ERRORLOG; @@ -66,6 +72,8 @@ void* call_mss_draminit_mc (void *io_pArgs) TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,"call_mss_draminit_mc entry" ); +#ifndef CONFIG_AXONE + // Get all MCBIST TARGETING::TargetHandleList l_mcbistTargetList; getAllChiplets(l_mcbistTargetList, TYPE_MCBIST); @@ -117,8 +125,8 @@ void* call_mss_draminit_mc (void *io_pArgs) { // Dump current run on target TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, - "Running p9_mss_draminit_mc HWP on " - "target HUID %.8X", TARGETING::get_huid(l_membuf_target)); + "Running p9_mss_draminit_mc HWP on target HUID %.8X", + TARGETING::get_huid(l_membuf_target) ); fapi2::Target <fapi2::TARGET_TYPE_MEMBUF_CHIP> l_fapi_membuf_target (l_membuf_target); @@ -133,26 +141,84 @@ void* call_mss_draminit_mc (void *io_pArgs) l_err->reasonCode()); // capture the target data in the elog - ErrlUserDetailsTarget(l_fapi_membuf_target).addToLog( l_err ); + ErrlUserDetailsTarget(l_membuf_target).addToLog( l_err ); - // Create IStep error log and cross reference to error that occurred + // Create IStep error log and cross reference to error + // that occurred l_stepError.addErrorDetails( l_err ); // Commit Error errlCommit( l_err, HWPF_COMP_ID ); - + break; } else { TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "SUCCESS running p9c_mss_draminit_mc HWP on " - "target HUID %.8X", TARGETING::get_huid(l_fapi_membuf_target)); + "target HUID %.8X", + TARGETING::get_huid(l_membuf_target)); } - } } +#else + + // Get all OCMB targets + TARGETING::TargetHandleList l_ocmbTargetList; + getAllChips(l_ocmbTargetList, TYPE_OCMB_CHIP); + + for (const auto & l_ocmb_target : l_ocmbTargetList) + { + // check EXPLORER first as this is most likely the configuration + uint32_t chipId = l_ocmb_target->getAttr< TARGETING::ATTR_CHIP_ID>(); + if (chipId == POWER_CHIPID::EXPLORER_16) + { + fapi2::Target <fapi2::TARGET_TYPE_OCMB_CHIP> l_fapi_ocmb_target + (l_ocmb_target); + + // Dump current run on target + TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, + "Running exp_draminit_mc HWP on " + "target HUID %.8X", TARGETING::get_huid(l_ocmb_target)); + + // call the HWP with each fapi2::Target + FAPI_INVOKE_HWP(l_err, exp_draminit_mc, l_fapi_ocmb_target); + } + else + { + // Gemini, NOOP + TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, + "Skipping draminit_mc HWP on target HUID 0x%.8X, chipId 0x%.4X", + TARGETING::get_huid(l_ocmb_target), chipId ); + } + if (l_err) + { + TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, + "ERROR 0x%.8X : exp_draminit_mc HWP returns error", + l_err->reasonCode()); + + // capture the target data in the elog + ErrlUserDetailsTarget(l_ocmb_target).addToLog( l_err ); + + // Create IStep error log and cross reference to error that occurred + l_stepError.addErrorDetails( l_err ); + + // Commit Error + errlCommit( l_err, HWPF_COMP_ID ); + + break; + } + else if (chipId == POWER_CHIPID::EXPLORER_16) + { + TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, + "SUCCESS running exp_draminit_mc HWP on target HUID %.8X", + TARGETING::get_huid(l_ocmb_target)); + } + } + +#endif + TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_mss_draminit_mc exit" ); return l_stepError.getErrorHandle(); |