summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDoug Gilbert <dgilbert@us.ibm.com>2014-04-22 17:32:17 -0500
committerA. Patrick Williams III <iawillia@us.ibm.com>2014-05-08 14:42:05 -0500
commit3189f266a58e957f77d7c2bb30a52bb4e1bdec0d (patch)
treedc9b6a6eecd75fc409a76f46b7c5bceb0814e670
parentede62c2119ed0996b744b022cb9a014ef91439d6 (diff)
downloadtalos-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.C2
-rwxr-xr-xsrc/usr/errl/parser/genErrlParsers.pl86
-rw-r--r--src/usr/hwpf/hwp/build_winkle_images/build_winkle_images.C2
-rw-r--r--src/usr/hwpf/plat/fapiPlatHwpInvoker.C2
-rw-r--r--src/usr/initservice/istepdispatcher/istepdispatcher.C4
-rw-r--r--src/usr/intr/intrrp.C10
-rw-r--r--src/usr/secureboot/base/purge.C2
-rw-r--r--src/usr/util/utilmem.C4
-rw-r--r--src/usr/vpd/runtime/rt_vpd.C2
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,
OpenPOWER on IntegriCloud