diff options
Diffstat (limited to 'source/include')
| -rw-r--r-- | source/include/acdisasm.h | 21 | ||||
| -rw-r--r-- | source/include/aclocal.h | 2 | ||||
| -rw-r--r-- | source/include/acpixf.h | 2 | ||||
| -rw-r--r-- | source/include/acpredef.h | 5 | ||||
| -rw-r--r-- | source/include/actbinfo.h | 12 | ||||
| -rw-r--r-- | source/include/actbl1.h | 5 | ||||
| -rw-r--r-- | source/include/actbl2.h | 220 | ||||
| -rw-r--r-- | source/include/actbl3.h | 1 | ||||
| -rw-r--r-- | source/include/acuuid.h | 6 |
9 files changed, 262 insertions, 12 deletions
diff --git a/source/include/acdisasm.h b/source/include/acdisasm.h index 9e8d4976221d..5416d0b3f2bd 100644 --- a/source/include/acdisasm.h +++ b/source/include/acdisasm.h @@ -282,6 +282,8 @@ typedef enum ACPI_DMT_HESTNTYP, ACPI_DMT_HMAT, ACPI_DMT_IORTMEM, + ACPI_DMT_IOVT, + ACPI_DMT_IOVTDEV, ACPI_DMT_IVRS, ACPI_DMT_IVRS_DE, ACPI_DMT_IVRS_UNTERMINATED_STRING, @@ -301,6 +303,7 @@ typedef enum ACPI_DMT_SDEV, ACPI_DMT_SLIC, ACPI_DMT_SRAT, + ACPI_DMT_SWFT, ACPI_DMT_TPM2, ACPI_DMT_VIOT, ACPI_DMT_WPBT_UNICODE, @@ -544,11 +547,15 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort4[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort5[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort6[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort6a[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoIort7[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortAcc[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortHdr[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortHdr3[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortMap[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIortPad[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoIovt[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoIovt0[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoIovtdev[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrs[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHware1[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoIvrsHware23[]; @@ -597,6 +604,9 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt24[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt25[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt26[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt27[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt28[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt29[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt30[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadt128[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMadtHdr[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoMcfg[]; @@ -725,6 +735,9 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoStao[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoStaoStr[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoSvkl[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoSvkl0[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoSwft[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoSwftFileHdr[]; +extern ACPI_DMTABLE_INFO AcpiDmTableInfoSwftFileData[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpaHdr[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpaClient[]; extern ACPI_DMTABLE_INFO AcpiDmTableInfoTcpaServer[]; @@ -897,6 +910,10 @@ AcpiDmDumpIort ( ACPI_TABLE_HEADER *Table); void +AcpiDmDumpIovt ( + ACPI_TABLE_HEADER *Table); + +void AcpiDmDumpIvrs ( ACPI_TABLE_HEADER *Table); @@ -1009,6 +1026,10 @@ AcpiDmDumpSvkl ( ACPI_TABLE_HEADER *Table); void +AcpiDmDumpSwft ( + ACPI_TABLE_HEADER *Table); + +void AcpiDmDumpTcpa ( ACPI_TABLE_HEADER *Table); diff --git a/source/include/aclocal.h b/source/include/aclocal.h index 56ce42ba89fc..ff18d617f79a 100644 --- a/source/include/aclocal.h +++ b/source/include/aclocal.h @@ -1464,7 +1464,7 @@ typedef struct acpi_port_info #define ACPI_RESOURCE_NAME_PIN_GROUP_FUNCTION 0x91 #define ACPI_RESOURCE_NAME_PIN_GROUP_CONFIG 0x92 #define ACPI_RESOURCE_NAME_CLOCK_INPUT 0x93 -#define ACPI_RESOURCE_NAME_LARGE_MAX 0x94 +#define ACPI_RESOURCE_NAME_LARGE_MAX 0x93 /***************************************************************************** diff --git a/source/include/acpixf.h b/source/include/acpixf.h index 8f7047cda920..67d60c68b6c5 100644 --- a/source/include/acpixf.h +++ b/source/include/acpixf.h @@ -154,7 +154,7 @@ /* Current ACPICA subsystem version in YYYYMMDD format */ -#define ACPI_CA_VERSION 0x20250807 +#define ACPI_CA_VERSION 0x20251212 #include "acconfig.h" #include "actypes.h" diff --git a/source/include/acpredef.h b/source/include/acpredef.h index 91fd49723b7f..8cf6cf2dfcad 100644 --- a/source/include/acpredef.h +++ b/source/include/acpredef.h @@ -587,7 +587,7 @@ const ACPI_PREDEFINED_INFO AcpiGbl_PredefinedMethods[] = METHOD_RETURNS (ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each: 1 Buf, 1 Pkg */ PACKAGE_INFO (ACPI_PTYPE2_UUID_PAIR, ACPI_RTYPE_BUFFER, 1, ACPI_RTYPE_PACKAGE, 1,0), - {{"_DSM", METHOD_4ARGS (ACPI_TYPE_BUFFER, ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER, ACPI_TYPE_ANY) | ARG_COUNT_IS_MINIMUM, + {{"_DSM", METHOD_4ARGS (ACPI_TYPE_BUFFER, ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER, ACPI_TYPE_ANY | ACPI_TYPE_PACKAGE) | ARG_COUNT_IS_MINIMUM, METHOD_RETURNS (ACPI_RTYPE_ALL)}}, /* Must return a value, but it can be of any type */ {{"_DSS", METHOD_1ARGS (ACPI_TYPE_INTEGER), @@ -721,6 +721,9 @@ const ACPI_PREDEFINED_INFO AcpiGbl_PredefinedMethods[] = METHOD_RETURNS (ACPI_RTYPE_PACKAGE)}}, /* Variable-length (Pkgs) each (var Ints) */ PACKAGE_INFO (ACPI_PTYPE2_MIN, ACPI_RTYPE_INTEGER, 5,0,0,0), + {{"_VDM", METHOD_0ARGS, + METHOD_RETURNS (ACPI_RTYPE_INTEGER)}}, + {{"_HRV", METHOD_0ARGS, METHOD_RETURNS (ACPI_RTYPE_INTEGER)}}, diff --git a/source/include/actbinfo.h b/source/include/actbinfo.h index fdf2a989ef6b..0d80f67b6982 100644 --- a/source/include/actbinfo.h +++ b/source/include/actbinfo.h @@ -177,6 +177,7 @@ #define ACPI_HPET_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_HPET,f) #define ACPI_HMAT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_HMAT,f) #define ACPI_IORT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_IORT,f) +#define ACPI_IOVT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_IOVT,f) #define ACPI_IVRS_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_IVRS,f) #define ACPI_MADT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_MADT,f) #define ACPI_MCFG_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_MCFG,f) @@ -330,9 +331,13 @@ #define ACPI_IORT5_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IORT_PMCG,f) #define ACPI_IORT6_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IORT_RMR,f) #define ACPI_IORT6A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IORT_RMR_DESC,f) +#define ACPI_IORT7_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IORT_IWB,f) #define ACPI_IORTA_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IORT_MEMORY_ACCESS,f) #define ACPI_IORTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IORT_NODE,f) #define ACPI_IORTM_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IORT_ID_MAPPING,f) +#define ACPI_IOVTH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IOVT_HEADER,f) +#define ACPI_IOVT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IOVT_IOMMU,f) +#define ACPI_IOVTDEV_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IOVT_DEVICE_ENTRY,f) #define ACPI_IVRSH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IVRS_HEADER,f) #define ACPI_IVRS0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IVRS_HARDWARE1,f) #define ACPI_IVRS01_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_IVRS_HARDWARE2,f) @@ -372,6 +377,9 @@ #define ACPI_MADT25_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_IMSIC,f) #define ACPI_MADT26_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_APLIC,f) #define ACPI_MADT27_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_PLIC,f) +#define ACPI_MADT28_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_GICV5_IRS,f) +#define ACPI_MADT29_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_GICv5_ITS,f) +#define ACPI_MADT30_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_GICv5_ITS_TRANSLATE,f) #define ACPI_MADT128_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_MADT_OEM_DATA,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) @@ -458,6 +466,7 @@ #define ACPI_SRAT5_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SRAT_GENERIC_AFFINITY,f) #define ACPI_SRAT7_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SRAT_RINTC_AFFINITY,f) #define ACPI_SVKL0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SVKL_KEY,f) +#define ACPI_SWFT_FILE_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_SWFT_FILE,f) #define ACPI_TCPA_CLIENT_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_TCPA_CLIENT,f) #define ACPI_TCPA_SERVER_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TABLE_TCPA_SERVER,f) #define ACPI_TPM2A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_TPM2_TRAILER,f) @@ -512,6 +521,7 @@ #define ACPI_IORT6_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_IORT_RMR,f,o) #define ACPI_IORTA_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_IORT_MEMORY_ACCESS,f,o) #define ACPI_IORTM_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_IORT_ID_MAPPING,f,o) +#define ACPI_IOVT0_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_IOVT_IOMMU,f,o) #define ACPI_IVRS_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_IVRS_HEADER,f,o) #define ACPI_IVRSDE_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_IVRS_DE_HEADER,f,o) #define ACPI_LPITH_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_LPIT_HEADER,f,o) @@ -528,6 +538,8 @@ #define ACPI_MADT13_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_MADT_GENERIC_MSI_FRAME,f,o) #define ACPI_MADT14_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_MADT_GENERIC_REDISTRIBUTOR,f,o) #define ACPI_MADT15_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_MADT_GENERIC_TRANSLATOR,f,o) +#define ACPI_MADT28_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_MADT_GICV5_IRS,f,o) +#define ACPI_MADT29_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_MADT_GICv5_ITS,f,o) #define ACPI_MPST0_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_MPST_POWER_NODE,f,o) #define ACPI_MPST2_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_MPST_POWER_DATA,f,o) #define ACPI_NFIT0_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_NFIT_SYSTEM_ADDRESS,f,o) diff --git a/source/include/actbl1.h b/source/include/actbl1.h index ec04f0a0ab9f..6e7937999a5b 100644 --- a/source/include/actbl1.h +++ b/source/include/actbl1.h @@ -826,11 +826,12 @@ typedef struct acpi_cedt_cfmws_target_element /* Values for Restrictions field above */ -#define ACPI_CEDT_CFMWS_RESTRICT_TYPE2 (1) -#define ACPI_CEDT_CFMWS_RESTRICT_TYPE3 (1<<1) +#define ACPI_CEDT_CFMWS_RESTRICT_DEVMEM (1) +#define ACPI_CEDT_CFMWS_RESTRICT_HOSTONLYMEM (1<<1) #define ACPI_CEDT_CFMWS_RESTRICT_VOLATILE (1<<2) #define ACPI_CEDT_CFMWS_RESTRICT_PMEM (1<<3) #define ACPI_CEDT_CFMWS_RESTRICT_FIXED (1<<4) +#define ACPI_CEDT_CFMWS_RESTRICT_BI (1<<5) /* 2: CXL XOR Interleave Math Structure */ diff --git a/source/include/actbl2.h b/source/include/actbl2.h index a74b6d555a3a..a51ff1ecaa09 100644 --- a/source/include/actbl2.h +++ b/source/include/actbl2.h @@ -175,7 +175,9 @@ #define ACPI_SIG_CDAT "CDAT" /* Coherent Device Attribute Table */ #define ACPI_SIG_ERDT "ERDT" /* Enhanced Resource Director Technology */ #define ACPI_SIG_IORT "IORT" /* IO Remapping Table */ +#define ACPI_SIG_IOVT "IOVT" /* I/O Virtualization Table */ #define ACPI_SIG_IVRS "IVRS" /* I/O Virtualization Reporting Structure */ +#define ACPI_SIG_KEYP "KEYP" /* Key Programming Interface for IDE */ #define ACPI_SIG_LPIT "LPIT" /* Low Power Idle Table */ #define ACPI_SIG_MADT "APIC" /* Multiple APIC Description Table */ #define ACPI_SIG_MCFG "MCFG" /* PCI Memory Mapped Configuration table */ @@ -917,6 +919,7 @@ enum AcpiIortNodeType ACPI_IORT_NODE_SMMU_V3 = 0x04, ACPI_IORT_NODE_PMCG = 0x05, ACPI_IORT_NODE_RMR = 0x06, + ACPI_IORT_NODE_IWB = 0x07, }; @@ -1120,6 +1123,92 @@ typedef struct acpi_iort_rmr_desc { } ACPI_IORT_RMR_DESC; +typedef struct acpi_iort_iwb { + UINT64 BaseAddress; + UINT16 IwbIndex; /* Unique IWB identifier matching with the IWB GSI namespace. */ + char DeviceName[]; /* Path of the IWB namespace object */ + +} ACPI_IORT_IWB; + + +/******************************************************************************* + * + * IOVT - I/O Virtualization Table + * + * Conforms to "LoongArch I/O Virtualization Table", + * Version 0.1, October 2024 + * + ******************************************************************************/ + +typedef struct acpi_table_iovt +{ + ACPI_TABLE_HEADER Header; /* Common ACPI table header */ + UINT16 IommuCount; + UINT16 IommuOffset; + UINT8 Reserved[8]; + +} ACPI_TABLE_IOVT; + +/* IOVT subtable header */ + +typedef struct acpi_iovt_header +{ + UINT16 Type; + UINT16 Length; + +} ACPI_IOVT_HEADER; + +/* Values for Type field above */ + +enum AcpiIovtIommuType +{ + ACPI_IOVT_IOMMU_V1 = 0x00, + ACPI_IOVT_IOMMU_RESERVED = 0x01 /* 1 and greater are reserved */ +}; + +/* IOVT subtables */ + +typedef struct acpi_iovt_iommu +{ + ACPI_IOVT_HEADER Header; + UINT32 Flags; + UINT16 Segment; + UINT16 PhyWidth; /* Physical Address Width */ + UINT16 VirtWidth; /* Virtual Address Width */ + UINT16 MaxPageLevel; + UINT64 PageSize; + UINT32 DeviceId; + UINT64 BaseAddress; + UINT32 AddressSpaceSize; + UINT8 InterruptType; + UINT8 Reserved[3]; + UINT32 GsiNumber; + UINT32 ProximityDomain; + UINT32 MaxDeviceNum; + UINT32 DeviceEntryNum; + UINT32 DeviceEntryOffset; + +} ACPI_IOVT_IOMMU; + +typedef struct acpi_iovt_device_entry +{ + UINT8 Type; + UINT8 Length; + UINT8 Flags; + UINT8 Reserved[3]; + UINT16 DeviceId; + +} ACPI_IOVT_DEVICE_ENTRY; + +enum AcpiIovtDeviceEntryType +{ + ACPI_IOVT_DEVICE_ENTRY_SINGLE = 0x00, + ACPI_IOVT_DEVICE_ENTRY_START = 0x01, + ACPI_IOVT_DEVICE_ENTRY_END = 0x02, + ACPI_IOVT_DEVICE_ENTRY_RESERVED = 0x03 /* 3 and greater are reserved */ +}; + + /******************************************************************************* * * IVRS - I/O Virtualization Reporting Structure @@ -1354,6 +1443,65 @@ typedef struct acpi_ivrs_memory } ACPI_IVRS_MEMORY; +/******************************************************************************* + * + * KEYP - Key Programming Interface for Root Complex Integrity and Data + * Encryption (IDE) + * Version 1 + * + * Conforms to "Key Programming Interface for Root Complex Integrity and Data + * Encryption (IDE)" document. See under ACPI-Related Documents. + * + ******************************************************************************/ +typedef struct acpi_table_keyp { + ACPI_TABLE_HEADER Header; /* Common ACPI table header */ + UINT32 Reserved; +} ACPI_TABLE_KEYP; + +/* KEYP common subtable header */ + +typedef struct acpi_keyp_common_header { + UINT8 Type; + UINT8 Reserved; + UINT16 Length; +} ACPI_KEYP_COMMON_HEADER; + +/* Values for Type field above */ + +enum AcpiKeypType +{ + ACPI_KEYP_TYPE_CONFIG_UNIT = 0, +}; + +/* Root Port Information Structure */ + +typedef struct acpi_keyp_rp_info { + UINT16 Segment; + UINT8 Bus; + UINT8 Devfn; +} ACPI_KEYP_RP_INFO; + +/* Key Configuration Unit Structure */ + +typedef struct acpi_keyp_config_unit { + ACPI_KEYP_COMMON_HEADER Header; + UINT8 ProtocolType; + UINT8 Version; + UINT8 RootPortCount; + UINT8 Flags; + UINT64 RegisterBaseAddress; + ACPI_KEYP_RP_INFO RpInfo[]; +} ACPI_KEYP_CONFIG_UNIT; + +enum AcpiKeypProtocolType +{ + ACPI_KEYP_PROTO_TYPE_INVALID = 0, + ACPI_KEYP_PROTO_TYPE_PCIE, + ACPI_KEYP_PROTO_TYPE_CXL, + ACPI_KEYP_PROTO_TYPE_RESERVED +}; + +#define ACPI_KEYP_F_TVM_USABLE (1) /******************************************************************************* * @@ -1470,7 +1618,10 @@ enum AcpiMadtType ACPI_MADT_TYPE_IMSIC = 25, ACPI_MADT_TYPE_APLIC = 26, ACPI_MADT_TYPE_PLIC = 27, - ACPI_MADT_TYPE_RESERVED = 28, /* 28 to 0x7F are reserved */ + ACPI_MADT_TYPE_GICV5_IRS = 28, + ACPI_MADT_TYPE_GICV5_ITS = 29, + ACPI_MADT_TYPE_GICV5_ITS_TRANSLATE = 30, + ACPI_MADT_TYPE_RESERVED = 31, /* 31 to 0x7F are reserved */ ACPI_MADT_TYPE_OEM_RESERVED = 0x80 /* 0x80 to 0xFF are reserved for OEM use */ }; @@ -1626,7 +1777,7 @@ typedef struct acpi_madt_local_x2apic_nmi } ACPI_MADT_LOCAL_X2APIC_NMI; -/* 11: Generic Interrupt - GICC (ACPI 5.0 + ACPI 6.0 + ACPI 6.3 + ACPI 6.5 changes) */ +/* 11: Generic Interrupt - GICC (ACPI 5.0 + ACPI 6.0 + ACPI 6.3 + ACPI 6.5 + ACPI 6.7 changes) */ typedef struct acpi_madt_generic_interrupt { @@ -1648,6 +1799,8 @@ typedef struct acpi_madt_generic_interrupt UINT8 Reserved2[1]; UINT16 SpeInterrupt; /* ACPI 6.3 */ UINT16 TrbeInterrupt; /* ACPI 6.5 */ + UINT16 Iaffid; /* ACPI 6.7 */ + UINT32 IrsId; } ACPI_MADT_GENERIC_INTERRUPT; @@ -1673,7 +1826,7 @@ typedef struct acpi_madt_generic_distributor } ACPI_MADT_GENERIC_DISTRIBUTOR; -/* Values for Version field above */ +/* Values for Version field above and Version field in acpi_madt_gicv5_irs */ enum AcpiMadtGicVersion { @@ -1682,7 +1835,8 @@ enum AcpiMadtGicVersion ACPI_MADT_GIC_VERSION_V2 = 2, ACPI_MADT_GIC_VERSION_V3 = 3, ACPI_MADT_GIC_VERSION_V4 = 4, - ACPI_MADT_GIC_VERSION_RESERVED = 5 /* 5 and greater are reserved */ + ACPI_MADT_GIC_VERSION_V5 = 5, + ACPI_MADT_GIC_VERSION_RESERVED = 6 /* 6 and greater are reserved */ }; @@ -1734,7 +1888,7 @@ typedef struct acpi_madt_generic_translator #define ACPI_MADT_ITS_NON_COHERENT (1) -/* 16: Multiprocessor wakeup (ACPI 6.4) */ +/* 16: Multiprocessor wakeup (ACPI 6.6) */ typedef struct acpi_madt_multiproc_wakeup { @@ -1742,6 +1896,7 @@ typedef struct acpi_madt_multiproc_wakeup UINT16 MailboxVersion; UINT32 Reserved; /* reserved - must be zero */ UINT64 BaseAddress; + UINT64 ResetVector; } ACPI_MADT_MULTIPROC_WAKEUP; @@ -1760,6 +1915,7 @@ typedef struct acpi_madt_multiproc_wakeup_mailbox } ACPI_MADT_MULTIPROC_WAKEUP_MAILBOX; #define ACPI_MP_WAKE_COMMAND_WAKEUP 1 +#define ACPI_MP_WAKE_COMMAND_TEST 2 /* 17: CPU Core Interrupt Controller (ACPI 6.5) */ @@ -1952,6 +2108,46 @@ typedef struct acpi_madt_plic { UINT32 GsiBase; } ACPI_MADT_PLIC; +/* 28: Arm GICv5 IRS (ACPI 6.7) */ +typedef struct acpi_madt_gicv5_irs { + ACPI_SUBTABLE_HEADER Header; + UINT8 Version; + UINT8 Reserved; + UINT32 IrsId; + UINT32 Flags; + UINT32 Reserved2; + UINT64 ConfigBaseAddress; + UINT64 SetlpiBaseAddress; +} ACPI_MADT_GICV5_IRS; + +#define ACPI_MADT_IRS_NON_COHERENT (1) + + +/* 29: Arm GICv5 ITS Config Frame (ACPI 6.7) */ +typedef struct acpi_madt_gicv5_translator +{ + ACPI_SUBTABLE_HEADER Header; + UINT8 Flags; + UINT8 Reserved; /* reserved - must be zero */ + UINT32 TranslatorId; + UINT64 BaseAddress; + +} ACPI_MADT_GICv5_ITS; + +#define ACPI_MADT_GICV5_ITS_NON_COHERENT (1) + +/* 30: Arm GICv5 ITS Translate Frame (ACPI 6.7) */ +typedef struct acpi_madt_gicv5_translate_frame +{ + ACPI_SUBTABLE_HEADER Header; + UINT16 Reserved; /* reserved - must be zero */ + UINT32 LinkedTranslatorId; + UINT32 TranslateFrameId; + UINT32 Reserved2; + UINT64 BaseAddress; + +} ACPI_MADT_GICv5_ITS_TRANSLATE; + /* 80: OEM data */ @@ -3356,6 +3552,15 @@ typedef struct acpi_pptt_cache typedef struct acpi_pptt_cache_v1 { + ACPI_SUBTABLE_HEADER Header; + UINT16 Reserved; + UINT32 Flags; + UINT32 NextLevelOfCache; + UINT32 Size; + UINT32 NumberOfSets; + UINT8 Associativity; + UINT8 Attributes; + UINT16 LineSize; UINT32 CacheId; } ACPI_PPTT_CACHE_V1; @@ -3629,6 +3834,8 @@ typedef struct acpi_ras2_patrol_scrub_param { UINT32 Flags; UINT32 ScrubParamsOut; UINT32 ScrubParamsIn; + UINT32 ExtScrubParams; + UINT8 ScrubRateDesc[256]; } ACPI_RAS2_PATROL_SCRUB_PARAM; @@ -4115,9 +4322,8 @@ typedef struct acpi_swft_file UINT16 VendorID; UINT32 FileID; UINT16 FileVersion; - UINT16 FileLength; + UINT32 FileLength; UINT8 FileData[]; - } ACPI_SWFT_FILE; /******************************************************************************* diff --git a/source/include/actbl3.h b/source/include/actbl3.h index 07bc8713becc..6392359249c9 100644 --- a/source/include/actbl3.h +++ b/source/include/actbl3.h @@ -404,6 +404,7 @@ typedef struct acpi_srat_mem_affinity #define ACPI_SRAT_MEM_ENABLED (1) /* 00: Use affinity structure */ #define ACPI_SRAT_MEM_HOT_PLUGGABLE (1<<1) /* 01: Memory region is hot pluggable */ #define ACPI_SRAT_MEM_NON_VOLATILE (1<<2) /* 02: Memory region is non-volatile */ +#define ACPI_SRAT_MEM_SPEC_PURPOSE (1<<3) /* 03: Memory is intended for specific-purpose usage */ /* 2: Processor Local X2_APIC Affinity (ACPI 4.0) */ diff --git a/source/include/acuuid.h b/source/include/acuuid.h index 071e9a5ad610..a950972b01b3 100644 --- a/source/include/acuuid.h +++ b/source/include/acuuid.h @@ -179,6 +179,11 @@ #define UUID_DEVICE_LABELING "e5c937d0-3553-4d7a-9117-ea4d19c3434d" #define UUID_PHYSICAL_PRESENCE "3dddfaa6-361b-4eb4-a424-8d10089d1653" +/* TPM */ +#define UUID_HARDWARE_INFORMATION "cf8e16a5-c1e8-4e25-b712-4f54a96702c8" +#define UUID_START_METHOD "6bbf6cab-5463-4714-b7cd-f0203c0368d4" +#define UUID_MEMORY_CLEAR "376054ed-cc13-4675-901c-4756d7f2d45d" + /* NVDIMM - NFIT table */ #define UUID_NFIT_DIMM "4309ac30-0d11-11e4-9191-0800200c9a66" @@ -213,4 +218,5 @@ #define UUID_USB4_CAPABILITIES "23a0d13a-26ab-486c-9c5f-0ffa525a575a" #define UUID_1ST_FUNCTION_ID "893f00a6-660c-494e-bcfd-3043f4fb67c0" #define UUID_2ND_FUNCTION_ID "107ededd-d381-4fd7-8da9-08e9a6c79644" +#define UUID_FAN_TRIP_POINTS "a7611840-99fe-41ae-a488-35c75926c8eb" #endif /* __ACUUID_H__ */ |
