summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorChristian Geddes <crgeddes@us.ibm.com>2018-09-20 13:50:21 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2018-09-21 12:42:55 -0500
commit5b7c6b466357df2b7dd356977dae5e0003fbebdd (patch)
tree4230e7de8bfd1e35b6de9c3a0d3aecae34e7787d /src
parent739807847a95530dc42ee9a955b81ced4ffda142 (diff)
downloadtalos-hostboot-5b7c6b466357df2b7dd356977dae5e0003fbebdd.tar.gz
talos-hostboot-5b7c6b466357df2b7dd356977dae5e0003fbebdd.zip
Reset ATTR_SPCWKUP_COUNT to 0 at start of MPIPL
We were seeing issues in the newly added PM_RESET call in istep 21. This was happening because if the SKIP_WAKEUP attribute is not set then PM_RESET will attempt to enable special_wakeup on all of the EX targets before enabling auto-special wakeup. We are then expecting special wakeup done bit to be set on all of th EX targets prior to enabling auto-special wakeup on the target. IF SPCWKUP_COUNT is still set to a non-zero value from the previous IPL the call to enable special_wakeup will result in a no-op so the special wkup done bit will never be set in the GPMMR. This causes to call to enable auto-special wakeup to fail Change-Id: Iabdb5099ea9d6eb195003697de8ca074804d2d98 CQ: SW446135 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/66430 Reviewed-by: Matt Derksen <mderkse1@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: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src')
-rwxr-xr-xsrc/usr/targeting/targetservicestart.C16
1 files changed, 16 insertions, 0 deletions
diff --git a/src/usr/targeting/targetservicestart.C b/src/usr/targeting/targetservicestart.C
index 9346d38cf..429ec1728 100755
--- a/src/usr/targeting/targetservicestart.C
+++ b/src/usr/targeting/targetservicestart.C
@@ -568,6 +568,22 @@ static void initializeAttributes(TargetService& i_targetService,
membuf->setAttr<ATTR_IBSCOM_VIRTUAL_ADDR>(0);
}
+ TARGETING::PredicateCTM l_eqFilter(CLASS_UNIT, TYPE_EQ);
+ TARGETING::PredicateCTM l_exFilter(CLASS_UNIT, TYPE_EX);
+ TARGETING::PredicateCTM l_ecFilter(CLASS_UNIT, TYPE_CORE);
+ TARGETING::PredicatePostfixExpr l_wakeupTargFilter;
+ l_wakeupTargFilter.push(&l_eqFilter).push(&l_exFilter).Or().push(&l_ecFilter).Or();
+ TargetHandleList l_wakeupTargs;
+ i_targetService.getAssociated( l_wakeupTargs,
+ l_pTopLevel,
+ TargetService::CHILD_BY_AFFINITY,
+ TARGETING::TargetService::ALL,
+ &l_wakeupTargFilter);
+ for (auto & l_targ : l_wakeupTargs)
+ {
+ l_targ->setAttr<ATTR_SPCWKUP_COUNT>(0);
+ }
+
// HYPCOMM section is only present for master node
if ( TARGETING::UTIL::isCurrentMasterNode() )
{
OpenPOWER on IntegriCloud