summaryrefslogtreecommitdiffstats
path: root/src/include/bootloader
diff options
context:
space:
mode:
authorBill Hoffa <wghoffa@us.ibm.com>2018-10-10 08:49:08 -0500
committerDaniel M. Crowell <dcrowell@us.ibm.com>2019-02-08 15:42:06 -0600
commite36e0019e0b97ee66e649fd32a708e2905b26623 (patch)
treebc8cb284194865a10d3c8f75f72a36bccf6d1643 /src/include/bootloader
parentdc1efdb95ce7198d29797abd165d6ce2fd30f5ad (diff)
downloadtalos-hostboot-e36e0019e0b97ee66e649fd32a708e2905b26623.tar.gz
talos-hostboot-e36e0019e0b97ee66e649fd32a708e2905b26623.zip
HBBL LPC Error Checking
- To avoid IPL delays, the LPC status register should be checked prior to loading the entire PNOR image (done via LPC). If an error condition occurs, HBBL should fail out. Change-Id: I5d716213f468e28191db794bf3e5480af547b26e CQ: SW446254 Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/68442 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: Nicholas E. Bofferding <bofferdn@us.ibm.com> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/include/bootloader')
-rw-r--r--src/include/bootloader/bl_pnorAccess.H13
-rw-r--r--src/include/bootloader/bootloader_trace.H15
2 files changed, 21 insertions, 7 deletions
diff --git a/src/include/bootloader/bl_pnorAccess.H b/src/include/bootloader/bl_pnorAccess.H
index a9c37d1cc..ea7077df9 100644
--- a/src/include/bootloader/bl_pnorAccess.H
+++ b/src/include/bootloader/bl_pnorAccess.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2015,2017 */
+/* Contributors Listed Below - COPYRIGHT 2015,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -49,7 +49,7 @@ class bl_pnorAccess
/**
* @brief Get the hostboot base image
*
- * @param[in] i_pnorEnd MMIO address to access the end of pnor flash
+ * @param[in] i_lpcBar MMIO address to base LPC space
*
* @param[out] o_hbbSection Struct that holds information about the
* Hostboot Base Image Section
@@ -60,12 +60,13 @@ class bl_pnorAccess
*
* @return void
*/
-static void getHBBSection(uint64_t i_pnorEnd,
+static void getHBBSection(uint64_t i_lpcBar,
PNOR::SectionData_t& o_hbbSection,
uint32_t& o_errCode,
uint64_t& o_pnorStart);
private:
+
/**
* @brief Read in the toc and get information about each section
*
@@ -89,7 +90,7 @@ static void readTOC(uint8_t i_tocBuffer[PNOR::TOC_SIZE], uint32_t & o_errCode,
* @brief Find a valid TOC within specified side of pnor flash
side is determined by the base mmio address passed in
*
- * @param[in] i_pnorEnd MMIO address to access the end of pnor flash
+ * @param[in] i_lpcBar MMIO address to base LPC space
*
* @param[out] o_TOC Array of section data describing contents of pnor
*
@@ -99,9 +100,9 @@ static void readTOC(uint8_t i_tocBuffer[PNOR::TOC_SIZE], uint32_t & o_errCode,
*
* @return void
*/
-static void findTOC(uint64_t i_pnorEnd, PNOR::SectionData_t * o_TOC,
+static void findTOC(uint64_t i_lpcBar, PNOR::SectionData_t * o_TOC,
uint32_t& o_errCode, uint64_t& o_pnorStart);
};
-#endif \ No newline at end of file
+#endif
diff --git a/src/include/bootloader/bootloader_trace.H b/src/include/bootloader/bootloader_trace.H
index 313afbada..d79f3c4af 100644
--- a/src/include/bootloader/bootloader_trace.H
+++ b/src/include/bootloader/bootloader_trace.H
@@ -5,7 +5,7 @@
/* */
/* OpenPOWER HostBoot Project */
/* */
-/* Contributors Listed Below - COPYRIGHT 2015,2017 */
+/* Contributors Listed Below - COPYRIGHT 2015,2018 */
/* [+] International Business Machines Corp. */
/* */
/* */
@@ -85,6 +85,13 @@ enum BootloaderTraces
/** Bootloader PNOR Access getHBBSection started */
BTLDR_TRC_PA_GETHBBSECTION_START = 0x30,
+ /** Technically the below value falls here in the IPL flow between
+ * BTLDR_TRC_PA_GETHBBSECTION_START + BTLDR_TRC_PA_FINDTOC_TOC1_HANDLEMMIO_RTN,
+ * but the value is defined below in numerical order to help guarantee
+ * it won't be re-used.
+ BTLDR_TRC_PA_FINDTOC_TOC1_LPC_RTN = 0x36,
+ **/
+
/** Bootloader PNOR Access findTOC handleMMIO to copy TOC ONE returned */
BTLDR_TRC_PA_FINDTOC_TOC1_HANDLEMMIO_RTN = 0x31,
@@ -100,6 +107,9 @@ enum BootloaderTraces
/** Bootloader PNOR Access getHBBSection findTOC returned */
BTLDR_TRC_PA_GETHBBSECTION_FINDTOC_RTN = 0x35,
+ /** Bootloader PNOR Access findTOC handleMMIO LPC Error Check returned */
+ BTLDR_TRC_PA_FINDTOC_TOC1_LPC_RTN = 0x36,
+
/** Bootloader PNOR Access readTOC zeroSection returned */
BTLDR_TRC_PA_READTOC_ZEROSECTION_RTN = 0x41,
@@ -186,6 +196,9 @@ enum BootloaderTraces
/** Bootloader main verifyContainer secure rom invalid */
BTLDR_TRC_MAIN_VERIFY_INVALID_SECROM = 0xFC,
+
+ /** Bootloader PNOR Access findTOC handleMMIO LPC ERR returned */
+ BTLDR_TRC_PA_FINDTOC_TOC1_LPC_ERR = 0xFD,
};
#ifndef BOOTLOADER_TRACE
OpenPOWER on IntegriCloud