summaryrefslogtreecommitdiffstats
path: root/src/usr/isteps
diff options
context:
space:
mode:
authorChristian Geddes <crgeddes@us.ibm.com>2019-02-15 17:32:54 -0600
committerDaniel M. Crowell <dcrowell@us.ibm.com>2019-02-20 15:55:45 -0600
commit2fce6c032485af7c4dfc02c1d2a5ec9d0d11758c (patch)
tree124d5fdf74e3092b3f404a2f9c0507fb79c38123 /src/usr/isteps
parentb4d32e92638b7384621c1146ef51d1c61c9f5904 (diff)
downloadtalos-hostboot-2fce6c032485af7c4dfc02c1d2a5ec9d0d11758c.tar.gz
talos-hostboot-2fce6c032485af7c4dfc02c1d2a5ec9d0d11758c.zip
Add omi setup/training calls to istep 12
Recently we have imported some of the HWPs for omi training. This commit adds calls to our ISTEP code to make these omi HWPs get called during istep 12. This is done according to P9A IPL Flow doc. Steps added : exp_omi_setup ( 12.7 ) exp_omi_train ( 12.8 ) p9a_omi_train ( 12.8 ) Change-Id: Ia6ba21beb7348945cd93719dc65966f6af1887ab RTC: 195554 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/71988 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/isteps')
-rw-r--r--src/usr/isteps/istep12/call_dmi_io_run_training.C67
-rw-r--r--src/usr/isteps/istep12/call_dmi_pre_trainadv.C52
-rw-r--r--src/usr/isteps/istep12/makefile18
3 files changed, 129 insertions, 8 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 0c3d1a2dd..d1322482a 100644
--- a/src/usr/isteps/istep12/call_dmi_io_run_training.C
+++ b/src/usr/isteps/istep12/call_dmi_io_run_training.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2015,2017 */
+/* Contributors Listed Below - COPYRIGHT 2015,2019 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -45,6 +45,8 @@
//HWP
#include <p9_io_dmi_linktrain.H>
+#include <exp_omi_setup.H>
+#include <exp_omi_train.H>
using namespace ISTEP;
using namespace ISTEP_ERROR;
@@ -103,6 +105,69 @@ void* call_dmi_io_run_training (void *io_pArgs)
}
+ TARGETING::TargetHandleList l_ocmbTargetList;
+ getAllChips(l_ocmbTargetList, TYPE_OCMB_CHIP);
+
+ for (const auto & l_ocmb_target : l_ocmbTargetList)
+ {
+ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "exp_omi_setup HWP target HUID 0x%.08x",
+ TARGETING::get_huid(l_ocmb_target));
+
+ // 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, 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_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
+ {
+ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "SUCCESS : exp_omi_setup HWP on target 0x%.08X, starting training", TARGETING::get_huid(l_ocmb_target));
+
+ FAPI_INVOKE_HWP(l_err, exp_omi_train, l_fapi_ocmb_target);
+
+ // process return code.
+ if ( l_err )
+ {
+ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "ERROR 0x%.8X: exp_omi_train 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
+ {
+ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "SUCCESS : exp_omi_train HWP on target 0x%.08X", TARGETING::get_huid(l_ocmb_target));
+ }
+ }
+
+ }
+
TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_dmi_io_run_training exit" );
diff --git a/src/usr/isteps/istep12/call_dmi_pre_trainadv.C b/src/usr/isteps/istep12/call_dmi_pre_trainadv.C
index a83fe46f5..4e127ef62 100644
--- a/src/usr/isteps/istep12/call_dmi_pre_trainadv.C
+++ b/src/usr/isteps/istep12/call_dmi_pre_trainadv.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2015,2017 */
+/* Contributors Listed Below - COPYRIGHT 2015,2019 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -45,6 +45,7 @@
//HWP
#include <p9_io_dmi_pre_trainadv.H>
+#include <p9a_omi_train.H>
using namespace ISTEP;
using namespace ISTEP_ERROR;
@@ -59,7 +60,7 @@ void* call_dmi_pre_trainadv (void *io_pArgs)
IStepError l_StepError;
errlHndl_t l_err = NULL;
- TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_dmi_pre_trainadv entry" );
+ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_dmi_pre_trainadv entry" );
TARGETING::TargetHandleList l_dmiTargetList;
getAllChiplets(l_dmiTargetList, TYPE_DMI);
@@ -112,21 +113,60 @@ void* call_dmi_pre_trainadv (void *io_pArgs)
else
{
TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "SUCCESS : p9_io_dmi_pre_trainadv HWP");
+ "SUCCESS : p9_io_dmi_pre_trainadv HWP on target 0x%.08X", TARGETING::get_huid(l_dmi_target));
}
}
else //No associated membuf
{
TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "p9_io_dmi_pre_trainadv HWP skipped, no associated membufs %d"
- ,l_pChildMembufList.size());
+ "p9_io_dmi_pre_trainadv HWP skipped, HUID 0x%.08X has no associated membufs"
+ ,TARGETING::get_huid(l_dmi_target));
}
}
+ TARGETING::TargetHandleList l_omiTargetList;
+ getAllChiplets(l_omiTargetList, TYPE_OMI);
- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_dmi_pre_trainadv exit" );
+ 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,
+ "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));
+ }
+ }
+
+
+ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_dmi_pre_trainadv exit" );
// end task, returning any errorlogs to IStepDisp
return l_StepError.getErrorHandle();
}
diff --git a/src/usr/isteps/istep12/makefile b/src/usr/isteps/istep12/makefile
index 86085c7cb..eda408e0b 100644
--- a/src/usr/isteps/istep12/makefile
+++ b/src/usr/isteps/istep12/makefile
@@ -5,7 +5,7 @@
#
# OpenPOWER HostBoot Project
#
-# Contributors Listed Below - COPYRIGHT 2015,2018
+# Contributors Listed Below - COPYRIGHT 2015,2019
# [+] International Business Machines Corp.
#
#
@@ -30,6 +30,10 @@ P9_PERV_HWP_PATH = $(P9_PROCEDURES_PATH)/hwp/perv
P9_NEST_HWP_PATH = $(P9_PROCEDURES_PATH)/hwp/nest
P9_INITFILE_PATH = $(P9_PROCEDURES_PATH)/hwp/initfiles
+P9A_MSS_HWP_PATH = ${ROOTPATH}/src/import/chips/p9a/procedures/hwp/memory/
+EXPLORER_HWP_PATH = ${ROOTPATH}/src/import/chips/ocmb/explorer/procedures/hwp/memory/
+EXPLORER_OMI_HWP_PATH = ${EXPLORER_HWP_PATH}/lib/omi
+
CENT_PROC_PATH = ${ROOTPATH}/src/import/chips/centaur/procedures
CENT_IO_HWP_PATH = $(CENT_PROC_PATH)/hwp/io
CENT_MEM_HWP_PATH = $(CENT_PROC_PATH)/hwp/memory
@@ -44,6 +48,7 @@ EXTRAINCDIR += ${ROOTPATH}/src/import/
EXTRAINCDIR += ${ROOTPATH}/src/import/chips/p9/utils/imageProcs/
EXTRAINCDIR += ${ROOTPATH}/src/import/chips/common/utils/imageProcs/
EXTRAINCDIR += ${ROOTPATH}/obj/genfiles/
+EXTRAINCDIR += ${ROOTPATH}/obj/genfiles/chips/ocmb/explorer/procedures/hwp/memory/lib/
EXTRAINCDIR += ${ROOTPATH}/src/usr/isteps/
EXTRAINCDIR += $(P9_PROCEDURES_PATH)/hwp/ffdc/
EXTRAINCDIR += $(P9_IO_HWP_PATH)
@@ -53,6 +58,8 @@ EXTRAINCDIR += $(P9_INITFILE_PATH)
EXTRAINCDIR += $(CENT_MEM_HWP_PATH)
EXTRAINCDIR += $(CENT_INITFILE_PATH)
EXTRAINCDIR += $(CENT_IO_HWP_PATH)
+EXTRAINCDIR += ${P9A_MSS_HWP_PATH}
+EXTRAINCDIR += ${EXPLORER_HWP_PATH}
VPATH += $(P9_NEST_HWP_PATH)
VPATH += $(P9_PERV_HWP_PATH)
@@ -61,6 +68,9 @@ VPATH += $(P9_INITFILE_PATH)
VPATH += $(CENT_MEM_HWP_PATH)
VPATH += $(CENT_INITFILE_PATH)
VPATH += $(CENT_IO_HWP_PATH)
+VPATH += ${P9A_MSS_HWP_PATH}
+VPATH += ${EXPLORER_HWP_PATH}
+VPATH += ${EXPLORER_OMI_HWP_PATH}
VAPTH += ${ROOTPATH}/src/usr/fapi2
OBJS += call_mss_getecid.o
@@ -83,6 +93,10 @@ OBJS+=p9c_set_inband_addr.o
# HWP objects need to unmask inband errors during framelock
OBJS+=p9c_mss_unmask_errors.o
+# HWP files we do not have .mks for
+OBJS+=p9a_omi_train.o
+OBJS+=exp_omi_utils.o
+
#Required before all the <procedure>.mk are included
include ${ROOTPATH}/procedure.rules.mk
@@ -105,5 +119,7 @@ include $(CENT_IO_HWP_PATH)/p9_io_cen_pdwn_lanes.mk
include $(P9_IO_HWP_PATH)/p9_io_dmi_clear_firs.mk
include $(CENT_INITFILE_PATH)/centaur_dmi_scom.mk
include $(P9_IO_HWP_PATH)/p9_io_erepairAccessorHwpFuncs.mk
+include ${EXPLORER_HWP_PATH}/exp_omi_setup.mk
+include ${EXPLORER_HWP_PATH}/exp_omi_train.mk
include ${ROOTPATH}/config.mk
OpenPOWER on IntegriCloud