summaryrefslogtreecommitdiffstats
path: root/src/usr/runtime
diff options
context:
space:
mode:
authorCorey Swenson <cswenson@us.ibm.com>2017-05-08 14:03:25 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2017-05-23 15:49:55 -0400
commit60c97af36adbda3ff015356311e4d4557d785cfe (patch)
treea1c5baa55df12f635c585a8058b0879aca1c1413 /src/usr/runtime
parent7ab9a90ab7fdf2a336ef327379001133d52d64ba (diff)
downloadtalos-hostboot-60c97af36adbda3ff015356311e4d4557d785cfe.tar.gz
talos-hostboot-60c97af36adbda3ff015356311e4d4557d785cfe.zip
Enable PM during IPL on OPAL with FSP
Change-Id: Ie77e49aed0603f39109ddf8da2e23e3e0bcac959 CQ:SW388147 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/40280 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Reviewed-by: Martin Gloff <mgloff@us.ibm.com> Reviewed-by: Stephen M. Cprek <smcprek@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/runtime')
-rw-r--r--src/usr/runtime/populate_hbruntime.C59
1 files changed, 31 insertions, 28 deletions
diff --git a/src/usr/runtime/populate_hbruntime.C b/src/usr/runtime/populate_hbruntime.C
index 4be72cce3..2a0d57daf 100644
--- a/src/usr/runtime/populate_hbruntime.C
+++ b/src/usr/runtime/populate_hbruntime.C
@@ -624,37 +624,40 @@ errlHndl_t populate_HbRsvMem(uint64_t i_nodeId)
#ifdef CONFIG_START_OCC_DURING_BOOT
///////////////////////////////////////////////////
// OCC Common entry
- TARGETING::Target * l_sys = nullptr;
- TARGETING::targetService().getTopLevelTarget( l_sys );
- assert(l_sys != nullptr);
- uint64_t l_occCommonAddr = l_sys->getAttr
- <TARGETING::ATTR_OCC_COMMON_AREA_PHYS_ADDR>();
- l_label = HBRT_RSVD_MEM__OCC_COMMON;
- l_labelSize = strlen(l_label) + 1;
-
- // Get a pointer to the next available HDAT HB Rsv Mem entry
- l_rngPtr = nullptr;
- l_elog = getNextRhbAddrRange(l_rngPtr);
- if(l_elog)
+ if( !(TARGETING::is_phyp_load()) )
{
- break;
- }
+ TARGETING::Target * l_sys = nullptr;
+ TARGETING::targetService().getTopLevelTarget( l_sys );
+ assert(l_sys != nullptr);
+ uint64_t l_occCommonAddr = l_sys->getAttr
+ <TARGETING::ATTR_OCC_COMMON_AREA_PHYS_ADDR>();
+ l_label = HBRT_RSVD_MEM__OCC_COMMON;
+ l_labelSize = strlen(l_label) + 1;
- // Fill in the entry
- l_rngPtr->hdatRhbRngType =
- static_cast<uint8_t>(HDAT::RHB_TYPE_HOMER_OCC);
- l_rngPtr->hdatRhbRngId = i_nodeId;
- l_rngPtr->hdatRhbAddrRngStrAddr =
- l_occCommonAddr | VmmManager::FORCE_PHYS_ADDR;
- l_rngPtr->hdatRhbAddrRngEndAddr =
- (l_occCommonAddr | VmmManager::FORCE_PHYS_ADDR)
- + VMM_OCC_COMMON_SIZE - 1 ;
- l_rngPtr->hdatRhbLabelSize = l_labelSize;
- memcpy( l_rngPtr->hdatRhbLabelString,
- l_label,
- l_labelSize );
+ // Get a pointer to the next available HDAT HB Rsv Mem entry
+ l_rngPtr = nullptr;
+ l_elog = getNextRhbAddrRange(l_rngPtr);
+ if(l_elog)
+ {
+ break;
+ }
- traceHbRsvMemRange(l_rngPtr);
+ // Fill in the entry
+ l_rngPtr->hdatRhbRngType =
+ static_cast<uint8_t>(HDAT::RHB_TYPE_HOMER_OCC);
+ l_rngPtr->hdatRhbRngId = i_nodeId;
+ l_rngPtr->hdatRhbAddrRngStrAddr =
+ l_occCommonAddr | VmmManager::FORCE_PHYS_ADDR;
+ l_rngPtr->hdatRhbAddrRngEndAddr =
+ (l_occCommonAddr | VmmManager::FORCE_PHYS_ADDR)
+ + VMM_OCC_COMMON_SIZE - 1 ;
+ l_rngPtr->hdatRhbLabelSize = l_labelSize;
+ memcpy( l_rngPtr->hdatRhbLabelString,
+ l_label,
+ l_labelSize );
+
+ traceHbRsvMemRange(l_rngPtr);
+ }
#endif
}
OpenPOWER on IntegriCloud