summaryrefslogtreecommitdiffstats
path: root/src/bootloader
diff options
context:
space:
mode:
authorcrgeddes <crgeddes@us.ibm.com>2017-08-09 13:42:03 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2017-08-18 10:26:41 -0400
commitd53d9f226aaa8080eb65717ae895dac06a855bf8 (patch)
treef94c901f3704d12d5e0999345a76faf8401e203b /src/bootloader
parent6a040451c75c888ad1ecca9e10988c119cbbba84 (diff)
downloadtalos-hostboot-d53d9f226aaa8080eb65717ae895dac06a855bf8.tar.gz
talos-hostboot-d53d9f226aaa8080eb65717ae895dac06a855bf8.zip
Pass Key-Addr info through bootloader
RTC: 165369 Change-Id: If15f6ccc7a7c3649b8352467ae10173a15f3f501 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/44426 Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com> Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com> Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com> Reviewed-by: Matt Derksen <mderkse1@us.ibm.com> Reviewed-by: Martin Gloff <mgloff@us.ibm.com> Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/bootloader')
-rw-r--r--src/bootloader/bootloader.C32
1 files changed, 29 insertions, 3 deletions
diff --git a/src/bootloader/bootloader.C b/src/bootloader/bootloader.C
index f3ba3d525..55969fa0b 100644
--- a/src/bootloader/bootloader.C
+++ b/src/bootloader/bootloader.C
@@ -110,6 +110,9 @@ namespace Bootloader{
switch(l_blConfigData->version)
{
// Add cases as additional versions are created
+ case ADDR_STASH_SUPPORT_ADDED:
+ g_blData->blToHbData.version = BLTOHB_KEYADDR;
+ break;
default:
g_blData->blToHbData.version = BLTOHB_SIZE;
break;
@@ -147,15 +150,33 @@ namespace Bootloader{
// Set Bootloader preceived size of structure
g_blData->blToHbData.sizeOfStructure = sizeof(BlToHbData);
}
+ }
+
+ void setKeyAddrMapData(const void * i_pHbbSrc)
+ {
+ // Read SBE HB shared data.
+ const auto l_blConfigData = reinterpret_cast<BootloaderConfigData_t *>(
+ SBE_HB_COMM_ADDR);
+ // Set copy keyaddr stash data
+ // Ensure SBE to Bootloader structure has key addr stash info
+ if (l_blConfigData->version >= ADDR_STASH_SUPPORT_ADDED)
+ {
+ memcpy(&g_blData->blToHbData.keyAddrStashData,
+ &l_blConfigData->pair,
+ sizeof(keyAddrPair_t));
+ }
+ }
+
+ void copyBlToHbtoHbLocation()
+ {
// Place BlToHb into proper location for HB to find
memcpy(reinterpret_cast<void *>(BLTOHB_COMM_DATA_ADDR_LATEST |
IGNORE_HRMOR_MASK),
- &g_blData->blToHbData,
- sizeof(BlToHbData));
+ &g_blData->blToHbData,
+ sizeof(BlToHbData));
}
-
/**
* @brief Verify Container against system hash keys
*
@@ -366,6 +387,11 @@ namespace Bootloader{
// Get Secure Data from SBE HBBL communication area
setSecureData(l_src_addr);
+ // Get Key-Addr Mapping from SBE HBBL communication area
+ setKeyAddrMapData(l_src_addr);
+
+ copyBlToHbtoHbLocation();
+
// ROM verification of HBB image
verifyContainer(l_src_addr);
OpenPOWER on IntegriCloud