diff options
author | Robin Murphy <robin.murphy@arm.com> | 2018-06-01 15:06:38 -0400 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2018-06-06 02:53:42 -0400 |
commit | d87be0438e3d4e249926f0431bcec991e4a9eea6 (patch) | |
tree | 1aa73c1119730b488e093c1710419116bb7ee361 | |
parent | f4fe74cc909bf811cd9cc7fd84f5a7514e06a7e1 (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.h | 15 |
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 | |||
155 | struct acpi_iort_root_complex { | 160 | struct 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 | /******************************************************************************* |