summaryrefslogtreecommitdiffstats
path: root/src/usr/targeting/attrrp.C
diff options
context:
space:
mode:
authorcrgeddes <crgeddes@us.ibm.com>2017-08-14 16:39:58 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2017-08-23 16:33:12 -0400
commitb0da5312bac172bdea608371f647fd1bafb87bce (patch)
treed0ee329f92519757f2f8c42e16d81a7948d67bc6 /src/usr/targeting/attrrp.C
parenta44497d63a86a610b8c4c09fbb45dab99a811fbf (diff)
downloadtalos-hostboot-b0da5312bac172bdea608371f647fd1bafb87bce.tar.gz
talos-hostboot-b0da5312bac172bdea608371f647fd1bafb87bce.zip
Use keyAddr stash chipop to pass rsv mem addr through SBE for MPIPL
Previously we were relying on the reservedMem section to be a certain address for the attrrp to find after an MPIPL. With this change the address is passed through the SBE so the reservedMem data can be anywhere RTC: 165369 Change-Id: I06521c049088c4a53a8c0a51fa07e5200da09483 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/44624 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Reviewed-by: Brian E. Bakke <bbakke@us.ibm.com> Reviewed-by: Martin Gloff <mgloff@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/targeting/attrrp.C')
-rwxr-xr-xsrc/usr/targeting/attrrp.C24
1 files changed, 22 insertions, 2 deletions
diff --git a/src/usr/targeting/attrrp.C b/src/usr/targeting/attrrp.C
index 2c9f0b6fe..b4d5ce155 100755
--- a/src/usr/targeting/attrrp.C
+++ b/src/usr/targeting/attrrp.C
@@ -53,6 +53,9 @@
#include <targeting/attrPlatOverride.H>
#include <config.h>
#include <secureboot/service.H>
+#include <kernel/bltohbdatamgr.H>
+#include <bootloader/bootloaderif.H>
+#include <sbeio/sbeioif.H>
using namespace INITSERVICE;
using namespace ERRORLOG;
@@ -377,8 +380,25 @@ namespace TARGETING
uint64_t l_attr_data_size = 0;
// Setup physical TOC address
- uint64_t l_toc_addr = cpu_spr_value(CPU_SPR_HRMOR) +
- VMM_HB_DATA_TOC_START_OFFSET;
+ uint64_t l_toc_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::RSV_MEM_ATTR_ADDR)
+ {
+ l_toc_addr = l_keyAddrPairs.addr[keyIndex];
+ }
+ }
+
+ if(!l_toc_addr)
+ {
+ // Setup physical TOC address to hardcoded value
+ l_toc_addr = cpu_spr_value(CPU_SPR_HRMOR) +
+ VMM_HB_DATA_TOC_START_OFFSET;
+ }
// Now map the TOC to find the ATTR label address & size
Util::hbrtTableOfContents_t * l_toc_ptr =
OpenPOWER on IntegriCloud