diff options
author | Brian Horton <brianh@linux.ibm.com> | 2015-08-07 16:19:30 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2015-09-03 16:28:21 -0500 |
commit | e4bcc802efacb888b14c666384656f13ee6b5630 (patch) | |
tree | 3a0f29477e91cf63ace0b89a0184a4dbc60ba4c6 /src/usr/errl/runtime | |
parent | 0579143faea0a19bd4133ce5179855ec7dc3c9b7 (diff) | |
download | talos-hostboot-e4bcc802efacb888b14c666384656f13ee6b5630.tar.gz talos-hostboot-e4bcc802efacb888b14c666384656f13ee6b5630.zip |
enable saving GARD records to PNOR in runtime.
Change-Id: I1ada7061d8fb258431b64c8e02bf84b019f7b25c
CQ: SW315645
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/19661
Tested-by: Jenkins Server
Reviewed-by: WILLIAM G. HOFFA <wghoffa@us.ibm.com>
Tested-by: Jenkins OP Build CI
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/errl/runtime')
-rw-r--r-- | src/usr/errl/runtime/makefile | 3 | ||||
-rw-r--r-- | src/usr/errl/runtime/rt_errlmanager.C | 23 |
2 files changed, 26 insertions, 0 deletions
diff --git a/src/usr/errl/runtime/makefile b/src/usr/errl/runtime/makefile index c80c9fdaa..ec449ea5d 100644 --- a/src/usr/errl/runtime/makefile +++ b/src/usr/errl/runtime/makefile @@ -30,10 +30,13 @@ MODULE = errl_rt include ../errl.mk VPATH += ${ROOTPATH}/src/usr/hwas/common +VPATH += ${ROOTPATH}/src/usr/hwas OBJS += rt_errlmanager.o OBJS += rt_vfs.o OBJS += hwasCallout.o +OBJS += deconfigGard.o +OBJS += hwasPlatDeconfigGard.o SUBDIRS += test.d diff --git a/src/usr/errl/runtime/rt_errlmanager.C b/src/usr/errl/runtime/rt_errlmanager.C index 49d53b65f..981b4f117 100644 --- a/src/usr/errl/runtime/rt_errlmanager.C +++ b/src/usr/errl/runtime/rt_errlmanager.C @@ -34,6 +34,7 @@ #include <runtime/interface.h> #include <targeting/common/targetservice.H> #include <pnor/pnorif.H> +#include <hwas/common/deconfigGard.H> namespace ERRORLOG { @@ -301,6 +302,28 @@ bool rt_processCallout(errlHndl_t &io_errl, } } + + if ((pCalloutUD->type == HWAS::HW_CALLOUT) && + (pCalloutUD->gardErrorType != HWAS::GARD_NULL)) + { + TARGETING::Target *pTarget = NULL; + uint8_t * l_uData = (uint8_t *)(pCalloutUD + 1); + bool l_err = HWAS::retrieveTarget(l_uData, pTarget, io_errl); + + if (!l_err) + { + errlHndl_t errl = HWAS::theDeconfigGard().platCreateGardRecord(pTarget, + io_errl->eid(), + pCalloutUD->gardErrorType); + if (errl) + { + TRACFCOMP( g_trac_errl, ERR_MRK + "rt_processCallout: error from platCreateGardRecord"); + errlCommit(errl, HWAS_COMP_ID); + } + } + + } return true; } |