All the mail mirrored from lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/2] ACPICA: AEST: Support AEST V2
@ 2024-03-27  3:44 Ruidong Tian
  2024-03-27  3:44 ` [PATCH 1/2] ACPICA: AEST: Fix coding style at struct definition Ruidong Tian
  2024-03-27  3:45 ` [PATCH 2/2] ACPICA: AEST: Add support for the AEST V2 table Ruidong Tian
  0 siblings, 2 replies; 3+ messages in thread
From: Ruidong Tian @ 2024-03-27  3:44 UTC (permalink / raw
  To: robert.moore, rafael.j.wysocki, lenb
  Cc: linux-acpi, acpica-devel, linux-kernel, tianruidond, Ruidong Tian

AEST V2 was published[1], add V2 support based on AEST V1.

Fix some code styling issues as well.

[1]: https://developer.arm.com/documentation/den0085/latest/

Ruidong Tian (2):
  ACPICA: AEST: Fix coding style at struct definition
  ACPICA: AEST: Add support for the AEST V2 table

 include/acpi/actbl2.h | 132 +++++++++++++++++++++++++++++++-----------
 1 file changed, 99 insertions(+), 33 deletions(-)

-- 
2.33.1


^ permalink raw reply	[flat|nested] 3+ messages in thread

* [PATCH 1/2] ACPICA: AEST: Fix coding style at struct definition
  2024-03-27  3:44 [PATCH 0/2] ACPICA: AEST: Support AEST V2 Ruidong Tian
@ 2024-03-27  3:44 ` Ruidong Tian
  2024-03-27  3:45 ` [PATCH 2/2] ACPICA: AEST: Add support for the AEST V2 table Ruidong Tian
  1 sibling, 0 replies; 3+ messages in thread
From: Ruidong Tian @ 2024-03-27  3:44 UTC (permalink / raw
  To: robert.moore, rafael.j.wysocki, lenb
  Cc: linux-acpi, acpica-devel, linux-kernel, tianruidond, Ruidong Tian

Delete unnecessary blank lines and typedef to follow Kernel coding
style.

Signed-off-by: Ruidong Tian <tianruidong@linux.alibaba.com>
---
 include/acpi/actbl2.h | 50 +++++++++++++++++--------------------------
 1 file changed, 20 insertions(+), 30 deletions(-)

diff --git a/include/acpi/actbl2.h b/include/acpi/actbl2.h
index 9775384d61c6..c32e97855031 100644
--- a/include/acpi/actbl2.h
+++ b/include/acpi/actbl2.h
@@ -116,15 +116,14 @@ struct acpi_aest_hdr {
 
 /* 0: Processor Error */
 
-typedef struct acpi_aest_processor {
+struct acpi_aest_processor {
 	u32 processor_id;
 	u8 resource_type;
 	u8 reserved;
 	u8 flags;
 	u8 revision;
 	u64 processor_affinity;
-
-} acpi_aest_processor;
+};
 
 /* Values for resource_type above, related structs below */
 
@@ -135,11 +134,10 @@ typedef struct acpi_aest_processor {
 
 /* 0R: Processor Cache Resource Substructure */
 
-typedef struct acpi_aest_processor_cache {
+struct acpi_aest_processor_cache {
 	u32 cache_reference;
 	u32 reserved;
-
-} acpi_aest_processor_cache;
+};
 
 /* Values for cache_type above */
 
@@ -150,50 +148,44 @@ typedef struct acpi_aest_processor_cache {
 
 /* 1R: Processor TLB Resource Substructure */
 
-typedef struct acpi_aest_processor_tlb {
+struct acpi_aest_processor_tlb {
 	u32 tlb_level;
 	u32 reserved;
-
-} acpi_aest_processor_tlb;
+};
 
 /* 2R: Processor Generic Resource Substructure */
 
-typedef struct acpi_aest_processor_generic {
+struct acpi_aest_processor_generic {
 	u32 resource;
-
-} acpi_aest_processor_generic;
+};
 
 /* 1: Memory Error */
 
-typedef struct acpi_aest_memory {
+struct acpi_aest_memory {
 	u32 srat_proximity_domain;
-
-} acpi_aest_memory;
+};
 
 /* 2: Smmu Error */
 
-typedef struct acpi_aest_smmu {
+struct acpi_aest_smmu {
 	u32 iort_node_reference;
 	u32 subcomponent_reference;
-
-} acpi_aest_smmu;
+};
 
 /* 3: Vendor Defined */
 
-typedef struct acpi_aest_vendor {
+struct acpi_aest_vendor {
 	u32 acpi_hid;
 	u32 acpi_uid;
 	u8 vendor_specific_data[16];
-
-} acpi_aest_vendor;
+};
 
 /* 4: Gic Error */
 
-typedef struct acpi_aest_gic {
+struct acpi_aest_gic {
 	u32 interface_type;
 	u32 instance_id;
-
-} acpi_aest_gic;
+};
 
 /* Values for interface_type above */
 
@@ -205,7 +197,7 @@ typedef struct acpi_aest_gic {
 
 /* Node Interface Structure */
 
-typedef struct acpi_aest_node_interface {
+struct acpi_aest_node_interface {
 	u8 type;
 	u8 reserved[3];
 	u32 flags;
@@ -215,8 +207,7 @@ typedef struct acpi_aest_node_interface {
 	u64 error_record_implemented;
 	u64 error_status_reporting;
 	u64 addressing_mode;
-
-} acpi_aest_node_interface;
+};
 
 /* Values for Type field above */
 
@@ -226,15 +217,14 @@ typedef struct acpi_aest_node_interface {
 
 /* Node Interrupt Structure */
 
-typedef struct acpi_aest_node_interrupt {
+struct acpi_aest_node_interrupt {
 	u8 type;
 	u8 reserved[2];
 	u8 flags;
 	u32 gsiv;
 	u8 iort_id;
 	u8 reserved1[3];
-
-} acpi_aest_node_interrupt;
+};
 
 /* Values for Type field above */
 
-- 
2.33.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [PATCH 2/2] ACPICA: AEST: Add support for the AEST V2 table
  2024-03-27  3:44 [PATCH 0/2] ACPICA: AEST: Support AEST V2 Ruidong Tian
  2024-03-27  3:44 ` [PATCH 1/2] ACPICA: AEST: Fix coding style at struct definition Ruidong Tian
@ 2024-03-27  3:45 ` Ruidong Tian
  1 sibling, 0 replies; 3+ messages in thread
From: Ruidong Tian @ 2024-03-27  3:45 UTC (permalink / raw
  To: robert.moore, rafael.j.wysocki, lenb
  Cc: linux-acpi, acpica-devel, linux-kernel, tianruidond, Ruidong Tian

ACPICA commit ebb49799c78891cbe370f1264844664a3d8b6f35

AEST V2 was published[1], add V2 support based on AEST V1.

[1]: https://developer.arm.com/documentation/den0085/latest/

Link: https://github.com/acpica/acpica/commit/ebb4979
Signed-off-by: Ruidong Tian <tianruidong@linux.alibaba.com>
---
 include/acpi/actbl2.h | 88 ++++++++++++++++++++++++++++++++++++++++---
 1 file changed, 82 insertions(+), 6 deletions(-)

diff --git a/include/acpi/actbl2.h b/include/acpi/actbl2.h
index c32e97855031..97ea17ae932c 100644
--- a/include/acpi/actbl2.h
+++ b/include/acpi/actbl2.h
@@ -77,8 +77,8 @@
  *
  * AEST - Arm Error Source Table
  *
- * Conforms to: ACPI for the Armv8 RAS Extensions 1.1 Platform Design Document
- * September 2020.
+ * Conforms to: ACPI for the Armv8 RAS Extensions 1.1(Sep 2020) and
+ * 2.0(May 2023) Platform Design Document.
  *
  ******************************************************************************/
 
@@ -108,7 +108,9 @@ struct acpi_aest_hdr {
 #define ACPI_AEST_SMMU_ERROR_NODE           2
 #define ACPI_AEST_VENDOR_ERROR_NODE         3
 #define ACPI_AEST_GIC_ERROR_NODE            4
-#define ACPI_AEST_NODE_TYPE_RESERVED        5	/* 5 and above are reserved */
+#define ACPI_AEST_PCIE_ERROR_NODE           5
+#define ACPI_AEST_PROXY_ERROR_NODE          6
+#define ACPI_AEST_NODE_TYPE_RESERVED        7 /* 7 and above are reserved */
 
 /*
  * AEST subtables (Error nodes)
@@ -180,6 +182,12 @@ struct acpi_aest_vendor {
 	u8 vendor_specific_data[16];
 };
 
+struct acpi_aest_vendor_v2 {
+	char acpi_hid[8];
+	u32 acpi_uid;
+	u8 vendor_specific_data[16];
+};
+
 /* 4: Gic Error */
 
 struct acpi_aest_gic {
@@ -195,6 +203,18 @@ struct acpi_aest_gic {
 #define ACPI_AEST_GIC_ITS                   3
 #define ACPI_AEST_GIC_RESERVED              4	/* 4 and above are reserved */
 
+/* 5: PCIe Error */
+
+struct acpi_aest_pcie {
+	u32 iort_node_reference;
+};
+
+/* 6: Proxy Error */
+
+struct acpi_aest_proxy {
+	u64 node_address;
+};
+
 /* Node Interface Structure */
 
 struct acpi_aest_node_interface {
@@ -209,11 +229,57 @@ struct acpi_aest_node_interface {
 	u64 addressing_mode;
 };
 
+/* Node Interface Structure V2 */
+
+struct acpi_aest_node_interface_header {
+	u8 type;
+	u8 group_format;
+	u8 reserved[2];
+	u32 flags;
+	u64 address;
+	u32 error_record_index;
+	u32 error_record_count;
+};
+
+#define ACPI_AEST_NODE_GROUP_FORMAT_4K          0
+#define ACPI_AEST_NODE_GROUP_FORMAT_16K         1
+#define ACPI_AEST_NODE_GROUP_FORMAT_64K         2
+
+struct acpi_aest_node_interface_common {
+	u32 error_node_device;
+	u32 processor_affinity;
+	u64 error_group_register_base;
+	u64 fault_inject_register_base;
+	u64 interrupt_config_register_base;
+};
+
+struct acpi_aest_node_interface_4k {
+	u64 error_record_implemented;
+	u64 error_status_reporting;
+	u64 addressing_mode;
+	struct acpi_aest_node_interface_common common;
+};
+
+struct acpi_aest_node_interface_16k {
+	u64 error_record_implemented[4];
+	u64 error_status_reporting[4];
+	u64 addressing_mode[4];
+	struct acpi_aest_node_interface_common common;
+};
+
+struct acpi_aest_node_interface_64k {
+	u64 errorrecordimplemented[14];
+	u64 errorstatusreporting[14];
+	u64 addressingmode[14];
+	struct acpi_aest_node_interface_common common;
+};
+
 /* Values for Type field above */
 
-#define ACPI_AEST_NODE_SYSTEM_REGISTER      0
-#define ACPI_AEST_NODE_MEMORY_MAPPED        1
-#define ACPI_AEST_XFACE_RESERVED            2	/* 2 and above are reserved */
+#define ACPI_AEST_NODE_SYSTEM_REGISTER			0
+#define ACPI_AEST_NODE_MEMORY_MAPPED			1
+#define ACPI_AEST_NODE_SINGLE_RECORD_MEMORY_MAPPED	2
+#define ACPI_AEST_XFACE_RESERVED			3   /* 2 and above are reserved */
 
 /* Node Interrupt Structure */
 
@@ -226,6 +292,16 @@ struct acpi_aest_node_interrupt {
 	u8 reserved1[3];
 };
 
+/* Node Interrupt Structure V2 */
+
+struct acpi_aest_node_interrupt_v2 {
+	u8 type;
+	u8 reserved[2];
+	u8 flags;
+	u32 gsiv;
+	u8 reserved1[4];
+};
+
 /* Values for Type field above */
 
 #define ACPI_AEST_NODE_FAULT_HANDLING       0
-- 
2.33.1


^ permalink raw reply related	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2024-03-27  3:45 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-03-27  3:44 [PATCH 0/2] ACPICA: AEST: Support AEST V2 Ruidong Tian
2024-03-27  3:44 ` [PATCH 1/2] ACPICA: AEST: Fix coding style at struct definition Ruidong Tian
2024-03-27  3:45 ` [PATCH 2/2] ACPICA: AEST: Add support for the AEST V2 table Ruidong Tian

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.