DEN0085_RAS_ACPI_1.0
DEN0085_RAS_ACPI_1.0
0
Platform Design Document
Non-confidential
Copyright © 2019, 2020 Arm Limited or its affiliates. All rights reserved.
Document number: DEN0085
ACPI for the Armv8 RAS Extensions
Contents
Release information 3
2 Introduction 8
Page 2 of 16 Copyright © 2019, 2020 Arm Limited or its affiliates. All rights reserved. DEN0085
Non-confidential 1.0
ACPI for the Armv8 RAS Extensions
Release information
Page 3 of 16 Copyright © 2019, 2020 Arm Limited or its affiliates. All rights reserved. DEN0085
Non-confidential 1.0
ACPI for the Armv8 RAS Extensions
This Licence is a legal agreement between you and Arm Limited (“Arm”) for the use of Arm’s intellectual
property (including, without limitation, any copyright) embodied in the document accompanying this
Licence (“Document”). Arm licenses its intellectual property in the Document to you on condition that
you agree to the terms of this Licence. By using or copying the Document you indicate that you agree to
be bound by the terms of this Licence.
“Subsidiary” means any company the majority of whose voting shares is now or hereafter owner or
controlled, directly or indirectly, by you. A company shall be a Subsidiary only for the period during which
such control exists.
This Document is NON-CONFIDENTIAL and any use by you and your Subsidiaries (“Licensee”) is
subject to the terms of this Licence between you and Arm.
Subject to the terms and conditions of this Licence, Arm hereby grants to Licensee under the intellectual
property in the Document owned or controlled by Arm, a non-exclusive, non-transferable, non-sub-
licensable, royalty-free, worldwide licence to:
(i) use and copy the Document for the purpose of designing and having designed products that
comply with the Document;
(ii) manufacture and have manufactured products which have been created under the licence
granted in (i) above; and
(iii) sell, supply and distribute products which have been created under the licence granted in (i)
above.
Licensee hereby agrees that the licences granted above shall not extend to any portion or
function of a product that is not itself compliant with part of the Document.
Except as expressly licensed above, Licensee acquires no right, title or interest in any Arm technology
or any intellectual property embodied therein.
This Licence shall remain in force until terminated by Licensee or by Arm. Without prejudice to any of its
other rights, if Licensee is in breach of any of the terms and conditions of this Licence then Arm may
terminate this Licence immediately upon giving written notice to Licensee. Licensee may terminate this
Licence at any time. Upon termination of this Licence by Licensee or by Arm, Licensee shall stop using
the Document and destroy all copies of the Document in its possession. Upon termination of this Licence,
all terms shall survive except for the licence grants.
Any breach of this Licence by a Subsidiary shall entitle Arm to terminate this Licence as if you were the
party in breach. Any termination of this Licence shall be effective in respect of all Subsidiaries. Any rights
Page 4 of 16 Copyright © 2019, 2020 Arm Limited or its affiliates. All rights reserved. DEN0085
Non-confidential 1.0
ACPI for the Armv8 RAS Extensions
granted to any Subsidiary hereunder shall automatically terminate upon such Subsidiary ceasing to be
a Subsidiary.
The Document consists solely of commercial items. Licensee shall be responsible for ensuring that any
use, duplication or disclosure of the Document complies fully with any relevant export laws and
regulations to assure that the Document or any portion thereof is not exported, directly or indirectly, in
violation of such export laws.
This Licence may be translated into other languages for convenience, and Licensee agrees that if there
is any conflict between the English version of this Licence and any translation, the terms of the English
version of this Licence shall prevail.
The Arm corporate logo and words marked with ® or ™ are registered trademarks or trademarks of Arm
Limited (or its subsidiaries) in the US and/or elsewhere. All rights reserved. Other brands and names
mentioned in this document may be the trademarks of their respective owners. No licence, express,
implied or otherwise, is granted to Licensee under this Licence, to use the Arm trade marks in connection
with the Document or any products based thereon. Visit Arm’s website at
https://www.arm.com/company/policies/trademarks for more information about Arm’s trademarks.
The validity, construction and performance of this Licence shall be governed by English Law.
Copyright © [2020] Arm Limited (or its affiliates). All rights reserved.
Page 5 of 16 Copyright © 2019, 2020 Arm Limited or its affiliates. All rights reserved. DEN0085
Non-confidential 1.0
ACPI for the Armv8 RAS Extensions
Term Meaning
ACPI Advanced Configuration and Power Interface
APIC Advanced Programmable Interrupt Controller. This is a generic term used in
ACPI for an interrupt controller.
ASL ACPI Source Language
GIC Arm Generic Interrupt Controller
GSIV Global System Interrupt Vector
IORT I/O Remapping Table
MADT Multiple APIC Description Table. The MADT describes an interrupt controller.
PE Processing Element
PPTT Processor Properties Topology Table
RAS Reliability, Availability and Serviceability
SMMU Arm System Memory Management Unit
SRAT System Resource Affinity Table
TLB Translation Lookaside Buffer
UID Unique Identifier
1.2 References
1.3 Feedback
Page 7 of 16 Copyright © 2019, 2020 Arm Limited or its affiliates. All rights reserved. DEN0085
Non-confidential 1.0
ACPI for the Armv8 RAS Extensions
2 Introduction
This specification provides details on ACPI [1] extensions that enable kernel-first handling of errors in a system
that support the Arm RAS extensions [2]. The specification covers Armv8.2+ RAS extensions [3] for PEs. The
specification also covers the RAS system architecture for non-PE system components.
Page 8 of 16 Copyright © 2019, 2020 Arm Limited or its affiliates. All rights reserved. DEN0085
Non-confidential 1.0
ACPI for the Armv8 RAS Extensions
The format of the AEST node structure, or simply AEST node, is described in Table 4.
Offset to Node Interface 4 8 Offset from the start of the node to the node
interface structure.
Offset to Node Interrupt 4 12 Offset from the start of the node to node
Array interrupt array.
Node Interrupt Array 4 16 Number of entries in the interrupt array.
size
Page 9 of 16 Copyright © 2019, 2020 Arm Limited or its affiliates. All rights reserved. DEN0085
Non-confidential 1.0
ACPI for the Armv8 RAS Extensions
AEST nodes provide a description of error nodes that are based on Arm v8.2+ RAS Architecture [2]. The
AEST node is composed of the following parts:
• A header that is described in Table 4.
• A set of common fields that is described in Table 4.
• A component-specific section that associates the AEST node to the component in the system that is
associated with the error node.
• A section that describes the interfaces that are associated with the error node.
• A section describing interrupts that are associated with the error node.
Each error node in a system is associated with a component. The AEST node that represents an error node
must provide information in its node-specific data section to describe both the error node and the component
that the error node is associated with. This information enables the OS to discover this association. The
following components are currently supported:
• Processor structures
• Memory controller structures
• SMMU structures
• Vendor-defined structures
• GIC structures
The tables that are described in these sections provide the structure for the node-specific data section of an
AEST node.
Processor structures describe error nodes that are related to the processor and its internal components.
Processor structures are described in Table 5. The ACPI Processor Properties Topology Table (PPTT) table
is used to identify processors whose error nodes are described in the processor structures.
Page 10 of 16 Copyright © 2019, 2020 Arm Limited or its affiliates. All rights reserved. DEN0085
Non-confidential 1.0
ACPI for the Armv8 RAS Extensions
Byte
Field Length Byte offset Description
Page 11 of 16 Copyright © 2019, 2020 Arm Limited or its affiliates. All rights reserved. DEN0085
Non-confidential 1.0
ACPI for the Armv8 RAS Extensions
The cache resource substructure describes a cache within the processor whose error node is being defined
in the parent processor structure. The cache substructure provides information for identification of the cache,
that cross-refers the OSPM to corresponding Type 1 (cache) structures in the PPTT.
Byte
Field Length Byte offset Description
This substructure is intended for describing error nodes associated with TLBs.
Byte
Field Length Byte offset Description
This substructure is intended for implementations that have a generic, processor-wide error node that caters
to multiple resources in the processor. The exact interpretation of the error record information is left to the OS
drivers that are specific to the processor. Software must consult the MIDR register of the current processor
implementation to understand which resources are being handled by the error node that is being described.
Page 12 of 16 Copyright © 2019, 2020 Arm Limited or its affiliates. All rights reserved. DEN0085
Non-confidential 1.0
ACPI for the Armv8 RAS Extensions
Byte Byte
Field Length Offset Description
SMMU [4] structures are described in Table 10. An SMMU implementation can have one or more error nodes
associated with it. The error node might be associated with a discrete internal component or unit within the
SMMU, for example the central control unit or a TLB. Some of these units, for example a TLB, might also be
associated with the Stream IDs that define a device or a set of devices that interface with the SMMU, for
example Root Complexes. Therefore, the ACPI description of the SMMU error node must include references
to the SMMU, and the device or devices that interface with the internal unit of the SMMU that is being
described in this node. The reference to the device or devices serves as a proxy for the SMMU internal unit or
component.
This structure only works with IORT tables with nonzero revision numbers.
IORT node reference 4 0 Reference to the IORT [5] table node that describes
this SMMU. The reference must match the Identifier
field of the SMMU node.
SMMU-specific data
Subcomponent reference 4 4 Reference to the IORT table node that is associated
with the sub-component within this SMMU. This
reference must point to a Root Complex or Named
Component node that is associated with this SMMU
subcomponent. If this subcomponent is a part of the
SMMU itself, then this field is a reference to the IORT
table node that describes the SMMU. The reference
must match the Identifier field of the IORT node.
Vendor-defined structures are described in Table 11. An OSPM might log these structures as raw data or
offer them to vendor-specific drivers where appropriate.
Page 13 of 16 Copyright © 2019, 2020 Arm Limited or its affiliates. All rights reserved. DEN0085
Non-confidential 1.0
ACPI for the Armv8 RAS Extensions
Byte Byte
Field Length Offset Description
GIC [6] error structures are described in Table 12. A GIC implementation might have one or more internal
error nodes on one or more internal interfaces.
Byte Byte
Field Length Offset Description
3.2 Interface
Nodes can have a System register (SR) or a memory mapped (MMIO) interface. The Interface structure
describes the interface that the node supports and the properties of that interface. The interface structure is
present at the interface offset field that is defined in the AEST node header. The AEST node header is
described in Table 4. Table 13 describes the format of the interface entries.
Byte Byte
Field Length Offset Description
Page 14 of 16 Copyright © 2019, 2020 Arm Limited or its affiliates. All rights reserved. DEN0085
Non-confidential 1.0
ACPI for the Armv8 RAS Extensions
Byte Byte
Field Length Offset Description
Error record -based 8 32 This bitmap indicates which of the error records within this
status reporting node support error status reporting through the ERRGSR
supported register.
Bit[n] of this field pertains to error record corresponding to
index n in the parent error group.
Bit[n] = 0: Error record at index n supports error status
reporting through ERRGSR.S.
Bit[n] = 1: Error record at index n does not support error
reporting through the ERRGSR.S bit. If this error record is
implemented, then it must be polled explicitly for error
events.
Clear MISCx after 1 1 Indicates whether the MISCx registers must be cleared after
logging their contents have been logged.
0b - Do not clear MISCx after logging.
1b - Clear MISCx after logging.
3.3 Interrupts
Page 15 of 16 Copyright © 2019, 2020 Arm Limited or its affiliates. All rights reserved. DEN0085
Non-confidential 1.0
ACPI for the Armv8 RAS Extensions
each, and these structures must have identical GSIV values.
Table 15 describes the interrupt structures that are used to represent node interrupts to the OS. These
structures form the entries of the node interrupt array. The array can be found through the interrupt array
offset that is defined in the AEST node header. The AEST node header is described in Table 4.
Page 16 of 16 Copyright © 2019, 2020 Arm Limited or its affiliates. All rights reserved. DEN0085
Non-confidential 1.0
ACPI for the Armv8 RAS Extensions
Byte Byte
Field Length Offset Description
Page 17 of 16 Copyright © 2019, 2020 Arm Limited or its affiliates. All rights reserved. DEN0085
Non-confidential 1.0