aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRobin Murphy <robin.murphy@arm.com>2018-06-01 15:06:38 -0400
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>2018-06-06 02:53:42 -0400
commitd87be0438e3d4e249926f0431bcec991e4a9eea6 (patch)
tree1aa73c1119730b488e093c1710419116bb7ee361
parentf4fe74cc909bf811cd9cc7fd84f5a7514e06a7e1 (diff)
ACPICA: IORT: Update for revision D
IORT revision D contains a few additions and fixes to currently-supported tables: - SMMUv3 proximity domain field is enlarged to 4 bytes for consistency with SRAT - Root complex nodes gain an address size limit field equivalent to that of named components - Named component nodes gain a way to describe PASID (substream_ID) support, encoded in their flags Additionally, we fix a couple of outstanding points in passing: - Add the stall support flag for named components defined in revision C - Fix SMMUv3 HTTU override mask, which should always have been 2 bits Signed-off-by: Robin Murphy <robin.murphy@arm.com> Signed-off-by: Erik Schmauss <erik.schmauss@intel.com> Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
-rw-r--r--include/acpi/actbl2.h15
1 files changed, 10 insertions, 5 deletions
diff --git a/include/acpi/actbl2.h b/include/acpi/actbl2.h
index 876012da8e6e..46dbc1018b2d 100644
--- a/include/acpi/actbl2.h
+++ b/include/acpi/actbl2.h
@@ -67,7 +67,7 @@
67 * IORT - IO Remapping Table 67 * IORT - IO Remapping Table
68 * 68 *
69 * Conforms to "IO Remapping Table System Software on ARM Platforms", 69 * Conforms to "IO Remapping Table System Software on ARM Platforms",
70 * Document number: ARM DEN 0049C, May 2017 70 * Document number: ARM DEN 0049D, March 2018
71 * 71 *
72 ******************************************************************************/ 72 ******************************************************************************/
73 73
@@ -152,10 +152,17 @@ struct acpi_iort_named_component {
152 char device_name[1]; /* Path of namespace object */ 152 char device_name[1]; /* Path of namespace object */
153}; 153};
154 154
155/* Masks for Flags field above */
156
157#define ACPI_IORT_NC_STALL_SUPPORTED (1)
158#define ACPI_IORT_NC_PASID_BITS (31<<1)
159
155struct acpi_iort_root_complex { 160struct acpi_iort_root_complex {
156 u64 memory_properties; /* Memory access properties */ 161 u64 memory_properties; /* Memory access properties */
157 u32 ats_attribute; 162 u32 ats_attribute;
158 u32 pci_segment_number; 163 u32 pci_segment_number;
164 u8 memory_address_limit; /* Memory address size limit */
165 u8 reserved[3]; /* Reserved, must be zero */
159}; 166};
160 167
161/* Values for ats_attribute field above */ 168/* Values for ats_attribute field above */
@@ -209,9 +216,7 @@ struct acpi_iort_smmu_v3 {
209 u32 pri_gsiv; 216 u32 pri_gsiv;
210 u32 gerr_gsiv; 217 u32 gerr_gsiv;
211 u32 sync_gsiv; 218 u32 sync_gsiv;
212 u8 pxm; 219 u32 pxm;
213 u8 reserved1;
214 u16 reserved2;
215 u32 id_mapping_index; 220 u32 id_mapping_index;
216}; 221};
217 222
@@ -224,7 +229,7 @@ struct acpi_iort_smmu_v3 {
224/* Masks for Flags field above */ 229/* Masks for Flags field above */
225 230
226#define ACPI_IORT_SMMU_V3_COHACC_OVERRIDE (1) 231#define ACPI_IORT_SMMU_V3_COHACC_OVERRIDE (1)
227#define ACPI_IORT_SMMU_V3_HTTU_OVERRIDE (1<<1) 232#define ACPI_IORT_SMMU_V3_HTTU_OVERRIDE (3<<1)
228#define ACPI_IORT_SMMU_V3_PXM_VALID (1<<3) 233#define ACPI_IORT_SMMU_V3_PXM_VALID (1<<3)
229 234
230/******************************************************************************* 235/*******************************************************************************