diff options
Diffstat (limited to 'src/usr/isteps/istep13')
-rw-r--r-- | src/usr/isteps/istep13/call_mss_draminit_mc.C | 52 | ||||
-rw-r--r-- | src/usr/isteps/istep13/call_mss_scominit.C | 308 |
2 files changed, 215 insertions, 145 deletions
diff --git a/src/usr/isteps/istep13/call_mss_draminit_mc.C b/src/usr/isteps/istep13/call_mss_draminit_mc.C index 0c7136298..54b790de2 100644 --- a/src/usr/isteps/istep13/call_mss_draminit_mc.C +++ b/src/usr/isteps/istep13/call_mss_draminit_mc.C @@ -46,6 +46,7 @@ #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> @@ -124,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); @@ -140,23 +141,24 @@ 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)); } - } } @@ -168,17 +170,28 @@ void* call_mss_draminit_mc (void *io_pArgs) for (const auto & l_ocmb_target : l_ocmbTargetList) { - // 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)); - - fapi2::Target <fapi2::TARGET_TYPE_OCMB_CHIP> l_fapi_ocmb_target - (l_ocmb_target); + // 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); - // call the HWP with each fapi2::Target - FAPI_INVOKE_HWP(l_err, exp_draminit_mc, l_fapi_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, @@ -196,13 +209,12 @@ void* call_mss_draminit_mc (void *io_pArgs) break; } - else + 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)); + "SUCCESS running exp_draminit_mc HWP on target HUID %.8X", + TARGETING::get_huid(l_ocmb_target)); } - } #endif diff --git a/src/usr/isteps/istep13/call_mss_scominit.C b/src/usr/isteps/istep13/call_mss_scominit.C index 69e05c7ee..1b30268f0 100644 --- a/src/usr/isteps/istep13/call_mss_scominit.C +++ b/src/usr/isteps/istep13/call_mss_scominit.C @@ -46,6 +46,7 @@ #include <p9c_mss_scominit.H> #ifdef CONFIG_AXONE #include <exp_scominit.H> +#include <chipids.H> // for EXPLORER ID #endif using namespace ERRORLOG; @@ -55,163 +56,220 @@ using namespace TARGETING; namespace ISTEP_13 { +void nimbus_call_mss_scominit(IStepError & io_istepError); +void cumulus_call_mss_scominit(IStepError & io_istepError); +void axone_call_mss_scominit(IStepError & io_istepError); + void* call_mss_scominit (void *io_pArgs) { - errlHndl_t l_err = NULL; - - IStepError l_stepError; + IStepError l_StepError; TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_mss_scominit entry" ); + auto l_procModel = TARGETING::targetService().getProcessorModel(); + + switch (l_procModel) + { + case TARGETING::MODEL_CUMULUS: + cumulus_call_mss_scominit(l_StepError); + break; + case TARGETING::MODEL_AXONE: + axone_call_mss_scominit(l_StepError); + break; + case TARGETING::MODEL_NIMBUS: + nimbus_call_mss_scominit(l_StepError); + break; + default: + assert(0, "call_mss_scominit: Unsupported model type 0x%04X", + l_procModel); + break; + } + + TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_mss_scominit exit" ); - do + // end task, returning any errorlogs to IStepDisp + return l_StepError.getErrorHandle(); +} + +#ifndef CONFIG_AXONE + +void nimbus_call_mss_scominit(IStepError & io_istepError) +{ + errlHndl_t l_err = nullptr; + + // Get all MCBIST targets + TARGETING::TargetHandleList l_mcbistTargetList; + getAllChiplets(l_mcbistTargetList, TYPE_MCBIST); + + for (const auto & l_target : l_mcbistTargetList) { - // Get all MCBIST targets - TARGETING::TargetHandleList l_mcbistTargetList; - getAllChiplets(l_mcbistTargetList, TYPE_MCBIST); + // Dump current run on target + TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, + "Running p9_mss_scominit HWP on target HUID %.8X", + TARGETING::get_huid(l_target)); + + fapi2::Target <fapi2::TARGET_TYPE_MCBIST> l_fapi_target + (l_target); + + // call the HWP with each fapi2::Target + FAPI_INVOKE_HWP(l_err, p9_mss_scominit, l_fapi_target); - for (const auto & l_target : l_mcbistTargetList) + if (l_err) + { + TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, + "ERROR 0x%.8X: p9_mss_scominit HWP returns error", + l_err->reasonCode()); + + // capture the target data in the elog + ErrlUserDetailsTarget(l_target).addToLog(l_err); + + // Create IStep error log and cross reference to error that + // occurred + io_istepError.addErrorDetails( l_err ); + + // Commit Error + errlCommit( l_err, HWPF_COMP_ID ); + + break; + } + else { - // Dump current run on target TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, - "Running p9_mss_scominit HWP on " - "target HUID %.8X", + "SUCCESS running p9_mss_scominit HWP on target HUID %.8X", TARGETING::get_huid(l_target)); + } + } +} - fapi2::Target <fapi2::TARGET_TYPE_MCBIST> l_fapi_target - (l_target); +void cumulus_call_mss_scominit(IStepError & io_istepError) +{ + errlHndl_t l_err = nullptr; - // call the HWP with each fapi2::Target - FAPI_INVOKE_HWP(l_err, p9_mss_scominit, l_fapi_target); - - if (l_err) - { - TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, - "ERROR 0x%.8X: p9_mss_scominit HWP returns error", - l_err->reasonCode()); - - // capture the target data in the elog - ErrlUserDetailsTarget(l_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 - { - TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, - "SUCCESS running p9_mss_scominit HWP on " - "target HUID %.8X", TARGETING::get_huid(l_target)); - } - } + // Get all MBA targets + TARGETING::TargetHandleList l_membufTargetList; + getAllChips(l_membufTargetList, TYPE_MEMBUF); + + for (const auto & l_membuf_target : l_membufTargetList) + { + // Dump current run on target + TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, + "Running p9c_mss_scominit 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); + + // call the HWP with each fapi2::Target + FAPI_INVOKE_HWP(l_err, p9c_mss_scominit, l_fapi_membuf_target); - if (!l_stepError.isNull()) + if (l_err) { - break; - } + TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, + "ERROR 0x%.8X: p9c_mss_scominit HWP returns error", + l_err->reasonCode()); + + // capture the target data in the elog + ErrlUserDetailsTarget(l_membuf_target).addToLog(l_err); - // Get all MBA targets - TARGETING::TargetHandleList l_membufTargetList; - getAllChips(l_membufTargetList, TYPE_MEMBUF); + // Create IStep error log and cross reference to error that + // occurred + io_istepError.addErrorDetails( l_err ); - for (const auto & l_membuf_target : l_membufTargetList) + // Commit Error + errlCommit( l_err, HWPF_COMP_ID ); + + break; + } + else { - // Dump current run on target TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, - "Running p9c_mss_scominit HWP on " - "target HUID %.8X", - TARGETING::get_huid(l_membuf_target)); + "SUCCESS running p9c_mss_scominit HWP on target HUID %.8X", + TARGETING::get_huid(l_membuf_target)); + } + } +} +#else +void nimbus_call_mss_scominit(IStepError & io_istepError) +{ + TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, + "Error: Trying to call 'p9_mss_scominit' but Nimbus code is not compiled in"); + assert(0, "Calling wrong Model's HWPs"); +} - fapi2::Target <fapi2::TARGET_TYPE_MEMBUF_CHIP> l_fapi_membuf_target - (l_membuf_target); +void cumulus_call_mss_scominit(IStepError & io_istepError) +{ + TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, + "Error: Trying to call 'p9c_mss_scominit' but Cumulus code is not compiled in"); + assert(0, "Calling wrong Model's HWPs"); +} + +#endif - // call the HWP with each fapi2::Target - FAPI_INVOKE_HWP(l_err, p9c_mss_scominit, l_fapi_membuf_target); - - if (l_err) - { - TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, - "ERROR 0x%.8X: p9c_mss_scominit HWP returns error", - l_err->reasonCode()); - - // capture the target data in the elog - ErrlUserDetailsTarget(l_membuf_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 - { - TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, - "SUCCESS running p9c_mss_scominit HWP on " - "target HUID %.8X", TARGETING::get_huid(l_membuf_target)); - } - } #ifdef CONFIG_AXONE - // Get all OCMB targets - TARGETING::TargetHandleList l_ocmbTargetList; - getAllChips(l_ocmbTargetList, TYPE_OCMB_CHIP); +void axone_call_mss_scominit(IStepError & io_istepError) +{ + errlHndl_t l_err = nullptr; - for (const auto & l_ocmb_target : l_ocmbTargetList) - { - // Dump current run on target - TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, - "Running exp_scominit HWP on " - "target HUID %.8X", - TARGETING::get_huid(l_ocmb_target)); + // 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_scominit HWP on target HUID %.8X", + TARGETING::get_huid(l_ocmb_target)); + // call the HWP with each fapi2::Target FAPI_INVOKE_HWP(l_err, exp_scominit, l_fapi_ocmb_target); - - if (l_err) - { - TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, - "ERROR 0x%.8X: exp_scominit HWP returns error", - l_err->reasonCode()); - - // capture the target data in the elog - ErrlUserDetailsTarget(l_fapi_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 - { - TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, - "SUCCESS running exp_scominit HWP on " - "target HUID %.8X", TARGETING::get_huid(l_ocmb_target)); - } } - - if (!l_stepError.isNull()) + else { - break; + // Gemini, NOOP + TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, + "Skipping scominit HWP on target HUID 0x%.8X, chipId 0x%.4X", + TARGETING::get_huid(l_ocmb_target), chipId ); } -#endif - } while (0); + if (l_err) + { + TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, + "ERROR 0x%.8X: exp_scominit HWP returns error", + l_err->reasonCode()); - TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_mss_scominit exit" ); - return l_stepError.getErrorHandle(); -} + // 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 + io_istepError.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_scominit HWP on " + "target HUID %.8X", TARGETING::get_huid(l_ocmb_target)); + } + } +} +#else +void axone_call_mss_scominit(IStepError & io_istepError) +{ + TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, + "Error: Trying to call 'exp_scominit' but Axone code is not compiled in"); + assert(0, "Calling wrong Model's HWPs"); +} +#endif }; |