diff options
author | Christian Geddes <crgeddes@us.ibm.com> | 2019-10-14 13:30:30 -0500 |
---|---|---|
committer | Daniel M Crowell <dcrowell@us.ibm.com> | 2019-10-17 15:27:08 -0500 |
commit | 5b6b984fa8eeba54caa06853e43a14bca92d0371 (patch) | |
tree | 9ec99d598b17d69f3269fe4bb5d1db72ebd21d23 /src/usr/isteps/istep12/call_dmi_pre_trainadv.C | |
parent | 8f549e7548fb45819fc4fd8637448f428f14eec1 (diff) | |
download | talos-hostboot-5b6b984fa8eeba54caa06853e43a14bca92d0371.tar.gz talos-hostboot-5b6b984fa8eeba54caa06853e43a14bca92d0371.zip |
Reorganize omi training steps accounting for new omi training hwps
A few new steps have been added that were found to be required for
explorer power on. The correct steps of the OMI training need to be
dmi_pre_trainadv:
- exp_omi_setup
- p9a_omi_setup
dmi_io_run_training:
- exp_omi_train (skip on gemini)
- p9a_omi_train
dmi_post_trainadv:
- exp_omi_train_check (skip on gemini)
- p9a_omi_train_check
Change-Id: I90a3c2dfb1bec8983d38e0d4810753154651e452
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/85289
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
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: Matt Derksen <mderkse1@us.ibm.com>
Reviewed-by: William G Hoffa <wghoffa@us.ibm.com>
Reviewed-by: Daniel M Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/isteps/istep12/call_dmi_pre_trainadv.C')
-rw-r--r-- | src/usr/isteps/istep12/call_dmi_pre_trainadv.C | 101 |
1 files changed, 71 insertions, 30 deletions
diff --git a/src/usr/isteps/istep12/call_dmi_pre_trainadv.C b/src/usr/isteps/istep12/call_dmi_pre_trainadv.C index da8a9bb96..aaec7d89b 100644 --- a/src/usr/isteps/istep12/call_dmi_pre_trainadv.C +++ b/src/usr/isteps/istep12/call_dmi_pre_trainadv.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 <isteps/hwpisteperror.H> +#include <util/misc.H> +#include <util/utilmbox_scratch.H> // targeting support. #include <targeting/common/commontargeting.H> @@ -41,11 +41,13 @@ #include <config.h> #include <fapi2.H> #include <fapi2/plat_hwp_invoker.H> -#include <util/utilmbox_scratch.H> + //HWP #include <p9_io_dmi_pre_trainadv.H> #ifdef CONFIG_AXONE +#include <exp_omi_setup.H> +#include <p9a_omi_setup.H> #include <p9a_omi_train.H> #endif @@ -128,45 +130,84 @@ void* call_dmi_pre_trainadv (void *io_pArgs) } #ifdef CONFIG_AXONE - TARGETING::TargetHandleList l_omiTargetList; - getAllChiplets(l_omiTargetList, TYPE_OMI); - TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, "call_dmi_pre_trainadv: %d OMIs found", - l_omiTargetList.size()); - - for (const auto & l_omi_target : l_omiTargetList) + if( ! Util::isSimicsRunning() ) { - TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, - "p9a_omi_train HWP target HUID %.8x", - TARGETING::get_huid(l_omi_target)); + TARGETING::TargetHandleList l_ocmbTargetList; + getAllChips(l_ocmbTargetList, TYPE_OCMB_CHIP); - // call the HWP with each OMI target - fapi2::Target<fapi2::TARGET_TYPE_OMI> l_fapi_omi_target(l_omi_target); + for (const auto & l_ocmb_target : l_ocmbTargetList) + { + // call the HWP with each target + fapi2::Target<fapi2::TARGET_TYPE_OCMB_CHIP> l_fapi_ocmb_target + (l_ocmb_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) ); + "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); + + // 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_omi_target).addToLog( l_err ); + // 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 ); + // Create IStep error log and cross reference to error that occurred + l_StepError.addErrorDetails( l_err ); - // Commit Error - errlCommit( l_err, ISTEP_COMP_ID ); + // Commit Error , continue on to next OCMB + errlCommit( l_err, ISTEP_COMP_ID ); + } } - else + + TARGETING::TargetHandleList l_omiTargetList; + getAllChiplets(l_omiTargetList, TYPE_OMI); + + TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, "call_dmi_pre_trainadv: %d OMIs found", + l_omiTargetList.size()); + + for (const auto & l_omi_target : l_omiTargetList) { TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, - "SUCCESS : p9a_omi_train HWP on 0x%.08X", TARGETING::get_huid(l_omi_target)); + "p9a_omi_setup 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_setup , l_fapi_omi_target ); + + // process return code. + if ( l_err ) + { + TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, + "ERROR 0x%.8X: p9a_omi_setup 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_setup HWP on 0x%.08X", TARGETING::get_huid(l_omi_target)); + } } } + #endif |