diff options
author | Dean Sanner <dsanner@us.ibm.com> | 2017-08-14 10:02:43 -0500 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2017-09-14 22:29:41 -0400 |
commit | 9acfce99596f12dcc60952f8506a77e542609cbf (patch) | |
tree | c0053f3d4c74e412f598c7d704da02c4c83bc0de /src/include/usr | |
parent | 16887e07aa54b19b64f8c754d41b6076fe72464f (diff) | |
download | talos-hostboot-9acfce99596f12dcc60952f8506a77e542609cbf.tar.gz talos-hostboot-9acfce99596f12dcc60952f8506a77e542609cbf.zip |
Clear ECC sections marked "clearOnEccErr" on error
- Add the capability for Hostboot to recover (with reboot)
when it consumes an ECC error
- PNOR layout needs to be updated to flag the recoverable
sections (generally cached or throw away data like *VPD
HBEL, and GUARD partitions)
- Upon bad ECC detection, Hostboot will check partition
flag and if set, it will clear and write good ECC to PNOR.
It will then throw the normal error and terminate, waiting
for the BMC to issue a reboot
Change-Id: Ie4f4c0637d3962e9d4871e84a0bda8c256a74440
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/44608
Reviewed-by: Stephen M. Cprek <smcprek@us.ibm.com>
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: Nicholas E. Bofferding <bofferdn@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/include/usr')
-rw-r--r-- | src/include/usr/errl/errlmanager.H | 10 | ||||
-rw-r--r-- | src/include/usr/pnor/pnor_const.H | 1 |
2 files changed, 11 insertions, 0 deletions
diff --git a/src/include/usr/errl/errlmanager.H b/src/include/usr/errl/errlmanager.H index 93e07d8fe..9f2292515 100644 --- a/src/include/usr/errl/errlmanager.H +++ b/src/include/usr/errl/errlmanager.H @@ -336,6 +336,16 @@ private: static void * startup ( void* i_self ); /** + * @brief Performs setup of the PNOR info. Done as a separate + * thread to handle error conditions (ECC on HBEL) where + * task gets killed. + * + * @param[in/out] + * @return NONE + */ + static void * pnorSetupThread ( void* i_self ); + + /** * @brief Message handler for process Hostboot error log message * and send it to FSP. * diff --git a/src/include/usr/pnor/pnor_const.H b/src/include/usr/pnor/pnor_const.H index 667ed5487..4bc6b4a01 100644 --- a/src/include/usr/pnor/pnor_const.H +++ b/src/include/usr/pnor/pnor_const.H @@ -107,6 +107,7 @@ struct SectionInfo_t bool reprovision; /**< Erase this section during a reprovision */ bool Volatile; /**< Section loses contents on non HB reboots */ bool secure; /**< Indicates if a section is secure */ + bool clearOnEccErr; /**< Indicates on ECC errors, clear and reboot*/ #ifdef CONFIG_SECUREBOOT size_t secureProtectedPayloadSize; /**< Cache the secure payload size so that the secure container only |