From b29154df590cec5b8fd11d5fd228332c95c8f915 Mon Sep 17 00:00:00 2001 From: Marty Gloff Date: Thu, 8 Jun 2017 13:29:15 -0500 Subject: Remove Hacks / Workarounds put in by commits 41463 and 41574 Remove hacks to set LPC and XSCOM MMIO BAR default values in Bootloader and in data passed to Hostboot (defect SW391259). Change-Id: I3df6accadda8a5c461d969ed38e7970bc37291c9 CQ: SW391539 CMVC-Prereq: 1026637 Depends-on: I55ca10034d7adf3e766edb4d0071f649c7c90446 Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/41556 Tested-by: Jenkins Server Tested-by: Jenkins OP Build CI Tested-by: FSP CI Jenkins Reviewed-by: Matt Derksen Reviewed-by: Christian R. Geddes Reviewed-by: Daniel M. Crowell --- src/bootloader/bootloader.C | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) (limited to 'src/bootloader') diff --git a/src/bootloader/bootloader.C b/src/bootloader/bootloader.C index d7e092012..5d5fe2681 100644 --- a/src/bootloader/bootloader.C +++ b/src/bootloader/bootloader.C @@ -52,6 +52,10 @@ extern char bootloader_end_address; +// XSCOM/LPC BAR constants +const uint64_t XSCOM_BAR_MASK = 0xFF000003FFFFFFFFULL; +const uint64_t LPC_BAR_MASK = 0xFF000000FFFFFFFFULL; + namespace Bootloader{ /** @@ -129,9 +133,10 @@ namespace Bootloader{ // Copy values for MMIO BARs g_blData->blToHbData.xscomBAR - = /* (l_blConfigData->version >= MMIO_BARS_ADDED) + = ((l_blConfigData->version >= MMIO_BARS_ADDED) && + ((l_blConfigData->xscomBAR & XSCOM_BAR_MASK) == 0)) ? l_blConfigData->xscomBAR - : @fixme-RTC:149250-Remove */ MMIO_GROUP0_CHIP0_XSCOM_BASE_ADDR; + : MMIO_GROUP0_CHIP0_XSCOM_BASE_ADDR; /* lpcBAR already copied in main() */ // Only set rest of BlToHbData if SecureROM is valid @@ -296,13 +301,13 @@ namespace Bootloader{ // @TODO RTC:138268 Support multiple sides of PNOR in bootloader // Copy SBE BL shared data into BL HB shared data -/* const auto l_blConfigData = reinterpret_cast( + const auto l_blConfigData = reinterpret_cast( SBE_HB_COMM_ADDR); - @fixme-RTC:149250-Remove */ g_blData->blToHbData.lpcBAR - = /* (l_blConfigData->version >= MMIO_BARS_ADDED) + = ((l_blConfigData->version >= MMIO_BARS_ADDED) && + ((l_blConfigData->lpcBAR & LPC_BAR_MASK) == 0)) ? l_blConfigData->lpcBAR - : @fixme-RTC:149250-Remove */ MMIO_GROUP0_CHIP0_LPC_BASE_ADDR; + : MMIO_GROUP0_CHIP0_LPC_BASE_ADDR; //pnorEnd is the end of flash, which is base of lpc, plus //the offset of the FW space, plus the TOP memory address in FW space -- cgit v1.2.3