88c41d
commit 699fc72e56936bebf3b9ba39b6e91bd957b44452
88c41d
Author: Alison Schofield <alison.schofield@intel.com>
88c41d
Date:   Thu May 20 13:48:40 2021 -0700
88c41d
88c41d
    Add the CFMWS structure definition to the CEDT table
88c41d
    
88c41d
    The CXL Fixed Memory Window Structure (CFMWS) is added to the
88c41d
    CXL Early Discovery Table (CEDT). This new structure is defined
88c41d
    in an ECN to the CXL 2.0 specification.
88c41d
    
88c41d
    https://www.computeexpresslink.org/spec-landing
88c41d
    
88c41d
    Signed-off-by: Alison Schofield <alison.schofield@intel.com>
88c41d
88c41d
diff --git a/source/include/actbl1.h b/source/include/actbl1.h
88c41d
index 51fee30..f274a85 100644
88c41d
--- a/source/include/actbl1.h
88c41d
+++ b/source/include/actbl1.h
88c41d
@@ -415,7 +415,8 @@ typedef struct acpi_cedt_header
88c41d
 enum AcpiCedtType
88c41d
 {
88c41d
     ACPI_CEDT_TYPE_CHBS                 = 0,
88c41d
-    ACPI_CEDT_TYPE_RESERVED             = 1
88c41d
+    ACPI_CEDT_TYPE_CFMWS                = 1,
88c41d
+    ACPI_CEDT_TYPE_RESERVED             = 2,
88c41d
 };
88c41d
 
88c41d
 /* Values for version field above */
88c41d
@@ -446,6 +447,37 @@ typedef struct acpi_cedt_chbs
88c41d
 } ACPI_CEDT_CHBS;
88c41d
 
88c41d
 
88c41d
+/* 1: CXL Fixed Memory Window Structure */
88c41d
+
88c41d
+typedef struct acpi_cedt_cfmws
88c41d
+{
88c41d
+    ACPI_CEDT_HEADER        Header;
88c41d
+    UINT32                  Reserved1;
88c41d
+    UINT64                  BaseHpa;
88c41d
+    UINT64                  WindowSize;
88c41d
+    UINT8                   InterleaveWays;
88c41d
+    UINT8                   InterleaveArithmetic;
88c41d
+    UINT16                  Reserved2;
88c41d
+    UINT32                  Granularity;
88c41d
+    UINT16                  Restrictions;
88c41d
+    UINT16                  QtgId;
88c41d
+    UINT32                  InterleaveTargets[];
88c41d
+
88c41d
+} ACPI_CEDT_CFMWS;
88c41d
+
88c41d
+/* Values for Interleave Arithmetic field above */
88c41d
+
88c41d
+#define ACPI_CEDT_CFMWS_ARITHMETIC_MODULO	(0)
88c41d
+
88c41d
+/* Values for Restrictions field above */
88c41d
+
88c41d
+#define ACPI_CEDT_CFMWS_RESTRICT_TYPE2		(1)
88c41d
+#define ACPI_CEDT_CFMWS_RESTRICT_TYPE3		(1<<1)
88c41d
+#define ACPI_CEDT_CFMWS_RESTRICT_VOLATILE	(1<<2)
88c41d
+#define ACPI_CEDT_CFMWS_RESTRICT_PMEM		(1<<3)
88c41d
+#define ACPI_CEDT_CFMWS_RESTRICT_FIXED		(1<<4)
88c41d
+
88c41d
+
88c41d
 /*******************************************************************************
88c41d
  *
88c41d
  * CPEP - Corrected Platform Error Polling table (ACPI 4.0)