summaryrefslogtreecommitdiffstats
path: root/src/usr/hwpf/hwp/occ/runtime/rt_occ.C
diff options
context:
space:
mode:
Diffstat (limited to 'src/usr/hwpf/hwp/occ/runtime/rt_occ.C')
-rw-r--r--src/usr/hwpf/hwp/occ/runtime/rt_occ.C12
1 files changed, 10 insertions, 2 deletions
diff --git a/src/usr/hwpf/hwp/occ/runtime/rt_occ.C b/src/usr/hwpf/hwp/occ/runtime/rt_occ.C
index 87d30b71b..1bc02a83f 100644
--- a/src/usr/hwpf/hwp/occ/runtime/rt_occ.C
+++ b/src/usr/hwpf/hwp/occ/runtime/rt_occ.C
@@ -431,14 +431,22 @@ namespace RT_OCC
// If we already loaded OCC during the IPL we need to fix up
// the virtual address because we're now not using virtual
// memory
+ // Note: We called our memory "ibm,slw-occ-image" but OPAL
+ // created their own range that subsumed ours
+ //@todo-RTC:124392-solve this naming issue...
+ uint64_t l_base_homer =
+ g_hostInterfaces->get_reserved_mem("ibm,homer-image");
+
TargetHandleList procChips;
getAllChips(procChips, TYPE_PROC, true);
for (TargetHandleList::iterator itr = procChips.begin();
itr != procChips.end();
++itr)
{
- uint64_t addr = (*itr)->getAttr<ATTR_HOMER_PHYS_ADDR>();
- (*itr)->setAttr<ATTR_HOMER_VIRT_ADDR>(addr);
+ uint64_t l_offset = (*itr)->getAttr<ATTR_POSITION>()
+ * VMM_HOMER_INSTANCE_SIZE;
+ (*itr)->setAttr<ATTR_HOMER_VIRT_ADDR>
+ (l_base_homer+l_offset);
}
}
};
OpenPOWER on IntegriCloud