diff options
author | Robert Moore <Robert.Moore@intel.com> | 2021-02-18 14:24:34 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-02-18 14:24:34 -0800 |
commit | 79acf21c5d667214aa94ad645ba2f68e0c2c536c (patch) | |
tree | 50f94ef82a1a5e304a7a77a316d7472c3135c9ae /source/include | |
parent | 44953996cc100d60ac554f0b6597f0fe25f1d688 (diff) | |
parent | 44ca5f4f9be24bf64524cdb1de46322509319056 (diff) | |
download | acpica-79acf21c5d667214aa94ad645ba2f68e0c2c536c.tar.gz |
Merge pull request #662 from SchmErik/acpi64
ACPI 6.4 changes
Diffstat (limited to 'source/include')
-rw-r--r-- | source/include/acdisasm.h | 7 | ||||
-rw-r--r-- | source/include/acpredef.h | 15 | ||||
-rw-r--r-- | source/include/actbinfo.h | 8 | ||||
-rw-r--r-- | source/include/actbl1.h | 10 | ||||
-rw-r--r-- | source/include/actbl2.h | 102 | ||||
-rw-r--r-- | source/include/actbl3.h | 3 | ||||
-rw-r--r-- | source/include/acuuid.h | 1 |
7 files changed, 140 insertions, 6 deletions
diff --git a/source/include/acdisasm.h b/source/include/acdisasm.h index 94c002da3..fbea3e9d2 100644 --- a/source/include/acdisasm.h +++ b/source/include/acdisasm.h @@ -481,6 +481,7 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt12[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt13[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt14[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt15[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt16[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadtHdr[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg0[]; @@ -520,10 +521,12 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct1[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct2[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct3[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct4[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoPcct5[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPdtt0[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPptt0[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPptt0a[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPptt1[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoPptt1a[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPptt2[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoPpttHdr[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoRasf[]; @@ -539,6 +542,10 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdev[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdevHdr[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdev0[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdev0a[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdev0b[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdevSecCompHdr[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdevSecCompId[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdevSecCompMem[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdev1[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdev1a[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoSdev1b[]; diff --git a/source/include/acpredef.h b/source/include/acpredef.h index 22aece659..bc55155cf 100644 --- a/source/include/acpredef.h +++ b/source/include/acpredef.h @@ -472,6 +472,17 @@ const ACPI_PREDEFINED_INFO AcpiGbl_PredefinedMethods[] = {{"_BMS", METHOD_1ARGS (ACPI_TYPE_INTEGER), METHOD_RETURNS (ACPI_RTYPE_INTEGER)}}, + {{"_BPC", METHOD_0ARGS, + METHOD_RETURNS (ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (4 Int) */ + PACKAGE_INFO (ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 4,0,0,0), + + {{"_BPS", METHOD_0ARGS, + METHOD_RETURNS (ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (5 Int) */ + PACKAGE_INFO (ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 5,0,0,0), + + {{"_BPT", METHOD_1ARGS (ACPI_TYPE_PACKAGE), + METHOD_RETURNS (ACPI_RTYPE_INTEGER)}}, + {{"_BQC", METHOD_0ARGS, METHOD_RETURNS (ACPI_RTYPE_INTEGER)}}, @@ -491,6 +502,10 @@ const ACPI_PREDEFINED_INFO AcpiGbl_PredefinedMethods[] = {{"_CBA", METHOD_0ARGS, METHOD_RETURNS (ACPI_RTYPE_INTEGER)}}, /* See PCI firmware spec 3.0 */ + {{"_CBR", METHOD_0ARGS, + METHOD_RETURNS (ACPI_RTYPE_PACKAGE)}}, /* Fixed-length (3 Int) */ + PACKAGE_INFO (ACPI_PTYPE1_FIXED, ACPI_RTYPE_INTEGER, 3,0,0,0), + {{"_CCA", METHOD_0ARGS, METHOD_RETURNS (ACPI_RTYPE_INTEGER)}}, /* ACPI 5.1 */ diff --git a/source/include/actbinfo.h b/source/include/actbinfo.h index b10cc9efb..ddf4b159f 100644 --- a/source/include/actbinfo.h +++ b/source/include/actbinfo.h @@ -289,6 +289,7 @@ #define ACPI_MADT13_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_GENERIC_MSI_FRAME,f) #define ACPI_MADT14_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_GENERIC_REDISTRIBUTOR,f) #define ACPI_MADT15_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_GENERIC_TRANSLATOR,f) +#define ACPI_MADT16_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_MULTIPROC_WAKEUP,f) #define ACPI_MADTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SUBTABLE_HEADER,f) #define ACPI_MCFG0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MCFG_ALLOCATION,f) #define ACPI_MPST0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MPST_POWER_NODE,f) @@ -311,6 +312,7 @@ #define ACPI_PCCT2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PCCT_HW_REDUCED_TYPE2,f) #define ACPI_PCCT3_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PCCT_EXT_PCC_MASTER,f) #define ACPI_PCCT4_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PCCT_EXT_PCC_SLAVE,f) +#define ACPI_PCCT5_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PCCT_HW_REG,f) #define ACPI_PDTT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PDTT_CHANNEL,f) #define ACPI_PMTT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PMTT_SOCKET,f) #define ACPI_PMTT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PMTT_CONTROLLER,f) @@ -320,12 +322,17 @@ #define ACPI_PPTTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SUBTABLE_HEADER,f) #define ACPI_PPTT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PPTT_PROCESSOR,f) #define ACPI_PPTT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PPTT_CACHE,f) +#define ACPI_PPTT1A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PPTT_CACHE_V1,f) #define ACPI_PPTT2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_PPTT_ID,f) #define ACPI_S3PTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_FPDT_HEADER,f) #define ACPI_S3PT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_S3PT_RESUME,f) #define ACPI_S3PT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_S3PT_SUSPEND,f) #define ACPI_SDEVH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SDEV_HEADER,f) #define ACPI_SDEV0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SDEV_NAMESPACE,f) +#define ACPI_SDEV0B_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SDEV_SECURE_COMPONENT,f) +#define ACPI_SDEVCH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SDEV_HEADER,f) +#define ACPI_SDEVC0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SDEV_ID_COMPONENT, f) +#define ACPI_SDEVC1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SDEV_MEM_COMPONENT, f) #define ACPI_SDEV1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SDEV_PCIE,f) #define ACPI_SDEV1A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SDEV_PCIE_PATH,f) #define ACPI_SLIC_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_SLIC,f) @@ -358,6 +365,7 @@ #define ACPI_HPET_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_TABLE_HPET,f,o) #define ACPI_PPTT0_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_PPTT_PROCESSOR,f,o) #define ACPI_PPTT1_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_PPTT_CACHE,f,o) +#define ACPI_PPTT1A_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_PPTT_CACHE_V1,f,o) #define ACPI_SRAT0_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_SRAT_CPU_AFFINITY,f,o) #define ACPI_SRAT1_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_SRAT_MEM_AFFINITY,f,o) #define ACPI_SRAT2_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_SRAT_X2APIC_CPU_AFFINITY,f,o) diff --git a/source/include/actbl1.h b/source/include/actbl1.h index 5f54ecc0a..ef97f3cb9 100644 --- a/source/include/actbl1.h +++ b/source/include/actbl1.h @@ -1829,7 +1829,8 @@ typedef struct acpi_hmat_locality ACPI_HMAT_STRUCTURE Header; UINT8 Flags; UINT8 DataType; - UINT16 Reserved1; + UINT8 MinTransferSize; + UINT8 Reserved1; UINT32 NumberOfInitiatorPDs; UINT32 NumberOfTargetPDs; UINT32 Reserved2; @@ -1839,14 +1840,17 @@ typedef struct acpi_hmat_locality /* Masks for Flags field above */ -#define ACPI_HMAT_MEMORY_HIERARCHY (0x0F) +#define ACPI_HMAT_MEMORY_HIERARCHY (0x0F) /* Bits 0-3 */ -/* Values for Memory Hierarchy flag */ +/* Values for Memory Hierarchy flags */ #define ACPI_HMAT_MEMORY 0 #define ACPI_HMAT_1ST_LEVEL_CACHE 1 #define ACPI_HMAT_2ND_LEVEL_CACHE 2 #define ACPI_HMAT_3RD_LEVEL_CACHE 3 +#define ACPI_HMAT_MINIMUM_XFER_SIZE 0x10 /* Bit 4: ACPI 6.4 */ +#define ACPI_HMAT_NON_SEQUENTIAL_XFERS 0x20 /* Bit 5: ACPI 6.4 */ + /* Values for DataType field above */ diff --git a/source/include/actbl2.h b/source/include/actbl2.h index 82096fe9c..90c80d1a8 100644 --- a/source/include/actbl2.h +++ b/source/include/actbl2.h @@ -733,7 +733,8 @@ enum AcpiMadtType ACPI_MADT_TYPE_GENERIC_MSI_FRAME = 13, ACPI_MADT_TYPE_GENERIC_REDISTRIBUTOR = 14, ACPI_MADT_TYPE_GENERIC_TRANSLATOR = 15, - ACPI_MADT_TYPE_RESERVED = 16 /* 16 and greater are reserved */ + ACPI_MADT_TYPE_MULTIPROC_WAKEUP = 16, + ACPI_MADT_TYPE_RESERVED = 17 /* 17 and greater are reserved */ }; @@ -989,6 +990,17 @@ typedef struct acpi_madt_generic_translator } ACPI_MADT_GENERIC_TRANSLATOR; +/* 16: Multiprocessor wakeup (ACPI 6.4) */ + +typedef struct acpi_madt_multiproc_wakeup +{ + ACPI_SUBTABLE_HEADER Header; + UINT16 MailboxVersion; + UINT32 Reserved; /* reserved - must be zero */ + UINT64 BaseAddress; + +} ACPI_MADT_MULTIPROC_WAKEUP; + /* * Common flags fields for MADT subtables @@ -1299,6 +1311,7 @@ typedef struct acpi_nfit_system_address UINT64 Address; UINT64 Length; UINT64 MemoryMapping; + UINT64 LocationCookie; /* ACPI 6.4 */ } ACPI_NFIT_SYSTEM_ADDRESS; @@ -1306,6 +1319,7 @@ typedef struct acpi_nfit_system_address #define ACPI_NFIT_ADD_ONLINE_ONLY (1) /* 00: Add/Online Operation Only */ #define ACPI_NFIT_PROXIMITY_VALID (1<<1) /* 01: Proximity Domain Valid */ +#define ACPI_NFIT_LOCATION_COOKIE_VALID (1<<2) /* 02: SPA location cookie valid (ACPI 6.4) */ /* Range Type GUIDs appear in the include/acuuid.h file */ @@ -1529,7 +1543,8 @@ enum AcpiPcctType ACPI_PCCT_TYPE_HW_REDUCED_SUBSPACE_TYPE2 = 2, /* ACPI 6.1 */ ACPI_PCCT_TYPE_EXT_PCC_MASTER_SUBSPACE = 3, /* ACPI 6.2 */ ACPI_PCCT_TYPE_EXT_PCC_SLAVE_SUBSPACE = 4, /* ACPI 6.2 */ - ACPI_PCCT_TYPE_RESERVED = 5 /* 5 and greater are reserved */ + ACPI_PCCT_TYPE_HW_REG_COMM_SUBSPACE = 5, /* ACPI 6.4 */ + ACPI_PCCT_TYPE_RESERVED = 6 /* 6 and greater are reserved */ }; /* @@ -1658,6 +1673,26 @@ typedef struct acpi_pcct_ext_pcc_slave } ACPI_PCCT_EXT_PCC_SLAVE; +/* 5: HW Registers based Communications Subspace */ + +typedef struct acpi_pcct_hw_reg +{ + ACPI_SUBTABLE_HEADER Header; + UINT16 Version; + UINT64 BaseAddress; + UINT64 Length; + ACPI_GENERIC_ADDRESS DoorbellRegister; + UINT64 DoorbellPreserve; + UINT64 DoorbellWrite; + ACPI_GENERIC_ADDRESS CmdCompleteRegister; + UINT64 CmdCompleteMask; + ACPI_GENERIC_ADDRESS ErrorStatusRegister; + UINT64 ErrorStatusMask; + UINT32 NominalLatency; + UINT32 MinTurnaroundTime; + +} ACPI_PCCT_HW_REG; + /* Values for doorbell flags above */ @@ -1885,6 +1920,15 @@ typedef struct acpi_pptt_cache } ACPI_PPTT_CACHE; +/* 1: Cache Type Structure for PPTT version 3 */ + +typedef struct acpi_pptt_cache_v1 +{ + UINT32 CacheId; + +} ACPI_PPTT_CACHE_V1; + + /* Flags */ #define ACPI_PPTT_SIZE_PROPERTY_VALID (1) /* Physical property valid */ @@ -1894,6 +1938,7 @@ typedef struct acpi_pptt_cache #define ACPI_PPTT_CACHE_TYPE_VALID (1<<4) /* Cache type valid */ #define ACPI_PPTT_WRITE_POLICY_VALID (1<<5) /* Write policy valid */ #define ACPI_PPTT_LINE_SIZE_VALID (1<<6) /* Line size valid */ +#define ACPI_PPTT_CHACHE_ID_VALID (1<<7) /* Cache ID valid */ /* Masks for Attributes */ @@ -2108,6 +2153,7 @@ enum AcpiSdevType /* Values for flags above */ #define ACPI_SDEV_HANDOFF_TO_UNSECURE_OS (1) +#define ACPI_SDEV_SECURE_COMPONENTS_PRESENT (1<<1) /* * SDEV subtables @@ -2125,6 +2171,58 @@ typedef struct acpi_sdev_namespace } ACPI_SDEV_NAMESPACE; +typedef struct acpi_sdev_secure_component +{ + UINT16 SecureComponentOffset; + UINT16 SecureComponentLength; + +} ACPI_SDEV_SECURE_COMPONENT; + + +/* + * SDEV sub-subtables ("Components") for above + */ +typedef struct acpi_sdev_component +{ + ACPI_SDEV_HEADER Header; + +} ACPI_SDEV_COMPONENT; + + +/* Values for sub-subtable type above */ + +enum AcpiSacType +{ + ACPI_SDEV_TYPE_ID_COMPONENT = 0, + ACPI_SDEV_TYPE_MEM_COMPONENT = 1 +}; + +typedef struct acpi_sdev_id_component +{ + ACPI_SDEV_HEADER Header; + UINT16 HardwareIdOffset; + UINT16 HardwareIdLength; + UINT16 SubsystemIdOffset; + UINT16 SubsystemIdLength; + UINT16 HardwareRevision; + UINT8 HardwareRevPresent; + UINT8 ClassCodePresent; + UINT8 PciBaseClass; + UINT8 PciSubClass; + UINT8 PciProgrammingXface; + +} ACPI_SDEV_ID_COMPONENT; + +typedef struct acpi_sdev_mem_component +{ + ACPI_SDEV_HEADER Header; + UINT32 Reserved; + UINT64 MemoryBaseAddress; + UINT64 MemoryLength; + +} ACPI_SDEV_MEM_COMPONENT; + + /* 1: PCIe Endpoint Device Based Device Structure */ typedef struct acpi_sdev_pcie diff --git a/source/include/actbl3.h b/source/include/actbl3.h index 1c79143b8..abf14b4d9 100644 --- a/source/include/actbl3.h +++ b/source/include/actbl3.h @@ -463,7 +463,8 @@ typedef struct acpi_srat_generic_affinity /* Flags for ACPI_SRAT_GENERIC_AFFINITY */ -#define ACPI_SRAT_GENERIC_AFFINITY_ENABLED (1) /* 00: Use affinity structure */ +#define ACPI_SRAT_GENERIC_AFFINITY_ENABLED (1) /* 00: Use affinity structure */ +#define ACPI_SRAT_ARCHITECTURAL_TRANSACTIONS (1<<1) /* ACPI 6.4 */ /******************************************************************************* * diff --git a/source/include/acuuid.h b/source/include/acuuid.h index 72b253a4b..48f4c9a1c 100644 --- a/source/include/acuuid.h +++ b/source/include/acuuid.h @@ -210,5 +210,6 @@ #define UUID_DEVICE_GRAPHS "ab02a46b-74c7-45a2-bd68-f7d344ef2153" #define UUID_HIERARCHICAL_DATA_EXTENSION "dbb8e3e6-5886-4ba6-8795-1319f52a966b" #define UUID_CORESIGHT_GRAPH "3ecbc8b6-1d0e-4fb3-8107-e627f805c6cd" +#define UUID_USB4_CAPABILITIES "23a0d13a-26ab-486c-9c5f-0ffa525a575a" #endif /* __ACUUID_H__ */ |