You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Linux-Architecture-Reference/LoPAR/sec_rtas_error_reporting_re...

4285 lines
158 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2016, 2020 OpenPOWER Foundation
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<section xmlns="http://docbook.org/ns/docbook"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:xlink="http://www.w3.org/1999/xlink"
version="5.0"
xml:id="dbdoclet.50569337_22801">
<title>RTAS Error/Event Return Format</title>
<para>This section describes in detail the return value retrieved by an
RTAS call to either the
<emphasis>event-scan</emphasis> or
<emphasis>check-exception</emphasis> function.</para>
<para>The return value consists of a fixed part and an optional Extended
Error Report, described in the next section, which contains full details
of the error. The fixed part is intended to allow reporting the most
common problems in a simple way, which makes error detection and recovery
simple for OSs that want to implement a very simple error handling
strategy. At the same time, the mechanism is capable of providing full
disclosure of the error syndrome information for OSs which have a more
complete error handling strategy.</para>
<para>RTAS can return at most one return code per invocation. If multiple
conditions exist, RTAS returns them in descending order of severity on
successive calls.</para>
<section xml:id="dbdoclet.50569337_75663">
<title>Reporting and Recovery Philosophy, and Description of
Fields</title>
<para>All firmware implementations use a common error and event reporting
scheme, as described in detail below. It is not required that error
recovery be present in firmware implementations, nor is it required that
a high degree of error recovery or survival be undertaken by OSs. If such
behavior is desired, then specific platform-dependent handlers can be
loaded into the OS. However, this section defines return result codes and
a philosophy which can be used if aggressive error handling is
implemented in firmware. This section describes the fields of the Error
Report format, and the philosophy which should be applied in generating
return values from firmware or interpreting such return codes in an
OS.</para>
<para>In general, an OS would look at the Disposition field first to see
if an error has been corrected already by firmware. If not corrected to
the OS&#8217;s satisfaction, the OS would examine the Severity field.
Based on that value, and optionally on any information it can use from
the Type and other fields, the OS will make a determination of whether to
continue or to halt operations. In either case, it may choose to log
information regarding the error, using the remaining fields and optional
Extended Error Log.</para>
<para>The following sections describe the field values in
<xref linkend="dbdoclet.50569337_21249"/>.</para>
<section>
<title>Version</title>
<para>This field is used only to distinguish among present and potential
future formats for the remainder of the error report. This value will be
incremented if extensions are made to the format described here. The
primary function of this field is for future OSs to identify whether an
error report may contain some (unknown at present) feature that was added
after the initial version of this specification.</para>
</section>
<section>
<title>Severity</title>
<para>This field represents the value judgment of firmware of how serious
the problem being reported should be considered by the OS.</para>
<para>Errors which are believed to represent a permanent hardware failure
affecting the entire system are considered &#8220;FATAL.&#8221; OSs would
not attempt to continue normal operation after receiving notice of such
an error. OSs may not even be able to perform an orderly shutdown in the
presence of a Fatal error, though they may make a policy decision to
try.</para>
<para>Less serious errors, but still causing a loss of data or state, are
considered &#8220;ERRORs.&#8221; In general, continuing after such an
error is questionable, since details of what has failed may not be
available, or if available, may not map nicely onto any ongoing activity
with which the OS can associate it. However, OSs may make a policy
decision (for example, based on the error Type, the Initiator, or the
Target) to continue operation after an Error.</para>
<para>There are some types of errors, such as parity errors in memory or
a parity error on a transfer between CPU and memory, which occur
synchronously with the current process execution context. Such errors are
sometimes fatal only to the current thread of execution; that is, they
affect only the current CPU state and possibly that of any memory
locations being currently referenced. If that context of execution is not
essential to the system&#8217;s operation (for example, if an error trap
mechanism is available in the OS and can be triggered to recover the OS
to a known state), recovery and continuation may be possible. Or at
least, since the memory of the machine is in an undamaged state, the
system may be able to be brought down in an orderly fashion. Such errors
are reported as having Severity &#8220;ERROR_SYNC&#8221;. It is OS
dependent whether recovery is possible after such an error, or whether
the OS will treat it as a fatal problem.</para>
<para>The &#8220;WARNING&#8221; return value indicates that a
non-state-losing error, either fully recovered by firmware or not needing
recovery, has occurred. No OS action is required, and full operation is
expected to continue unhindered by the error. Examples include corrected
ECC errors or bus transfer failures which were re-tried
successfully.</para>
<para>The &#8220;EVENT&#8221; return value is the mechanism firmware uses
to communicate event information to the OS. The event may have been
detected by polling using
<emphasis>event-scan</emphasis> or on the occurrence of an interrupt by
calling
<emphasis>check-exception</emphasis>. In either case, the Error Return
value indicates the event which has occurred in the Type field. See the
Type description below for a description of specific events and their
expected handling.</para>
<para>The &#8220;NO_ERROR&#8221; return value indicates that no error was
present. In this case, the remainder of the Error Return fields are not
valid and should not be referenced.</para>
</section>
<section>
<title>RTAS Disposition</title>
<para>An aggressive firmware implementation may choose to attempt
recovery for some classes of error so an OS can continue operation in the
face of recoverable errors. If firmware detects an error for which it has
recovery code, it attempts such action before it returns a value to the
OS (that is, the mechanisms are linked in RTAS and cannot be separately
accessed). Note that Disposition is nearly independent from Severity.
Severity says how serious an error was, and Disposition says, regardless
of severity, whether or not the OS has to even look at it. In general, an
OS will first examine Disposition, then Severity.</para>
<para>A return value of &#8220;FULLY RECOVERED&#8221; means that RTAS was
able to completely recover the machine state after the error, and OS
operation can continue unhindered. The severity of the problem in this
case is irrelevant, though for consistency a &#8220;FATAL&#8221; error
can never be &#8220;FULLY RECOVERED.&#8221;</para>
<para>A return value of &#8220;LIMITED RECOVERY&#8221; means that RTAS
was able to recover the state of the machine, but that some feature of
the machine has been disabled or lost (for example, error checking), or
performance may suffer (for example, a failing cache has been disabled).
The RTAS implementation may return further information in the extended
error log format regarding what action was done or what corrective action
failed. In general, a conservative OS will treat this return the same as
&#8220;NOT RECOVERED,&#8221; and initiate shutdown. A less conservative
OS may choose to let the user decide whether to continue or to shut
down.</para>
<para>A value of &#8220;NOT RECOVERED&#8221; indicates that the RTAS
either did not attempt recovery, or that it attempted recovery but was
unsuccessful.</para>
</section>
<section>
<title>Optional Part Presence</title>
<para>This is a single flag, valid only if the 32-bit Error Return value
is located in memory, which indicates whether or not an Extended Error
Log Length field and the Extended Error Log follows it in memory. It will
be set on an in-memory return result from RTAS if and only if the RTAS
call indicated sufficient space to return the Extended Error Log, and the
RTAS implementation supports the Extended Error Log.</para>
</section>
<section>
<title>Initiator</title>
<para>This field indicates, to the best ability of RTAS to determine it,
the initiator of a failed transaction. (Note that in the
&#8220;Initiator&#8221; field of
<xref linkend="dbdoclet.50569337_30773"/>, the value &#8220;I/O&#8221;
indicates one of the defined I/O buses or IOAs. This field contains
finer-grained details of which type of I/O bus failed, if known, and
&#8220;UNKNOWN&#8221; if RTAS cannot tell.)</para>
<para>In many of the newer LoPAR platforms, the platform error
notification and handling flow is asynchronous to the OS and software
execution flow, therefore the context of Initiator is not applicable to
the platform firmware. In those cases, the value of &#8220;(0) Unknown or
Not Applicable&#8221; is used for Initiator. In logs created with Version
6 or later, more detailed information about the error is provided in the
Platform Event log format.</para>
</section>
<section>
<title>Target</title>
<para>If RTAS can determine it, this field indicates the target of a
failed transaction.</para>
<para>In many of the newer LoPAR platforms, the platform error
notification and handling flow is asynchronous to the OS and software
execution flow, therefore the context of Target is not applicable to the
platform firmware. In those cases, the value of &#8220;(0) Unknown or Not
Applicable&#8221; is used for Target. In logs created with Version 6 or
later, more detailed information about the error are provided in the
Platform Event log format.</para>
</section>
<section>
<title>Type</title>
<para>This field identifies the general type of the error or event. In
some cases (for example, INTERN_DEV_FAIL), multiple possible events are
grouped together under a common return value. In such cases,
platform-aware software may use the Extended Error Log to distinguish
them. Non-platform-aware software will generally treat all errors of a
given type the same, so it generally will not need to access the Extended
Error Log information.</para>
<para>In the table, the EPOW values are associated with a Severity of
EVENT. All other values will be associated with Severity values of FATAL,
ERROR, ERROR_SYNC, or WARNING, and may or may not be corrected by
RTAS.</para>
<para>EPOW is an event type which indicates the potential loss of power
or environmental conditions outside the limits of safe operation of the
platform. See
<xref linkend="dbdoclet.50569337_17513"/> for more information.</para>
<para>The &#8220;Platform Error (224)&#8221;, introduced for Version 6,
generalizes that the error is identified by the platform and the specific
details are encoded in the Platform Event log format itself.</para>
<para>The &#8220;ibm,io-events (225)&#8221; defines a set of event
notifications which requires special handling by the OS. For this type of
event notification, the Platform Event Log contains the &#8220;IO
Events&#8221; section which identifies additional details associated with
the event.</para>
<para>The &#8220;Platform information event (226)&#8221; indicates the
return log should be logged as &#8220;Information Log&#8221;. These logs
indicate key platform events and can be used for reference
purposes.</para>
<para>The &#8220;Resource deallocation event (227)&#8221; indicates an
event notification to the OS that a specific hardware resource has
experienced recurring recoverable errors with a trend toward
unrecoverable. The OS should take action to deallocate the resource from
usage to prevent unrecoverable errors. For these types of event
notification, the Platform Event Log contains the &#8220;Logical Resource
Identification&#8221; section which identifies the &#8220;Logical
Entity&#8221; by Resource Type and Resource ID, associated with the
event.</para>
<para>The &#8220;Dump notification event (228)&#8221; indicates that a
dump file is present in the platform and is available for retrieval by
the OS. For this type of event notification, the Platform Event Log
contains the &#8220;Dump Locator&#8221; section which contains additional
event specific information.</para>
<para>Additional Type values will be added in future revisions of the
specification. If an OS does not recognize a particular event type, it
can examine the severity first, and then choose to ignore the event if it
is not serious.</para>
</section>
<section>
<title>Extended Event Log Length / Change Scope</title>
<para>This optional 32-bit field is present in memory following the
32-bit Event Return value if the Optional Part Presence flag is
&#8220;PRESENT&#8221;, and it indicates the length in bytes of the
Extended Event Log information which immediately follows it in memory.
The length does not include this field or the Event Return field, so it
may be zero. The field is also present for a resource change &#8220;Hot
Plug&#8221; event, such as a PRRN event, and then represents the scope of
a resource change.</para>
</section>
<section xml:id="dbdoclet.50569337_28848">
<title>RTAS Event Return Format Fixed Part</title>
<para>The summary portion of the error return is designed to fit into a
single 32-bit integer. When used as a data return format in memory, an
optional Length field and Extended Error Log data may follow the summary.
The fixed part contains a &#8220;presence&#8221; flag which identifies
whether an extended report is present.</para>
<para>In the table below, the location of each field within the integer
is included in parentheses after its name. Numerical field values are
indicated in decimal unless noted otherwise.</para>
<table frame="all" pgwide="1" xml:id="dbdoclet.50569337_21249">
<title>RTAS Event Return Format (Fixed Part)</title>
<tgroup cols="2">
<colspec colname="c1" colwidth="30*" align="center" />
<colspec colname="c2" colwidth="70*" />
<thead>
<row>
<entry>
<para>
<emphasis role="bold">Bit Field Name (bit
number(s))</emphasis>
</para>
</entry>
<entry align="center">
<para>
<emphasis role="bold">Description, Values (Described in
<xref linkend="dbdoclet.50569337_75663"/>)</emphasis>
</para>
</entry>
</row>
</thead>
<tbody valign="middle" >
<row>
<entry>
<para>Version (0:7)</para>
</entry>
<entry>
<para>A distinct value used to identify the architectural
version of message.</para>
</entry>
</row>
<row>
<entry>
<para>Severity (8:10)</para>
</entry>
<entry>
<para>Severity level of error/event being reported:</para>
<para>ALREADY_REPORTED (6)</para>
<para>FATAL (5)</para>
<para>ERROR (4)</para>
<para>ERROR_SYNC (3)</para>
<para>WARNING (2)</para>
<para>EVENT (1)</para>
<para>NO_ERROR (0)</para>
<para>reserved for future use (7)</para>
</entry>
</row>
<row>
<entry>
<para>RTAS Disposition (11:12)</para>
</entry>
<entry>
<para>Degree of recovery which RTAS has performed prior to
return after an error (value is FULLY_RECOVERED if no error is
being reported):</para>
<para>FULLY_RECOVERED(0)</para>
<para><emphasis role="bold">Note:</emphasis> Cannot be used when Severity is
&#8220;FATAL&#8221;.</para>
<para>LIMITED_RECOVERY(1)</para>
<para>NOT_RECOVERED(2)</para>
<para>reserved for future use (3)</para>
</entry>
</row>
<row>
<entry>
<para>Optional_Part_Presence (13)</para>
</entry>
<entry>
<para>Indicates if an Extended Error Log Length and Extended
Error Log follows this 32-bit quantity in memory:</para>
<para>PRESENT (1): The optional Extended Error Log is
present.</para>
<para>NOT_PRESENT (0): The optional Extended Error Log is not
present.</para>
</entry>
</row>
<row>
<entry>
<para>Reserved (14:15)</para>
</entry>
<entry>
<para>Reserved for future use (0:3)</para>
</entry>
</row>
<row>
<entry>
<para>Initiator (16:19)</para>
</entry>
<entry>
<para>Abstract entity that initiated the event or the failed
operation:</para>
<para>UNKNOWN (0): Unknown or Not Applicable</para>
<para>CPU (1): A CPU failure (in an MP system, the specific CPU
is not differentiated here)</para>
<para>PCI (2): PCI host bridge or PCI IOA</para>
<para>Reserved -- do not reuse (3)</para>
<para>MEMORY (4): Memory subsystem, including any caches</para>
<para>Reserved -- do not reuse (5)</para>
<para>HOT PLUG (6)</para>
<para>Reserved for future use (7-15)</para>
</entry>
</row>
<row>
<entry>
<para>Target (20:23)</para>
</entry>
<entry>
<para>Abstract entity that was apparent target of failed
operation (UNKNOWN if Not Applicable): Same values as Initiator
field</para>
</entry>
</row>
<row>
<entry>
<para>Type (24:31)</para>
</entry>
<entry>
<para>General event or error type being reported:</para>
<para>&#160;</para>
<para>Internal Errors:</para>
<para>RETRY (1): too many tries failed, and a retry count
expired</para>
<para>TCE_ERR (2): range or access type error in an access
through a TCE</para>
<para>INTERN_DEV_FAIL (3): some RTAS-abstracted device has
failed (for example, TOD clock)</para>
<para>TIMEOUT (4): intended target did not respond before a
time-out occurred</para>
<para>DATA_PARITY (5): Parity error on data</para>
<para>ADDR_PARITY(6): Parity error on address</para>
<para>CACHE_PARITY (7): Parity error on external cache</para>
<para>ADDR_INVALID(8): access to reserved or undefined address,
or access of an unacceptable</para>
<para>type for an address</para>
<para>ECC_UNCORR (9): uncorrectable ECC error</para>
<para>ECC_CORR (10): corrected ECC error</para>
<para>RESERVED (11-63): Reserved for future use</para>
<para>Environmental and Power Warnings:</para>
<para>EPOW(64): See Extended Error Log for sensor value</para>
<para>RESERVED (65-95): Reserved for future use</para>
<para>Reserved -- do not reuse (96-159)</para>
<para>&#160;</para>
<para>Platform Resource Reassignment (160) -- includes Change
Scope in bits 32-63</para>
<para>&#160;</para>
<para>Reserved for future use (through-223)</para>
<para>&#160;</para>
<para>Platform Error (224) (for Version 6 or later)</para>
<para>ibm,io-events (225) (for Version 6 or later)</para>
<para>Platform information event (226) (for Version 6 or
later)</para>
<para>Resource deallocation event (227) (for Version 6 or
later)</para>
<para>Dump notification event (228) (for Version 6 or
later)</para>
<para>Hot-plug-events (229) (for Version 6 or later)</para>
<para>&#160;</para>
<para>Vendor-specific events(230-255): Non-architected</para>
<para>&#160;</para>
<para>Other (0): none of the above</para>
</entry>
</row>
<row>
<entry>
<para>Extended Event Log Length / Change Scope</para>
<para>(32:63)</para>
</entry>
<entry>
<para>Length in bytes of Extended Event Log information which
follows (see
<xref linkend="dbdoclet.50569337_79682"/>) OR the scope
parameter to be input the
<emphasis>ibm,update-nodes</emphasis> RTAS to retrieve the nodes
that were changed by selected &#8220;Hot Plug&#8221;
events.</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
<para>Typically, most OSs care about, and have handlers for, only a few
specific errors. Since coding of an error is unique in the above scheme,
an OS can check for specific errors, then if nothing matches exactly,
look at more generic parts of the error message. This permits generic
error message generation for the user, providing the basic information
that RTAS delivered to the OS. Platforms may provide more complete error
diagnosis and reporting in RTAS, combined with off-line diagnostics which
take advantage of the information reported from previous failures.</para>
</section>
</section>
<section xml:id="dbdoclet.50569337_79682">
<title>Version 6 Extensions of Event Log Format</title>
<section xml:id="dbdoclet.50569337_59870">
<title>RTAS General Extended Event Log Format, Version 6</title>
<para>The following section defines new extensions to the event log
format which are identified by a Version number 0x06 in the first byte in
the returned buffer (byte 0 of the fixed-part information). The following
tables define extended error log formats for Version 6, by which the RTAS
can optionally return detailed information to the software about a
hardware error condition. Other versions will be defined in following
sections of this chapter. This format is also intended to be usable as
residual error log data in NVRAM, so that the OS could alternatively
retrieve error data after an error event which caused a reboot.</para>
<para>Platforms indicate the maximum length of the error log buffer in
the
<literal>&#8220;rtas-error-log-max&#8221;</literal> RTAS property in the
OF device tree, so that the OS can allocate a buffer large enough to hold
the extended error log data when calling the RTAS
<emphasis>event-scan</emphasis> or
<emphasis>check-exception</emphasis> functions. If the allocated buffer is
not large enough to hold all the error log data, the data is truncated to
the size of the buffer.</para>
<para>Requirement
<xref linkend="dbdoclet.50569337_44999"/> and
<xref linkend="dbdoclet.50569337_85491"/> require that four bytes of the
vendor-specific format contain a unique identifier for the company that
has defined the format. The description of the &#8220;name&#8221; string
in
<xref linkend="dbdoclet.50569387_45524"/> provides alternatives for
defining this identifier. Examples of these unique identifiers include
stock ticker labels and Organizationally Unique Identifiers (OUIs). Since
the different options in IEEE 1275 provide different guarantees of
uniqueness and different identifier lengths, the company should use its
best judgement in selecting a unique identifier that fits the four
character field. The length of this field is limited to 4 bytes to
conserve available log data space. As an example, if Allied Information
Monitoring (a fictional name for the purposes of this example) were to
create a vendor-specific log format 12, then bytes 12-15 of such a log
may contain &#8220;AIM&lt;NULL&gt;&#8221;.</para>
<para>This identifier is intended to apply to the company that defines
the specific format, and may be used by other companies that wish to be
compatible with that format. For example, if another company wanted to
take advantage of existing support in one of the OSs by using an
AIM-specific error log format for logs generated on their own platform,
their log would have to contain an identifier of
&#8220;AIM&lt;NULL&gt;&#8221;.</para>
<variablelist>
<varlistentry xml:id="dbdoclet.50569337_44999">
<term><emphasis role="bold">R1-<xref linkend="dbdoclet.50569337_59870"
xrefstyle="select: labelnumber nopage"/>-1.</emphasis></term>
<listitem>
<para>Platforms which
support Version 6 of the Extended Event Log Format must do so by
including a 0x06 value in the first byte of the RTAS Event Return Format
(Fixed Part) and using the formats described in
<xref linkend="dbdoclet.50569337_79682"/> (and all subsections under that
section).</para>
<para>
<emphasis role="bold">Software Implementation Note:</emphasis> OSs running on
platforms which support Version 6 of the Extended Event Log Format must
ensure that the length parameter passed in the
<emphasis>event-scan</emphasis> RTAS call be at least 2 KB.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">R1-<xref linkend="dbdoclet.50569337_59870"
xrefstyle="select: labelnumber nopage"/>-2.</emphasis></term>
<listitem>
<para>If the length parameter on the RTAS
<emphasis>event-scan</emphasis> call for returning data using Version 6 of
the Extended Event Log Format is insufficient to return all the data the
platform would otherwise make available, the platform must truncate the
data by eliminating optional sections entirely rather than truncating a
section.</para>
</listitem>
</varlistentry>
<varlistentry>
<term><emphasis role="bold">R1-<xref linkend="dbdoclet.50569337_59870"
xrefstyle="select: labelnumber nopage"/>-3.</emphasis></term>
<listitem>
<para>All event logs returning a Version 6
Platform Event Log format must include the Main-A and Main-B Sections.
Other sections are optional depending on the specific event type as
specified in Requirement
<xref linkend="dbdoclet.50569337_69083"/>.</para>
</listitem>
</varlistentry>
<varlistentry xml:id="dbdoclet.50569337_69083">
<term><emphasis role="bold">R1-<xref linkend="dbdoclet.50569337_59870"
xrefstyle="select: labelnumber nopage"/>-4.</emphasis></term>
<listitem>
<para>The following
sections must be provided as indicated:</para>
<orderedlist numeration="loweralpha">
<listitem>
<para>For the Platform error Type, the Primary Service Reference Code
(SRC) section must be provided.</para>
</listitem>
<listitem>
<para>For the ibm,io-events Type, the IO Events section must be
provided.</para>
</listitem>
<listitem>
<para>For the Resource deallocation event Type, the Logical Resource
Identification section must be provided.</para>
</listitem>
<listitem>
<para>For the Dump notification event Type, the Dump Locator section
must be provided.</para>
</listitem>
<listitem>
<para>For the EPOW Type, the EPOW section must be provided.</para>
</listitem>
<listitem>
<para>For the HOTPLUG Type, the Hotplug section must be provided.</para>
</listitem>
</orderedlist>
</listitem>
</varlistentry>
</variablelist>
<para>
<emphasis role="bold">Software Implementation Note:</emphasis> All fields in the
Platform Event Log marked &#8220;Platform specific information&#8221; or
&#8220;Other platform specific information sections&#8221; contain
information reserved for platform or platform Service Application use
only. That information is not defined in this document. Information in
these fields should be ignored by the OS.</para>
<para>
<emphasis role="bold">Software Implementation and Architecture Note:</emphasis> All
fields currently marked &#8220;Reserved&#8221; are set to zero by RTAS
and are ignored by the OS. The reserved values in the defined fields in
the Platform Event Log may be defined in the future in this architecture
document for platform specific usage without change to this
architecture.</para>
<table frame="all" pgwide="1" xml:id="dbdoclet.50569337_85491">
<title>RTAS General Extended Event Log Format, Version 6</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="10*" align="center" />
<colspec colname="c2" colwidth="10*" align="center" />
<colspec colname="c3" colwidth="80*" />
<thead>
<row>
<entry>
<para><emphasis role="bold">Byte</emphasis></para>
</entry>
<entry>
<para><emphasis role="bold">Bit</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Description</emphasis></para>
</entry>
</row>
</thead>
<tbody valign="middle" >
<row>
<entry morerows="7">
<para>0</para>
</entry>
<entry>
<para>0</para>
</entry>
<entry>
<para>1 = Log Valid</para>
</entry>
</row>
<row>
<entry>
<para>1</para>
</entry>
<entry>
<para>1 = Unrecoverable Error</para>
</entry>
</row>
<row>
<entry>
<para>2</para>
</entry>
<entry>
<para>1 = Recoverable (correctable or successfully retried)
Error</para>
</entry>
</row>
<row>
<entry>
<para>3</para>
</entry>
<entry>
<para>1 = Unrecoverable Error, Bypassed - Degraded operation
(e.g. CPU/memory taken off-line, bad cache bypassed,
etc.)</para>
</entry>
</row>
<row>
<entry>
<para>4</para>
</entry>
<entry>
<para>1 = Predictive Error - Error is recoverable, but
indicates a trend toward unrecoverable failure (e.g.
correctable ECC error threshold, etc.)</para>
</entry>
</row>
<row>
<entry>
<para>5</para>
</entry>
<entry>
<para>1 = &#8220;New&#8221; Log (always 1 for data returned
from RTAS)</para>
</entry>
</row>
<row>
<entry>
<para>6</para>
</entry>
<entry>
<para>1 = Big-Endian</para>
</entry>
</row>
<row>
<entry>
<para>7</para>
</entry>
<entry>
<para>Reserved</para>
</entry>
</row>
<row>
<entry>
<para>1</para>
</entry>
<entry>
<para>0:7</para>
</entry>
<entry>
<para>Reserved</para>
</entry>
</row>
<row>
<entry morerows="2">
<para>2</para>
</entry>
<entry>
<para>0</para>
</entry>
<entry>
<para>Set to 1 - (Indicating log is in PowerPC format)</para>
</entry>
</row>
<row>
<entry>
<para>1:3</para>
</entry>
<entry>
<para>Reserved</para>
</entry>
</row>
<row>
<entry>
<para>4:7</para>
</entry>
<entry>
<para>Log format indicator, defined format used for byte
12-2047:</para>
<para>0-13, 15 Reserved</para>
<para>14: Platform Event Log</para>
</entry>
</row>
<row>
<entry>
<para>3</para>
</entry>
<entry>
<para>0:7</para>
</entry>
<entry>
<para>Reserved</para>
</entry>
</row>
<row>
<entry>
<para>4-11</para>
</entry>
<entry>
<para>&#160;</para>
</entry>
<entry>
<para>Reserved</para>
</entry>
</row>
<row>
<entry>
<para>12-15</para>
</entry>
<entry>
<para>&#160;</para>
</entry>
<entry>
<para>Company identifier of the company that has defined the
format for this vendor specific log type.</para>
</entry>
</row>
<row>
<entry>
<para>16-2047</para>
</entry>
<entry>
<para>&#160;</para>
</entry>
<entry>
<para>Detail vendor specific log data. If byte 2, bits 4:7,
above, are a value of 14 (Platform Event Log) and bytes 12-16
are &#8220;IBM &#8221;, then see
<xref linkend="dbdoclet.50569337_97351"/> for the content of
this field.</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</section>
<section xml:id="dbdoclet.50569337_97351">
<title>Platform Event Log Format, Version 6</title>
<para>This format is used when byte 2, bits 4:7, of the RTAS General
Extended Event Log Version 6 are a value of 14 (Platform Event
Log).</para>
<table frame="all" pgwide="1" xml:id="dbdoclet.50569337_74137">
<title>Overview of Platform Event Log Format, Version
6</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="10*" align="center" />
<colspec colname="c2" colwidth="10*" align="center" />
<colspec colname="c3" colwidth="80*" />
<thead>
<row>
<entry>
<para><emphasis role="bold">Byte</emphasis></para>
</entry>
<entry>
<para><emphasis role="bold">Length in Bytes</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Description</emphasis></para>
</entry>
</row>
</thead>
<tbody valign="middle" >
<row>
<entry>
<para>12-15</para>
</entry>
<entry>
<para>4</para>
</entry>
<entry>
<para>Contains ASCII characters
&#8220;IBM&lt;NULL&gt;&#8221;.</para>
</entry>
</row>
<row>
<entry>
<para>16-63</para>
</entry>
<entry>
<para>48</para>
</entry>
<entry>
<para>Main-A section (ID = 'PH'). Required section. See
<xref linkend="dbdoclet.50569337_30523"/> for the
format.</para>
</entry>
</row>
<row>
<entry>
<para>64-87</para>
</entry>
<entry>
<para>24</para>
</entry>
<entry>
<para>Main-B section (ID = 'UH'). Required, always follow
Main-A section. See
<xref linkend="dbdoclet.50569337_68192"/> for the
format.</para>
</entry>
</row>
<row>
<entry>
<para>88-103</para>
</entry>
<entry>
<para>16</para>
</entry>
<entry>
<para>Logical Resource Identification section (ID = 'LR').
Optional, present only for Resource deallocation event
notification. If present, this section always follows Main-B
section. See
<xref linkend="dbdoclet.50569337_26787"/> for the
format.</para>
</entry>
</row>
<row>
<entry>
<para>104-</para>
</entry>
<entry>
<para>80+</para>
<para>optional FRU call out sub-section</para>
</entry>
<entry>
<para>Primary SRC section (ID = 'PS'). Required for
&#8220;Platform Error&#8221; event type, optional for other
event types. If present, this section always follows Main-B
section. See
<xref linkend="dbdoclet.50569337_17545"/> for the
format.</para>
</entry>
</row>
<row>
<entry>
<para>&#160;</para>
</entry>
<entry>
<para>64</para>
</entry>
<entry>
<para>Dump Locator section (ID = 'DH') Optional, present only
for dump event notification. If present, this section follows
Main-B or Primary SRC section. See
<xref linkend="dbdoclet.50569337_94114"/> for the
format.</para>
</entry>
</row>
<row>
<entry>
<para>&#160;</para>
</entry>
<entry>
<para>20</para>
</entry>
<entry>
<para>EPOW section (ID = 'EP'). Optional, present only for
&#8220;EPOW&#8221; interrupt event notification. If present,
this section follows Main-B section. See
<xref linkend="dbdoclet.50569337_81250"/> for the
format.</para>
</entry>
</row>
<row>
<entry>
<para>&#160;</para>
</entry>
<entry>
<para>Variable</para>
</entry>
<entry>
<para>IO Events section (ID = 'IE'). Optional, present only for
&#8220;ibm,io-events&#8221; interrupt event notification. If
present, this section follows Main-B section. See
<xref linkend="dbdoclet.50569337_74350"/> for the
format.</para>
</entry>
</row>
<row>
<entry>
<para>&#160;</para>
</entry>
<entry>
<para>28</para>
</entry>
<entry>
<para>Failing Enclosure MTMS section (ID = 'MT'). Required for
errors only. If present, this section follows Main-B section or
Primary SRC. See
<xref linkend="dbdoclet.50569337_16482"/> for the
format.</para>
</entry>
</row>
<row>
<entry>
<para>&#160;</para>
</entry>
<entry>
<para>28</para>
</entry>
<entry>
<para>Impacted partition description section (ID = 'LP'').
Required for errors only. If present, this section follows
Main-B section or Primary SRC</para>
</entry>
</row>
<row>
<entry>
<para>&#160;</para>
</entry>
<entry>
<para>40</para>
</entry>
<entry>
<para>Machine Check Interrupt section (ID = 'MC'). Optional for
&#8220;Platform Error&#8221; event types with ERROR_SYNC
severity caused by a machine check interrupt. If present, this
section follows the Main-B. See
<xref linkend="dbdoclet.50569337_54366"/>.</para>
</entry>
</row>
<row>
<entry>
<para>&#160;</para>
</entry>
<entry>
<para>???</para>
</entry>
<entry>
<para>Hotplug Section (ID = “HP”). Optional, present only for
Hotplug event notification. If present, this section follows
Main-B section. See <xref linkend="error.hotplug"/>.</para>
</entry>
</row>
<row>
<entry>
<para>...- 2047</para>
</entry>
<entry>
<para>Variable</para>
</entry>
<entry>
<para>Other platform specific information sections.
Optional.</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</section>
<section xml:id="dbdoclet.50569337_30523">
<title>Platform Event Log Format, Main-A Section</title>
<table frame="all" pgwide="1">
<title>Platform Event Log Format, Version 6, Main-A
Section</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="10*" align="center" />
<colspec colname="c2" colwidth="10*" align="center" />
<colspec colname="c3" colwidth="80*" />
<thead>
<row>
<entry>
<para><emphasis role="bold">Offset</emphasis></para>
</entry>
<entry>
<para><emphasis role="bold">Length in Bytes</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Description</emphasis></para>
</entry>
</row>
</thead>
<tbody valign="middle" >
<row>
<entry>
<para>0x00</para>
</entry>
<entry>
<para>2</para>
</entry>
<entry>
<para>Section ID: A two-ASCII character field which uniquely
identifies the type of section.</para>
<para>value = 'PH'</para>
</entry>
</row>
<row>
<entry>
<para>0x02</para>
</entry>
<entry>
<para>2</para>
</entry>
<entry>
<para>Section length: Length in bytes of the section, including
the section ID.</para>
<para>value = 48</para>
</entry>
</row>
<row>
<entry>
<para>0x04</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Section Version</para>
</entry>
</row>
<row>
<entry>
<para>0x05</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Section sub-type</para>
</entry>
</row>
<row>
<entry>
<para>0x06</para>
</entry>
<entry>
<para>2</para>
</entry>
<entry>
<para>Creator Component ID</para>
</entry>
</row>
<row>
<entry>
<para>0x08</para>
</entry>
<entry>
<para>4</para>
</entry>
<entry>
<para>Log creation date in BCD format: YYYYMMDD, where YYYY =
year, MM = month 01 - 12, DD = day 01 - 31.</para>
</entry>
</row>
<row>
<entry>
<para>0x0C</para>
</entry>
<entry>
<para>4</para>
</entry>
<entry>
<para>Log creation time in BCD format: HHMMSS00, where HH =
hour 00 - 23, MM = minutes 00 - 59, SS = s econds 00 -5 9, 00 =
hundredth of seconds 00 - 99.</para>
</entry>
</row>
<row>
<entry>
<para>0x10</para>
</entry>
<entry>
<para>8</para>
</entry>
<entry>
<para>Platform specific information</para>
</entry>
</row>
<row>
<entry>
<para>0x18</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Creator ID -- subsystem creating the log entry
represented as a single ASCII character</para>
<para>'E' = Service Processor</para>
<para>'H' = Hypervisor,</para>
<para>'W' = Power Control</para>
<para>'L' = Partition Firmware</para>
</entry>
</row>
<row>
<entry>
<para>0x19</para>
</entry>
<entry>
<para>2</para>
</entry>
<entry>
<para>Reserved</para>
</entry>
</row>
<row>
<entry>
<para>0x1B</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Section count -- number of sections comprising log entry,
including this section</para>
</entry>
</row>
<row>
<entry>
<para>0x1C</para>
</entry>
<entry>
<para>4</para>
</entry>
<entry>
<para>Reserved</para>
</entry>
</row>
<row>
<entry>
<para>0x20</para>
</entry>
<entry>
<para>8</para>
</entry>
<entry>
<para>Platform specific information</para>
</entry>
</row>
<row>
<entry>
<para>0x28</para>
</entry>
<entry>
<para>4</para>
</entry>
<entry>
<para>Platform Log ID (PLID)</para>
<para>Unique identifier for a single event. Note that it is
possible for multiple log entries to be made for a single
error/event. The entries are linked to the same event by using
the same PLID.</para>
</entry>
</row>
<row>
<entry>
<para>0x2C</para>
</entry>
<entry>
<para>4</para>
</entry>
<entry>
<para>Platform specific information</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</section>
<section xml:id="dbdoclet.50569337_68192">
<title>Platform Event Log Format, Main-B Section</title>
<table frame="all" pgwide="1">
<title>Platform Event Log Format, Version 6, Main-B
Section</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="10*" align="center" />
<colspec colname="c2" colwidth="10*" align="center" />
<colspec colname="c3" colwidth="80*" />
<thead>
<row>
<entry>
<para><emphasis role="bold">Byte</emphasis></para>
</entry>
<entry>
<para><emphasis role="bold">Length in Bytes</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Description</emphasis></para>
</entry>
</row>
</thead>
<tbody valign="middle" >
<row>
<entry>
<para>0x00</para>
</entry>
<entry>
<para>2</para>
</entry>
<entry>
<para>Section ID: A two-ASCII character field which uniquely
identifies the type of section.</para>
<para>value = 'UH'</para>
</entry>
</row>
<row>
<entry>
<para>0x02</para>
</entry>
<entry>
<para>2</para>
</entry>
<entry>
<para>Section length: Length in bytes of the section, including
the section ID.</para>
<para>value = 24</para>
</entry>
</row>
<row>
<entry>
<para>0x04</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Section Version</para>
</entry>
</row>
<row>
<entry>
<para>0x05</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Section subtype</para>
</entry>
</row>
<row>
<entry>
<para>0x06</para>
</entry>
<entry>
<para>2</para>
</entry>
<entry>
<para>Creator Component ID</para>
</entry>
</row>
<row>
<entry>
<para>0x08</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Subsystem ID: For error events, this is the failing
subsystem. For non-error events, this is the subsystem
associated with the event.</para>
<para>0x10 - 0x1F = Processor subsystem including internal
cache</para>
<para>0x20 - 0x2F = Memory subsystem including external
cache</para>
<para>0x30 - 0x3F = I/O subsystem (hub, bridge, bus)</para>
<para>0x40 - 0x4F = I/O adapter, device and peripheral</para>
<para>0x50 - 0x5F = CEC hardware</para>
<para>0x60 - 0x6F = Power/Cooling subsystem</para>
<para>0x70 - 0x79 = Others subsystem</para>
<para>0x7A - 0x7F = Surveillance Error</para>
<para>0x80 - 0x8F = Platform Firmware</para>
<para>0x90 - 0x9F = Software</para>
<para>0xA0 - 0xAF = External environment</para>
<para>0xB0 - 0xFF = Reserved</para>
</entry>
</row>
<row>
<entry>
<para>0x09</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Platform specific information</para>
</entry>
</row>
<row>
<entry>
<para>0x0A</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Event/Error Severity (see additional description
following the table)</para>
<para>0x00 = Informational or non- error Event. This field must
be 0x00 for non-error event. Use Event Sub-type field to
specify unique event.</para>
<para>0x1X = Recovered Error</para>
<para>0x10 = Recovered Error, general</para>
<para>0x14 = Recovered Error, spare capacity utilized</para>
<para>0x15 = Recovered Error, loss of entitled capacity</para>
<para>0x2X = Predictive Error</para>
<para>0x20 = Predictive Error, general</para>
<para>0x21 = Predictive Error, degraded performance</para>
<para>0x22 = Predictive Error, fault may be corrected after
platform re-boot</para>
<para>0x23 = Predictive Error, fault may be corrected after
boot, degraded performance</para>
<para>0x24 = Predictive Error, loss of redundancy</para>
<para>0x4X = Unrecoverable Error</para>
<para>0x40 = Unrecoverable Error, general</para>
<para>0x41 = Unrecoverable Error, bypassed with degraded
performance</para>
<para>0x44 = Unrecoverable Error, bypassed with loss of
redundancy</para>
<para>0x45 = Unrecoverable Error, bypassed with loss of
redundancy and performance</para>
<para>0x48 = Unrecoverable Error, bypassed with loss of
function</para>
<para>0x6X = Error on diagnostic test</para>
<para>0x60 = Error on diagnostic test, general</para>
<para>0x61 = Error on diagnostic test, resource may produce
incorrect results</para>
<para>All other values = reserved</para>
</entry>
</row>
<row>
<entry>
<para>0x0B</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Event Sub-Type (primarily used when Event Severity =
0x00, see additional description following the table)</para>
<para>0x00 = not applicable.</para>
<para>0x01 = Miscellaneous, Information Only</para>
<para>0x08 = Dump Notification (Dump may also be reported on
Error event)</para>
<para>0x10 = Previously reported error has been corrected by
system</para>
<para>0x20 = System resources manually deconfigured by
user</para>
<para>0x21 = System resources deconfigured by system due to
prior error event</para>
<para>0x22 = Resource deallocation event notification</para>
<para>0x30 = Customer environmental problem has returned to
normal</para>
<para>(e.g. input power restored, ambient temperature back
within limits)</para>
<para>0x40 = Concurrent Maintenance Event</para>
<para>0x60 = Capacity Upgrade Event</para>
<para>0x70 = Resource Sparing Event</para>
<para>0x80 = Dynamic Reconfiguration Event (generated by
RTAS)</para>
<para>0xD0 = Normal system/platform shutdown or powered
off</para>
<para>0xE0 = Platform powered off by user without normal
shutdown (abnormal power off)</para>
<para>All other values = reserved</para>
</entry>
</row>
<row>
<entry>
<para>0x0C</para>
</entry>
<entry>
<para>4</para>
</entry>
<entry>
<para>Platform specific information</para>
</entry>
</row>
<row>
<entry>
<para>0x10</para>
</entry>
<entry>
<para>2</para>
</entry>
<entry>
<para>Reserved</para>
</entry>
</row>
<row>
<entry>
<para>0x12</para>
</entry>
<entry>
<para>2</para>
</entry>
<entry>
<para>Error Action Flags (see additional description following
the table)</para>
<para>bit 0 (0x8000) = 1, Service Action (customer
notification) Required</para>
<para>bit 1 (0x4000) = 1, Hidden Error - exclusive with SA
Required (bit 0)</para>
<para>bit 2 (0x2000) = 1, Report Externally (send to HMC and
hypervisor)</para>
<para>bit 3 (0x1000) = 1, Don't report to hypervisor (only
report to HMC)</para>
<para>(only meaningful when (bit 2) Report Externally is
set)</para>
<para>bit 4 (0x0800) = 1, Call Home Required</para>
<para>(only valid if (bit 0) SA Required is set)</para>
<para>bit 5 (0x0400) = 1, Error Isolation Incomplete. Further
analysis required.</para>
<para>bit 6 (0x0200) = 1, Deprecated.</para>
<para>bit 7 (0x0100) = 1, Reserved</para>
<para>bit 8, 9 = Platform specific information</para>
<para>bit 10-15 = Reserved</para>
</entry>
</row>
<row>
<entry>
<para>0x14</para>
</entry>
<entry>
<para>4</para>
</entry>
<entry>
<para>Reserved</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
<section>
<title>Error/Event Severity</title>
<para>This field indicates the severity of the error event and the impact
of the error to the platform (if applicable).</para>
<para><emphasis role="bold">Non-error or Informational Event:</emphasis>
This value indicates an event
that is a non-error event. Informational or user action event log entries
must use this value. The Event Type field provides additional event
information.</para>
<para><emphasis role="bold">Recovered Error, general:</emphasis>
This value indicates an error event that
has been automatically recovered or corrected by the platform hardware
and/or firmware, e.g. ECC, internal spare or redundancy, cache line
delete, boot time array repair, etc. No service action is required for
this type of error. In general, when this value is used, the Error Action
Flags has the value of &#8220;Hidden Error&#8221;. An event log with this
value is used primarily for error thresholding design and code debug or
as a record to indicate error frequency or trend.</para>
<para>
<emphasis role="bold">Recovered Error, spare capacity utilized:</emphasis>
This value
indicates that an error on a resource has been recovered by utilizing
another resource not currently assigned for use (spare). The failing
component is to be considered permanently in an error state. For example,
a faulty instruction on one processor may be checkpointed and loaded into
a spare processor, continuing the operations of the faulty one. In this
case the failing component is considered permanently in an error
state.</para>
<para>
<emphasis role="bold">Recovered Error, loss of entitled capacity:</emphasis>
This value indicates that an error on a resource has been recovered by
utilizing another resource already in use by the system. The failing
component is to be considered permanently in an error state. This results
in a loss of capacity in the partition that receives the error. For
example, a processor already in use may take over the operations of a
faulty one. Loss of the faulty processor in the system then results in
less capacity being available to the partition receiving the error event.
Typically this event would have an event sub-type of &#8220;Resource
deallocation event notification&#8221; and the revised amount of entitled
capacity would be found in the Logical Resource Identification Section,
Entitled Capacity field.</para>
<para><emphasis role="bold">Predictive Error, general: </emphasis>
This value indicates an event that has
been automatically recovered or corrected by the platform hardware and/or
firmware. However, the frequency of the errors indicates a trend toward
(or potential) platform unrecoverable error. A deferred service or repair
action is required. The automatic platform recovery actions have no
impact to system performance (e.g. ECC, CRC, etc.), or the impact is
unknown.</para>
<para><emphasis role="bold">Predictive Error, degraded performance: </emphasis>
This value indicates an
error event that has been automatically recovered or corrected by the
platform hardware and/or firmware. However, the frequency of the errors
(i.e. over threshold) indicates a trend toward (or potential) platform
unrecoverable error. A deferred service or repair action is required. The
automatic platform recovery actions are impacting/degrading system
performance.</para>
<para><emphasis role="bold">Predictive Error, fault may be corrected after
platform re-boot: </emphasis>
This value indicates an error event that has been automatically recovered
or corrected by the platform hardware and/or firmware. However, the
frequency of the errors (i.e. over threshold) indicates a trend toward
(or potential) platform unrecoverable error. A deferred service or repair
action is required. The hardware fault may be corrected after platform
re-boot as part of the repair action. If the fault cannot be corrected
after re-boot, then a part replacement is required. The automatic
platform recovery actions have no impact to system performance (e.g. ECC,
CRC, etc.), or the impact is unknown.</para>
<para><emphasis role="bold">Predictive Error, fault may be corrected
after platform re-boot, degraded performance: </emphasis>
This value indicates an error event that has been
automatically recovered or corrected by the platform hardware and/or
firmware. However, the frequency of the errors (i.e. over threshold)
indicates a trend toward (or potential) platform unrecoverable error. A
deferred service or repair action is required. The hardware fault may be
corrected after platform re-boot as part of the repair action. If the
fault cannot be corrected after re-boot, then a part replacement is
required. The automatic platform recovery actions are impacting/degrading
the system performance.</para>
<para><emphasis role="bold">Predictive Error, loss of redundancy: </emphasis>
This value indicates an error
event that has been automatically recovered or corrected by the platform
hardware and/or firmware. However, the frequency of the errors (i.e. over
threshold) caused a loss in hardware redundancy. Future error in this
subsystem may causes platform unrecoverable error. A deferred service or
repair action is required to restore redundancy. The loss of redundancy
may or may not impact system performance.</para>
<para><emphasis role="bold">Unrecoverable Error, general: </emphasis>
This value indicates an error event
that is unrecoverable or uncorrectable by the platform hardware and/or
firmware. The hardware or platform resource with the error cannot be
deconfigured from the system. If the error is intermittent or soft, the
platform may be able to re-boot successfully and resume. A service or
repair action is required as soon as possible to correct the
error.</para>
<para><emphasis role="bold">Unrecoverable Error, bypassed with degraded
performance: </emphasis>This value
indicates an error event that is unrecoverable or uncorrectable by the
platform hardware and/or firmware. However, the hardware or platform
resource with the error has been deconfigured from the system. The
platform can be IPLed or re-IPLed with the error bypassed. System
performance is degraded due to the deconfigured platform resource(s) e.g.
processor, cache, memory, etc. A deferred service or repair action is
required.</para>
<para><emphasis role="bold">Unrecoverable Error, bypassed with loss
of redundancy: </emphasis>This value
indicates an error event that is unrecoverable or uncorrectable by the
platform hardware and/or firmware. However, the hardware or platform
resource with the error can be deconfigured from the system. The platform
can be IPLed or re-IPLed with the error bypassed. The deconfigured
platform resource(s) resulted in loss of redundancy (e.g. Redundant FSP
with static fail-over) with no loss of system performance. A deferred
service or repair action is required.</para>
<para><emphasis role="bold">Unrecoverable Error, bypassed with loss
of redundancy + performance: </emphasis>
This value indicates an error event that is unrecoverable or
uncorrectable by the platform hardware and/or firmware. However, the
hardware or platform resource with the error can be deconfigured from the
system. The platform can be IPLed or re-IPLed with the error bypassed.
The deconfigured platform resource(s) resulted in loss of redundancy and
system performance. A deferred service or repair action is
required.</para>
<para><emphasis role="bold">Unrecoverable Error, bypassed with loss
of function: </emphasis>This value
indicates an error event that is unrecoverable or uncorrectable by the
platform hardware and/or firmware. However, the hardware or platform
resource with the error can be deconfigured from the system. The platform
can be IPLed or re-IPLed with the error bypassed. The deconfigured
platform resource(s) resulted in loss of platform or system function. A
deferred service or repair action is required.</para>
<para><emphasis role="bold">Error on diagnostic test, general: </emphasis>
This value indicates an error
event that is detected during a diagnostic test. Impact to the system is
undefined or unknown.</para>
<para><emphasis role="bold">Error on diagnostic test, resource may
produce incorrect results: </emphasis>
This value indicates an error event that is detected during a diagnostic
test. The error may produce incorrect computational results (e.g.
processor floating point unit test error).</para>
</section>
<section>
<title>Event Sub-Type</title>
<para>This field provides additional information on the non-error event
type.</para>
<para><emphasis role="bold">Not applicable: </emphasis>
This value is used when the event is associated
with an error. Error/Event Severity field and SRC section provide
additional error information.</para>
<para><emphasis role="bold">Miscellaneous, Information Only: </emphasis>
This value is used when the event
is &#8220;for information only&#8221; or the event description doesn't
fit into any other defined values in this field.</para>
<para><emphasis role="bold">Dump Notification: </emphasis>
This value is used by the hypervisor or
partition firmware as a &#8220;Dump Notification&#8221; event to the OS
that a dump file is present in the platform for retrieval by the OS. This
value is used by the HMC as a &#8220;Dump Notification&#8221; event to
the Service Application to indicate a dump file is present for
transmission to the manufacturer.</para>
<para><emphasis role="bold">Previously reported error has been
corrected by system: </emphasis>This value
is used by the platform firmware to indicate that the error event that
was previously reported has been corrected by the platform. On a
subsequent platform boot, this event type is logged to indicate that the
array was successfully repaired.</para>
<para><emphasis role="bold">System resources manually deconfigured
by user: </emphasis>This value is used
by the platform firmware to indicate that a subset of platform
resource(s) was/were deconfigured due to user's request (e.g. via
platform ASM menu). The deconfigured resource(s) is/are not associated
with error detected by the platform. The event is a reminder to the user
that the platform is running with partial capacity.
<emphasis role="bold">Note:</emphasis> The platform
provides this user option for platform performance testing
purpose.</para>
<para><emphasis role="bold">System resources deconfigured by
system due to prior error event: </emphasis>
This value is used by the platform firmware to indicate that the platform
is IPLed with resource(s) deconfigured due to error detected and reported
previously. The event is a reminder to the user that the platform
requires service.</para>
<para><emphasis role="bold">Resource deconfiguration notification: </emphasis>
This value is used by
partition firmware as an &#8220;Event Notification&#8221; to the OS that
a specified resource (e.g. processor, memory page, etc.) currently used
by the OS should be deallocated due to predictive error. A Logical
Resource Identification section is included in the event log to indicate
the Resource Type and ID.</para>
<para><emphasis role="bold">Customer environmental problem has
returned to normal: </emphasis>This value
is used by the platform firmware to indicate that a customer
environmental problem (e.g. utility power, room ambient temperature,
etc.) detected and reported previously, has returned to normal.</para>
<para><emphasis role="bold">Concurrent Maintenance: </emphasis>
This value is used by the platform firmware
to indicate any non-error event associated with concurrent maintenance
activity.</para>
<para><emphasis role="bold">Capacity Upgrade Event: </emphasis>
This value is used by the platform firmware
to indicate any non-error event associated with capacity upgrade
activity.</para>
<para><emphasis role="bold">Resource Sparing Event: </emphasis>
This value is used by the platform firmware
to indicate any non-error event associated with platform resource sparing
activity.</para>
<para><emphasis role="bold">Dynamic Reconfiguration Event: </emphasis>
This value is used by the partition
firmware to indicate any significant but non-error event associated with
dynamic reconfiguration activity.
<emphasis role="bold">Implementation Note:</emphasis> Due to limited
platform storage resource, non-error event log associated with a logical
partition will be reported to the OS but may not be stored in the
platform.</para>
<para><emphasis role="bold">Normal system/platform shutdown or
powered off: </emphasis>This value is used
by the platform firmware to indicate any non-error event associated with
normal system/platform shutdown or powered off activity initiated by the
user.</para>
<para><emphasis role="bold">Platform powered off by user without
normal shutdown (abnormal powered off): </emphasis>
This value is used by the platform firmware to indicate
that the platform is abnormally powered off by the user.</para>
</section>
<section>
<title>Error Action Flags</title>
<para>The following are the definitions of the actions taken for the
various Error Action Flags.</para>
<para><emphasis role="bold">Report Externally - </emphasis>
This flag instructs the service processor
(error logger component) to send the error to the service application
(e.g. service focal point(s) or FNM error analyzer). If this flag is set,
the SP always sends the error:</para>
<itemizedlist>
<listitem>
<para>To the &#8220;managing HMC(s)&#8221; if one (or multiple)
exists.</para>
</listitem>
<listitem>
<para>And to the hypervisor (unless the &#8220;Don't report to
hypervisor&#8221; flag is also set).</para>
</listitem>
</itemizedlist>
<para><emphasis role="bold">Service Action Required - </emphasis>
This flag instructs the Service
application that some service action is required by either the customer
or by the manufacturer&#8217;s service personnel. This is equivalent to
saying Customer Notification is required. Contrast this flag with the
&#8220;Call Home Required&#8221; flag.</para>
<para><emphasis role="bold">Call Home Required - </emphasis>
This flag indicates that the error requires
service and a Call Home Operation is to be performed. There are
additional policies used in combination with this flag: what subsystem
performs the Call Home, what is sent and where it is sent.</para>
<para><emphasis role="bold">Hidden Error - </emphasis>
This flag allows errors to be placed in a
partition's OS error log, but still remain hidden from the customer. This
is a legacy function and the partition firmware for must filter errors
marked &#8220;Hidden&#8221; and not forward these errors marked with this
flag to the OS. Note that this flag has no impact on the SP reporting
errors to either the HMC or hypervisor or for the hypervisor reporting
errors to partitions.</para>
<para><emphasis role="bold">Don't report Error to hypervisor - </emphasis>
While a partition is booting and
before it is functional (e.g. no OS error logging available), partition
errors may be sent through the hypervisor to the Service Processor).
These partition errors (and only partition errors) may be marked with
this flag to indicate that they need not be sent back to the hypervisor.
This is due to the error scope being limited to the failing partition and
the hypervisor has already taken the appropriate actions.</para>
<para><emphasis role="bold">Incomplete Information for Error
Isolation - </emphasis>Some errors are not
contained to a single enclosure and require error isolation from an
entity with broader system view / scope.</para>
<para><emphasis role="bold">Software Error - </emphasis>
This flag is used by the partition error logger to
indicate to the error is most likely to be caused by the software. When
both Software Error and Hardware Error flags are set, the error is caused
by either software or hardware. The Software Error and Hardware Error
flags are used to trigger the manufacturer&#8217;s support system to
automatically download software or firmware fixes.</para>
<para><emphasis role="bold">Hardware Error - </emphasis>
This flag is used by the partition error logger to
indicate to the error is most likely to be caused by the hardware. The
Software Error and Hardware Error flags are used to trigger the
manufacturer&#8217;s support system to automatically download software or
firmware fixes.</para>
</section>
</section>
<section xml:id="dbdoclet.50569337_26787">
<title>Platform Event Log Format, Logical Resource
Identification section</title>
<table frame="all" pgwide="1">
<title>Platform Event Log Format, Version 6, Logical
Resource Identification Section</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="10*" align="center" />
<colspec colname="c2" colwidth="10*" align="center" />
<colspec colname="c3" colwidth="80*" />
<thead>
<row>
<entry>
<para><emphasis role="bold">Offset</emphasis></para>
</entry>
<entry>
<para><emphasis role="bold">Length in Bytes</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Description</emphasis></para>
</entry>
</row>
</thead>
<tbody valign="middle" >
<row>
<entry>
<para>0x00</para>
</entry>
<entry>
<para>2</para>
</entry>
<entry>
<para>Section ID: A two-ASCII character field which uniquely
identifies the type of section.</para>
<para>value = 'LR'</para>
</entry>
</row>
<row>
<entry>
<para>0x02</para>
</entry>
<entry>
<para>2</para>
</entry>
<entry>
<para>Section length: Length in bytes of the section, including
the section ID.</para>
<para>value = 20</para>
</entry>
</row>
<row>
<entry>
<para>0x04</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Section Version</para>
</entry>
</row>
<row>
<entry>
<para>0x05</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Section subtype</para>
</entry>
</row>
<row>
<entry>
<para>0x06</para>
</entry>
<entry>
<para>2</para>
</entry>
<entry>
<para>Creator Component ID</para>
</entry>
</row>
<row>
<entry>
<para>0x08</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Resource Type</para>
<para>0x10: Processor</para>
<para>0x11: Shared processor</para>
<para>0x40: Memory page</para>
<para>0x41: Memory LMB</para>
<para>All other values = reserved</para>
</entry>
</row>
<row>
<entry>
<para>0x09</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Reserved</para>
</entry>
</row>
<row>
<entry>
<para>0x0A</para>
</entry>
<entry>
<para>2</para>
</entry>
<entry>
<para>Entitled Capacity: Hundredths of a CPU (only used for
Resource Type = Shared processor, value = 0x0000 for
others)</para>
</entry>
</row>
<row>
<entry>
<para>0x0C</para>
</entry>
<entry>
<para>4</para>
</entry>
<entry>
<para>Logical CPU ID: for resource type = processor</para>
<para>DRC Index, for resource type = memory LMB</para>
<para>Memory Logical Address (bit 0-31), for resource type =
memory page</para>
</entry>
</row>
<row>
<entry>
<para>0x10</para>
</entry>
<entry>
<para>4</para>
</entry>
<entry>
<para>Memory Logical Address (bit 32-64)), for resource type =
memory page</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</section>
<section xml:id="dbdoclet.50569337_17545">
<title>Platform Event Log Format, Primary SRC Section</title>
<table frame="all" pgwide="1">
<title>Platform Event Log Format, Version 6, Primary SRC
Section</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="10*" align="center" />
<colspec colname="c2" colwidth="10*" align="center" />
<colspec colname="c3" colwidth="80*" />
<thead>
<row>
<entry>
<para><emphasis role="bold">Offset</emphasis></para>
</entry>
<entry>
<para><emphasis role="bold">Length in Bytes</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Description</emphasis></para>
</entry>
</row>
</thead>
<tbody valign="middle" >
<row>
<entry>
<para>0x00</para>
</entry>
<entry>
<para>2</para>
</entry>
<entry>
<para>Section ID: A two-ASCII character field which uniquely
identifies the type of section.</para>
<para>value = 'PS'</para>
</entry>
</row>
<row>
<entry>
<para>0x02</para>
</entry>
<entry>
<para>2</para>
</entry>
<entry>
<para>Section length: Length in bytes of the section, including
the section ID.</para>
<para>value = 80 + optional FRU call out sub section</para>
</entry>
</row>
<row>
<entry>
<para>0x04</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Section Version</para>
</entry>
</row>
<row>
<entry>
<para>0x05</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Section Subtype</para>
</entry>
</row>
<row>
<entry>
<para>0x06</para>
</entry>
<entry>
<para>2</para>
</entry>
<entry>
<para>Creator component ID</para>
</entry>
</row>
<row>
<entry>
<para>0x08</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>SRC Version</para>
</entry>
</row>
<row>
<entry>
<para>0x09</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>SRC Flags</para>
<para>bit 0:6 = Platform specific information</para>
<para>bit 7 = 1: Additional/Optional sub-sections
present</para>
</entry>
</row>
<row>
<entry>
<para>0x0A</para>
</entry>
<entry>
<para>6</para>
</entry>
<entry>
<para>Platform specific information</para>
</entry>
</row>
<row>
<entry>
<para>0x10</para>
</entry>
<entry>
<para>4</para>
</entry>
<entry>
<para>Extended Reference Code hex data word 2 (required)</para>
</entry>
</row>
<row>
<entry>
<para>0x14</para>
</entry>
<entry>
<para>4</para>
</entry>
<entry>
<para>Extended Reference Code hex data word 3 (optional)</para>
</entry>
</row>
<row>
<entry>
<para>0x18</para>
</entry>
<entry>
<para>4</para>
</entry>
<entry>
<para>Extended Reference Code hex data word 4 (optional)</para>
</entry>
</row>
<row>
<entry>
<para>0x1C</para>
</entry>
<entry>
<para>4</para>
</entry>
<entry>
<para>Extended Reference Code hex data word 5 (optional)</para>
</entry>
</row>
<row>
<entry>
<para>0x20</para>
</entry>
<entry>
<para>4</para>
</entry>
<entry>
<para>Extended Reference Code hex data word 6 (optional)</para>
</entry>
</row>
<row>
<entry>
<para>0x24</para>
</entry>
<entry>
<para>4</para>
</entry>
<entry>
<para>Extended Reference Code hex data word 7 (optional)</para>
</entry>
</row>
<row>
<entry>
<para>0x28</para>
</entry>
<entry>
<para>4</para>
</entry>
<entry>
<para>Extended Reference Code hex data word 8 (optional)</para>
</entry>
</row>
<row>
<entry>
<para>0x2C</para>
</entry>
<entry>
<para>4</para>
</entry>
<entry>
<para>Extended Reference Code hex data word 9 (optional)</para>
</entry>
</row>
<row>
<entry>
<para>0x30</para>
</entry>
<entry>
<para>32</para>
</entry>
<entry>
<para>Primary Reference Code: 32 byte ASCII character
(required)</para>
</entry>
</row>
<row>
<entry nameend="c3" namest="c1">
<para>Additional/Optional Sub section for FRU call out (present
only for &#8220;Platform Error&#8221; event type)</para>
</entry>
</row>
<row>
<entry>
<para>0x00</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Sub section ID = C0 for FRU call out</para>
</entry>
</row>
<row>
<entry>
<para>0x01</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Platform specific information</para>
</entry>
</row>
<row>
<entry>
<para>0x02</para>
</entry>
<entry>
<para>2</para>
</entry>
<entry>
<para>Length of sub section: expressed in # of words (4 bytes),
from Sub section ID field</para>
</entry>
</row>
<row>
<entry>
<para>&#160;</para>
</entry>
<entry>
<para>FRU call out structure length</para>
</entry>
<entry>
<para>FRU call out 1 (see FRU call out structure format
below)</para>
</entry>
</row>
<row>
<entry>
<para>&#160;</para>
</entry>
<entry>
<para>&#160;</para>
</entry>
<entry>
<para>FRU call out 2 (call out 2-10 are optional)</para>
</entry>
</row>
<row>
<entry>
<para>&#160;</para>
</entry>
<entry>
<para>&#160;</para>
</entry>
<entry>
<para>...</para>
</entry>
</row>
<row>
<entry>
<para>&#160;</para>
</entry>
<entry>
<para>&#160;</para>
</entry>
<entry>
<para>FRU call out 10 (maximum)</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
<table frame="all" pgwide="1">
<title>Platform Event Log Format, Version 6, FRU Call-out
Structure</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="10*" align="center" />
<colspec colname="c2" colwidth="10*" align="center" />
<colspec colname="c3" colwidth="80*" />
<thead>
<row>
<entry>
<para><emphasis role="bold">Offset</emphasis></para>
</entry>
<entry>
<para><emphasis role="bold">Length in Bytes</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Description</emphasis></para>
</entry>
</row>
</thead>
<tbody valign="middle" >
<row>
<entry>
<para>0x00</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Call-out Structure length, in bytes including all fields,
including this one.</para>
</entry>
</row>
<row>
<entry>
<para>0x01</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Call-out Type / Flags</para>
<para>bits 0-3: Call-out structure type</para>
<para>0b0010 = this structure</para>
<para>bit 4 = 1 FRU Identity (ID) Substructure field included
in this FRU Call-out structure</para>
<para>bit 5 = 1 Other platform-only use substructure field
present following FRU ID substructure</para>
<para>bit 6-7 = 0b11: Other platform-only use substructure
field present following FRU ID substructure</para>
</entry>
</row>
<row>
<entry>
<para>0x02</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>FRU Replacement or Maintenance Procedure Priority
(expressed as an ASCII character, see additional description
following the table)</para>
<para>'H' = High priority and mandatory call-out.</para>
<para>'M' = Medium priority.</para>
<para>'A' = Medium priority group A (1st group).</para>
<para>'B' = Medium priority group B (2nd group).</para>
<para>'C' = Medium priority group C (3rd group).</para>
<para>'L' = Low priority.</para>
</entry>
</row>
<row>
<entry>
<para>0x03</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Length of Location Code field - must be a multiple of
4.</para>
</entry>
</row>
<row>
<entry>
<para>0x04</para>
</entry>
<entry>
<para>variable</para>
<para>max=80</para>
</entry>
<entry>
<para>Location Code</para>
<para>NULL terminated ASCII string. May be up to 80 characters
including the NULL. Padded with extra NULLs to 4-byte
boundary.</para>
</entry>
</row>
<row>
<entry nameend="c3" namest="c1">
<para>FRU Identity Substructure follow:</para>
</entry>
</row>
<row>
<entry>
<para>0x00</para>
</entry>
<entry>
<para>2</para>
</entry>
<entry>
<para>Substructure Type (2 ASCII Characters)</para>
<para>'ID' = FRU Identity Substructure</para>
</entry>
</row>
<row>
<entry>
<para>0x02</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Substructure length (variable, several optional fields -
see flags below)</para>
</entry>
</row>
<row>
<entry>
<para>0x03</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Flags</para>
<para>bits 0-3: Failing component Type (see additional
description following the table)</para>
<para>0b0000: reserved</para>
<para>0b0001: &#8220;normal&#8221; hardware FRU</para>
<para>0b0010: code FRU</para>
<para>0b0011: configuration error, configuration procedure
required</para>
<para>0b0100: Maintenance Procedure required</para>
<para>0b1001: External FRU</para>
<para>0b1010: External code FRU</para>
<para>0b1011: Tool FRU</para>
<para>0b1100: Symbolic FRU</para>
<para>0b1111: Reserved for expansion</para>
<para>all other values reserved</para>
<para>bit 4 (0x08) = 0b1: FRU Stocking Part Number supplied
(mutually exclusive with bit 6)</para>
<para>bit 5 (0x04) = 0b1: CCIN supplied (only valid if bit 4 =
0b1)</para>
<para>bit 6 (0x02) = 0b1: Maintenance procedure call out
supplied (mutually exclusive with FRU p/n)</para>
<para>bit 7 (0x01) = 0b1: FRU Serial Number supplied (only
valid if bit 4 = 0b1)</para>
</entry>
</row>
<row>
<entry>
<para>0x04</para>
</entry>
<entry>
<para>8, if present</para>
</entry>
<entry>
<para>FRU Stocking Part Number (VPD FN keyword) or Procedure
ID</para>
<para>This field is present if Flags bits 4 =0b1 or Flags bits
6 =0b1.</para>
<para>It contains a NULL-terminated ASCII character
string.</para>
<para>If Flags bit 4 = 0b1, this field contains a 7ASCII
character part number</para>
<para>If Flags bit 6 = 0b1, this field contains a 5 ASCII
character procedure ID</para>
</entry>
</row>
<row>
<entry>
<para>0x0C</para>
</entry>
<entry>
<para>4, if present</para>
</entry>
<entry>
<para>CCIN (VPD CC keyword) (optional, only supplied if Part
Number also supplied)</para>
<para>This field is present if Flags bit 5 = 0b1. It contains
the CCIN of the failing FRU (VPD CC keyword), represented as 4
ASCII characters (not a NULL-terminated string).</para>
</entry>
</row>
<row>
<entry>
<para>&#160;</para>
</entry>
<entry>
<para>12, if present</para>
</entry>
<entry>
<para>FRU Serial Number (VPD SE Keyword) (optional)</para>
<para>This field is present if Flags bit 7 = 0b1. It contains
the serial number of the failing FRU (VPD SE keyword),
represented as a 12 ASCII characters (not a NULL-terminated
string).</para>
</entry>
</row>
<row>
<entry nameend="c3" namest="c1">
<para>End of FRU Identify Substructure</para>
</entry>
</row>
<row>
<entry>
<para>&#160;</para>
</entry>
<entry>
<para>variable</para>
</entry>
<entry>
<para>Other platform used only substructure field</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
<section>
<title>FRU Replacement or Maintenance Procedure
Priority</title>
<para>This field defines the service priority of the specific call-out,
i.e., replacing the FRU part number or performing the maintenance
procedure ID as given in the FRU/Procedure Identity substructure. Here
are the priority descriptions:</para>
<itemizedlist>
<listitem>
<para><emphasis role="bold">'H' </emphasis>= High priority and
mandatory call-out. Replacing the FRU (or
performing the maintenance procedure) is mandatory. If multiple call-outs
with 'H' priority are given, all must be replaced or performed as a
group.</para>
</listitem>
<listitem>
<para><emphasis role="bold">'M' </emphasis>= Medium priority.
Replacing the FRU (or performing
maintenance procedure) with 'M' priority one at a time in the order given
after all call-outs prior to this one, if present, are performed.</para>
</listitem>
<listitem>
<para><emphasis role="bold">'A' </emphasis>= Medium priority group A
(1st group). Replacing all the FRUs
with 'A' priority as a group after all call-outs prior to this group, if
present, are performed.</para>
</listitem>
<listitem>
<para><emphasis role="bold">'B' </emphasis>= Medium priority group B
(2nd group). Replacing all the FRUs
with 'B' priority as a group after all call-outs prior to this group, if
present, are performed.</para>
</listitem>
<listitem>
<para><emphasis role="bold">'C' </emphasis>= Medium priority group C
(3rd group). Replacing all the FRUs
with 'C' priority as a group after all call-outs prior to this group, if
present, are performed.</para>
</listitem>
<listitem>
<para><emphasis role="bold">'L' </emphasis>= Low priority. After
performed all the prior call-outs, if
present, and problem still persists, replacing the FRU with this priority
one at a time in the order given.</para>
</listitem>
</itemizedlist>
<para>The list of FRU/Procedure call-outs in the &#8220;call-out&#8221;
subsection of the SRC structure must be in order as defined above, i.e.
High, Medium, Low. 'M' has the same medium priority level as 'A', 'B', or
'C' and a call out with 'M' priority can precede or follow 'A', 'B' or
'C'. A group call-out must be contiguous in the list. Within the medium
priority level, follow the call-out order in the list A list without High
or Medium priority is also valid.</para>
</section>
<section>
<title>Failing Component Type Description</title>
<itemizedlist>
<listitem>
<para><emphasis role="bold">Normal Hardware FRU: </emphasis>
Hardware FRU in the platform which the
platform firmware or code can positively identify, and its VPD contains
the part number and associated information.</para>
</listitem>
<listitem>
<para><emphasis role="bold">Code FRU: </emphasis>
Some layer of platform firmware or OS code is
suspected. The procedure ID field provides additional information about
which code(s) is/are the potential problem.</para>
</listitem>
<listitem>
<para><emphasis role="bold">Configuration error: </emphasis>
The problem may be related to how hardware
or code is configured. For example, an adapter is plugged in a slot that
cannot support it. The FRU could be a procedure or a symbolic FRU. The
reason to use one of these is if the analysis can provide more
information to the customer and service provider by giving a location
code.</para>
</listitem>
<listitem>
<para><emphasis role="bold">Maintenance procedure required: </emphasis>
Further isolation of the problem
is required by performing the procedure as identified in the Procedure ID
field. Procedures are designed to help to isolate problems and guide the
service provider through identifying which FRUs to replace in which
order.</para>
</listitem>
<listitem>
<para><emphasis role="bold">Symbolic FRU: </emphasis>Used for a single
FRU where the analysis code knows
exactly what the part is but there is no part number, or the part number
cannot be pulled from VPD, or when there is something special (like a
procedure) for acquiring the FRU or working with it. Examples are cables,
or FRUs without VPD (so a part number cannot be filled in). The term
&#8220;Symbolic&#8221; simply means &#8220;not an actual part
number&#8221;.</para>
</listitem>
<listitem>
<para><emphasis role="bold">External FRU: </emphasis>A failing part(s)
which is/are not in the system,
e.g. attached storage sub-system, network hubs/switches, external drives
like CD/DVD boxes.</para>
</listitem>
<listitem>
<para><emphasis role="bold">External Code: </emphasis>Code not running
in the platform but is the
potential source of the error. This could be something like storage
subsystem code or even another system in the same cluster.</para>
</listitem>
<listitem>
<para><emphasis role="bold">Tool FRU: </emphasis>This is a special
tool that will be required by one of
the FRUs in the list. Tools are only added as FRUs when they are not part
of the CE tool kit and therefore the repair action could be delayed if
the CE did not know to bring it. Examples are Optical Cleaning Kits for
fiber channel, and special tools for torque or reach or weight
considerations.</para>
</listitem>
</itemizedlist>
</section>
</section>
<section xml:id="dbdoclet.50569337_94114">
<title>Platform Event Log Format, Dump Locator Section</title>
<para>&#160;</para>
<table frame="all" pgwide="1">
<title>Platform Event Log Format, Version 6, Dump Locator
Section</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="10*" align="center" />
<colspec colname="c2" colwidth="10*" align="center" />
<colspec colname="c3" colwidth="80*" />
<thead>
<row>
<entry>
<para><emphasis role="bold">Offset</emphasis></para>
</entry>
<entry>
<para><emphasis role="bold">Length in Bytes</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Description</emphasis></para>
</entry>
</row>
</thead>
<tbody valign="middle" >
<row>
<entry>
<para>0x00</para>
</entry>
<entry>
<para>2</para>
</entry>
<entry>
<para>Section ID: A two-ASCII character field which uniquely
identifies the type of section.</para>
<para>value = 'DH'</para>
</entry>
</row>
<row>
<entry>
<para>0x02</para>
</entry>
<entry>
<para>2</para>
</entry>
<entry>
<para>Section length: Length in bytes of the section, including
the section ID.</para>
<para>value = 64</para>
</entry>
</row>
<row>
<entry>
<para>0x04</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Section Version</para>
</entry>
</row>
<row>
<entry>
<para>0x05</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Section Sub-Type</para>
<para>0x00 = Log truncated, complete log received by another
service entity.</para>
<para>0x01 = FSP Dump</para>
<para>0x02 = Platform System Dump</para>
<para>0x03 = Reserved</para>
<para>0x04 = Power Subsystem Dump</para>
<para>0x05 = Platform Event Log Entry Dump (when distinguishing
between dump types, the term &#8220;Log Dump&#8221; is
typically used)</para>
<para>0x06 = Partition-initiated resource dump</para>
<para>0x07 = Platform-initiated resource dump</para>
<para>All other values reserved</para>
</entry>
</row>
<row>
<entry>
<para>0x0</para>
</entry>
<entry>
<para>2</para>
</entry>
<entry>
<para>Creator component ID</para>
</entry>
</row>
<row>
<entry>
<para>0x08</para>
</entry>
<entry>
<para>4</para>
</entry>
<entry>
<para>Dump ID</para>
</entry>
</row>
<row>
<entry>
<para>0x0C</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Flags</para>
<para>bit 0 (0x80) = 0, Dump sent to partition</para>
<para>bit 0 = 1, Dump sent to HMC</para>
<para>bit 1 (0x40) = 0, File name in ASCII</para>
<para>bit 1 = 1, Dump file name is hex</para>
<para>bit 2 (0x20) = 1, Dump size field valid</para>
</entry>
</row>
<row>
<entry>
<para>0x0D</para>
</entry>
<entry>
<para>2</para>
</entry>
<entry>
<para>Reserved</para>
</entry>
</row>
<row>
<entry>
<para>0x0F</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Length of OS assigned Dump ID field in bytes, must be
multiple of 4.</para>
<para>May be 0.</para>
</entry>
</row>
<row>
<entry>
<para>0x10</para>
</entry>
<entry>
<para>8</para>
</entry>
<entry>
<para>Dump Size</para>
</entry>
</row>
<row>
<entry>
<para>0x18</para>
</entry>
<entry>
<para>40</para>
</entry>
<entry>
<para>OS-Assigned Dump ID</para>
<para>As the flag field indicates, this field may either be an
ASCII string or a hex number.</para>
<para>When an ASCII string (AIX, Linux, HMC), this is a NULL
terminated ASCII string representing the dump file name (leaf
name only, does not include path).</para>
<para>Field may be up to 40 characters including the
NULL.</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</section>
<section xml:id="dbdoclet.50569337_81250">
<title>Platform Event Log Format, EPOW Section</title>
<table frame="all" pgwide="1" xml:id="dbdoclet.50569337_39498">
<title>Platform Event Log Format, Version 6, EPOW
Section</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="10*" align="center" />
<colspec colname="c2" colwidth="10*" align="center" />
<colspec colname="c3" colwidth="80*" />
<thead>
<row>
<entry>
<para><emphasis role="bold">Offset</emphasis></para>
</entry>
<entry>
<para><emphasis role="bold">Length in Bytes</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Description</emphasis></para>
</entry>
</row>
</thead>
<tbody valign="middle" >
<row>
<entry>
<para>0x00</para>
</entry>
<entry>
<para>2</para>
</entry>
<entry>
<para>Section ID: A two-ASCII character field which uniquely
identifies the type of section.</para>
<para>value = 'EP'</para>
</entry>
</row>
<row>
<entry>
<para>0x02</para>
</entry>
<entry>
<para>2</para>
</entry>
<entry>
<para>Section length: Length in bytes of the section, including
the section ID.</para>
</entry>
</row>
<row>
<entry>
<para>0x04</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Section Version</para>
</entry>
</row>
<row>
<entry>
<para>0x05</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Section subtype</para>
</entry>
</row>
<row>
<entry>
<para>0x06</para>
</entry>
<entry>
<para>2</para>
</entry>
<entry>
<para>Creator Component ID</para>
</entry>
</row>
<row>
<entry>
<para>0x08</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>EPOW Sensor Value (low-order 4 bits contain the action
code).</para>
</entry>
</row>
<row>
<entry>
<para>0x09</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>EPOW Event Modifier</para>
<para>(low-order 4 bits contain the event modifier
value)</para>
<para>0x00 = Not applicable</para>
<para>For EPOW sensor value = 3</para>
<para>0x01 = Normal system shutdown with no additional
delay</para>
<para>0x02 = Loss of utility power, system is running on
UPS/Battery</para>
<para>0x03 = Loss of system critical functions, system should
be shutdown</para>
<para>0x04 = Ambient temperature too high</para>
<para>All other values = reserved</para>
</entry>
</row>
<row>
<entry>
<para>0x0A</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Extended Modifier for Section Version 2 and higher</para>
<para>For EPOW Sensor Value = 3</para>
<para>0x00 System wide shutdown</para>
<para>0x01 Partition specific shutdown</para>
<para>0x02 - 0xFF Reserved</para>
<para>All other situations Reserved = 0x00</para>
</entry>
</row>
<row>
<entry>
<para>0x0B</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Reserved</para>
</entry>
</row>
<row>
<entry>
<para>0x0C</para>
</entry>
<entry>
<para>8</para>
</entry>
<entry>
<para>Platform specific reason code</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</section>
<section xml:id="dbdoclet.50569337_74350">
<title>Platform Event Log Format, IO Events Section</title>
<table frame="all" pgwide="1" xml:id="dbdoclet.50569337_86901">
<title>Platform Event Log Format, Version 6, IO Events
Section</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="10*" align="center" />
<colspec colname="c2" colwidth="10*" align="center" />
<colspec colname="c3" colwidth="80*" />
<thead>
<row>
<entry>
<para><emphasis role="bold">Offset</emphasis></para>
</entry>
<entry>
<para><emphasis role="bold">Length in Bytes</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Description</emphasis></para>
</entry>
</row>
</thead>
<tbody valign="middle" >
<row>
<entry>
<para>0x00</para>
</entry>
<entry>
<para>2</para>
</entry>
<entry>
<para>Section ID: A two-ASCII character field which uniquely
identifies the type of section.</para>
<para>value = 'IE'</para>
</entry>
</row>
<row>
<entry>
<para>0x02</para>
</entry>
<entry>
<para>2</para>
</entry>
<entry>
<para>Section length: Length in bytes of the section, including
the section ID.</para>
</entry>
</row>
<row>
<entry>
<para>0x04</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Section Version</para>
</entry>
</row>
<row>
<entry>
<para>0x05</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Section subtype</para>
</entry>
</row>
<row>
<entry>
<para>0x06</para>
</entry>
<entry>
<para>2</para>
</entry>
<entry>
<para>Creator Component ID</para>
</entry>
</row>
<row>
<entry>
<para>0x08</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>IO-Event Type:</para>
<para>0x01 = Error Detected</para>
<para>0x02 = Error Recovered</para>
<para>0x03 = Event</para>
<para>0x04 = RPC Pass Through</para>
<para>All other values = Reserved</para>
</entry>
</row>
<row>
<entry>
<para>0x09</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Offset 0x10 Field Length:</para>
<para>For IO Event Type of RPC Pass Through, this field
specifies the length of the data field which begins at offset
0x10, otherwise the value in this field is 0. Must be a
multiple of 4 to maintain 4-byte alignment.</para>
<para>&#160;</para>
</entry>
</row>
<row>
<entry>
<para>0x0A</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Error/Event Scope:</para>
<para>0x00 = Not Applicable (use for IO-Event type 0x02, 0x03,
0x04)</para>
<para>0x36 = Reserved</para>
<para>0x37 = Reserved</para>
<para>0x38 = PHB</para>
<para>0x39 = Reserved</para>
<para>0x3A = Reserved</para>
<para>0x3B = Reserved</para>
<para>0x51 = Service Processor</para>
<para>All other values = Reserved</para>
</entry>
</row>
<row>
<entry>
<para>0x0B</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>I/O-Event Sub-Type:</para>
<para>0x00 = Not Applicable (use for IO-Event type 0x01, 0x02,
0x04)</para>
<para>0x01 = Rebalance request</para>
<para>0x03 = Node online</para>
<para>0x04 = Node off-line</para>
<para>0x05 = platform-dump-max-size change</para>
<para>0x08 = Generic Notification</para>
<para>0x09 = Platform protection of NVDIMM contents enabled</para>
<para>0x0A = Platform protection of NVDIMM contents disabled</para>
<para>All other values = Reserved</para>
</entry>
</row>
<row>
<entry>
<para>0x0C</para>
</entry>
<entry>
<para>4</para>
</entry>
<entry>
<para>DRC Index</para>
</entry>
</row>
<row>
<entry>
<para>0x10</para>
</entry>
<entry>
<para>0-216</para>
</entry>
<entry>
<para>For the RPC Pass Through IO Event Type: RPC data.
Variable length data. Must be padded to 4 bytes
alignment.</para>
<para>&#160;</para>
<para>For the platform-dump-max-size change I/O-Event Sub-Type:
8 bytes for the new value of the platform-dump-max-size system
parameter (specifying the sum (in bytes) of the maximum size of
each unique platform dump type that the
<emphasis>ibm,platform-dump</emphasis> RTAS call could
return).</para>
<para>&#160;</para>
<para>For Generic Notification I/O Event Sub-Type: Scoped Data
Generic Notification Event Section. Must be padded to 4 bytes
alignment.</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</section>
<section xml:id="dbdoclet.50569337_16482">
<title>Platform Event Log Format, Failing Enclosure
MTMS</title>
<table frame="all" pgwide="1">
<title>Platform Event Log Format, Version 6, Failing
Enclosure MTMS</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="10*" align="center" />
<colspec colname="c2" colwidth="10*" align="center" />
<colspec colname="c3" colwidth="80*" />
<thead>
<row>
<entry>
<para><emphasis role="bold">Offset</emphasis></para>
</entry>
<entry>
<para><emphasis role="bold">Length in Bytes</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Description</emphasis></para>
</entry>
</row>
</thead>
<tbody valign="middle" >
<row>
<entry>
<para>0x00</para>
</entry>
<entry>
<para>2</para>
</entry>
<entry>
<para>Section ID: A two-ASCII character field which uniquely
identifies the type of section.</para>
<para>value = 'MT'</para>
</entry>
</row>
<row>
<entry>
<para>0x02</para>
</entry>
<entry>
<para>2</para>
</entry>
<entry>
<para>Section length: Length in bytes of the section, including
the section ID.</para>
<para>value = 28</para>
</entry>
</row>
<row>
<entry>
<para>0x04</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Section Version</para>
</entry>
</row>
<row>
<entry>
<para>0x05</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Section subtype</para>
</entry>
</row>
<row>
<entry>
<para>0x06</para>
</entry>
<entry>
<para>2</para>
</entry>
<entry>
<para>Creator Component ID</para>
</entry>
</row>
<row>
<entry>
<para>0x08</para>
</entry>
<entry>
<para>8</para>
</entry>
<entry>
<para>Machine Type and Model: 8 ASCII characters, in the form
&#8220;tttt-mmm&#8221;,</para>
<para>where tttt = Machine Type and mmm = Model Number</para>
</entry>
</row>
<row>
<entry>
<para>0x10</para>
</entry>
<entry>
<para>12</para>
</entry>
<entry>
<para>Serial Number:</para>
<para>12 ASCII characters (If less than 12 characters are used,
string is left justified (stored in the field starting with the
lowest address) and padded with NULLs.)</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
<para>The Failing Enclosure Machine Type, Model, and Serial Number (MTMS)
that is associated with the error is important for service and
support.</para>
<para>The source of information for the MTMS fields varies according to
the following:</para>
<itemizedlist>
<listitem>
<para>For CEC errors, it is the CEC enclosure MTMS.</para>
</listitem>
<listitem>
<para>For errors in I/O enclosures (drawers and towers) that have their
own MTMS and are sold as separate MTMS from the CEC, we use the I/O
Drawer MTMS.</para>
</listitem>
<listitem>
<para>For I/O enclosures that were sold as a feature, this section
contains the Feature Code and Serial Number of the I/O enclosure. When
the Feature Code is used, it is left justified in the Machine Type and
Model field.</para>
</listitem>
</itemizedlist>
</section>
<section>
<title>Platform Event Log Format, Impacted Partitions</title>
<table frame="all" pgwide="1">
<title>Platform Event Log Format, Version 6, Impacted
Partitions</title>
<tgroup cols="6">
<colspec colname="c1" colwidth="10*" align="center" />
<colspec colname="c2" colwidth="10*" align="center" />
<colspec colname="c3" colwidth="20*" align="center" />
<colspec colname="c4" colwidth="20*" align="center" />
<colspec colname="c5" colwidth="20*" align="center" />
<colspec colname="c6" colwidth="20*" align="center" />
<thead>
<row>
<entry>
<para><emphasis role="bold">Offset</emphasis></para>
</entry>
<entry>
<para><emphasis role="bold">Length</emphasis></para>
</entry>
<entry>
<para><emphasis role="bold">Byte 0</emphasis></para>
</entry>
<entry>
<para><emphasis role="bold">Byte 1</emphasis></para>
</entry>
<entry>
<para><emphasis role="bold">Byte 2</emphasis></para>
</entry>
<entry>
<para><emphasis role="bold">Byte 3</emphasis></para>
</entry>
</row>
</thead>
<tbody valign="middle" >
<row>
<entry>
<para>0</para>
</entry>
<entry>
<para>8</para>
</entry>
<entry>
<para>Section Header</para>
</entry>
<entry>
<para>&#160;</para>
</entry>
<entry>
<para>&#160;</para>
</entry>
<entry>
<para>&#160;</para>
</entry>
</row>
<row>
<entry>
<para>0x10</para>
</entry>
<entry>
<para>4</para>
</entry>
<entry>
<para>Primary Partition ID</para>
</entry>
<entry>
<para>Length of LP name</para>
<para>(must be a multiple of 4)</para>
</entry>
<entry>
<para>Target LP Count</para>
</entry>
<entry>
<para>&#160;</para>
</entry>
</row>
<row>
<entry>
<para>0x14</para>
</entry>
<entry>
<para>4</para>
</entry>
<entry>
<para>Logical Partition ID</para>
</entry>
<entry>
<para>&#160;</para>
</entry>
<entry>
<para>&#160;</para>
</entry>
<entry>
<para>&#160;</para>
</entry>
</row>
<row>
<entry>
<para>0x18</para>
</entry>
<entry>
<para>variable</para>
</entry>
<entry>
<para>Primary Partition (LP) Name</para>
<para>Null terminated ASCII string, padded to 4-Byte
boundary</para>
</entry>
<entry>
<para>&#160;</para>
</entry>
<entry>
<para>&#160;</para>
</entry>
<entry>
<para>&#160;</para>
</entry>
</row>
<row>
<entry>
<para>&#160;</para>
</entry>
<entry>
<para>variable</para>
</entry>
<entry>
<para>Target LP 1</para>
</entry>
<entry>
<para>Target LP 2</para>
<para>and so on</para>
<para>(padded to a 4-Byte boundary)</para>
</entry>
<entry>
<para>&#160;</para>
</entry>
<entry>
<para>&#160;</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
<para>This section describes partitions that are impacted by an error.
When this section is supplied, the partitions in this list (and only
these partitions) are notified of the error.</para>
</section>
<section xml:id="dbdoclet.50569337_54366">
<title>Platform Event Log Format, Failing Memory
Address</title>
<table frame="all" pgwide="1">
<title>Platform Error Event Log Format, Version 6, Failing
Memory Address</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="10*" align="center" />
<colspec colname="c2" colwidth="10*" align="center" />
<colspec colname="c3" colwidth="80*" />
<thead>
<row>
<entry>
<para><emphasis role="bold">Offset</emphasis></para>
</entry>
<entry>
<para><emphasis role="bold">Length in Bytes</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Description</emphasis></para>
</entry>
</row>
</thead>
<tbody valign="middle" >
<row>
<entry>
<para>0x00</para>
</entry>
<entry>
<para>2</para>
</entry>
<entry>
<para>Section ID: A two-ASCII character field which uniquely
identifies the type of section.</para>
<para>value = 'MC'</para>
</entry>
</row>
<row>
<entry>
<para>0x02</para>
</entry>
<entry>
<para>2</para>
</entry>
<entry>
<para>Section length: Length in bytes of the section, including
the section ID</para>
<para>value = 32</para>
</entry>
</row>
<row>
<entry>
<para>0x04</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Section Version</para>
</entry>
</row>
<row>
<entry>
<para>0x05</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Section Subtype</para>
</entry>
</row>
<row>
<entry>
<para>0x06</para>
</entry>
<entry>
<para>2</para>
</entry>
<entry>
<para>Creator Component ID</para>
</entry>
</row>
<row>
<entry>
<para>0x08</para>
</entry>
<entry>
<para>4</para>
</entry>
<entry>
<para>FRU ID -- Identifies the FRU on which the machine check
interrupt occurred</para>
</entry>
</row>
<row>
<entry>
<para>0x0C</para>
</entry>
<entry>
<para>4</para>
</entry>
<entry>
<para>Processor ID -- identifies the physical CPU on which the
machine check occurred</para>
</entry>
</row>
<row>
<entry>
<para>0x10</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Type of machine check interrupt</para>
<para>0x00 = Uncorrectable Memory Error (UE)</para>
<para>0x01 = SLB error</para>
<para>0x02 = ERAT Error</para>
<para>0x04 = TLB error</para>
<para>0x05 = D-Cache error</para>
<para>0x07 = I-Cache error</para>
</entry>
</row>
<row>
<entry>
<para>0x11</para>
</entry>
<entry>
<para>23</para>
</entry>
<entry>
<para>Information specific to machine check interrupt type.
This section is binary zeroes if the platform does not provide
specific information for the type of interrupt.</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
<table frame="all" pgwide="1">
<title>UE Error Information</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="10*" align="center" />
<colspec colname="c2" colwidth="10*" align="center" />
<colspec colname="c3" colwidth="80*" />
<thead>
<row>
<entry>
<para><emphasis role="bold">Offset</emphasis></para>
</entry>
<entry>
<para><emphasis role="bold">Length in Bytes</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Description</emphasis></para>
</entry>
</row>
</thead>
<tbody valign="middle" >
<row>
<entry>
<para>0x11</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>Type of UE</para>
<para>Bit 0 = 0 Permanent UE. The UE may be cleared with a DCBZ
instruction.</para>
<para>Bit 0 =1 Transient UE. The UE cannot be cleared with a
DCBZ instruction. The contents of the entire logical page are
not accessible for this type of UE</para>
<para>64 bit effective address is provided</para>
<para>Bit 1 = 0 64 bit effective address is not provided by the
log</para>
<para>Bit 1 = 1 64 bit effective address is provided by the
log. Offset 0x18 provides the effective address if this bit is
1</para>
<para>64 bit logical address is provided</para>
<para>Bit 2 = 0 64 bit logical address of logical page is not
provided by the log</para>
<para>Bit 2 = 1 64 bit logical address of logical page is
provided by the log. Offset 0x20 provides the logical address
of the page if this bit is 1</para>
<para>Bit3-4 Reserved</para>
<para>Bit5-7 Type of UE machine check interrupt. The value of
the field is 0b000 for a permanent UE</para>
<para>0b000 = Platform cannot determine the processor unit that
detected the error</para>
<para>0b001 = Error detected by instruction fetch unit of the
processor</para>
<para>0b010 = Error during page table search for instruction
fetch</para>
<para>0b011 = Error detected by load/store unit of the
processor</para>
<para>0b100 = Error detected during page table search for
load/store type of instruction</para>
<para>All other values are reserved.</para>
</entry>
</row>
<row>
<entry>
<para>0x12</para>
</entry>
<entry>
<para>6</para>
</entry>
<entry>
<para>Reserved</para>
</entry>
</row>
<row>
<entry>
<para>0x18</para>
</entry>
<entry>
<para>8</para>
</entry>
<entry>
<para>64 bit effective address</para>
</entry>
</row>
<row>
<entry>
<para>0x20</para>
</entry>
<entry>
<para>8</para>
</entry>
<entry>
<para>64 bit logical address</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
<table frame="all" pgwide="1">
<title>SLB Error Information</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="10*" align="center" />
<colspec colname="c2" colwidth="10*" align="center" />
<colspec colname="c3" colwidth="80*" />
<thead>
<row>
<entry>
<para><emphasis role="bold">Offset</emphasis></para>
</entry>
<entry>
<para><emphasis role="bold">Length in Bytes</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Description</emphasis></para>
</entry>
</row>
</thead>
<tbody valign="middle" >
<row>
<entry>
<para>0x11</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>64 bit effective address is provided</para>
<para>Bit 0 = 0 64 bit effective address not provided by the
log</para>
<para>Bit 0 =1 64 bit effective address provided by the log.
Offset 0x18 provides the effective address if bit 0 is1</para>
<para>Bit1-5 Reserved</para>
<para>Bit 6-7 Type of SLB error</para>
<para>0b00 = Parity error in the SLB array or on the access
path to the SLB</para>
<para>0b01 = Multiple hit error. There are two or more entries
in the SLB that translate the same effective address</para>
<para>0b10 = Multiple hit error or parity error. Platform does
not have enough information to disambiguate between the two
cases.</para>
<para>All other values are reserved.</para>
</entry>
</row>
<row>
<entry>
<para>0x12</para>
</entry>
<entry>
<para>6</para>
</entry>
<entry>
<para>Reserved</para>
</entry>
</row>
<row>
<entry>
<para>0x18</para>
</entry>
<entry>
<para>8</para>
</entry>
<entry>
<para>64 bit effective address</para>
</entry>
</row>
<row>
<entry>
<para>0x20</para>
</entry>
<entry>
<para>8</para>
</entry>
<entry>
<para>Reserved</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
<table frame="all" pgwide="1">
<title>ERAT Error Information</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="10*" align="center" />
<colspec colname="c2" colwidth="10*" align="center" />
<colspec colname="c3" colwidth="80*" />
<thead>
<row>
<entry>
<para><emphasis role="bold">Offset</emphasis></para>
</entry>
<entry>
<para><emphasis role="bold">Length in Bytes</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Description</emphasis></para>
</entry>
</row>
</thead>
<tbody valign="middle" >
<row>
<entry>
<para>0x11</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>64 bit effective address is provided</para>
<para>Bit 0 = 0 64 bit effective address not provided by the
log</para>
<para>Bit 0 =1 64 bit effective address provided by the log.
Offset 0x18 provides the effective address if bit 0 is1</para>
<para>Bit 1-5 Reserved</para>
<para>Bit 6-7 Type of ERAT error</para>
<para>0b01 = Parity error in the ERAT array</para>
<para>0b10 = Multiple hit error. There are two or more entries
in the ERAT array that translate the same effective
address</para>
<para>0b11 = Multiple hit error or parity error in the ERAT
array. Platform does not have enough information to
disambiguate between the two cases.</para>
<para>All other values are reserved.</para>
</entry>
</row>
<row>
<entry>
<para>0x12</para>
</entry>
<entry>
<para>6</para>
</entry>
<entry>
<para>Reserved</para>
</entry>
</row>
<row>
<entry>
<para>0x18</para>
</entry>
<entry>
<para>8</para>
</entry>
<entry>
<para>64 bit effective address</para>
</entry>
</row>
<row>
<entry>
<para>0x20</para>
</entry>
<entry>
<para>8</para>
</entry>
<entry>
<para>Reserved</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
<table frame="all" pgwide="1">
<title>TLB Error Information</title>
<tgroup cols="3">
<colspec colname="c1" colwidth="10*" align="center" />
<colspec colname="c2" colwidth="10*" align="center" />
<colspec colname="c3" colwidth="80*" />
<thead>
<row>
<entry>
<para><emphasis role="bold">Offset</emphasis></para>
</entry>
<entry>
<para><emphasis role="bold">Length in Bytes</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Description</emphasis></para>
</entry>
</row>
</thead>
<tbody valign="middle" >
<row>
<entry>
<para>0x11</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry>
<para>64 bit effective address is provided</para>
<para>Bit 0 = 0 64 bit effective address not provided by the
log</para>
<para>Bit 0 =1 64 bit effective address provided by the log.
Offset 0x18 provides the effective address if bit 0 is1</para>
<para>Bit 1-5 Reserved</para>
<para>Bit 6-7 Type of TLB error</para>
<para>0b01 = Parity error in the TLB array</para>
<para>0b10 = Multiple hit error. There are two or more entries
in the TLB that translate the same effective address</para>
<para>0b11= Multiple hit error or parity error in the TLB
array. Platform does not have enough information to
disambiguate between the two cases.</para>
<para>All other values are reserved.</para>
</entry>
</row>
<row>
<entry>
<para>0x12</para>
</entry>
<entry>
<para>6</para>
</entry>
<entry>
<para>Reserved</para>
</entry>
</row>
<row>
<entry>
<para>0x18</para>
</entry>
<entry>
<para>8</para>
</entry>
<entry>
<para>64 bit effective address</para>
</entry>
</row>
<row>
<entry>
<para>0x20</para>
</entry>
<entry>
<para>8</para>
</entry>
<entry>
<para>Reserved</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
<para>For an error log that has the machine check interrupt section
filled out, the platform is not required to provide the date and time
stamp in the main-a section. The fields will be binary zeroes if the date
and time stamp is not provided.</para>
</section>
<section xml:id="error.hotplug">
<title>Platform Event Log Format, Hotplug Section</title>
<table frame="all" pgwide="1" xml:id="table.error.hotplug">
<title>Platform Error Event Log Format, Version 6, Hotplug Section</title>
<tgroup cols="4">
<colspec colname="c1" colwidth="10*" align="center" />
<colspec colname="c2" colwidth="10*" align="center" />
<colspec colname="c3" colwidth="5*" />
<colspec colname="c4" colwidth="75*" />
<thead valign="top">
<row>
<entry>
<para><emphasis role="bold">Offset</emphasis></para>
</entry>
<entry>
<para><emphasis role="bold">Length in Bytes</emphasis></para>
</entry>
<entry namest='c3' nameend='c4' align="center">
<para><emphasis role="bold">Description</emphasis></para>
</entry>
</row>
</thead>
<tbody valign="top">
<row>
<entry>
<para>0x00</para>
</entry>
<entry>
<para>2</para>
</entry>
<entry namest='c3' nameend='c4'>
<para>Section ID: A two-ASCII character field which uniquely
identifies the type of section. Value = “HP”.</para>
</entry>
</row>
<row>
<entry>
<para>0x02</para>
</entry>
<entry>
<para>2</para>
</entry>
<entry namest='c3' nameend='c4' >
<para>Section length: Length in bytes of the section, including
the section ID.</para>
</entry>
</row>
<row>
<entry>
<para>0x04</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry namest='c3' nameend='c4'>
<para>Section Version</para>
</entry>
</row>
<row>
<entry>
<para>0x05</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry namest='c3' nameend='c4'>
<para>Section subType</para>
</entry>
</row>
<row>
<entry>
<para>0x06</para>
</entry>
<entry>
<para>2</para>
</entry>
<entry namest='c3' nameend='c4'>
<para>Creator Component ID</para>
</entry>
</row>
<row>
<entry>
<para>0x08</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry namest='c3' nameend='c4'>
<para>Hotplug Resource Type.<?linebreak?>
0x01 = CPU<?linebreak?>
0x02 = Memory<?linebreak?>
0x03 = SLOT<?linebreak?>
0x04 = PHB<?linebreak?>
0x05 = PCI</para>
</entry>
</row>
<row>
<entry>
<para>0x09</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry namest='c3' nameend='c4'>
<para>Hotplug Action<?linebreak?>
0x01 = Add<?linebreak?>
0x02 = Remove</para>
</entry>
</row>
<row>
<entry>
<para>0x0A</para>
</entry>
<entry>
<para>1</para>
</entry>
<entry namest='c3' nameend='c4'>
<para>Hotplug Identifier Type<?linebreak?>
0x01 = drc name, resource is identified by drc name<?linebreak?>
0x02 = drc index, resource is identified by drc index<?linebreak?>
0x03 = drc count, number of resources to act upon<?linebreak?>
0x04 = drc count indexed, number of resources to act upon beginning at the specified drc index</para>
</entry>
</row>
<row>
<entry morerows='3'>
<para>0x0B</para>
</entry>
<entry morerows='3'>
<para>1</para>
</entry>
<entry align="center">
<para><emphasis role="bold">Bit</emphasis></para>
</entry>
<entry align="center">
<para><emphasis role="bold">Hotplug Event Capability Description</emphasis></para>
</entry>
</row>
<row>
<entry align="center">
<para>0</para>
</entry>
<entry>
<para>1 = Hotplug Token Present</para>
</entry>
</row>
<row>
<entry align="center">
<para>1</para>
</entry>
<entry>
<para>0 = Transactional Request: When using “drc count”or “drc count indexed”as the Hotplug
Identifier, the OS should take steps to verify the entirety of the request can be satisfied
before proceeding with the hotplug / unplug operations. If only a partial count can be
satisfied, the OS should ignore the entirety of the request. If the OS cannot determine
this beforehand, it should satisfy the hotplug / unplug request for as many of the
requested resources as possible, and attempt to revert to the original OS / DRC state.</para>
<para>1 = Non-transactional Request: When using “drc count”or “drc count indexed”as the
Hotplug Identifier, the OS should attempt to satisfy as much of the request as possible,
even if it cannot be satisfied for all the DRCs specified.</para>
</entry>
</row>
<row>
<entry align="center">
<para>2:7</para>
</entry>
<entry>
<para>Reserved</para>
</entry>
</row>
<row>
<entry>
<para>0x0C</para>
</entry>
<entry>
<para>Variable</para>
</entry>
<entry namest='c3' nameend='c4' >
<para>Hotplug Identifier<?linebreak?>
Variable length field depending on the Hotplug Identifier Type specified.
For drc name, this field is a null-terminated ASCII character field containing
the drc name of the resource to hotplug.</para>
<para>For drc index, this is 4 byte field with the drc index of the resource to hotplug.</para>
<para>For drc count, this is a 4 byte field with the number of resources to hotplug.</para>
<para>For drc count indexed, this is two 4 byte fields the first being the number of resources
to hotplug and the second being the drc index at which to start.</para>
</entry>
</row>
<row>
<entry>
<para>(Section Length - 4)</para>
</entry>
<entry>
<para>4</para>
</entry>
<entry namest='c3' nameend='c4' >
<para>Hotplug Token<?linebreak?>
Present only if corresponding Hotplug Event Capability bit is set.</para>
<para>Integer value that can be used in conjunction with other fields of the hotplug
event structure (Hotplug Indentifier, Hotplug Type, etc.) to allow OS to associate
hotplug event with the request which generated it for the purposes of providing
feedback to the requestor, such as debugging or error information.</para>
</entry>
</row>
</tbody>
</tgroup>
</table>
</section>
</section>
</section>