diff options
author | Matt Derksen <mderkse1@us.ibm.com> | 2018-01-23 12:01:05 -0600 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2018-01-27 13:37:05 -0500 |
commit | f0c1f3b3a422a163b593c05f20629ef89df2adf2 (patch) | |
tree | 4fc3439ce3a812387fea4e27de0b89b17ffeaa63 | |
parent | 079068a0dd84a877e3aa9b382b4dcaebecfa5f37 (diff) | |
download | talos-hostboot-f0c1f3b3a422a163b593c05f20629ef89df2adf2.tar.gz talos-hostboot-f0c1f3b3a422a163b593c05f20629ef89df2adf2.zip |
Explicitly call ATTN/PRD before exiting PM Reset flow
Always want to allow PRD to handle LFIR and extract
data from HOMER before TMGT triggers PM Complex Init.
Change-Id: I8ce7502a37190d6d89f4c801af5b4d35e68dbaa9
RTC:186293
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/52456
Reviewed-by: Martin Gloff <mgloff@us.ibm.com>
Tested-by: Jenkins Server <pfd-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>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
-rw-r--r-- | src/usr/isteps/pm/pm.mk | 6 | ||||
-rw-r--r-- | src/usr/isteps/pm/pm_common.C | 22 |
2 files changed, 27 insertions, 1 deletions
diff --git a/src/usr/isteps/pm/pm.mk b/src/usr/isteps/pm/pm.mk index 4966cac3a..61c7ca70f 100644 --- a/src/usr/isteps/pm/pm.mk +++ b/src/usr/isteps/pm/pm.mk @@ -54,6 +54,10 @@ EXTRAINCDIR += ${HWP_STOPUTIL_PATH} NEST_UTIL_PATH += ${ROOTPATH}/src/import/chips/p9/procedures/hwp/nest EXTRAINCDIR += ${NEST_UTIL_PATH} +# for attnsvc in pm_common.C +EXTRAINCDIR += ${ROOTPATH}/src/include/usr/diag/ +EXTRAINCDIR += ${ROOTPATH}/src/usr/diag/attn/ + ## pointer to already consumed procedures. ## NOTE: add the base istep dir here. @@ -69,11 +73,13 @@ OBJS += occCheckstop.o OBJS += p9_setup_evid.o OBJS += p9_avsbus_lib.o + ## NOTE: add a new directory onto the vpaths when you add a new HWP VPATH += ${HWP_PM_PATH} ${HWP_CUST_PATH} ${HWP_ACC_PATH} ${HWP_LIB_PATH} VPATH += ${HWP_XIP_PATH} ${HWP_IMAGEPROCS_PATH} ${HWP_CEN_IMAGEPROCS_PATH} ${HWP_COMMON_IMAGEPROCS_PATH} ${HWP_STOPUTIL_PATH} VPATH += ${NEST_UTIL_PATH} + # TODO RTC: 164237 # Take another look at PM lib diff --git a/src/usr/isteps/pm/pm_common.C b/src/usr/isteps/pm/pm_common.C index 7f50caae1..0847cbde0 100644 --- a/src/usr/isteps/pm/pm_common.C +++ b/src/usr/isteps/pm/pm_common.C @@ -31,6 +31,10 @@ #include <errl/errlentry.H> #include <errl/errlreasoncodes.H> +// attn/prd call +#include <runtime/attnsvc.H> + + #include <sys/misc.h> #include <sys/mm.h> #include <sys/time.h> @@ -913,12 +917,28 @@ namespace HBPM { int lRc = HBPM_UNMAP(l_homerVAddr); uint64_t lZeroAddr = 0; - i_target->setAttr<ATTR_HOMER_VIRT_ADDR>(reinterpret_cast<uint64_t>(lZeroAddr)); + i_target->setAttr<ATTR_HOMER_VIRT_ADDR>( + reinterpret_cast<uint64_t>(lZeroAddr)); TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, "resetPMComplex:" "unmap, RC=0x%X" , lRc ); } + if (!l_errl) + { + // Explicitly call ATTN before exiting to ensure PRD handles + // LFIR before TMGT triggers PM Complex Init + l_errl = Singleton<ATTN::Service>::instance(). + handleAttentions( i_target ); + if(l_errl) + { + TRACFCOMP(ISTEPS_TRACE::g_trac_isteps_trace, + ERR_MRK"resetPmComplex: service::handleAttentions " + "returned error for RtProc: 0x%08X", get_huid(i_target)); + } + + } + TRACFCOMP( ISTEPS_TRACE::g_trac_isteps_trace, EXIT_MRK"resetPMComplex: RC=0x%X, PLID=0x%lX", ERRL_GETRC_SAFE(l_errl), ERRL_GETPLID_SAFE(l_errl) ); |