|
52 | 52 |
|
53 | 53 | extern char bootloader_end_address;
|
54 | 54 |
|
| 55 | +// XSCOM/LPC BAR constants |
| 56 | +const uint64_t XSCOM_BAR_MASK = 0xFF000003FFFFFFFFULL; |
| 57 | +const uint64_t LPC_BAR_MASK = 0xFF000000FFFFFFFFULL; |
| 58 | + |
55 | 59 |
|
56 | 60 | namespace Bootloader{
|
57 | 61 | /**
|
@@ -129,9 +133,10 @@ namespace Bootloader{
|
129 | 133 |
|
130 | 134 | // Copy values for MMIO BARs
|
131 | 135 | g_blData->blToHbData.xscomBAR
|
132 |
| - = /* (l_blConfigData->version >= MMIO_BARS_ADDED) |
| 136 | + = ((l_blConfigData->version >= MMIO_BARS_ADDED) && |
| 137 | + ((l_blConfigData->xscomBAR & XSCOM_BAR_MASK) == 0)) |
133 | 138 | ? l_blConfigData->xscomBAR
|
134 |
| - : @fixme-RTC:149250-Remove */ MMIO_GROUP0_CHIP0_XSCOM_BASE_ADDR; |
| 139 | + : MMIO_GROUP0_CHIP0_XSCOM_BASE_ADDR; |
135 | 140 | /* lpcBAR already copied in main() */
|
136 | 141 |
|
137 | 142 | // Only set rest of BlToHbData if SecureROM is valid
|
@@ -296,13 +301,13 @@ namespace Bootloader{
|
296 | 301 | // @TODO RTC:138268 Support multiple sides of PNOR in bootloader
|
297 | 302 |
|
298 | 303 | // Copy SBE BL shared data into BL HB shared data
|
299 |
| -/* const auto l_blConfigData = reinterpret_cast<BootloaderConfigData_t *>( |
| 304 | + const auto l_blConfigData = reinterpret_cast<BootloaderConfigData_t *>( |
300 | 305 | SBE_HB_COMM_ADDR);
|
301 |
| - @fixme-RTC:149250-Remove */ |
302 | 306 | g_blData->blToHbData.lpcBAR
|
303 |
| - = /* (l_blConfigData->version >= MMIO_BARS_ADDED) |
| 307 | + = ((l_blConfigData->version >= MMIO_BARS_ADDED) && |
| 308 | + ((l_blConfigData->lpcBAR & LPC_BAR_MASK) == 0)) |
304 | 309 | ? l_blConfigData->lpcBAR
|
305 |
| - : @fixme-RTC:149250-Remove */ MMIO_GROUP0_CHIP0_LPC_BASE_ADDR; |
| 310 | + : MMIO_GROUP0_CHIP0_LPC_BASE_ADDR; |
306 | 311 |
|
307 | 312 | //pnorEnd is the end of flash, which is base of lpc, plus
|
308 | 313 | //the offset of the FW space, plus the TOP memory address in FW space
|
|
0 commit comments