diff options
| author | Dean Sanner <dsanner@us.ibm.com> | 2016-12-14 16:00:09 -0600 |
|---|---|---|
| committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2016-12-15 12:31:26 -0500 |
| commit | d083bcd4bda51d2b472f37beae06d70188fe670e (patch) | |
| tree | c307c54c5279220271c0996a48aae5a9a4e92646 /src/usr/runtime | |
| parent | a43fb54ebb40946cab6af22db041fad05f6b86f9 (diff) | |
| download | blackbird-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.C | 13 |
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); } |

