diff options
author | Christian Geddes <crgeddes@us.ibm.com> | 2019-02-15 17:32:54 -0600 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2019-02-20 15:55:45 -0600 |
commit | 2fce6c032485af7c4dfc02c1d2a5ec9d0d11758c (patch) | |
tree | 124d5fdf74e3092b3f404a2f9c0507fb79c38123 /src/usr/isteps | |
parent | b4d32e92638b7384621c1146ef51d1c61c9f5904 (diff) | |
download | talos-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.C | 67 | ||||
-rw-r--r-- | src/usr/isteps/istep12/call_dmi_pre_trainadv.C | 52 | ||||
-rw-r--r-- | src/usr/isteps/istep12/makefile | 18 |
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 |