summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMatt Derksen <mderkse1@us.ibm.com>2018-01-23 12:01:05 -0600
committerDaniel M. Crowell <dcrowell@us.ibm.com>2018-01-27 13:37:05 -0500
commitf0c1f3b3a422a163b593c05f20629ef89df2adf2 (patch)
tree4fc3439ce3a812387fea4e27de0b89b17ffeaa63
parent079068a0dd84a877e3aa9b382b4dcaebecfa5f37 (diff)
downloadtalos-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.mk6
-rw-r--r--src/usr/isteps/pm/pm_common.C22
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) );
OpenPOWER on IntegriCloud