diff options
Diffstat (limited to 'src/usr/isteps/istep12/call_dmi_io_run_training.C')
-rw-r--r-- | src/usr/isteps/istep12/call_dmi_io_run_training.C | 85 |
1 files changed, 48 insertions, 37 deletions
diff --git a/src/usr/isteps/istep12/call_dmi_io_run_training.C b/src/usr/isteps/istep12/call_dmi_io_run_training.C index 9e93e816c..8c7ead318 100644 --- a/src/usr/isteps/istep12/call_dmi_io_run_training.C +++ b/src/usr/isteps/istep12/call_dmi_io_run_training.C @@ -26,12 +26,12 @@ #include <trace/interface.H> #include <initservice/taskargs.H> +#include <initservice/isteps_trace.H> #include <errl/errlentry.H> - -#include <isteps/hwpisteperror.H> #include <errl/errludtarget.H> - -#include <initservice/isteps_trace.H> +#include <util/utilmbox_scratch.H> +#include <util/misc.H> +#include <isteps/hwpisteperror.H> // targeting support. #include <targeting/common/commontargeting.H> @@ -41,13 +41,13 @@ #include <config.h> #include <fapi2.H> #include <fapi2/plat_hwp_invoker.H> -#include <util/utilmbox_scratch.H> //HWP #include <p9_io_dmi_linktrain.H> #ifdef CONFIG_AXONE #include <exp_omi_setup.H> +#include <p9a_omi_train.H> #include <exp_omi_train.H> #include <chipids.H> // for EXPLORER ID #endif @@ -110,43 +110,18 @@ void* call_dmi_io_run_training (void *io_pArgs) } #ifdef CONFIG_AXONE - TARGETING::TargetHandleList l_ocmbTargetList; - getAllChips(l_ocmbTargetList, TYPE_OCMB_CHIP); - for (const auto & l_ocmb_target : l_ocmbTargetList) + if( ! Util::isSimicsRunning() ) { - // call the HWP with each target - fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP> l_fapi_ocmb_target - (l_ocmb_target); - - - TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, - "exp_omi_setup HWP target HUID 0x%.08x", - TARGETING::get_huid(l_ocmb_target)); - - FAPI_INVOKE_HWP(l_err, exp_omi_setup, l_fapi_ocmb_target); + TARGETING::TargetHandleList l_ocmbTargetList; + getAllChips(l_ocmbTargetList, TYPE_OCMB_CHIP); - // process return code. - if ( l_err ) - { - TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, - "ERROR 0x%.8X: exp_omi_setup HWP on target HUID 0x%.08x", - l_err->reasonCode(), TARGETING::get_huid(l_ocmb_target) ); - - // 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 , continue on to next OCMB - errlCommit( l_err, ISTEP_COMP_ID ); - } - else + for (const auto & l_ocmb_target : l_ocmbTargetList) { // Only run exp_omi_train on EXPLORER OCMB targets. This step // cannot run on GEMINI targets. uint32_t chipId = l_ocmb_target->getAttr< TARGETING::ATTR_CHIP_ID>(); + fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP> l_fapi_ocmb_target( l_ocmb_target ); if (chipId == POWER_CHIPID::EXPLORER_16) { TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, @@ -173,18 +148,54 @@ void* call_dmi_io_run_training (void *io_pArgs) else { TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, - "SUCCESS : exp_omi_train HWP on target 0x%.08X", TARGETING::get_huid(l_ocmb_target)); + "SUCCESS : exp_omi_train HWP on target 0x%.08X", TARGETING::get_huid(l_ocmb_target)); } } else { - // Gemini, just skip omi_setup call + // Gemini, just skip exp_omi_train call TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "Skipping exp_omi_train HWP on because target HUID 0x%.8X, chipId 0x%.4X is a Gemini OCMB", TARGETING::get_huid(l_ocmb_target), chipId ); } } + TARGETING::TargetHandleList l_omiTargetList; + getAllChiplets(l_omiTargetList, TYPE_OMI); + + for (const auto & l_omi_target : l_omiTargetList) + { + TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, + "p9a_omi_train HWP target HUID %.8x", + TARGETING::get_huid(l_omi_target)); + + // call the HWP with each OMI target + fapi2::Target<fapi2::TARGET_TYPE_OMI> l_fapi_omi_target(l_omi_target); + + FAPI_INVOKE_HWP(l_err, p9a_omi_train , l_fapi_omi_target ); + + // process return code. + if ( l_err ) + { + TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, + "ERROR 0x%.8X: p9a_omi_train HWP on target HUID %.8x", + l_err->reasonCode(), TARGETING::get_huid(l_omi_target) ); + + // capture the target data in the elog + ErrlUserDetailsTarget(l_omi_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, ISTEP_COMP_ID ); + } + else + { + TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, + "SUCCESS : p9a_omi_train HWP on 0x%.08X", TARGETING::get_huid(l_omi_target)); + } + } } #endif |