]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
ACPICA: actbl2.h: MRRM: Add typedef and other definitions
authorTony Luck <tony.luck@intel.com>
Fri, 25 Apr 2025 19:24:02 +0000 (21:24 +0200)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Mon, 12 May 2025 13:38:42 +0000 (15:38 +0200)
ACPICA commit 04fd53b2647b9f6f98cfca551383689cb3b59362

The MRRM table describes association between physical address ranges
and "region numbers".

Structure defined in the Intel Resource Director Technology (RDT)
Architecture specification downloadable from www.intel.com/sdm

Link: https://github.com/acpica/acpica/commit/04fd53b2
Signed-off-by: Tony Luck <tony.luck@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Link: https://patch.msgid.link/3372188.44csPzL39Z@rjwysocki.net
include/acpi/actbl2.h

index a3008bae6f48066c1ca33888552c00c020752861..4fd5e8b2e19975b4c9da304973828782144d4b18 100644 (file)
@@ -37,6 +37,7 @@
 #define ACPI_SIG_MCHI           "MCHI" /* Management Controller Host Interface table */
 #define ACPI_SIG_MPAM           "MPAM" /* Memory System Resource Partitioning and Monitoring Table */
 #define ACPI_SIG_MPST           "MPST" /* Memory Power State Table */
+#define ACPI_SIG_MRRM           "MRRM" /* Memory Range and Region Mapping table */
 #define ACPI_SIG_MSDM           "MSDM" /* Microsoft Data Management Table */
 #define ACPI_SIG_NFIT           "NFIT" /* NVDIMM Firmware Interface Table */
 #define ACPI_SIG_NHLT           "NHLT" /* Non HD Audio Link Table */
@@ -1736,6 +1737,45 @@ struct acpi_msct_proximity {
        u64 memory_capacity;    /* In bytes */
 };
 
+/*******************************************************************************
+ *
+ * MRRM - Memory Range and Region Mapping (MRRM) table
+ *
+ ******************************************************************************/
+
+struct acpi_table_mrrm {
+       struct acpi_table_header header;        /* Common ACPI table header */
+       u8 max_mem_region;      /* Max Memory Regions supported */
+       u8 flags;               /* Region assignment type */
+       u8 reserved[26];
+       u8 memory_range_entry[];
+};
+
+/* Flags */
+#define ACPI_MRRM_FLAGS_REGION_ASSIGNMENT_OS    (1<<0)
+
+/*******************************************************************************
+ *
+ * Memory Range entry - Memory Range entry in MRRM table
+ *
+ ******************************************************************************/
+
+struct acpi_table_mrrm_mem_range_entry {
+       ACPI_SUBTABLE_HEADER_16 header;
+       u32 reserved0;          /* Reserved */
+       u64 addr_base;          /* Base addr of the mem range */
+       u64 addr_len;           /* Length of the mem range */
+       u16 region_id_flags;    /* Valid local or remote Region-ID */
+       u8 local_region_id;     /* Platform-assigned static local Region-ID */
+       u8 remote_region_id;    /* Platform-assigned static remote Region-ID */
+       u32 reserved1;          /* Reserved */
+       /* Region-ID Programming Registers[] */
+};
+
+/* Values for region_id_flags above */
+#define ACPI_MRRM_VALID_REGION_ID_FLAGS_LOCAL   (1<<0)
+#define ACPI_MRRM_VALID_REGION_ID_FLAGS_REMOTE  (1<<1)
+
 /*******************************************************************************
  *
  * MSDM - Microsoft Data Management table