<?xml version="1.0" encoding="UTF-8"?>
<!--
  Copyright (c) 2016 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.

-->
<book 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"
  status="draft"
  xml:id="bk_main">

    <!-- TODO: When ready to publish document, remove the 'status="draft"' statement from the book object above. -->

    <title>Error Handling</title>
    <subtitle>Linux on Power Architecture Reference</subtitle>

    <info>
    <author>
      <personname>
          <surname>System Software Work Group</surname>
      </personname>
      <email>syssw-chair@openpowerfoundation.org</email>
      <affiliation>
          <orgname>OpenPOWER Foundation</orgname>
      </affiliation>
    </author>
    <copyright>
      <year>2016, 2018, 2020</year>
      <holder>OpenPOWER Foundation</holder>
    </copyright>
    <!-- TODO: Set the correct document releaseinfo -->
    <releaseinfo>Revision 0.5_pre5</releaseinfo>
    <productname>OpenPOWER</productname>
    <pubdate/>

    <legalnotice role="apache2">

      <annotation>
          <remark>Copyright details are filled in by the template.</remark>
      </annotation>
    </legalnotice>

    <!-- TODO: Update the mailing list information in second paragraph. -->
    <abstract>
      <para>The purpose of this document is to provide firmware and software
      architectural details associated with Error Recovery and Logging on OpenPOWER Systems.
      The base content for this document were contributed to the OpenPOWER Foundation in the
      <citetitle>IBM Linux on Power Architecture Platform Reference (LoPAPR) Draft</citetitle>
      document which detailed Linux running on PowerVM. While this information is not always
      immediately applicable to new OpenPOWER modes of bare metal or KVM, many of the
      concepts and interfaces remain in some form.  Until such time as the document addresses
      these new OpenPOWER modes and components, it will remain versioned less than 1.0.  It should
      also be noted that the original document had numerous contributors inside IBM.</para>

      <para>This document is a Standard Track, Work Group Specification work product owned by the
      System Software Workgroup and handled in compliance with the requirements outlined in the
      <citetitle>OpenPOWER Foundation Work Group (WG) Process</citetitle> document.  It was
      created using the <citetitle>Master Template Guide</citetitle> version 0.9.5.  Comments,
      questions, etc. can be submitted to the public mailing list  for this document at
      <link xlink:href="http://tbd.openpowerfoundation.org">TBD</link>.</para>
    </abstract>

    <revhistory>
      <!-- TODO: Update as new revisions created -->
      <revision>
        <date>2020-04-06</date>
        <revdescription>
          <itemizedlist spacing="compact">
            <listitem>
              <para>Revision 0.5_pre5 - Updates to include latest PAPR ACRs (2.9) as follows:</para>
              <itemizedlist spacing="compact">
                <listitem>
                  <para>Add H_VIOCTL subfunctions for VNIC failover support</para>
                </listitem>
                <listitem>
                  <para>Add H_VIOCTL subfunction for virtual ethernet MAC scan functionality</para>
                </listitem>
                <listitem>
                  <para>Add H_VIOCTL subfunctions for virtual scsi and FC mobility preparation functionality</para>
                </listitem>
                <listitem>
                  <para>ibm,current-associativity-domain property</para>
                </listitem>
                <listitem>
                  <para>HPT resizing option - KVM only</para>
                </listitem>
                <listitem>
                  <para>Add Coherent Platform Facilities (CAPI)</para>
                </listitem>
                <listitem>
                  <para>XIVE Exploitation</para>
                </listitem>
                <listitem>
                  <para>Add 'OCC online/offline' events to 'IE' error log subsection</para>
                </listitem>
                <listitem>
                  <para>LPM Redundancy Phase II: Redundancy</para>
                </listitem>
                <listitem>
                  <para>Add optional sub-queue support to VFC on P9 and newer</para>
                </listitem>
                <listitem>
                  <para>Increase max num-entries for H_SEND_SUB_CRQ_INDIRECT to 128</para>
                </listitem>
                <listitem>
                  <para>Add Virtual Serial Multiplex adapter interfaces</para>
                </listitem>
                <listitem>
                  <para>Maximum size of Dispatch Trace Log Buffer</para>
                </listitem>
                <listitem>
                  <para>Eliminate requirement for clearing TCP checksum field for ILLAN checksum calculation</para>
                </listitem>
                <listitem>
                  <para>Continued Extension of H_Send_Logical_LAN for large send packets</para>
                </listitem>
                <listitem>
                  <para>Add LPM Capablity keyword to RTAS AIX Support system parameter</para>
                </listitem>
                <listitem>
                  <para>XIVE Exploitation addition: Add ESB Reset Status to RTAS ibm,read-slot-reset-state2</para>
                </listitem>
                <listitem>
                  <para>Add NVDIMM Protection and Encryption State system parameters</para>
                </listitem>
                <listitem>
                  <para>Change or Remove 0x9 and 0xA event subtypes for 'IE' error log subsection</para>
                </listitem>
              </itemizedlist>
            </listitem>
            <listitem>
              <para>Additional, post PAPR 2.9 ACRs as follows:</para>
              <itemizedlist spacing="compact">
                <listitem>
                  <para>Reserve a range of hcalls to to support Ultravisor</para>
                </listitem>
                <listitem>
                  <para>Add New CAS Bit For SRIOV Virtual Function (VF) Dynamic DMA Window (DDW) Support</para>
                </listitem>
                <listitem>
                  <para>Updates to support vTPM 2.0</para>
                </listitem>
                <listitem>
                  <para>Update XIVE Legacy hcalls to add H_Function</para>
                </listitem>
                <listitem>
                  <para>Add NVDIMM Secure Erase Command system parameter</para>
                </listitem>
                <listitem>
                  <para>Update H_REGISTER_VPA to add H_STATE return code for VPA and SLB shadow buffer.</para>
                </listitem>
                <listitem>
                  <para>Extend Firmware Assisted Dump for ISA Version 3.0</para>
                </listitem>
                <listitem>
                  <para>Add a new return code, H_NOT_AVAILABLE, to start-cpu rtas call</para>
                </listitem>
                <listitem>
                  <para>Document already-implemented NVRAM variables</para>
                </listitem>
                <listitem>
                  <para>Update ibm,dynamic-memory-vN flags to include a "Hotplugged Memory" flag</para>
                </listitem>
              </itemizedlist>
            </listitem>
          </itemizedlist>
        </revdescription>
      </revision>
      <revision>
          <date>2019-01-08</date>
          <revdescription>
            <itemizedlist spacing="compact">
              <listitem>
                <para>Revision 0.5_pre4 - Update document type to Work Group Note.  Final review ready.</para>
              </listitem>
            </itemizedlist>
          </revdescription>
      </revision>
      <revision>
          <date>2018-07-30</date>
          <revdescription>
            <itemizedlist spacing="compact">
              <listitem>
                <para>Revision 0.5_pre3 - Updates to documentation in preparation for System SW WG review:</para>
                <orderedlist spacing="compact">
                  <listitem>
                    <para>Reset document version to 0.5</para>
                  </listitem>
                  <listitem>
                    <para>Improved Abstract</para>
                  </listitem>
                </orderedlist>
              </listitem>
            </itemizedlist>
          </revdescription>
      </revision>
      <revision>
          <date>2017-10-11</date>
          <revdescription>
            <itemizedlist spacing="compact">
              <listitem>
                <para>Revision 2.0_pre2 - Updates to include latest PAPR ACRs (2.8) as follows:</para>
                <itemizedlist spacing="compact">
                  <listitem>
                    <para>ISA 2.07 privileged doorbell extensions (9/16/2012)</para>
                  </listitem>
                  <listitem>
                    <para>POWER ISA Name Change Category Vector.XOR to Vector.CRYPTO (11/4/2012)</para>
                  </listitem>
                  <listitem>
                    <para>Enable Multiple Redirected RDMA mappings per page (3/5/2013)</para>
                  </listitem>
                  <listitem>
                    <para>Add Block Invalidate Option (3/5/2013)</para>
                  </listitem>
                  <listitem>
                    <para>Implementation Dependent Optimizations (3/13/2013)</para>
                  </listitem>
                  <listitem>
                    <para>System Firmware Service Entitlement Date (Warranty Date) Check (4/3/2013)</para>
                  </listitem>
                  <listitem>
                    <para>New Function for ibm,change-msi to specify 32 bit MSI (5/14/2013)</para>
                  </listitem>
                  <listitem>
                    <para>Remove Client-Architecture-Support bit for UUID option (4/16/2013)</para>
                  </listitem>
                  <listitem>
                    <para>AddClient Architecture Support bit for RTAS ibm,change-msi (5/28/2013)</para>
                  </listitem>
                  <listitem>
                    <para>Add VNIC Server (5/24/2014)</para>
                  </listitem>
                  <listitem>
                    <para>VPA changes for P8 (EBB) (5/24/2013)</para>
                  </listitem>
                  <listitem>
                    <para>Add an hcall to clean up the entire MMU hashtable (11/20/2013)</para>
                  </listitem>
                  <listitem>
                    <para>Add LPCR[ILE] support to H_SET_MODE (5/31/2013)</para>
                  </listitem>
                  <listitem>
                    <para>New Root Node Properties (1/12/2016)</para>
                  </listitem>
                  <listitem>
                    <para>Extended Firmware Assisted Dump for P8 Registers (1/24/2014)</para>
                  </listitem>
                  <listitem>
                    <para>Sufficient H_COP_OP output buffer (6/21/2014)</para>
                  </listitem>
                  <listitem>
                    <para>Extend H_SEND_LOGICAL_LAN for large send packets (6/29/2014)</para>
                  </listitem>
                  <listitem>
                    <para>Extend H_GET_MPP_X reporting coalesced pages (8/24/2014)</para>
                  </listitem>
                  <listitem>
                    <para>Update ibm,pcie-link-speed-stats property to support PCIe 3.0 link speeds (6/12/2015)</para>
                  </listitem>
                  <listitem>
                    <para>Extend ibm,get-system-parameters RTAS to report Energy Management Tuning Parameters (3/18/2015)</para>
                  </listitem>
                  <listitem>
                    <para>Additional System Parameters related to mgmt of FW Service Entitlement Warranty period (6/22/2015)</para>
                  </listitem>
                  <listitem>
                    <para>Additional System Parameter to read LPAR Name string (10/7/2015)</para>
                  </listitem>
                  <listitem>
                    <para>Redesign of properties for DRC information and dynamic memory (7/23/2015)</para>
                  </listitem>
                  <listitem>
                    <para>Add additional logical loction code sections (3/4/2016)</para>
                  </listitem>
                  <listitem>
                    <para>Add ibm,vnic-client-mac to support vNIC failover (2/29/2016)</para>
                  </listitem>
                  <listitem>
                    <para>hcall for registering the process table (3/21/2016)</para>
                  </listitem>
                  <listitem>
                    <para>New device tree property for UUID (3/21/2016)</para>
                  </listitem>
                  <listitem>
                    <para>Changes for Hotplug RTAS Events (10/24/2016)</para>
                  </listitem>
                  <listitem>
                    <para>Support 64-bit PE TCEs in ibm,query-pe-dma-window (7/14/2016)</para>
                  </listitem>
                </itemizedlist>
              </listitem>
            </itemizedlist>
          </revdescription>
      </revision>
      <revision>
          <date>2016-05-04</date>
          <revdescription>
            <itemizedlist spacing="compact">
              <listitem>
                <para>Revision 2.0_pre1 - initial conversion from IBM document.  Extracted from
                Linux on Power Architecture Platform Reference (LoPAPR) version 1.1 dated March 24,
                2016 -- Section 7.3.3 ([RTAS] Error and Event Reporting), Chapter 10 (Error and
                Event Notification), Sections 1-3 of Chapter 16 (Service Indicators), and
                Appendix L (When to use: Fault vs. Error Log Indicators).</para>
              </listitem>
            </itemizedlist>
          </revdescription>
      </revision>
     </revhistory>
    </info>

  <!-- The ch_preface.xml file is required by all documents -->
  <xi:include href="../../Docs-Master/common/ch_preface.xml"/>
  <xi:include href="../common/ch_LoPAR_preface.xml"/>

  <!-- Chapter heading files  -->
  <xi:include href="ch_notifications.xml"/>
  <xi:include href="ch_rtas_error_classes.xml"/>
  <xi:include href="ch_rtas_error_reporting.xml"/>
  <xi:include href="ch_error_codes.xml"/>

  <!-- Document specific appendices -->
  <xi:include href="app_service_indicators.xml"/>
  <xi:include href="app_fault_v_errorlog.xml"/>
  <xi:include href="app_bibliography.xml"/>
  <xi:include href="app_glossary.xml"/>

  <!-- The app_foundation.xml appendix file is required by all documents. -->
  <xi:include href="../../Docs-Master/common/app_foundation.xml"/>

  <xi:include href="../common/app_EOD.xml"/>

</book>
