Skip to content

Commit 879d21d

Browse files
Nick Bofferdingdcrowell77
authored andcommitted
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/69478 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> Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
1 parent d236030 commit 879d21d

File tree

1 file changed

+9
-5
lines changed

1 file changed

+9
-5
lines changed

src/build/debug/eSEL.pl

Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -430,13 +430,14 @@ sub FilterACKedLogs
430430
# PEL data. The function also does some processing of the input string to
431431
# convert it to format acceptable by the errl parser. It returns a string with
432432
# PEL data (without the eSEL header) or an empty string if the input does not
433-
# contain PEL data (does not contain 'df' or '20 00 04').
433+
# contain PEL data (does not contain either 'df' or 'dd' followed a few bytes
434+
# later by '20 00 04').
434435
#
435436
# Ex input 1: "ESEL=00 00 df 00 00 00 00 20 00 04 0c b8 07 aa 00 00 50 48 00 30
436437
# 01 00 09 00 00 00 00 09 e6 43 1c b9 <more data>",
437438
# Ex output 1: 50 48 00 30 01 00 09 00 00 00 00 09 e6 43 1c b9 <more data>
438439
#
439-
# Ex input 2: ESEL=00 00 df 00 00 00 00 20 00 04 0c b8 07 aa 00 00 50 48 00 30
440+
# Ex input 2: ESEL=00 00 dd 00 00 00 00 20 00 04 0c b8 07 aa 00 00 50 48 00 30
440441
# 01 00 09 00 00 00 00 09 e6 43 1c b9 <more data>
441442
# Ex output 2: 50 48 00 30 01 00 09 00 00 00 00 09 e6 43 1c b9 <more data>
442443
#
@@ -451,11 +452,13 @@ sub ProcessEselString
451452
$inputString =~ s/ESEL=//g; # strip ESEL=
452453
($debug) && print "ESEL data #$esel_record_count = $inputString\n";
453454
}
454-
# If the SEL entry contains the "df" key, AND it has '040020' it's our eSEL
455-
if(!($inputString =~ /df/) or !($inputString =~ /20 00 04/))
455+
# If the SEL entry contains the "df" (regular) or "dd" (call home
456+
# informational) key followed (a few bytes later) by '040020' it's our eSEL
457+
my $criteria = qr/df|dd.*20 00 04/;
458+
if(!($inputString =~ /$criteria/))
456459
{
457460
($debug) &&
458-
print " \'df\' or \'20 00 04\' was not found in $inputString.\n";
461+
print " Did not find \'df\' or \'dd\' followed (a few bytes later) by \'20 00 04\' in $inputString.\n";
459462
return "";
460463
}
461464

@@ -666,6 +669,7 @@ sub GetAmiEselData
666669
for(my $i=0; $i<$sel_count; $i++)
667670
{
668671
# If the SEL entry contains the "df" key, AND it has '040020' it's our eSEL
672+
# AMI BMC does not support call home informationals
669673
if (($SEL_list[$i] =~ / OEM record df /) && ($SEL_list[$i] =~ /040020/))
670674
{
671675
push @eSEL_list, $SEL_list[$i];

0 commit comments

Comments
 (0)