Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

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>

authored by

Robin Murphy and committed by
Rafael J. Wysocki
d87be043 f4fe74cc

+10 -5
+10 -5
include/acpi/actbl2.h
··· 67 67 * IORT - IO Remapping Table 68 68 * 69 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 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 160 struct acpi_iort_root_complex { 156 161 u64 memory_properties; /* Memory access properties */ 157 162 u32 ats_attribute; 158 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 168 /* Values for ats_attribute field above */ ··· 216 209 u32 pri_gsiv; 217 210 u32 gerr_gsiv; 218 211 u32 sync_gsiv; 219 - u8 pxm; 220 - u8 reserved1; 221 - u16 reserved2; 212 + u32 pxm; 222 213 u32 id_mapping_index; 223 214 }; 224 215 ··· 229 224 /* Masks for Flags field above */ 230 225 231 226 #define ACPI_IORT_SMMU_V3_COHACC_OVERRIDE (1) 232 - #define ACPI_IORT_SMMU_V3_HTTU_OVERRIDE (1<<1) 227 + #define ACPI_IORT_SMMU_V3_HTTU_OVERRIDE (3<<1) 233 228 #define ACPI_IORT_SMMU_V3_PXM_VALID (1<<3) 234 229 235 230 /*******************************************************************************