From 30cd84febe39134df6d837538e68e25ca9fb8b76 Mon Sep 17 00:00:00 2001 From: Vasant Hegde Date: Wed, 21 Feb 2018 11:14:11 +0530 Subject: Add support to find relocated payload base address OPAL relocates itself after boot. During MPIPL, hostboot needs to access relocated SPIRAH. Hence lets add support to get relocated payload base address. OPAL will use SBE stash chip-op to send relocated address to SBE. During early IPL SBE sends stashed data to hostboot. And hostboot will use that information to find relocated payload (OPAL) base. SBE stash chip op: key = 0x03 val = Change-Id: I1089bd38f32b01b877d1580ba76313fc250e5c08 Signed-off-by: Vasant Hegde Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/55190 Tested-by: Jenkins Server Tested-by: Jenkins OP Build CI Tested-by: Jenkins OP HW Reviewed-by: Christian R. Geddes Tested-by: FSP CI Jenkins Reviewed-by: Daniel M. Crowell --- src/usr/targeting/attrrp.C | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'src/usr/targeting/attrrp.C') diff --git a/src/usr/targeting/attrrp.C b/src/usr/targeting/attrrp.C index a8978010d..defe5ceed 100755 --- a/src/usr/targeting/attrrp.C +++ b/src/usr/targeting/attrrp.C @@ -361,6 +361,25 @@ namespace TARGETING return l_toc_addr; } + uint64_t AttrRP::getHbDataRelocPayloadAddr() + { + uint64_t payload_addr = 0; + Bootloader::keyAddrPair_t l_keyAddrPairs = + g_BlToHbDataManager.getKeyAddrPairs(); + + for (uint8_t keyIndex = 0; keyIndex < MAX_ROW_COUNT; keyIndex++) + { + if(l_keyAddrPairs.key[keyIndex] == SBEIO::RELOC_PAYLOAD_ADDR) + { + payload_addr = l_keyAddrPairs.addr[keyIndex]; + break; + } + } + + // return relocated payload physical address + return payload_addr; + } + errlHndl_t AttrRP::parseAttrSectHeader() { errlHndl_t l_errl = NULL; -- cgit v1.2.1