summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/bootloader/bootloader.C46
-rw-r--r--src/include/bootloader/bootloaderif.H7
2 files changed, 36 insertions, 17 deletions
diff --git a/src/bootloader/bootloader.C b/src/bootloader/bootloader.C
index 303b14f86..40eab54a1 100644
--- a/src/bootloader/bootloader.C
+++ b/src/bootloader/bootloader.C
@@ -112,6 +112,36 @@ namespace Bootloader{
const auto l_pSecRomInfo = reinterpret_cast<const SecureRomInfo*>(
l_pRomStart);
+ // Set the MMIO BAR information as is appropriate
+ if (l_blConfigData->version >= MMIO_BARS_ADDED)
+ {
+ // Translate SBE to BL version into BL to HB version
+ switch(l_blConfigData->version)
+ {
+ // Add cases as additional versions are created
+ default:
+ g_blData->blToHbData.version = BLTOHB_MMIOBARS;
+ break;
+ }
+
+ // Copy values for MMIO BARs
+ g_blData->blToHbData.xscomBAR = l_blConfigData->xscomBAR;
+ g_blData->blToHbData.lpcBAR = l_blConfigData->lpcBAR;
+ }
+ else
+ {
+ // Use MMIO BARs version since default values are being set
+ g_blData->blToHbData.version = BLTOHB_MMIOBARS;
+
+ // Set default values for MMIO BARs
+ // @TODO RTC: 173526 or RTC: 173525
+ // Use constants MMIO_GROUP0_CHIP0_XSCOM_BASE_ADDR and
+ // MMIO_GROUP0_CHIP0_LPC_BASE_ADDR from
+ // src/include/arch/memorymap.H for setting values
+ g_blData->blToHbData.xscomBAR = 0x000603FC00000000;
+ g_blData->blToHbData.lpcBAR = 0x0006030000000000;
+ }
+
// Only set rest of BlToHbData if SecureROM is valid
if ( secureRomInfoValid(l_pSecRomInfo) )
{
@@ -120,14 +150,6 @@ namespace Bootloader{
g_blData->secureRomValid = true;
g_blData->blToHbData.eyeCatch = BLTOHB_EYECATCHER;
- if (l_blConfigData->version == BLTOHB_SAB + 1 /* MMIO_BARS_ADDED @TODO RTC:173526*/ )
- {
- g_blData->blToHbData.version = BLTOHB_MMIOBARS;
- }
- else
- {
- g_blData->blToHbData.version = BLTOHB_SAB;
- }
g_blData->blToHbData.branchtableOffset =
l_pSecRomInfo->branchtableOffset;
g_blData->blToHbData.secureRom = l_pRomStart;
@@ -140,14 +162,6 @@ namespace Bootloader{
// Set HBB header and size
g_blData->blToHbData.hbbHeader = i_pHbbSrc;
g_blData->blToHbData.hbbHeaderSize = PAGE_SIZE;
-
- // Set the MMIO BAR information if appropriate
- if (l_blConfigData->version >= BLTOHB_SAB + 1 /* MMIO_BARS_ADDED @TODO RTC:173526*/ )
- {
- g_blData->blToHbData.xscomBAR = 0x000603FC00000000 /* l_blConfigData->xscomBAR @TODO RTC:173526*/ ;
- g_blData->blToHbData.lpcBAR = 0x0006030000000000 /* l_blConfigData->lpcBAR @TODO RTC:173526*/ ;
- }
-
}
// Place structure into proper location for HB to find
diff --git a/src/include/bootloader/bootloaderif.H b/src/include/bootloader/bootloaderif.H
index 9c7b73201..6fbbd4fd8 100644
--- a/src/include/bootloader/bootloaderif.H
+++ b/src/include/bootloader/bootloaderif.H
@@ -27,6 +27,7 @@
#include <arch/ppc.H>
#include <securerom/ROM.H>
+#include <usr/lpc/lpc_const.H>
namespace Bootloader{
// Max size of HBBL without ECC. Must match PNOR layout for eyeCatch HBBL
@@ -75,7 +76,11 @@ struct BlToHbData
secureRomSize(0), hwKeysHash(nullptr),
hwKeysHashSize(0), hbbHeader(nullptr),
hbbHeaderSize(0), secureAccessBit(false),
- xscomBAR(0), lpcBAR(0) {}
+ // @TODO RTC: 173526 or RTC: 173525
+ // Use constants MMIO_GROUP0_CHIP0_XSCOM_BASE_ADDR and
+ // MMIO_GROUP0_CHIP0_LPC_BASE_ADDR from
+ // src/include/arch/memorymap.H for setting values
+ xscomBAR(0x000603FC00000000), lpcBAR(LPC::LPC_PHYS_BASE) {}
// Simple way to tell if data is valid
uint64_t eyeCatch;
OpenPOWER on IntegriCloud