[edk2-devel] [edk2-platforms][PATCH 32/34] JadePkg: Add ACPI/APEI tables

Nhi Pham via groups.io nhi=os.amperecomputing.com at groups.io
Wed Dec 9 09:25:29 UTC 2020


From: Quan Nguyen <quan at os.amperecomputing.com>

This supports static HEST, EINJ and SDEI tables.

Signed-off-by: Nhi Pham <nhi at os.amperecomputing.com>
Signed-off-by: Quan Nguyen <quan at os.amperecomputing.com>
---
 Platform/Ampere/JadePkg/AcpiTables/AcpiTables.inf |   3 +
 Platform/Ampere/JadePkg/AcpiTables/Einj.asl       | 149 ++++++++++++
 Platform/Ampere/JadePkg/AcpiTables/Hest.asl       | 252 ++++++++++++++++++++
 Platform/Ampere/JadePkg/AcpiTables/Sdei.asl       |  17 ++
 4 files changed, 421 insertions(+)

diff --git a/Platform/Ampere/JadePkg/AcpiTables/AcpiTables.inf b/Platform/Ampere/JadePkg/AcpiTables/AcpiTables.inf
index 500371d3d2c2..ca64b45c2602 100644
--- a/Platform/Ampere/JadePkg/AcpiTables/AcpiTables.inf
+++ b/Platform/Ampere/JadePkg/AcpiTables/AcpiTables.inf
@@ -20,6 +20,9 @@ [Sources]
   Gtdt.aslc
   Fadt.aslc
   Spcr.aslc
+  Sdei.asl
+  Einj.asl
+  Hest.asl
 
 [Packages]
   ArmPkg/ArmPkg.dec
