diff options
author | Nick Bofferding <bofferdn@us.ibm.com> | 2018-12-05 14:24:55 -0600 |
---|---|---|
committer | Daniel M. Crowell <dcrowell@us.ibm.com> | 2018-12-06 18:56:35 -0600 |
commit | 2555c39c6f9c365cbdc2376ded59ae5f4d8a3c42 (patch) | |
tree | 9e742e9748c3db0cf76d516264d2d0c9542e17ed /src/build/debug | |
parent | c6b5971be189bd7b4cc4b6898709626bf8501797 (diff) | |
download | talos-hostboot-2555c39c6f9c365cbdc2376ded59ae5f4d8a3c42.tar.gz talos-hostboot-2555c39c6f9c365cbdc2376ded59ae5f4d8a3c42.zip |
Support parsing call home informational eSELs with debug tooling
Modifies eSEL.pl to support decoding call home informational eSELs which have
the 'dd' type vs. the 'df' type for other eSELs. Hostboot sends call home
informational eSELs when it finds an unacknowledged error from a previous boot.
Change-Id: I0c4c8eabe2f104796b5bde05fd493958ddc662c7
CQ: SW452532
Reviewed-on: http://rchgit01.rchland.ibm.com/gerrit1/69474
Reviewed-by: Ilya Smirnov <ismirno@us.ibm.com>
Reviewed-by: Michael Baiocchi <mbaiocch@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: Jenkins OP HW <op-hw-jenkins+hostboot@us.ibm.com>
Tested-by: FSP CI Jenkins <fsp-CI-jenkins+hostboot@us.ibm.com>
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Diffstat (limited to 'src/build/debug')
-rwxr-xr-x | src/build/debug/eSEL.pl | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/src/build/debug/eSEL.pl b/src/build/debug/eSEL.pl index f087fc483..ddce72f50 100755 --- a/src/build/debug/eSEL.pl +++ b/src/build/debug/eSEL.pl @@ -430,13 +430,14 @@ sub FilterACKedLogs # PEL data. The function also does some processing of the input string to # convert it to format acceptable by the errl parser. It returns a string with # PEL data (without the eSEL header) or an empty string if the input does not -# contain PEL data (does not contain 'df' or '20 00 04'). +# contain PEL data (does not contain either 'df' or 'dd' followed a few bytes +# later by '20 00 04'). # # Ex input 1: "ESEL=00 00 df 00 00 00 00 20 00 04 0c b8 07 aa 00 00 50 48 00 30 # 01 00 09 00 00 00 00 09 e6 43 1c b9 <more data>", # Ex output 1: 50 48 00 30 01 00 09 00 00 00 00 09 e6 43 1c b9 <more data> # -# Ex input 2: ESEL=00 00 df 00 00 00 00 20 00 04 0c b8 07 aa 00 00 50 48 00 30 +# Ex input 2: ESEL=00 00 dd 00 00 00 00 20 00 04 0c b8 07 aa 00 00 50 48 00 30 # 01 00 09 00 00 00 00 09 e6 43 1c b9 <more data> # Ex output 2: 50 48 00 30 01 00 09 00 00 00 00 09 e6 43 1c b9 <more data> # @@ -451,11 +452,13 @@ sub ProcessEselString $inputString =~ s/ESEL=//g; # strip ESEL= ($debug) && print "ESEL data #$esel_record_count = $inputString\n"; } - # If the SEL entry contains the "df" key, AND it has '040020' it's our eSEL - if(!($inputString =~ /df/) or !($inputString =~ /20 00 04/)) + # If the SEL entry contains the "df" (regular) or "dd" (call home + # informational) key followed (a few bytes later) by '040020' it's our eSEL + my $criteria = qr/df|dd.*20 00 04/; + if(!($inputString =~ /$criteria/)) { ($debug) && - print " \'df\' or \'20 00 04\' was not found in $inputString.\n"; + print " Did not find \'df\' or \'dd\' followed (a few bytes later) by \'20 00 04\' in $inputString.\n"; return ""; } @@ -666,6 +669,7 @@ sub GetAmiEselData for(my $i=0; $i<$sel_count; $i++) { # If the SEL entry contains the "df" key, AND it has '040020' it's our eSEL + # AMI BMC does not support call home informationals if (($SEL_list[$i] =~ / OEM record df /) && ($SEL_list[$i] =~ /040020/)) { push @eSEL_list, $SEL_list[$i]; |