summaryrefslogtreecommitdiffstats
path: root/src/usr/runtime
diff options
context:
space:
mode:
authorDean Sanner <dsanner@us.ibm.com>2016-12-14 16:00:09 -0600
committerDaniel M. Crowell <dcrowell@us.ibm.com>2016-12-15 12:31:26 -0500
commitd083bcd4bda51d2b472f37beae06d70188fe670e (patch)
treec307c54c5279220271c0996a48aae5a9a4e92646 /src/usr/runtime
parenta43fb54ebb40946cab6af22db041fad05f6b86f9 (diff)
downloadblackbird-hostboot-d083bcd4bda51d2b472f37beae06d70188fe670e.tar.gz
blackbird-hostboot-d083bcd4bda51d2b472f37beae06d70188fe670e.zip
Adjust MPIPL ATTR save address relative to HRMOR
Change-Id: Icc0cc144d9ddf24966c0108db8d37bf4284bfd2d Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/33860 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Reviewed-by: Christian R. Geddes <crgeddes@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: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/runtime')
-rw-r--r--src/usr/runtime/populate_hbruntime.C13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/usr/runtime/populate_hbruntime.C b/src/usr/runtime/populate_hbruntime.C
index f394f58bf..e3eaffdc1 100644
--- a/src/usr/runtime/populate_hbruntime.C
+++ b/src/usr/runtime/populate_hbruntime.C
@@ -154,9 +154,12 @@ errlHndl_t populate_RtDataByNode(uint64_t iNodeId)
//Create a block map of memory so we can save a copy of the attribute
//data incase we need to MPIPL
+ //Account HRMOR (non 0 base addr)
+ uint64_t l_attr_data_addr = cpu_spr_value(CPU_SPR_HRMOR)
+ + MPIPL_ATTR_DATA_ADDR;
uint64_t l_attrCopyVmemAddr =
reinterpret_cast<uint64_t>(mm_block_map(
- reinterpret_cast<void*>(MPIPL_ATTR_DATA_ADDR),
+ reinterpret_cast<void*>(l_attr_data_addr),
MPIPL_ATTR_VMM_SIZE ));
//Make sure the address returned from the block map call is not NULL
@@ -173,7 +176,7 @@ errlHndl_t populate_RtDataByNode(uint64_t iNodeId)
{
TRACFCOMP( g_trac_runtime,
"populate_RtDataByNode fail to unmap physical addr %p, virt addr %p",
- reinterpret_cast<void*>(MPIPL_ATTR_DATA_ADDR),
+ reinterpret_cast<void*>(l_attr_data_addr),
reinterpret_cast<void*>(l_attrCopyVmemAddr));
/*@ errorlog tag
* @errortype ERRORLOG::ERRL_SEV_UNRECOVERABLE
@@ -188,7 +191,7 @@ errlHndl_t populate_RtDataByNode(uint64_t iNodeId)
l_elog = new ERRORLOG::ErrlEntry(ERRORLOG::ERRL_SEV_UNRECOVERABLE,
RUNTIME::MOD_POPULATE_RTDATABYNODE,
RUNTIME::RC_UNMAP_FAIL,
- MPIPL_ATTR_DATA_ADDR,
+ l_attr_data_addr,
l_attrCopyVmemAddr,
true);
}
@@ -197,7 +200,7 @@ errlHndl_t populate_RtDataByNode(uint64_t iNodeId)
{
TRACFCOMP( g_trac_runtime,
"populate_RtDataByNode fail to map physical addr %p, size %lx",
- reinterpret_cast<void*>(MPIPL_ATTR_DATA_ADDR),
+ reinterpret_cast<void*>(l_attr_data_addr),
MPIPL_ATTR_VMM_SIZE );
/*@ errorlog tag
* @errortype ERRORLOG::ERRL_SEV_UNRECOVERABLE
@@ -212,7 +215,7 @@ errlHndl_t populate_RtDataByNode(uint64_t iNodeId)
l_elog = new ERRORLOG::ErrlEntry(ERRORLOG::ERRL_SEV_UNRECOVERABLE,
RUNTIME::MOD_POPULATE_RTDATABYNODE,
RUNTIME::RC_CANNOT_MAP_MEMORY,
- MPIPL_ATTR_DATA_ADDR,
+ l_attr_data_addr,
MPIPL_ATTR_VMM_SIZE,
true);
}
OpenPOWER on IntegriCloud