summaryrefslogtreecommitdiffstats
path: root/src/usr/errl
diff options
context:
space:
mode:
authorBrian Horton <brianh@linux.ibm.com>2015-03-02 12:12:28 -0600
committerA. Patrick Williams III <iawillia@us.ibm.com>2015-03-11 00:45:57 -0500
commitbda236e6e0c7d3aa5165160abbd5ead92ac0a68e (patch)
tree3aeb5c836873cacb78083b25a98092c5a4a86a4c /src/usr/errl
parent788ec2a6d01df562f38352443bacd68c9cb0c633 (diff)
downloadtalos-hostboot-bda236e6e0c7d3aa5165160abbd5ead92ac0a68e.tar.gz
talos-hostboot-bda236e6e0c7d3aa5165160abbd5ead92ac0a68e.zip
change error log to SEL processing
for hostboot runtime, do not send eSEL (AMI bug) for hostboot ipl, send down SEL following eSEL Change-Id: I86ee9766e27548c3f7f72fbdbfd76c8a8be7da73 RTC: 124971 Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/16107 Tested-by: Jenkins Server Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com> Reviewed-by: Brian Silver <bsilver@us.ibm.com> Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
Diffstat (limited to 'src/usr/errl')
-rw-r--r--src/usr/errl/errlmanager_common.C43
1 files changed, 39 insertions, 4 deletions
diff --git a/src/usr/errl/errlmanager_common.C b/src/usr/errl/errlmanager_common.C
index a64ed3beb..fb4175092 100644
--- a/src/usr/errl/errlmanager_common.C
+++ b/src/usr/errl/errlmanager_common.C
@@ -100,7 +100,9 @@ void ErrlManager::sendErrLogToBmc(errlHndl_t &io_err)
l_sensorType, unused );
if( e )
{
- TRACFCOMP(g_trac_errl, ERR_MRK"Failed to get sensor type for sensor %d",l_sensorNumber);
+ TRACFCOMP(g_trac_errl,
+ ERR_MRK"Failed to get sensor type for sensor %d",
+ l_sensorNumber);
// since we are in the commit path, lets just delete this
// error and move on.
delete e;
@@ -130,12 +132,45 @@ void ErrlManager::sendErrLogToBmc(errlHndl_t &io_err)
break;
}
+ uint8_t l_eventDirType = IPMISEL::event_transition;
+ uint8_t l_eventOffset = IPMISEL::event_data1_trans_to_non_recoverable;
+ switch (io_err->sev())
+ {
+ case ERRORLOG::ERRL_SEV_INFORMATIONAL:
+ l_eventDirType = IPMISEL::event_transition;
+ l_eventOffset = IPMISEL::event_data1_trans_informational;
+ break;
+ case ERRL_SEV_RECOVERED:
+ l_eventDirType = IPMISEL::event_transition;
+ l_eventOffset = IPMISEL::event_data1_trans_to_ok;
+ break;
+ case ERRL_SEV_PREDICTIVE:
+ l_eventDirType = IPMISEL::event_predictive;
+ l_eventOffset = IPMISEL::event_data1_trans_to_noncrit_from_ok;
+ break;
+ case ERRL_SEV_UNRECOVERABLE:
+ l_eventDirType = IPMISEL::event_transition;
+ l_eventOffset = IPMISEL::event_data1_trans_to_non_recoverable;
+ break;
+ case ERRL_SEV_CRITICAL_SYS_TERM:
+ l_eventDirType = IPMISEL::event_transition;
+ l_eventOffset = IPMISEL::event_data1_trans_to_crit_from_non_r;
+ break;
+ case ERRL_SEV_UNKNOWN:
+ l_eventDirType = IPMISEL::event_state;
+ l_eventOffset = IPMISEL::event_data1_asserted;
+ break;
+ }
+
// send it to the BMC over IPMI
TRACFCOMP(g_trac_errl, INFO_MRK
- "sendErrLogToBmc: sensor %.2x/%.2x, size %d",
- l_sensorType, l_sensorNumber, l_pelSize);
+ "sendErrLogToBmc: sensor %.2x/%.2x event %x/%x, size %d",
+ l_sensorType, l_sensorNumber,
+ l_eventDirType, l_eventOffset,
+ l_pelSize);
IPMISEL::sendESEL(l_pelData, l_pelSize,
- io_err->eid(), IPMISEL::event_unspecified,
+ io_err->eid(),
+ l_eventDirType, l_eventOffset,
l_sensorType, l_sensorNumber);
// free the buffer
OpenPOWER on IntegriCloud