diff options
author | Marty Gloff <mgloff@us.ibm.com> | 2017-07-28 10:21:07 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2017-08-04 09:28:37 -0400 |
commit | c252560d78ef1fbbf9b902d0238a4218e8af4642 (patch) | |
tree | 4f4f028b8419105d90602cc829549b9ce90fb434 /src/bootloader/bl_pnorAccess.C | |
parent | 8fd26d184769c8a9cc1dfeb9a34088f5adc39646 (diff) | |
download | talos-hostboot-c252560d78ef1fbbf9b902d0238a4218e8af4642.tar.gz talos-hostboot-c252560d78ef1fbbf9b902d0238a4218e8af4642.zip |
Hostboot not able to send a valid TI after corrupting HB base
Bootloader TI design is incomplete and does not set up the TI info
at HBB offset 0x2000 with the magic signature or pointer to the
Bootloader TI data.
Change-Id: I16229fed67a2cf67322dce02f0a1b8f0b68d275f
CQ: SW397043
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/43941
Tested-by: Jenkins Server <pfd-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP Build CI <op-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Reviewed-by: Christian R. Geddes <crgeddes@us.ibm.com>
Reviewed-by: Stephen M. Cprek <smcprek@us.ibm.com>
Reviewed-by: Corey V. Swenson <cswenson@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/bootloader/bl_pnorAccess.C')
-rw-r--r-- | src/bootloader/bl_pnorAccess.C | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/src/bootloader/bl_pnorAccess.C b/src/bootloader/bl_pnorAccess.C index 2d924e1a6..5a7076afd 100644 --- a/src/bootloader/bl_pnorAccess.C +++ b/src/bootloader/bl_pnorAccess.C @@ -193,7 +193,7 @@ void bl_pnorAccess::readTOC(uint8_t i_tocBuffer[PNOR::TOC_SIZE], void bl_pnorAccess::findTOC(uint64_t i_pnorEnd, PNOR::SectionData_t * o_TOC, uint32_t& o_errCode, uint64_t& o_pnorStart) { - uint8_t *l_tocBuffer = Bootloader::g_blScratchSpace; + uint8_t *l_tocBuffer = g_blScratchSpace; //The first TOC is 1 TOC size + 1 page back from the end of the flash (+ 1) uint64_t l_mmioAddr = i_pnorEnd - PNOR::TOC_OFFSET_FROM_TOP_OF_FLASH; @@ -228,27 +228,23 @@ void bl_pnorAccess::findTOC(uint64_t i_pnorEnd, PNOR::SectionData_t * o_TOC, l_mmioAddr = o_pnorStart; // Reset saved trace index - Bootloader::g_blData->bl_trace_index_saved = - BOOTLOADER_TRACE_SIZE; + g_blData->bl_trace_index_saved = BOOTLOADER_TRACE_SIZE; } else { // Check if a trace index is not saved - if(Bootloader::g_blData->bl_trace_index_saved >= - BOOTLOADER_TRACE_SIZE) + if(g_blData->bl_trace_index_saved >= BOOTLOADER_TRACE_SIZE) { // Save trace index for future passes through loop - Bootloader::g_blData->bl_trace_index_saved = - Bootloader::g_blData->bl_trace_index; + g_blData->bl_trace_index_saved = g_blData->bl_trace_index; // Save this PNOR MMIO address - Bootloader::g_blData->bl_first_pnor_mmio = l_mmioAddr; + g_blData->bl_first_pnor_mmio = l_mmioAddr; } else // A trace index was saved { // Replace trace index, reuse trace entries for this loop - Bootloader::g_blData->bl_trace_index = - Bootloader::g_blData->bl_trace_index_saved; + g_blData->bl_trace_index = g_blData->bl_trace_index_saved; } // Adjust to new location in PNOR flash for next MMIO @@ -256,12 +252,12 @@ void bl_pnorAccess::findTOC(uint64_t i_pnorEnd, PNOR::SectionData_t * o_TOC, l_mmioAddr -= PAGESIZE; // Increment loop counter - Bootloader::g_blData->bl_pnor_loop_count++; + g_blData->bl_pnor_loop_count++; } // Check that address is still in FW space if(l_mmioAddr < - (Bootloader::g_blData->blToHbData.lpcBAR + LPC::LPCHC_FW_SPACE)) + (g_blData->blToHbData.lpcBAR + LPC::LPCHC_FW_SPACE)) { BOOTLOADER_TRACE_W_BRK(BTLDR_TRC_PA_FINDTOC_READTOC_ERR); |