diff options
author | Matt Derksen <mderkse1@us.ibm.com> | 2018-02-26 09:16:08 -0600 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2018-03-07 12:54:24 -0500 |
commit | 843b9e02e55dbb39a2573e83efac9f412d30469a (patch) | |
tree | 41d09dd0c1b9ab39fef706feb0f862025d1af1a4 /src/usr/errl/runtime/rt_errlmanager.C | |
parent | 5ca1d497141ad56ed8510d621b1e522c1c9fe7dd (diff) | |
download | talos-hostboot-843b9e02e55dbb39a2573e83efac9f412d30469a.tar.gz talos-hostboot-843b9e02e55dbb39a2573e83efac9f412d30469a.zip |
Initialize FIRDATA section and ErrlManager just incase BMC resets
PRD needs to read the PNOR to tell OCC where to write in the pnor.
This will cache the PNOR section so PRD will not fail the
read call. If an error is created with pnor inaccessible,
errl manager could get stuck unless it was initialized first.
Change-Id: Ia7212bf99e947a1016423b37aff6f13ddfc7190a
CQ:SW412798
Reviewed-on: http://ralgit01.raleigh.ibm.com/gerrit1/54990
Reviewed-by: Martin Gloff <mgloff@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>
Reviewed-by: Roland Veloz <rveloz@us.ibm.com>
Tested-by: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
CI-Ready: Daniel M. Crowell <dcrowell@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/usr/errl/runtime/rt_errlmanager.C')
-rw-r--r-- | src/usr/errl/runtime/rt_errlmanager.C | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/usr/errl/runtime/rt_errlmanager.C b/src/usr/errl/runtime/rt_errlmanager.C index 10b521a32..62eabc263 100644 --- a/src/usr/errl/runtime/rt_errlmanager.C +++ b/src/usr/errl/runtime/rt_errlmanager.C @@ -46,6 +46,8 @@ uint8_t ErrlManager::iv_hiddenErrLogsEnable = extern trace_desc_t* g_trac_errl; + + ////////////////////////////////////////////////////////////////////////////// // Local functions ////////////////////////////////////////////////////////////////////////////// @@ -380,3 +382,26 @@ bool rt_processCallout(errlHndl_t &io_errl, } } // End namespace + + +//------------------------------------------------------------------------ +void initErrlManager(void) +{ + // Note: rtPnor needs to be setup before this is called + // call errlManager ctor so that we're ready and waiting for errors. + ERRORLOG::theErrlManager::instance(); +} + + +struct registerInitErrlManager +{ + registerInitErrlManager() + { + // Register interface for Host to call + postInitCalls_t * rt_post = getPostInitCalls(); + rt_post->callInitErrlManager = &initErrlManager; + } +}; + +registerInitErrlManager g_registerInitErrlManager; + |