Skip to content

Commit

Permalink
Enable PM during IPL on OPAL with FSP
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
cvswen authored and dcrowell77 committed May 23, 2017
1 parent 7ab9a90 commit 60c97af
Show file tree
Hide file tree
Showing 4 changed files with 42 additions and 39 deletions.
8 changes: 0 additions & 8 deletions src/build/buildpnor/pnorLayoutFSP.xml
Expand Up @@ -249,14 +249,6 @@ Layout Description - Used when building an FSP driver
<side>sideless</side>
<ecc/>
</section>
<section>
<description>OCC Lid (1.125M)</description>
<eyeCatch>OCC</eyeCatch>
<physicalOffset>0x2AD4000</physicalOffset>
<physicalRegionSize>0x120000</physicalRegionSize>
<side>sideless</side>
<ecc/>
</section>
<section>
<description>VFRT data for WOF (3MB)</description>
<!-- We need 266KB per module sort, going to support
Expand Down
2 changes: 1 addition & 1 deletion src/build/configs/fsprelease.config
Expand Up @@ -7,7 +7,7 @@ unset ALLOW_MACRONIX_PNOR
unset INCLUDE_XML_OPPOWERVM
unset INCLUDE_XML_OPENPOWER
unset ENABLE_HDAT_IN_HOSTBOOT
unset START_OCC_DURING_BOOT
set START_OCC_DURING_BOOT
unset NO_SBE_UPDATES
unset BMC_BT_LPC_IPMI
unset HTMGT
12 changes: 10 additions & 2 deletions src/build/mkrules/hbfw/img/makefile
Expand Up @@ -247,7 +247,11 @@ SBEC_FINAL_IMG = SBEC.bin
# Decide which PNOR to build
.if(${FAKEPNOR} == "")
# Paramemters passed into GEN_PNOR_IMAGE_SCRIPT.
GEN_NIMBUS_BIN_FILES = ${NIMBUS}:SBE=${${NIMBUS_SBE_IMG}:P},HCODE=${${NIMBUS_HCODE_IMG}:P},OCC=${${NIMBUS_OCC_IMG}:P},HBD=${${NIMBUS_HBD_IMG}:P}
.if(${DEFAULT_PNOR} == 1)
GEN_NIMBUS_BIN_FILES = ${NIMBUS}:SBE=${${NIMBUS_SBE_IMG}:P},HCODE=${${NIMBUS_HCODE_IMG}:P},OCC=${${NIMBUS_OCC_IMG}:P},HBD=${${NIMBUS_HBD_IMG}:P}
.else
GEN_NIMBUS_BIN_FILES = ${NIMBUS}:SBE=${${NIMBUS_SBE_IMG}:P},HCODE=${${NIMBUS_HCODE_IMG}:P},HBD=${${NIMBUS_HBD_IMG}:P}
.endif
#@TODO RTC:163810 - Put SBEC back "--systemBinFile SBEC=${${SBEC_IMG}:P}"
SYSTEM_SPECIFIC_PARAMS = --install-all --emit-eccless ${TARGET_TEST:b--test} ${CONFIG_SECUREBOOT:b--secureboot} \
--pnorLayout ${PNOR_LAYOUT} ${CORRUPT_PARAMS} ${HB_STANDALONE:b--hb-standalone} \
Expand Down Expand Up @@ -278,7 +282,11 @@ gen_system_specific_images: build_sbe_partitions .PMAKE

HOSTBOOT_DEFAULT_SECTIONS = HBBL=${HBBL_FINAL_IMG},HBB=${HBB_FINAL_IMG},HBI=${HBI_FINAL_IMG},HBRT=${HBRT_FINAL_IMG},TEST=${TEST_FINAL_IMG},TESTRO=${TESTRO_FINAL_IMG},HBEL=${HBEL_FINAL_IMG},GUARD=${GUARD_FINAL_IMG},GLOBAL=${GLOBAL_FINAL_IMG},PAYLOAD=${PAYLOAD_FINAL_IMG},CVPD=${CVPD_FINAL_IMG},MVPD=${MVPD_FINAL_IMG},DJVPD=${DJVPD_FINAL_IMG},RINGOVD=${RINGOVD_FINAL_IMG},SBKT=${SBKT_FINAL_IMG},WOFDATA=${WOFDATA_FINAL_IMG}
#@TODO RTC:163810 - Put SBEC back "SBEC=${SBEC_FINAL_IMG},"
NIMBUS_SECT = HBD=${NIMBUS_HBD_FINAL_IMG},SBE=${NIMBUS_SBE_FINAL_IMG},HCODE=${NIMBUS_HCODE_FINAL_IMG},OCC=${NIMBUS_OCC_FINAL_IMG}
.if(${DEFAULT_PNOR} == 1)
NIMBUS_SECT = HBD=${NIMBUS_HBD_FINAL_IMG},SBE=${NIMBUS_SBE_FINAL_IMG},HCODE=${NIMBUS_HCODE_FINAL_IMG},OCC=${NIMBUS_OCC_FINAL_IMG}
.else
NIMBUS_SECT = HBD=${NIMBUS_HBD_FINAL_IMG},SBE=${NIMBUS_SBE_FINAL_IMG},HCODE=${NIMBUS_HCODE_FINAL_IMG}
.endif
PNOR_IMG_INFO = \
nimbus.pnor:${PNOR_LAYOUT}:${NIMBUS_SECT},${HOSTBOOT_DEFAULT_SECTIONS} \
${FIPS_PNOR_INFO}
Expand Down
59 changes: 31 additions & 28 deletions src/usr/runtime/populate_hbruntime.C
Expand Up @@ -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
}

Expand Down

0 comments on commit 60c97af

Please sign in to comment.