diff --git a/src/include/usr/isteps/istep13list.H b/src/include/usr/isteps/istep13list.H index 1b323849663..89041eae0fb 100644 --- a/src/include/usr/isteps/istep13list.H +++ b/src/include/usr/isteps/istep13list.H @@ -295,6 +295,7 @@ const DepModInfo g_istep13Dependancies = { DEP_LIB(libistep13.so), DEP_LIB(libisteps_mss.so), DEP_LIB(libcen.so), + DEP_LIB(libnestmemutils.so), NULL } }; diff --git a/src/usr/hwplibs/nest/nestmemutils.mk b/src/usr/hwplibs/nest/nestmemutils.mk index 26b6a406c19..9962f3b0e85 100644 --- a/src/usr/hwplibs/nest/nestmemutils.mk +++ b/src/usr/hwplibs/nest/nestmemutils.mk @@ -5,7 +5,7 @@ # # OpenPOWER HostBoot Project # -# Contributors Listed Below - COPYRIGHT 2017,2018 +# Contributors Listed Below - COPYRIGHT 2017,2019 # [+] International Business Machines Corp. # # @@ -26,15 +26,26 @@ ROOTPATH=../../../.. +P9_PROCEDURE_PATH = ${ROOTPATH}/src/import/chips/p9/procedures/ HWP_NEST_MEM_UTILS_PATH := ${ROOTPATH}/src/import/chips/p9/procedures/hwp/nest/ +EXP_COMMON_PATH = ${ROOTPATH}/src/import/chips/ocmb/explorer/common +AXONE_PROCEDURE_PATH = ${ROOTPATH}/src/import/chips/p9a/procedures EXTRAINCDIR += ${HWP_NEST_MEM_UTILS_PATH} EXTRAINCDIR += ${ROOTPATH}/src/include/usr/fapi2/ EXTRAINCDIR += ${ROOTPATH}/src/import/hwpf/fapi2/include EXTRAINCDIR += ${ROOTPATH}/src/import/chips/common/utils/imageProcs +EXTRAINCDIR += ${EXP_COMMON_PATH}/include/ +EXTRAINCDIR += ${ROOTPATH}/obj/genfiles/ +EXTRAINCDIR += ${ROOTPATH}/src/import/ +EXTRAINCDIR += ${AXONE_PROCEDURE_PATH}/hwp/memory/ +EXTRAINCDIR += ${P9_PROCEDURE_PATH}/hwp/memory VPATH += ${HWP_NEST_MEM_UTILS_PATH} include ${ROOTPATH}/procedure.rules.mk include ${HWP_NEST_MEM_UTILS_PATH}/p9_putmemproc.mk +OBJS += $(if $(CONFIG_AXONE),p9a_throttle_sync.o,p9_throttle_sync.o) + +include ${ROOTPATH}/config.mk diff --git a/src/usr/isteps/istep13/call_mss_scominit.C b/src/usr/isteps/istep13/call_mss_scominit.C index 26dae4e4cf3..3cb4b12231b 100644 --- a/src/usr/isteps/istep13/call_mss_scominit.C +++ b/src/usr/isteps/istep13/call_mss_scominit.C @@ -42,12 +42,12 @@ #include #include #include -#include #ifdef CONFIG_AXONE -#include -#include // for EXPLORER ID + #include + #include // for EXPLORER ID + #include #else -#include + #include #endif using namespace ERRORLOG; @@ -264,6 +264,53 @@ void axone_call_mss_scominit(IStepError & io_istepError) "target HUID %.8X", TARGETING::get_huid(l_ocmb_target)); } } + + // Need to setup the memory throttles for worstcase mode until + // we get the thermals really setup later + + // Get all functional proc chip targets + // Use targeting code to get a list of all processors + TARGETING::TargetHandleList l_procChips; + getAllChips( l_procChips, TARGETING::TYPE_PROC ); + + for (const auto & l_procChip: l_procChips) + { + //Convert the TARGETING::Target into a fapi2::Target by passing + //l_procChip into the fapi2::Target constructor + fapi2::Target + l_fapi2CpuTarget((l_procChip)); + + TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, + "Running p9a_throttle_sync HWP on target HUID %.8X", + TARGETING::get_huid(l_procChip) ); + FAPI_INVOKE_HWP( l_err, p9a_throttle_sync, l_fapi2CpuTarget ); + + if (l_err) + { + TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, + "ERROR 0x%.8X: p9_throttle_sync HWP returns error", + l_err->reasonCode()); + + // Capture the target data in the elog + ErrlUserDetailsTarget(l_procChip).addToLog(l_err); + + // Create IStep error log and cross reference + // to error that occurred + io_istepError.addErrorDetails( l_err ); + + // Commit Error + errlCommit( l_err, HWPF_COMP_ID ); + + break; + } + else + { + TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, + "SUCCESS : p9_throttle_sync HWP on 0x%.8X processor", + TARGETING::get_huid(l_procChip) ); + } + } + } #else void axone_call_mss_scominit(IStepError & io_istepError) diff --git a/src/usr/isteps/istep13/makefile b/src/usr/isteps/istep13/makefile index 1ff490fe2f1..d8587396333 100644 --- a/src/usr/isteps/istep13/makefile +++ b/src/usr/isteps/istep13/makefile @@ -97,7 +97,6 @@ include ${P9_PROCEDURES_PATH}/hwp/perv/p9_mem_startclocks.mk #Scom init include ${P9_PROCEDURES_PATH}/hwp/memory/p9_mss_scominit.mk -include ${P9_PROCEDURES_PATH}/hwp/nest/p9_throttle_sync.mk OBJS += $(if $(CONFIG_AXONE),,p9c_mss_scominit.o) include ${P9_PROCEDURES_PATH}/hwp/initfiles/p9n_ddrphy_scom.mk diff --git a/src/usr/isteps/istep14/makefile b/src/usr/isteps/istep14/makefile index 8aff380634e..9aaa19c9774 100644 --- a/src/usr/isteps/istep14/makefile +++ b/src/usr/isteps/istep14/makefile @@ -113,7 +113,6 @@ VPATH += ${PROCEDURE_PATH}/hwp/memory/lib/dimm/ddr4/ # Axone vs non-Axone specific HWP VPATH += $(if $(CONFIG_AXONE),${EXPLORER_HWP_PATH},) -OBJS += $(if $(CONFIG_AXONE),p9a_throttle_sync.o,p9_throttle_sync.o) OBJS += $(if $(CONFIG_AXONE),exp_mss_thermal_init.o,) # TODO RTC:245219 # use PRD's version of memdiags instead of this cronus verison once its working