iommu/vt-d: Add new enum value and structure for SATC
authorYian Chen <yian.chen@intel.com>
Thu, 4 Feb 2021 01:43:59 +0000 (09:43 +0800)
committerJoerg Roedel <jroedel@suse.de>
Thu, 4 Feb 2021 13:42:00 +0000 (14:42 +0100)
Starting from Intel Platform VT-d v3.2, BIOS may provide new remapping
structure SATC for SOC integrated devices, according to section 8.8 of
Intel VT-d architecture specification v3.2. The SATC structure reports
a list of the devices that require ATS for normal device operation. It
is a functional requirement that these devices will not work without OS
enabling ATS capability.

This patch introduces the new enum value and structure to represent the
remapping information. Kernel should parse the information from the
reporting structure and enable ATC for the devices as needed.

Signed-off-by: Yian Chen <yian.chen@intel.com>
Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com>
Link: https://lore.kernel.org/r/20210203093329.1617808-1-baolu.lu@linux.intel.com
Link: https://lore.kernel.org/r/20210204014401.2846425-6-baolu.lu@linux.intel.com
Signed-off-by: Joerg Roedel <jroedel@suse.de>
include/acpi/actbl1.h

index 4354954..c38e08c 100644 (file)
@@ -514,7 +514,8 @@ enum acpi_dmar_type {
        ACPI_DMAR_TYPE_ROOT_ATS = 2,
        ACPI_DMAR_TYPE_HARDWARE_AFFINITY = 3,
        ACPI_DMAR_TYPE_NAMESPACE = 4,
-       ACPI_DMAR_TYPE_RESERVED = 5     /* 5 and greater are reserved */
+       ACPI_DMAR_TYPE_SATC = 5,
+       ACPI_DMAR_TYPE_RESERVED = 6     /* 6 and greater are reserved */
 };
 
 /* DMAR Device Scope structure */
@@ -607,6 +608,14 @@ struct acpi_dmar_andd {
        char device_name[1];
 };
 
+/* 5: SOC Integrated Address Translation Cache Reporting Structure */
+
+struct acpi_dmar_satc {
+       struct acpi_dmar_header header;
+       u8 flags;
+       u8 reserved;
+       u16 segment;
+};
 /*******************************************************************************
  *
  * DRTM - Dynamic Root of Trust for Measurement table