summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Geddes <crgeddes@us.ibm.com>2019-03-27 11:53:49 -0500
committerWilliam G. Hoffa <wghoffa@us.ibm.com>2019-04-18 14:03:12 -0500
commit625a082c5e39460925c868a6ae27233fecc029dd (patch)
treece0739024ef8bf9a284ce3c84a0c281a4fd2c033
parentae7863d014454c860e9e80dfc81249b4e4dd5f77 (diff)
downloadblackbird-hostboot-625a082c5e39460925c868a6ae27233fecc029dd.tar.gz
blackbird-hostboot-625a082c5e39460925c868a6ae27233fecc029dd.zip
Add p9a_omi_init and exp_omi_init calls to istep 12.13
As per P9A IPL Flow document exp_omi_init followed by p9a_omi_init must be called during istep 12 prior to firmware update of explorer card. Change-Id: I00b51f075152d2120143661404755ec5791c1691 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/75097 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: Glenn Miles <milesg@ibm.com> Reviewed-by: William G. Hoffa <wghoffa@us.ibm.com>
-rw-r--r--src/usr/isteps/istep12/call_cen_set_inband_addr.C168
-rw-r--r--src/usr/isteps/istep12/makefile25
2 files changed, 152 insertions, 41 deletions
diff --git a/src/usr/isteps/istep12/call_cen_set_inband_addr.C b/src/usr/isteps/istep12/call_cen_set_inband_addr.C
index 6d78eeb55..196f7bed7 100644
--- a/src/usr/isteps/istep12/call_cen_set_inband_addr.C
+++ b/src/usr/isteps/istep12/call_cen_set_inband_addr.C
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2015,2018 */
+/* Contributors Listed Below - COPYRIGHT 2015,2019 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -47,6 +47,11 @@
//HWP
#include <p9c_set_inband_addr.H>
+#ifdef CONFIG_AXONE
+#include <exp_omi_init.H>
+#include <p9a_omi_init.H>
+#endif
+
//Inband SCOM
#include <ibscom/ibscomif.H>
@@ -62,50 +67,55 @@ void* call_cen_set_inband_addr (void *io_pArgs)
{
IStepError l_StepError;
errlHndl_t l_err = NULL;
+ auto l_procModel = TARGETING::targetService().getProcessorModel();
- TRACDCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_cen_set_inband_addr entry" );
-
- TARGETING::TargetHandleList l_procTargetList;
- getAllChips(l_procTargetList, TYPE_PROC);
-
- TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, "call_cen_set_inband_addr: %d proc chips found",
- l_procTargetList.size());
+ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_cen_set_inband_addr entry" );
- for (const auto & l_proc_target : l_procTargetList)
+ if(l_procModel == TARGETING::MODEL_CUMULUS)
{
- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "p9c_set_inband_addr HWP target HUID %.8x",
- TARGETING::get_huid(l_proc_target));
+ TARGETING::TargetHandleList l_procTargetList;
+ getAllChips(l_procTargetList, TYPE_PROC);
- // call the HWP with each target
- fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP> l_fapi_proc_target
- (l_proc_target);
+ TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, "call_cen_set_inband_addr: %d proc chips found",
+ l_procTargetList.size());
- FAPI_INVOKE_HWP(l_err, p9c_set_inband_addr, l_fapi_proc_target);
-
- // process return code.
- if ( l_err )
+ for (const auto & l_proc_target : l_procTargetList)
{
+
TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "ERROR 0x%.8X: p9c_set_inband_addr HWP on target HUID %.8x",
- l_err->reasonCode(), TARGETING::get_huid(l_proc_target) );
+ "p9c_set_inband_addr HWP target HUID %.8x",
+ TARGETING::get_huid(l_proc_target));
- // capture the target data in the elog
- ErrlUserDetailsTarget(l_proc_target).addToLog( l_err );
+ // call the HWP with each target
+ fapi2::Target<fapi2::TARGET_TYPE_PROC_CHIP> l_fapi_proc_target
+ (l_proc_target);
- // Create IStep error log and cross reference to error that occurred
- l_StepError.addErrorDetails( l_err );
+ FAPI_INVOKE_HWP(l_err, p9c_set_inband_addr, l_fapi_proc_target);
- // Commit Error
- errlCommit( l_err, ISTEP_COMP_ID );
+ // process return code.
+ if ( l_err )
+ {
+ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "ERROR 0x%.8X: p9c_set_inband_addr HWP on target HUID %.8x",
+ l_err->reasonCode(), TARGETING::get_huid(l_proc_target) );
- }
- else
- {
- TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
- "SUCCESS : p9c_set_inband_addr HWP");
- }
+ // capture the target data in the elog
+ ErrlUserDetailsTarget(l_proc_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 : p9c_set_inband_addr HWP");
+ }
+
+ }
}
// @todo RTC 187913 inband centaur scom in P9
@@ -116,6 +126,98 @@ void* call_cen_set_inband_addr (void *io_pArgs)
IBSCOM::enableInbandScoms();
}
+#ifdef CONFIG_AXONE
+ if(l_procModel == TARGETING::MODEL_AXONE)
+ {
+
+ TARGETING::TargetHandleList l_ocmbTargetList;
+ getAllChips(l_ocmbTargetList, TYPE_OCMB_CHIP);
+
+ TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, "call_cen_set_inband_addr: %d ocmb chips found",
+ l_ocmbTargetList.size());
+
+ for (const auto & l_ocmb_target : l_ocmbTargetList)
+ {
+ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "exp_omi_init HWP target HUID %.8x",
+ 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_init , l_fapi_ocmb_target);
+
+ // process return code.
+ if ( l_err )
+ {
+ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "ERROR 0x%.8X: exp_omi_init HWP on target HUID 0x%.8x",
+ 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
+ errlCommit( l_err, ISTEP_COMP_ID );
+
+ }
+ else
+ {
+ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "SUCCESS : exp_omi_init HWP on target HUID 0x%.8x",
+ TARGETING::get_huid(l_ocmb_target));
+ }
+
+ }
+
+ TARGETING::TargetHandleList l_mccTargetList;
+ getAllChiplets(l_mccTargetList, TYPE_MCC);
+
+ for (const auto & l_mcc_target : l_mccTargetList)
+ {
+ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "p9a_omi_init HWP target HUID %.8x",
+ TARGETING::get_huid(l_mcc_target));
+
+ // call the HWP with each target
+ fapi2::Target<fapi2::TARGET_TYPE_MCC> l_fapi_mcc_target
+ (l_mcc_target);
+
+ FAPI_INVOKE_HWP(l_err, p9a_omi_init, l_fapi_mcc_target);
+
+ // process return code.
+ if ( l_err )
+ {
+ TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace,
+ "ERROR 0x%.8X: p9a_omi_init HWP on target HUID %.8x",
+ l_err->reasonCode(), TARGETING::get_huid(l_mcc_target) );
+
+ // capture the target data in the elog
+ ErrlUserDetailsTarget(l_mcc_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_init HWP on target HUID 0x%.8x",
+ TARGETING::get_huid(l_mcc_target));
+ }
+
+ }
+ }
+#endif // CONFIG_AXONE
+
+
TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "call_cen_set_inband_addr exit" );
// end task, returning any errorlogs to IStepDisp
diff --git a/src/usr/isteps/istep12/makefile b/src/usr/isteps/istep12/makefile
index eba5516a4..6e565529d 100644
--- a/src/usr/isteps/istep12/makefile
+++ b/src/usr/isteps/istep12/makefile
@@ -29,6 +29,10 @@ P9_IO_HWP_PATH = $(P9_PROCEDURES_PATH)/hwp/io
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
+P9_MEMORY_HWP_PATH = $(P9_PROCEDURES_PATH)/hwp/memory
+
+P9A_MSS_HWP_PATH = ${ROOTPATH}/src/import/chips/p9a/procedures/hwp/memory/
+P9A_MSS_ACCESSOR_PATH = ${ROOTPATH}/obj/genfiles/chips/p9a/procedures/hwp/memory/lib/
P9A_MSS_HWP_PATH = ${ROOTPATH}/src/import/chips/p9a/procedures/hwp/memory/
EXPLORER_HWP_PATH = ${ROOTPATH}/src/import/chips/ocmb/explorer/procedures/hwp/memory/
@@ -56,12 +60,14 @@ EXTRAINCDIR += $(P9_IO_HWP_PATH)
EXTRAINCDIR += $(P9_NEST_HWP_PATH)
EXTRAINCDIR += $(P9_PERV_HWP_PATH)
EXTRAINCDIR += $(P9_INITFILE_PATH)
+EXTRAINCDIR += ${P9_MEMORY_HWP_PATH}
EXTRAINCDIR += $(CENT_MEM_HWP_PATH)
EXTRAINCDIR += $(CENT_INITFILE_PATH)
EXTRAINCDIR += $(CENT_IO_HWP_PATH)
EXTRAINCDIR += ${P9A_MSS_HWP_PATH}
EXTRAINCDIR += ${EXPLORER_HWP_PATH}
EXTRAINCDIR += ${EXPLORER_INC_PATH}
+EXTRAINCDIR += ${P9A_MSS_ACCESSOR_PATH}
VPATH += $(P9_NEST_HWP_PATH)
VPATH += $(P9_PERV_HWP_PATH)
@@ -119,14 +125,17 @@ include $(P9_IO_HWP_PATH)/p9_io_erepairAccessorHwpFuncs.mk
VPATH += $(if $(CONFIG_AXONE),${P9A_MSS_HWP_PATH},)
VPATH += $(if $(CONFIG_AXONE),${EXPLORER_HWP_PATH},)
VPATH += $(if $(CONFIG_AXONE),${EXPLORER_OMI_HWP_PATH},)
-
-OBJS += $(if $(CONFIG_AXONE),exp_omi_utils.o,)
-OBJS += $(if $(CONFIG_AXONE),exp_omi_setup.o,)
-OBJS += $(if $(CONFIG_AXONE),exp_omi_train.o,)
-OBJS += $(if $(CONFIG_AXONE),p9a_omi_train.o,)
-OBJS += $(if $(CONFIG_AXONE),p9a_omi_train_check.o,)
-OBJS += $(if $(CONFIG_AXONE),p9a_omi_setup_bars.o,)
-OBJS += $(if $(CONFIG_AXONE),p9a_addr_ext.o,)
+VPATH += $(if $(CONFIG_AXONE),${P9_MEMORY_HWP_PATH},)
+OBJS += $(if $(CONFIG_AXONE),exp_omi_utils.o,)
+OBJS += $(if $(CONFIG_AXONE),exp_omi_setup.o,)
+OBJS += $(if $(CONFIG_AXONE),exp_omi_train.o,)
+OBJS += $(if $(CONFIG_AXONE),p9a_omi_train.o,)
+OBJS += $(if $(CONFIG_AXONE),p9a_omi_train_check.o,)
+OBJS += $(if $(CONFIG_AXONE),p9a_omi_setup_bars.o,)
+OBJS += $(if $(CONFIG_AXONE),p9a_addr_ext.o,)
+OBJS += $(if $(CONFIG_AXONE),exp_omi_init.o,)
+OBJS += $(if $(CONFIG_AXONE),p9a_omi_init.o,)
+OBJS += $(if $(CONFIG_AXONE),p9a_omi_init_scom.o,)
include ${ROOTPATH}/config.mk
OpenPOWER on IntegriCloud