From d87be0438e3d4e249926f0431bcec991e4a9eea6 Mon Sep 17 00:00:00 2001 From: Robin Murphy Date: Fri, 1 Jun 2018 12:06:38 -0700 Subject: 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 Signed-off-by: Erik Schmauss Signed-off-by: Rafael J. Wysocki --- include/acpi/actbl2.h | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) (limited to 'include/acpi') diff --git a/include/acpi/actbl2.h b/include/acpi/actbl2.h index 876012d..46dbc10 100644 --- a/include/acpi/actbl2.h +++ b/include/acpi/actbl2.h @@ -67,7 +67,7 @@ * IORT - IO Remapping Table * * Conforms to "IO Remapping Table System Software on ARM Platforms", - * Document number: ARM DEN 0049C, May 2017 + * Document number: ARM DEN 0049D, March 2018 * ******************************************************************************/ @@ -152,10 +152,17 @@ struct acpi_iort_named_component { char device_name[1]; /* Path of namespace object */ }; +/* Masks for Flags field above */ + +#define ACPI_IORT_NC_STALL_SUPPORTED (1) +#define ACPI_IORT_NC_PASID_BITS (31<<1) + struct acpi_iort_root_complex { u64 memory_properties; /* Memory access properties */ u32 ats_attribute; u32 pci_segment_number; + u8 memory_address_limit; /* Memory address size limit */ + u8 reserved[3]; /* Reserved, must be zero */ }; /* Values for ats_attribute field above */ @@ -209,9 +216,7 @@ struct acpi_iort_smmu_v3 { u32 pri_gsiv; u32 gerr_gsiv; u32 sync_gsiv; - u8 pxm; - u8 reserved1; - u16 reserved2; + u32 pxm; u32 id_mapping_index; }; @@ -224,7 +229,7 @@ struct acpi_iort_smmu_v3 { /* Masks for Flags field above */ #define ACPI_IORT_SMMU_V3_COHACC_OVERRIDE (1) -#define ACPI_IORT_SMMU_V3_HTTU_OVERRIDE (1<<1) +#define ACPI_IORT_SMMU_V3_HTTU_OVERRIDE (3<<1) #define ACPI_IORT_SMMU_V3_PXM_VALID (1<<3) /******************************************************************************* -- cgit v1.1 From a53eaef6da5dc0abd899d6512a31c6d94c92f9be Mon Sep 17 00:00:00 2001 From: Robin Murphy Date: Fri, 1 Jun 2018 12:06:39 -0700 Subject: ACPICA: IORT: Add PMCG node supprt PMCG nodes were added by IORT revision C, with the unfortunate oversight that it only defined a single base address, and thus was incapable of properly describing PMCG implementations with PMCG_CFGR.RELOC_CTRS = 1, where the counters are in a separate page from the control registers. Revision D corrects this by clarifying the existing field as the page 0 base address and adding a second field to describe the page 1 address when implemented. With the spec now fit for purpose, let's support it. Signed-off-by: Robin Murphy Signed-off-by: Erik Schmauss Signed-off-by: Rafael J. Wysocki --- include/acpi/actbl2.h | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) (limited to 'include/acpi') diff --git a/include/acpi/actbl2.h b/include/acpi/actbl2.h index 46dbc10..c50ef7e 100644 --- a/include/acpi/actbl2.h +++ b/include/acpi/actbl2.h @@ -98,7 +98,8 @@ enum acpi_iort_node_type { ACPI_IORT_NODE_NAMED_COMPONENT = 0x01, ACPI_IORT_NODE_PCI_ROOT_COMPLEX = 0x02, ACPI_IORT_NODE_SMMU = 0x03, - ACPI_IORT_NODE_SMMU_V3 = 0x04 + ACPI_IORT_NODE_SMMU_V3 = 0x04, + ACPI_IORT_NODE_PMCG = 0x05 }; struct acpi_iort_id_mapping { @@ -232,6 +233,13 @@ struct acpi_iort_smmu_v3 { #define ACPI_IORT_SMMU_V3_HTTU_OVERRIDE (3<<1) #define ACPI_IORT_SMMU_V3_PXM_VALID (1<<3) +struct acpi_iort_pmcg { + u64 page0_base_address; + u32 overflow_gsiv; + u32 node_reference; + u64 page1_base_address; +}; + /******************************************************************************* * * IVRS - I/O Virtualization Reporting Structure -- cgit v1.1 From fb30b2981d674f2326feb942f462c2cf8213ac14 Mon Sep 17 00:00:00 2001 From: Bob Moore Date: Fri, 1 Jun 2018 12:06:41 -0700 Subject: ACPICA: AML Parser: Add debug option to dump parse trees Debug level 0x00800000 will dump the current parse tree just before it is deleted. Signed-off-by: Bob Moore Signed-off-by: Erik Schmauss Signed-off-by: Rafael J. Wysocki --- include/acpi/acoutput.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'include/acpi') diff --git a/include/acpi/acoutput.h b/include/acpi/acoutput.h index 0a6c5bd..3a26aa7 100644 --- a/include/acpi/acoutput.h +++ b/include/acpi/acoutput.h @@ -80,7 +80,8 @@ #define ACPI_LV_ALLOCATIONS 0x00100000 #define ACPI_LV_FUNCTIONS 0x00200000 #define ACPI_LV_OPTIMIZATIONS 0x00400000 -#define ACPI_LV_VERBOSITY2 0x00700000 | ACPI_LV_VERBOSITY1 +#define ACPI_LV_PARSE_TREES 0x00800000 +#define ACPI_LV_VERBOSITY2 0x00F00000 | ACPI_LV_VERBOSITY1 #define ACPI_LV_ALL ACPI_LV_VERBOSITY2 /* Trace verbosity level 3 [Threading, I/O, and Interrupts] */ @@ -131,6 +132,7 @@ #define ACPI_DB_TABLES ACPI_DEBUG_LEVEL (ACPI_LV_TABLES) #define ACPI_DB_FUNCTIONS ACPI_DEBUG_LEVEL (ACPI_LV_FUNCTIONS) #define ACPI_DB_OPTIMIZATIONS ACPI_DEBUG_LEVEL (ACPI_LV_OPTIMIZATIONS) +#define ACPI_DB_PARSE_TREES ACPI_DEBUG_LEVEL (ACPI_LV_PARSE_TREES) #define ACPI_DB_VALUES ACPI_DEBUG_LEVEL (ACPI_LV_VALUES) #define ACPI_DB_OBJECTS ACPI_DEBUG_LEVEL (ACPI_LV_OBJECTS) #define ACPI_DB_ALLOCATIONS ACPI_DEBUG_LEVEL (ACPI_LV_ALLOCATIONS) -- cgit v1.1 From 6898837872deef0ee5ad31799185afba8cf56856 Mon Sep 17 00:00:00 2001 From: Bob Moore Date: Fri, 1 Jun 2018 12:06:45 -0700 Subject: ACPICA: Update version to 20180531 Version 20180531. Signed-off-by: Bob Moore Signed-off-by: Erik Schmauss Signed-off-by: Rafael J. Wysocki --- include/acpi/acpixf.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'include/acpi') diff --git a/include/acpi/acpixf.h b/include/acpi/acpixf.h index 77d71bd..48d84f0 100644 --- a/include/acpi/acpixf.h +++ b/include/acpi/acpixf.h @@ -12,7 +12,7 @@ /* Current ACPICA subsystem version in YYYYMMDD format */ -#define ACPI_CA_VERSION 0x20180508 +#define ACPI_CA_VERSION 0x20180531 #include #include -- cgit v1.1 From ad584b46d7fb22c2a9f8ce35000a324bf5a98190 Mon Sep 17 00:00:00 2001 From: Mario Limonciello Date: Wed, 14 Mar 2018 16:13:00 -0700 Subject: ACPICA: Recognize the _OSI string "Windows 2017.2" Dell uses this string to activate Thunderbolt native mode on supported machines. Signed-off-by: Mario Limonciello Signed-off-by: Erik Schmauss Signed-off-by: Rafael J. Wysocki --- include/acpi/actypes.h | 1 + 1 file changed, 1 insertion(+) (limited to 'include/acpi') diff --git a/include/acpi/actypes.h b/include/acpi/actypes.h index 2b1bafa..66ceb12 100644 --- a/include/acpi/actypes.h +++ b/include/acpi/actypes.h @@ -1272,6 +1272,7 @@ typedef enum { #define ACPI_OSI_WIN_10 0x0D #define ACPI_OSI_WIN_10_RS1 0x0E #define ACPI_OSI_WIN_10_RS2 0x0F +#define ACPI_OSI_WIN_10_RS3 0x10 /* Definitions of getopt */ -- cgit v1.1