diff options
Diffstat (limited to 'src')
| -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, | 

