summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChristian Geddes <crgeddes@us.ibm.com>2018-01-24 15:31:12 -0600
committerDaniel M. Crowell <dcrowell@us.ibm.com>2018-01-31 12:28:00 -0500
commitae1ac07ebcac5e7b650207fdda124e17bcb3be4f (patch)
tree7ba6ca9584192563cecbf1b0c4a915975c62a612
parent8443a65a3599f433bd47c2ea03e863240db28b89 (diff)
downloadtalos-hostboot-ae1ac07ebcac5e7b650207fdda124e17bcb3be4f.tar.gz
talos-hostboot-ae1ac07ebcac5e7b650207fdda124e17bcb3be4f.zip
Zero out Cumulus related virtual address attribute during MPIPL
During MPIPL we want to zero out virtual address attributes because we want to insure they get recomputed on the MPIPL pass through the isteps. These values can change between boots so its important to recompute them on the MPIPL pass. Change-Id: I58f810e70ed61d9acb04bd32c92fbed45f2b78a2 RTC: 172534 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/52582 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: William G. Hoffa <wghoffa@us.ibm.com> Reviewed-by: Martin Gloff <mgloff@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
-rwxr-xr-xsrc/usr/targeting/targetservicestart.C27
1 files changed, 23 insertions, 4 deletions
diff --git a/src/usr/targeting/targetservicestart.C b/src/usr/targeting/targetservicestart.C
index a5241025e..360df2b8e 100755
--- a/src/usr/targeting/targetservicestart.C
+++ b/src/usr/targeting/targetservicestart.C
@@ -416,6 +416,9 @@ static void initializeAttributes(TargetService& i_targetService,
l_pTopLevel->setAttr<ATTR_PAYLOAD_BASE>(l_hyp_hrmor);
}
+
+ //Assemble list of functional procs and zero out virtual address values
+ //to ensure they get set again this IPL
TARGETING::PredicateCTM l_chipFilter(CLASS_CHIP, TYPE_PROC);
TARGETING::PredicateIsFunctional l_functional;
TARGETING::PredicatePostfixExpr l_functionalChips;
@@ -431,18 +434,19 @@ static void initializeAttributes(TargetService& i_targetService,
{
l_chip->setAttr<ATTR_XSCOM_VIRTUAL_ADDR>(0);
l_chip->setAttr<ATTR_HOMER_VIRT_ADDR>(0);
- //TODO RTC:172534 Need to clear volatile attributes during MPIPL for cumulus
}
- TargetHandleList tpms;
+ //Assemble list of tpms and zero out some values
+ //to ensure they get set again this IPL
+ TargetHandleList l_tpms;
TARGETING::PredicateCTM tpmFilter(CLASS_CHIP, TYPE_TPM);
i_targetService.getAssociated(
- tpms,
+ l_tpms,
l_pTopLevel,
TargetService::CHILD,
TARGETING::TargetService::ALL,
&tpmFilter);
- for (auto & tpm : tpms)
+ for (auto & tpm : l_tpms)
{
tpm->setAttr<ATTR_HB_TPM_INIT_ATTEMPTED>(0);
tpm->setAttr<ATTR_HB_TPM_LOG_MGR_PTR>(0);
@@ -450,6 +454,21 @@ static void initializeAttributes(TargetService& i_targetService,
mutex_init(tpmMutex);
}
+ //Assemble list of membuf and zero out some virtual address attributes
+ //to ensure they get set again this IPL
+ TargetHandleList l_membufs;
+ TARGETING::PredicateCTM membufFilter(CLASS_CHIP, TYPE_MEMBUF);
+ i_targetService.getAssociated(
+ l_membufs,
+ l_pTopLevel,
+ TargetService::CHILD,
+ TARGETING::TargetService::ALL,
+ &membufFilter);
+ for (auto & membuf : l_membufs)
+ {
+ membuf->setAttr<ATTR_IBSCOM_VIRTUAL_ADDR>(0);
+ }
+
// Setup physical TOC address
uint64_t l_hbdTocAddr = AttrRP::getHbDataTocAddr();
OpenPOWER on IntegriCloud