summaryrefslogtreecommitdiffstats
path: root/src/usr/isteps/istep12/call_dmi_pre_trainadv.C
diff options
context:
space:
mode:
authorChristian Geddes <crgeddes@us.ibm.com>2019-10-14 13:30:30 -0500
committerDaniel M Crowell <dcrowell@us.ibm.com>2019-10-17 15:27:08 -0500
commit5b6b984fa8eeba54caa06853e43a14bca92d0371 (patch)
tree9ec99d598b17d69f3269fe4bb5d1db72ebd21d23 /src/usr/isteps/istep12/call_dmi_pre_trainadv.C
parent8f549e7548fb45819fc4fd8637448f428f14eec1 (diff)
downloadtalos-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.C101
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
OpenPOWER on IntegriCloud