diff --git a/Platform/Ampere/JadePkg/AcpiTables/Einj.asl b/Platform/Ampere/JadePkg/AcpiTables/Einj.asl
new file mode 100755
index 000000000000..b5aeb8cf9e4a
--- /dev/null
+++ b/Platform/Ampere/JadePkg/AcpiTables/Einj.asl
@@ -0,0 +1,149 @@
+/** @file
+
+  Copyright (c) 2020, Ampere Computing LLC. All rights reserved.<BR>
+
+  SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+[0004]                          Signature : "EINJ"    [Error Injection table]
+[0004]                       Table Length : 00000130
+[0001]                           Revision : 01
+[0001]                           Checksum : 09
+[0006]                             Oem ID : "Ampere"
+[0008]                       Oem Table ID : "Altra   "
+[0004]                       Oem Revision : 00000001
+[0004]                    Asl Compiler ID : "INTL"
+[0004]              Asl Compiler Revision : 20100528
+
+[0004]            Injection Header Length : 00000030
+[0001]                              Flags : 00
+[0003]                           Reserved : 000000
+[0004]              Injection Entry Count : 00000008
+
+[0001]                             Action : 00 [Begin Operation]
+[0001]                        Instruction : 00 [Read Register]
+[0001]              Flags (decoded below) : 00
+                   Preserve Register Bits : 0
+[0001]                           Reserved : 00
+
+[0012]                    Register Region : [Generic Address Structure]
+[0001]                           Space ID : 00 [SystemMemory]
+[0001]                          Bit Width : 40
+[0001]                         Bit Offset : 00
+[0001]               Encoded Access Width : 04 [QWord Access:64]
+[0008]                            Address : 0000000088220000
+
+[0008]                              Value : 0000000000000000
+[0008]                               Mask : FFFFFFFFFFFFFFFF
+
+[0001]                             Action : 01 [Get Trigger Table]
+[0001]                        Instruction : 00 [Read Register]
+[0001]              Flags (decoded below) : 00
+                   Preserve Register Bits : 0
+[0001]                           Reserved : 00
+
+[0012]                    Register Region : [Generic Address Structure]
+[0001]                           Space ID : 00 [SystemMemory]
+[0001]                          Bit Width : 40
+[0001]                         Bit Offset : 00
+[0001]               Encoded Access Width : 04 [QWord Access:64]
+[0008]                            Address : 0000000088220040
+
+[0008]                              Value : 0000000000000000
+[0008]                               Mask : FFFFFFFFFFFFFFFF
+
+[0001]                             Action : 08 [Set Error Type With Address]
+[0001]                        Instruction : 02 [Write Register]
+[0001]              Flags (decoded below) : 01
+                   Preserve Register Bits : 1
+[0001]                           Reserved : 00
+
+[0012]                    Register Region : [Generic Address Structure]
+[0001]                           Space ID : 00 [SystemMemory]
+[0001]                          Bit Width : 20
+[0001]                         Bit Offset : 00
+[0001]               Encoded Access Width : 03 [DWord Access:32]
+[0008]                            Address : 0000000088221000
+
+[0008]                              Value : 00000000
+[0008]                               Mask : FFFFFFFF
+
+[0001]                             Action : 03 [Get Error Type]
+[0001]                        Instruction : 00 [Read Register]
+[0001]              Flags (decoded below) : 00
+                   Preserve Register Bits : 0
+[0001]                           Reserved : 00
+
+[0012]                    Register Region : [Generic Address Structure]
+[0001]                           Space ID : 00 [SystemMemory]
+[0001]                          Bit Width : 40
+[0001]                         Bit Offset : 00
+[0001]               Encoded Access Width : 04 [QWord Access:64]
+[0008]                            Address : 00000000882200c0
+
+[0008]                              Value : 0000000000000000
+[0008]                               Mask : FFFFFFFFFFFFFFFF
+
+[0001]                             Action : 04 [End Operation]
+[0001]                        Instruction : 03 [Write Register Value]
+[0001]              Flags (decoded below) : 01
+                   Preserve Register Bits : 1
+[0001]                           Reserved : 00
+
+[0012]                    Register Region : [Generic Address Structure]
+[0001]                           Space ID : 00 [SystemMemory]
+[0001]                          Bit Width : 40
+[0001]                         Bit Offset : 00
+[0001]               Encoded Access Width : 04 [QWord Access:64]
+[0008]                            Address : 0000000088220100
+
+[0008]                              Value : 0000000000000000
+[0008]                               Mask : FFFFFFFFFFFFFFFF
+
+[0001]                             Action : 05 [Execute Operation]
+[0001]                        Instruction : 03 [Write Register Value]
+[0001]              Flags (decoded below) : 01
+                   Preserve Register Bits : 1
+[0001]                           Reserved : 00
+
+[0012]                    Register Region : [Generic Address Structure]
+[0001]                           Space ID : 00 [SystemMemory]
+[0001]                          Bit Width : 20
+[0001]                         Bit Offset : 00
+[0001]               Encoded Access Width : 03 [DWord Access:32]
+[0008]                            Address : 0000100000543010
+
+[0008]                              Value : B1A00000
+[0008]                               Mask : FFFFFFFF
+
+[0001]                             Action : 06 [Check Busy Status]
+[0001]                        Instruction : 01 [Read Register Value]
+[0001]              Flags (decoded below) : 00
+                   Preserve Register Bits : 0
+[0001]                           Reserved : 00
+
+[0012]                    Register Region : [Generic Address Structure]
+[0001]                           Space ID : 00 [SystemMemory]
+[0001]                          Bit Width : 40
+[0001]                         Bit Offset : 00
+[0001]               Encoded Access Width : 04 [QWord Access:64]
+[0008]                            Address : 0000000088220140
+
+[0008]                              Value : 0000000000000000
+[0008]                               Mask : FFFFFFFFFFFFFFFF
+
+[0001]                             Action : 07 [Get Command Status]
+[0001]                        Instruction : 00 [Read Register]
+[0001]              Flags (decoded below) : 01
+                   Preserve Register Bits : 1
+[0001]                           Reserved : 00
+
+[0012]                    Register Region : [Generic Address Structure]
+[0001]                           Space ID : 00 [SystemMemory]
+[0001]                          Bit Width : 40
+[0001]                         Bit Offset : 00
+[0001]               Encoded Access Width : 04 [QWord Access:64]
+[0008]                            Address : 0000000088220180
+
+[0008]                              Value : 0000000000000000
+[0008]                               Mask : FFFFFFFFFFFFFFFF
diff --git a/Platform/Ampere/JadePkg/AcpiTables/Hest.asl b/Platform/Ampere/JadePkg/AcpiTables/Hest.asl
new file mode 100644
index 000000000000..bdc02bc2ec11
--- /dev/null
+++ b/Platform/Ampere/JadePkg/AcpiTables/Hest.asl
@@ -0,0 +1,252 @@
+/** @file
+
+  Copyright (c) 2020, Ampere Computing LLC. All rights reserved.<BR>
+
+  SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+[0004]                          Signature : "HEST"    [Hardware Error Source Table]
+[0004]                       Table Length : 00000250
+[0001]                           Revision : 01
+[0001]                           Checksum : 20
+[0006]                             Oem ID : "Ampere"
+[0008]                       Oem Table ID : "Altra   "
+[0004]                       Oem Revision : 00000001
+[0004]                    Asl Compiler ID : "INTL"
+[0004]              Asl Compiler Revision : 20100528
+
+[0004]                 Error Source Count : 00000006
+
+[0002]                      Subtable Type : 000A [Generic Hardware Error Source v2]
+[0002]                          Source Id : 0000
+[0002]                  Related Source Id : FFFF
+[0001]                           Reserved : 00
+[0001]                            Enabled : 01
+[0004]             Records To Preallocate : 00000001
+[0004]            Max Sections Per Record : 00000001
+[0004]                Max Raw Data Length : 00001000
+
+[0012]               Error Status Address : [Generic Address Structure]
+[0001]                           Space ID : 00 [SystemMemory]
+[0001]                          Bit Width : 40
+[0001]                         Bit Offset : 00
+[0001]               Encoded Access Width : 04 [QWord Access:64]
+[0008]                            Address : 0000000088200000
+
+[0028]                             Notify : [Hardware Error Notification Structure]
+[0001]                        Notify Type : 03 [SCI]
+[0001]                      Notify Length : 1C
+[0002]         Configuration Write Enable : 0000
+[0004]                       PollInterval : 00000BB8
+[0004]                             Vector : 00000000
+[0004]            Polling Threshold Value : 00000000
+[0004]           Polling Threshold Window : 00000000
+[0004]              Error Threshold Value : 00000000
+[0004]             Error Threshold Window : 00000000
+
+[0004]          Error Status Block Length : 00001000
+
+[0012]                  Read Ack Register : [Generic Address Structure v2]
+[0001]                           Space ID : 00 [SystemMemory]
+[0001]                          Bit Width : 40
+[0001]                         Bit Offset : 00
+[0001]               Encoded Access Width : 04 [QWord Access:64]
+[0008]                            Address : 0000100000543010
+
+[0008]                  Read Ack Preserve : 00000000
+[0008]                     Read Ack Write : B1D00000
+
+[0002]                      Subtable Type : 000A [Generic Hardware Error Source v2]
+[0002]                          Source Id : 0001
+[0002]                  Related Source Id : FFFF
+[0001]                           Reserved : 00
+[0001]                            Enabled : 01
+[0004]             Records To Preallocate : 00000001
+[0004]            Max Sections Per Record : 00000001
+[0004]                Max Raw Data Length : 00001000
+
+[0012]               Error Status Address : [Generic Address Structure]
+[0001]                           Space ID : 00 [SystemMemory]
+[0001]                          Bit Width : 40
+[0001]                         Bit Offset : 00
+[0001]               Encoded Access Width : 04 [QWord Access:64]
+[0008]                            Address : 0000000088200008
+
+[0028]                             Notify : [Hardware Error Notification Structure]
+[0001]                        Notify Type : 00 [Polled]
+[0001]                      Notify Length : 1C
+[0002]         Configuration Write Enable : 0000
+[0004]                       PollInterval : 00000BB8
+[0004]                             Vector : 00000000
+[0004]            Polling Threshold Value : 00000000
+[0004]           Polling Threshold Window : 00000000
+[0004]              Error Threshold Value : 00000000
+[0004]             Error Threshold Window : 00000000
+
+[0004]          Error Status Block Length : 00001000
+
+[0012]                  Read Ack Register : [Generic Address Structure v2]
+[0001]                           Space ID : 00 [SystemMemory]
+[0001]                          Bit Width : 40
+[0001]                         Bit Offset : 00
+[0001]               Encoded Access Width : 04 [QWord Access:64]
+[0008]                            Address : 0000100000543010
+
+[0008]                  Read Ack Preserve : 00000000
+[0008]                     Read Ack Write : B1C00000
+
+[0002]                      Subtable Type : 000A [Generic Hardware Error Source v2]
+[0002]                          Source Id : 0002
+[0002]                  Related Source Id : FFFF
+[0001]                           Reserved : 00
+[0001]                            Enabled : 01
+[0004]             Records To Preallocate : 00000001
+[0004]            Max Sections Per Record : 00000001
+[0004]                Max Raw Data Length : 00001000
+
+[0012]               Error Status Address : [Generic Address Structure]
+[0001]                           Space ID : 00 [SystemMemory]
+[0001]                          Bit Width : 40
+[0001]                         Bit Offset : 00
+[0001]               Encoded Access Width : 04 [QWord Access:64]
+[0008]                            Address : 0000000088200010
+
+[0028]                             Notify : [Hardware Error Notification Structure]
+[0001]                        Notify Type : 03 [SCI]
+[0001]                      Notify Length : 1C
+[0002]         Configuration Write Enable : 0000
+[0004]                       PollInterval : 00000BB8
+[0004]                             Vector : 00000000
+[0004]            Polling Threshold Value : 00000000
+[0004]           Polling Threshold Window : 00000000
+[0004]              Error Threshold Value : 00000000
+[0004]             Error Threshold Window : 00000000
+
+[0004]          Error Status Block Length : 00001000
+
+[0012]                  Read Ack Register : [Generic Address Structure v2]
+[0001]                           Space ID : 00 [SystemMemory]
+[0001]                          Bit Width : 40
+[0001]                         Bit Offset : 00
+[0001]               Encoded Access Width : 04 [QWord Access:64]
+[0008]                            Address : 0000100000543010
+
+[0008]                  Read Ack Preserve : 00000000
+[0008]                     Read Ack Write : B1F00000
+
+[0002]                      Subtable Type : 000A [Generic Hardware Error Source v2]
+[0002]                          Source Id : 0003
+[0002]                  Related Source Id : FFFF
+[0001]                           Reserved : 00
+[0001]                            Enabled : 01
+[0004]             Records To Preallocate : 00000001
+[0004]            Max Sections Per Record : 00000001
+[0004]                Max Raw Data Length : 00001000
+
+[0012]               Error Status Address : [Generic Address Structure]
+[0001]                           Space ID : 00 [SystemMemory]
+[0001]                          Bit Width : 40
+[0001]                         Bit Offset : 00
+[0001]               Encoded Access Width : 04 [QWord Access:64]
+[0008]                            Address : 0000000088200018
+
+[0028]                             Notify : [Hardware Error Notification Structure]
+[0001]                        Notify Type : 03 [SCI]
+[0001]                      Notify Length : 1C
+[0002]         Configuration Write Enable : 0000
+[0004]                       PollInterval : 00000BB8
+[0004]                             Vector : 00000000
+[0004]            Polling Threshold Value : 00000000
+[0004]           Polling Threshold Window : 00000000
+[0004]              Error Threshold Value : 00000000
+[0004]             Error Threshold Window : 00000000
+
+[0004]          Error Status Block Length : 00001000
+
+[0012]                  Read Ack Register : [Generic Address Structure v2]
+[0001]                           Space ID : 00 [SystemMemory]
+[0001]                          Bit Width : 40
+[0001]                         Bit Offset : 00
+[0001]               Encoded Access Width : 04 [QWord Access:64]
+[0008]                            Address : 0000500000543010
+
+[0008]                  Read Ack Preserve : 00000000
+[0008]                     Read Ack Write : B1D00000
+
+[0002]                      Subtable Type : 000A [Generic Hardware Error Source v2]
+[0002]                          Source Id : 0004
+[0002]                  Related Source Id : FFFF
+[0001]                           Reserved : 00
+[0001]                            Enabled : 01
+[0004]             Records To Preallocate : 00000001
+[0004]            Max Sections Per Record : 00000001
+[0004]                Max Raw Data Length : 00001000
+
+[0012]               Error Status Address : [Generic Address Structure]
+[0001]                           Space ID : 00 [SystemMemory]
+[0001]                          Bit Width : 40
+[0001]                         Bit Offset : 00
+[0001]               Encoded Access Width : 04 [QWord Access:64]
+[0008]                            Address : 0000000088200020
+
+[0028]                             Notify : [Hardware Error Notification Structure]
+[0001]                        Notify Type : 00 [Polled]
+[0001]                      Notify Length : 1C
+[0002]         Configuration Write Enable : 0000
+[0004]                       PollInterval : 00000BB8
+[0004]                             Vector : 00000000
+[0004]            Polling Threshold Value : 00000000
+[0004]           Polling Threshold Window : 00000000
+[0004]              Error Threshold Value : 00000000
+[0004]             Error Threshold Window : 00000000
+
+[0004]          Error Status Block Length : 00001000
+
+[0012]                  Read Ack Register : [Generic Address Structure v2]
+[0001]                           Space ID : 00 [SystemMemory]
+[0001]                          Bit Width : 40
+[0001]                         Bit Offset : 00
+[0001]               Encoded Access Width : 04 [QWord Access:64]
+[0008]                            Address : 0000500000543010
+
+[0008]                  Read Ack Preserve : 00000000
+[0008]                     Read Ack Write : B1C00000
+
+[0002]                      Subtable Type : 000A [Generic Hardware Error Source v2]
+[0002]                          Source Id : 0005
+[0002]                  Related Source Id : FFFF
+[0001]                           Reserved : 00
+[0001]                            Enabled : 01
+[0004]             Records To Preallocate : 00000001
+[0004]            Max Sections Per Record : 00000001
+[0004]                Max Raw Data Length : 00001000
+
+[0012]               Error Status Address : [Generic Address Structure]
+[0001]                           Space ID : 00 [SystemMemory]
+[0001]                          Bit Width : 40
+[0001]                         Bit Offset : 00
+[0001]               Encoded Access Width : 04 [QWord Access:64]
+[0008]                            Address : 0000000088200028
+
+[0028]                             Notify : [Hardware Error Notification Structure]
+[0001]                        Notify Type : 03 [SCI]
+[0001]                      Notify Length : 1C
+[0002]         Configuration Write Enable : 0000
+[0004]                       PollInterval : 00000BB8
+[0004]                             Vector : 00000000
+[0004]            Polling Threshold Value : 00000000
+[0004]           Polling Threshold Window : 00000000
+[0004]              Error Threshold Value : 00000000
+[0004]             Error Threshold Window : 00000000
+
+[0004]          Error Status Block Length : 00001000
+
+[0012]                  Read Ack Register : [Generic Address Structure v2]
+[0001]                           Space ID : 00 [SystemMemory]
+[0001]                          Bit Width : 40
+[0001]                         Bit Offset : 00
+[0001]               Encoded Access Width : 04 [QWord Access:64]
+[0008]                            Address : 0000500000543010
+
+[0008]                  Read Ack Preserve : 00000000
+[0008]                     Read Ack Write : B1F00000
diff --git a/Platform/Ampere/JadePkg/AcpiTables/Sdei.asl b/Platform/Ampere/JadePkg/AcpiTables/Sdei.asl
new file mode 100644
index 000000000000..64f26e1851ec
--- /dev/null
+++ b/Platform/Ampere/JadePkg/AcpiTables/Sdei.asl
@@ -0,0 +1,17 @@
+/** @file
+
+  Copyright (c) 2020, Ampere Computing LLC. All rights reserved.<BR>
+
+  SPDX-License-Identifier: BSD-2-Clause-Patent
+
+**/
+
+[0004]                          Signature : "SDEI"
+[0004]                       Table Length : 0000003E
+[0001]                           Revision : 01
+[0001]                           Checksum : 59
+[0006]                             Oem ID : "Ampere"
+[0008]                       Oem Table ID : "Altra "
+[0004]                       Oem Revision : 00000001
+[0004]                    Asl Compiler ID : "INTL"
+[0004]              Asl Compiler Revision : 20160930
-- 
2.17.1



-=-=-=-=-=-=-=-=-=-=-=-
Groups.io Links: You receive all messages sent to this group.
View/Reply Online (#68532): https://edk2.groups.io/g/devel/message/68532
Mute This Topic: https://groups.io/mt/78825519/1813853
Group Owner: devel+owner at edk2.groups.io
Unsubscribe: https://edk2.groups.io/g/devel/unsub [edk2-devel-archive at redhat.com]
-=-=-=-=-=-=-=-=-=-=-=-





More information about the edk2-devel-archive mailing list