[PATCH 1/2] acpi: cedt: update the cedt tests for CXL spec rev3.2
Ivan Hu
ivan.hu at canonical.com
Thu Feb 13 06:36:52 UTC 2025
BugLink: https://bugs.launchpad.net/fwts/+bug/2098072
Update the tests for Compute Express Link(CXL) Specification
October 2, 2024 Revision 3.2, Version 1.0
Signed-off-by: Ivan Hu <ivan.hu at canonical.com>
---
src/acpi/cedt/cedt.c | 25 +++++++++++++++++++++++--
src/lib/include/fwts_acpi.h | 9 ++++++++-
2 files changed, 31 insertions(+), 3 deletions(-)
diff --git a/src/acpi/cedt/cedt.c b/src/acpi/cedt/cedt.c
index 444bc410..ff63a98d 100644
--- a/src/acpi/cedt/cedt.c
+++ b/src/acpi/cedt/cedt.c
@@ -111,7 +111,7 @@ static void cedt_cfmws_test(
"0x%2.2" PRIx8 "instead", entry->interleave_arithmetic);
}
- fwts_acpi_reserved_bits("CEDT", "Window Restrictions", entry->window_restrictions, 5, 15, passed);
+ fwts_acpi_reserved_bits("CEDT", "Window Restrictions", entry->window_restrictions, 6, 15, passed);
}
@@ -163,6 +163,24 @@ static void cedt_rdpas_test(
}
+static void cedt_csds_test(
+ fwts_framework *fw,
+ const fwts_acpi_table_cedt_csds *entry,
+ bool *passed)
+{
+ fwts_log_info_verbatim(fw, " CXL System Description Structure (CSDS):");
+ fwts_log_info_simp_int(fw, " Type: ", entry->header.type);
+ fwts_log_info_simp_int(fw, " Reserved: ", entry->header.reserved);
+ fwts_log_info_simp_int(fw, " Record Length: ", entry->header.record_length);
+ fwts_log_info_simp_int(fw, " System Capabilities: ", entry->system_cap);
+ fwts_log_info_simp_int(fw, " Reserved: ", entry->reserved);
+
+ fwts_acpi_reserved_zero("CEDT", "Reserved", entry->header.reserved, passed);
+ fwts_acpi_reserved_bits("CEDT", "System Capabilities", entry->system_cap, 6, 15, passed);
+ fwts_acpi_reserved_zero("CEDT", "Reserved", entry->reserved, passed);
+
+}
+
static void cedt_structure(
fwts_framework *fw,
fwts_acpi_table_cedt_header *entry,
@@ -181,11 +199,14 @@ static void cedt_structure(
case FWTS_CEDT_TYPE_RDPAS:
cedt_rdpas_test(fw, (fwts_acpi_table_cedt_rdpas *)entry, passed);
break;
+ case FWTS_CEDT_TYPE_CSDS:
+ cedt_csds_test(fw, (fwts_acpi_table_cedt_csds *)entry, passed);
+ break;
default:
*passed = false;
fwts_failed(fw, LOG_LEVEL_HIGH,
"CEDTBadSubtableType",
- "CEDT must have subtable with Type 0 to 3, got "
+ "CEDT must have subtable with Type 0 to 4, got "
"0x%4.4" PRIx16 " instead", entry->type);
break;
}
diff --git a/src/lib/include/fwts_acpi.h b/src/lib/include/fwts_acpi.h
index 598cf364..a327e56d 100644
--- a/src/lib/include/fwts_acpi.h
+++ b/src/lib/include/fwts_acpi.h
@@ -2375,7 +2375,8 @@ typedef enum {
FWTS_CEDT_TYPE_CFMWS = 1,
FWTS_CEDT_TYPE_CXIMS = 2,
FWTS_CEDT_TYPE_RDPAS = 3,
- FWTS_CEDT_TYPE_RESERVED = 4,
+ FWTS_CEDT_TYPE_CSDS = 4,
+ FWTS_CEDT_TYPE_RESERVED = 5,
} fwts_acpi_cedt_type;
typedef struct {
@@ -2423,6 +2424,12 @@ typedef struct {
uint64_t base_addr;
} __attribute__ ((packed)) fwts_acpi_table_cedt_rdpas;
+typedef struct {
+ fwts_acpi_table_cedt_header header;
+ uint16_t system_cap;
+ uint16_t reserved;
+} __attribute__ ((packed)) fwts_acpi_table_cedt_csds;
+
/*
* ACPI AEST (Arm Error Source Table)
* https://developer.arm.com/documentation/den0085/latest/
--
2.34.1
More information about the fwts-devel
mailing list