diff options
author | Doug Gilbert <dgilbert@us.ibm.com> | 2014-04-22 17:32:17 -0500 |
---|---|---|
committer | A. Patrick Williams III <iawillia@us.ibm.com> | 2014-05-08 14:42:05 -0500 |
commit | 3189f266a58e957f77d7c2bb30a52bb4e1bdec0d (patch) | |
tree | dc9b6a6eecd75fc409a76f46b7c5bceb0814e670 | |
parent | ede62c2119ed0996b744b022cb9a014ef91439d6 (diff) | |
download | talos-hostboot-3189f266a58e957f77d7c2bb30a52bb4e1bdec0d.tar.gz talos-hostboot-3189f266a58e957f77d7c2bb30a52bb4e1bdec0d.zip |
Create SRC description file during build
Change-Id: I636dbfad6cc695e42e6de403e26a91634a4b370d
Reviewed-on: http://gfw160.aus.stglabs.ibm.com:8080/gerrit/10715
Tested-by: Jenkins Server
Reviewed-by: Daniel M. Crowell <dcrowell@us.ibm.com>
Reviewed-by: A. Patrick Williams III <iawillia@us.ibm.com>
-rw-r--r-- | src/usr/errl/errlentry.C | 2 | ||||
-rwxr-xr-x | src/usr/errl/parser/genErrlParsers.pl | 86 | ||||
-rw-r--r-- | src/usr/hwpf/hwp/build_winkle_images/build_winkle_images.C | 2 | ||||
-rw-r--r-- | src/usr/hwpf/plat/fapiPlatHwpInvoker.C | 2 | ||||
-rw-r--r-- | src/usr/initservice/istepdispatcher/istepdispatcher.C | 4 | ||||
-rw-r--r-- | src/usr/intr/intrrp.C | 10 | ||||
-rw-r--r-- | src/usr/secureboot/base/purge.C | 2 | ||||
-rw-r--r-- | src/usr/util/utilmem.C | 4 | ||||
-rw-r--r-- | src/usr/vpd/runtime/rt_vpd.C | 2 |
9 files changed, 100 insertions, 14 deletions
diff --git a/src/usr/errl/errlentry.C b/src/usr/errl/errlentry.C index 0ed308a7c..aa05d534a 100644 --- a/src/usr/errl/errlentry.C +++ b/src/usr/errl/errlentry.C @@ -492,7 +492,7 @@ void ErrlEntry::addHwCallout(const TARGETING::Target *i_target, * @userdata2 Number of EX chips associatd with core * * @devdesc Hardware callout could not Gard target - $ because it could not find EX chip + * because it could not find EX chip * associated with the Core to be called out * */ diff --git a/src/usr/errl/parser/genErrlParsers.pl b/src/usr/errl/parser/genErrlParsers.pl index 182448a65..85804341a 100755 --- a/src/usr/errl/parser/genErrlParsers.pl +++ b/src/usr/errl/parser/genErrlParsers.pl @@ -75,7 +75,7 @@ my $compPath = $base."/src/usr"; my $compIncPath = $base."/src/include/usr"; my $genFilesPath = $base."/obj/genfiles"; my $hbfwTermRcFile = $genFilesPath."/hbfw_term_rc.H"; - +my $srcFileName = $genFilesPath."/srcListing"; #------------------------------------------------------------------------------ # Call subroutines to populate the following arrays: # - @reasonCodeFiles (The list of files to parse through for reason codes) @@ -438,6 +438,7 @@ close(OFILE); #------------------------------------------------------------------------------ my %compValueToParseHash; my %rcModValuesUsed; +my %srcList; foreach my $file (@filesToParse) { @@ -476,6 +477,7 @@ foreach my $file (@filesToParse) my $rcValue = ""; my @userData; my $desc = ""; + my $cdesc = ""; # Read the entire error log tag into an array my @tag; @@ -635,6 +637,38 @@ foreach my $file (@filesToParse) } } } + elsif ($line =~ /\@custdesc\s+(\S+.*)/i) + { + # Found a customer description. Strip out any double-quotes + # and trailing whitespace + $cdesc = $1; + $cdesc =~ s/\"//g; + $cdesc =~ s/\s+$//; + + # Look for follow-on lines + for ($lineNum++; $lineNum < $numLines; $lineNum++) + { + $line = $tag[$lineNum]; + + if ($line =~ /\@/) + { + # Found the next element, rewind + $lineNum--; + last; + } + + # Continuation of description, strip out any double- + # quotes and leading / trailing whitespace + $line =~ s/^.+\*\s+//; + $line =~ s/\"//g; + $line =~ s/\s+$//; + + if ($line ne "") + { + $cdesc = $cdesc . " " . $line; + } + } + } } # Check that the required fields were found @@ -659,6 +693,21 @@ foreach my $file (@filesToParse) exit(1); } + # if no customer desc is provided, then use $desc + if ($cdesc eq "") + { + $cdesc = + "During processor/memory subsystem initialization," + . " an error was encountered: $desc"; + } + + # SRC list - eliminate dups + my $srcText = sprintf("%04X", hex($rcValue)); + if($srcList{$srcText} eq "") + { + $srcList{$srcText} .= $cdesc; + } + # Create the combined returncode/moduleid value that the parser looks for and # ensure that it is not a duplicate of one already found my $rcModValue = $rcValue . $modIdValue; @@ -695,6 +744,41 @@ foreach my $file (@filesToParse) close(PARSE_FILE); } +## all subsystems HB uses - not every combination is possible, but it makes +# the list of SRCs thourough. It's not clear yet if we are going to put +# subsystem text in the output file or not. +# TODO RTC:106255 Get rid of hardcoded subsys values +my %subsys = ( + '10' => 'Processor', + '13' => 'Processor Unit', + '14' => 'Processor Bus', + '20' => 'Memory', + '21' => 'Memory Controller', + '22' => 'Memory Bus', + '23' => 'Memory DIMM', + '50' => 'Central Electronic Complex', + '55' => 'VPD Hardware Interface', + '56' => 'I2C Hardware', + '57' => 'Hardware Chip Interface', + '58' => 'Clock Controller', + '5A' => 'TOD Hardware', + '5C' => 'Service Processor to Hypervisor hardware interface', + '60' => 'Power', + '70' => 'Miscellaneous', + '81' => 'Service Processor Firmware', + '82' => 'Hypervisor Firmware', + '8A' => 'Hostboot Firmware'); + +open(OFILE, ">", $srcFileName) or die ("Cannot open: $srcFileName: $!"); +foreach my $sub (sort keys %subsys) +{ + foreach my $rcVal (sort keys %srcList) + { + print OFILE "BC$sub$rcVal, $srcList{$rcVal}\n"; + } +} +close(OFILE); + #------------------------------------------------------------------------------ # For each component value, print a file containing the parse code #------------------------------------------------------------------------------ diff --git a/src/usr/hwpf/hwp/build_winkle_images/build_winkle_images.C b/src/usr/hwpf/hwp/build_winkle_images/build_winkle_images.C index 7554598a1..b041209b9 100644 --- a/src/usr/hwpf/hwp/build_winkle_images/build_winkle_images.C +++ b/src/usr/hwpf/hwp/build_winkle_images/build_winkle_images.C @@ -134,7 +134,7 @@ errlHndl_t loadPoreImage( char *& o_rporeAddr, * @userdata1 Hi 32 bits: return code from sbe_xip_image_size * Lo 32 bits: Size of memory requested * @userdata2 Size of WINK PNOR partition - * @devdesc Image from PNOR WINK partion invalid, too small, + * @devdesc Image from PNOR WINK partition invalid, too small, * or too big */ l_errl = diff --git a/src/usr/hwpf/plat/fapiPlatHwpInvoker.C b/src/usr/hwpf/plat/fapiPlatHwpInvoker.C index 1dc565b7b..82f689c09 100644 --- a/src/usr/hwpf/plat/fapiPlatHwpInvoker.C +++ b/src/usr/hwpf/plat/fapiPlatHwpInvoker.C @@ -617,6 +617,8 @@ errlHndl_t fapiRcToErrl(ReturnCode & io_rc, * @userdata1 RC value from HWP * @userdata2 <unused> * @devdesc HW Procedure generated error. See User Data. + * @custdesc Error initializing processor/memory subsystem + * during boot. See FRU list for repair actions */ l_pError = new ERRORLOG::ErrlEntry(i_sev, MOD_HWP_RC_TO_ERRL, diff --git a/src/usr/initservice/istepdispatcher/istepdispatcher.C b/src/usr/initservice/istepdispatcher/istepdispatcher.C index e62c105cb..2bbb5b626 100644 --- a/src/usr/initservice/istepdispatcher/istepdispatcher.C +++ b/src/usr/initservice/istepdispatcher/istepdispatcher.C @@ -1368,7 +1368,7 @@ void IStepDispatcher::handleProcFabIovalidMsg(msg_t * & io_pMsg) * @userdata2[0:31] N/A * @userdata2[32:63] N/A. * @devdesc handleProcFabIovalidMsg called during MPIPL, - which is illegal. + * which is illegal. */ err = new ERRORLOG::ErrlEntry( ERRORLOG::ERRL_SEV_UNRECOVERABLE, @@ -1745,7 +1745,7 @@ errlHndl_t IStepDispatcher::failedDueToDeconfig( * @userdata1[32:63] SubStep that failed * @userdata2[0:31] Desired istep for reconfig loop. * @userdata2[32:63] Desired substep for reconfig loop. - * @devdesc Deconfigured occured during an istep. The reconfig loop + * @devdesc Deconfigured occurred during an istep. The reconfig loop * was not performed by Hostboot because either the Istep * is outside the reconfig loop (desired steps 0), too * many reconfig loops were attempted, in manufacturing diff --git a/src/usr/intr/intrrp.C b/src/usr/intr/intrrp.C index 529268cd0..b602d5d69 100644 --- a/src/usr/intr/intrrp.C +++ b/src/usr/intr/intrrp.C @@ -357,7 +357,7 @@ void IntrRp::msgHandler() type = static_cast<ext_intr_t>(xirr & XISR_MASK); TRACFCOMP(g_trac_intr, - "External Interrupt recieved. XIRR=%x, PIR=%x", + "External Interrupt received. XIRR=%x, PIR=%x", xirr,pir.word); // Acknowlege msg @@ -380,7 +380,7 @@ void IntrRp::msgHandler() if(rc) { TRACFCOMP(g_trac_intr,ERR_MRK - "External Interrupt recieved type = %d, " + "External Interrupt received type = %d, " "but could not send message to registered" " handler. Ignoring it. rc = %d", (uint32_t) type, rc); @@ -400,7 +400,7 @@ void IntrRp::msgHandler() { // Throw it away for now. TRACFCOMP(g_trac_intr,ERR_MRK - "External Interrupt recieved type = %d, but " + "External Interrupt received type = %d, but " "nothing registered to handle it. " "Ignoring it.", (uint32_t)type); @@ -479,7 +479,7 @@ void IntrRp::msgHandler() if(rc) { TRACFCOMP(g_trac_intr,ERR_MRK - "IPI Interrupt recieved, but could " + "IPI Interrupt received, but could " "not send message to the registered " "handler. Ignoring it. rc = %d", rc); @@ -1279,7 +1279,7 @@ errlHndl_t IntrRp::checkAddress(uint64_t i_addr) * @userdata1 The bad virtual address * @userdata2 0 * - * @devdesc The virutal address is not a valid IO address + * @devdesc The virtual address is not a valid IO address * */ err = new ERRORLOG::ErrlEntry diff --git a/src/usr/secureboot/base/purge.C b/src/usr/secureboot/base/purge.C index e164d6154..153b9f1de 100644 --- a/src/usr/secureboot/base/purge.C +++ b/src/usr/secureboot/base/purge.C @@ -74,7 +74,7 @@ namespace SECUREBOOT * @reasoncode SECUREBOOT::RC_PURGEOP_PENDING * @userdata1 SCOM value. * @userdata2 CPU ID (PIR) encountering failure. - * @devdesc Attemped to purge cache while purge operation + * @devdesc Attempted to purge cache while purge operation * was pending. */ l_errl = diff --git a/src/usr/util/utilmem.C b/src/usr/util/utilmem.C index 6d6e8e6cb..04afd4574 100644 --- a/src/usr/util/utilmem.C +++ b/src/usr/util/utilmem.C @@ -174,7 +174,7 @@ uint32_t UtilMem::read( * @userdata1[0:31] Task ID. * @userdata1[31:64] End of File (boolean) * @userdata2 Address of memory buffer. - * @devdesc Bad memory pointer recieved. + * @devdesc Bad memory pointer received. */ l_erc = UTIL_ERC_BAD_PTR; } @@ -269,7 +269,7 @@ uint32_t UtilMem::write( * @userdata1[0:31] Task ID. * @userdata1[31:64] End of File (boolean) * @userdata2 Address of memory buffer. - * @devdesc Bad memory pointer recieved. + * @devdesc Bad memory pointer received. */ l_erc = UTIL_ERC_BAD_PTR; } diff --git a/src/usr/vpd/runtime/rt_vpd.C b/src/usr/vpd/runtime/rt_vpd.C index 6c8e9781a..3027cd86e 100644 --- a/src/usr/vpd/runtime/rt_vpd.C +++ b/src/usr/vpd/runtime/rt_vpd.C @@ -270,7 +270,7 @@ errlHndl_t writePNOR ( uint64_t i_byteAddr, * @moduleid VPD::VPD_RT_WRITE_PNOR * @userdata1 target huid * @userdata2 VPD type - * @devdesc VPD write not suported at runtime + * @devdesc VPD write not supported at runtime */ err = new ERRORLOG::ErrlEntry( ERRORLOG::ERRL_SEV_UNRECOVERABLE, VPD::VPD_RT_WRITE_PNOR, |