diff options
Diffstat (limited to 'src/usr/hwpf/hwp/occ/runtime/rt_occ.C')
-rw-r--r-- | src/usr/hwpf/hwp/occ/runtime/rt_occ.C | 12 |
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); } } }; |