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