summaryrefslogtreecommitdiff
path: root/source/include
diff options
context:
space:
mode:
Diffstat (limited to 'source/include')
-rw-r--r--source/include/acconfig.h1
-rw-r--r--source/include/acdisasm.h12
-rw-r--r--source/include/acglobal.h6
-rw-r--r--source/include/aclocal.h2
-rw-r--r--source/include/acoutput.h5
-rw-r--r--source/include/acpixf.h4
-rw-r--r--source/include/acpredef.h2
-rw-r--r--source/include/actbinfo.h11
-rw-r--r--source/include/actbl1.h17
-rw-r--r--source/include/actbl2.h109
-rw-r--r--source/include/actbl3.h12
-rw-r--r--source/include/actypes.h1
-rw-r--r--source/include/platform/acenv.h6
-rw-r--r--source/include/platform/achaiku.h9
14 files changed, 173 insertions, 24 deletions
diff --git a/source/include/acconfig.h b/source/include/acconfig.h
index f795b19efc76..7af986fce75a 100644
--- a/source/include/acconfig.h
+++ b/source/include/acconfig.h
@@ -210,7 +210,6 @@
* General Purpose Events (GPEs)
* Global Lock
* ACPI PM timer
- * FACS table (Waking vectors and Global Lock)
*/
#ifndef ACPI_REDUCED_HARDWARE
#define ACPI_REDUCED_HARDWARE FALSE
diff --git a/source/include/acdisasm.h b/source/include/acdisasm.h
index 91ec294325d0..01acb57fcf40 100644
--- a/source/include/acdisasm.h
+++ b/source/include/acdisasm.h
@@ -226,6 +226,8 @@ typedef enum
ACPI_DMT_BUF12,
ACPI_DMT_BUF16,
ACPI_DMT_BUF18,
+ ACPI_DMT_BUF32,
+ ACPI_DMT_BUF112,
ACPI_DMT_BUF128,
ACPI_DMT_SIG,
ACPI_DMT_STRING,
@@ -382,9 +384,17 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestGenRsrc[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestMemError[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestSmmuError[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestVendorError[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestVendorV2Error[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestGicError[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestPCIeError[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestProxyError[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestXface[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestXfaceHeader[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestXface4k[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestXface16k[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestXface64k[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestXrupt[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoAestXruptV2[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoAgdi[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoApmtNode[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoAsf0[];
@@ -418,6 +428,8 @@ extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedtHdr[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedt0[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedt1[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedt1_te[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedt2[];
+extern ACPI_DMTABLE_INFO AcpiDmTableInfoCedt2_te[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoCpep0[];
extern ACPI_DMTABLE_INFO AcpiDmTableInfoCsrt0[];
diff --git a/source/include/acglobal.h b/source/include/acglobal.h
index 7a87d125107d..fa14d6e50602 100644
--- a/source/include/acglobal.h
+++ b/source/include/acglobal.h
@@ -172,11 +172,7 @@ ACPI_INIT_GLOBAL (UINT32, AcpiGbl_DsdtIndex, ACPI_INVALID_TABLE_IN
ACPI_INIT_GLOBAL (UINT32, AcpiGbl_FacsIndex, ACPI_INVALID_TABLE_INDEX);
ACPI_INIT_GLOBAL (UINT32, AcpiGbl_XFacsIndex, ACPI_INVALID_TABLE_INDEX);
ACPI_INIT_GLOBAL (UINT32, AcpiGbl_FadtIndex, ACPI_INVALID_TABLE_INDEX);
-
-#if (!ACPI_REDUCED_HARDWARE)
-ACPI_GLOBAL (ACPI_TABLE_FACS *, AcpiGbl_FACS);
-
-#endif /* !ACPI_REDUCED_HARDWARE */
+ACPI_INIT_GLOBAL (ACPI_TABLE_FACS *, AcpiGbl_FACS, NULL);
/* These addresses are calculated from the FADT Event Block addresses */
diff --git a/source/include/aclocal.h b/source/include/aclocal.h
index 477034fbf4f7..c8beb6f1b8b5 100644
--- a/source/include/aclocal.h
+++ b/source/include/aclocal.h
@@ -1412,6 +1412,8 @@ typedef struct acpi_port_info
#define ACPI_ADDRESS_TYPE_IO_RANGE 1
#define ACPI_ADDRESS_TYPE_BUS_NUMBER_RANGE 2
+#define ACPI_ADDRESS_TYPE_PCC_NUMBER 0xA
+
/* Resource descriptor types and masks */
#define ACPI_RESOURCE_NAME_LARGE 0x80
diff --git a/source/include/acoutput.h b/source/include/acoutput.h
index 6e1b317d8ce7..c270d2c83277 100644
--- a/source/include/acoutput.h
+++ b/source/include/acoutput.h
@@ -336,6 +336,7 @@
*/
#ifndef ACPI_NO_ERROR_MESSAGES
#define AE_INFO _AcpiModuleName, __LINE__
+#define ACPI_ONCE(_fn, _plist) { static char _done; if (!_done) { _done = 1; _fn _plist; } }
/*
* Error reporting. Callers module and line number are inserted by AE_INFO,
@@ -344,8 +345,10 @@
*/
#define ACPI_INFO(plist) AcpiInfo plist
#define ACPI_WARNING(plist) AcpiWarning plist
+#define ACPI_WARNING_ONCE(plist) ACPI_ONCE(AcpiWarning, plist)
#define ACPI_EXCEPTION(plist) AcpiException plist
#define ACPI_ERROR(plist) AcpiError plist
+#define ACPI_ERROR_ONCE(plist) ACPI_ONCE(AcpiError, plist)
#define ACPI_BIOS_WARNING(plist) AcpiBiosWarning plist
#define ACPI_BIOS_EXCEPTION(plist) AcpiBiosException plist
#define ACPI_BIOS_ERROR(plist) AcpiBiosError plist
@@ -357,8 +360,10 @@
#define ACPI_INFO(plist)
#define ACPI_WARNING(plist)
+#define ACPI_WARNING_ONCE(plist)
#define ACPI_EXCEPTION(plist)
#define ACPI_ERROR(plist)
+#define ACPI_ERROR_ONCE(plist)
#define ACPI_BIOS_WARNING(plist)
#define ACPI_BIOS_EXCEPTION(plist)
#define ACPI_BIOS_ERROR(plist)
diff --git a/source/include/acpixf.h b/source/include/acpixf.h
index 4b96cc74965f..53d56a95b65e 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 0x20230628
+#define ACPI_CA_VERSION 0x20240827
#include "acconfig.h"
#include "actypes.h"
@@ -1295,7 +1295,7 @@ ACPI_STATUS
AcpiLeaveSleepState (
UINT8 SleepState))
-ACPI_HW_DEPENDENT_RETURN_STATUS (
+ACPI_EXTERNAL_RETURN_STATUS (
ACPI_STATUS
AcpiSetFirmwareWakingVector (
ACPI_PHYSICAL_ADDRESS PhysicalAddress,
diff --git a/source/include/acpredef.h b/source/include/acpredef.h
index c8ac10b2c043..144aedf0bf9a 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_PACKAGE),
+ {{"_DSM", METHOD_4ARGS (ACPI_TYPE_BUFFER, ACPI_TYPE_INTEGER, ACPI_TYPE_INTEGER, ACPI_TYPE_ANY) | 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),
diff --git a/source/include/actbinfo.h b/source/include/actbinfo.h
index 4f2bfd1f446f..19692837f11d 100644
--- a/source/include/actbinfo.h
+++ b/source/include/actbinfo.h
@@ -225,9 +225,17 @@
#define ACPI_AEST1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_MEMORY,f)
#define ACPI_AEST2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_SMMU,f)
#define ACPI_AEST3_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_VENDOR,f)
+#define ACPI_AEST3A_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_VENDOR_V2,f)
#define ACPI_AEST4_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_GIC,f)
+#define ACPI_AEST5_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_PCIE,f)
+#define ACPI_AEST6_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_PROXY,f)
#define ACPI_AEST0D_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_NODE_INTERFACE,f)
+#define ACPI_AEST0DH_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_NODE_INTERFACE_HEADER,f)
+#define ACPI_AEST0D4_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_NODE_INTERFACE_4K,f)
+#define ACPI_AEST0D16_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_NODE_INTERFACE_16K,f)
+#define ACPI_AEST0D64_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_NODE_INTERFACE_64K,f)
#define ACPI_AEST0E_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_NODE_INTERRUPT,f)
+#define ACPI_AEST0EA_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_AEST_NODE_INTERRUPT_V2,f)
#define ACPI_APMTN_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_APMT_NODE,f)
#define ACPI_ASF0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASF_INFO,f)
#define ACPI_ASF1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_ASF_ALERT,f)
@@ -253,6 +261,8 @@
#define ACPI_CEDT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CEDT_CHBS, f)
#define ACPI_CEDT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CEDT_CFMWS, f)
#define ACPI_CEDT1_TE_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CEDT_CFMWS_TARGET_ELEMENT, f)
+#define ACPI_CEDT2_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CEDT_CXIMS, f)
+#define ACPI_CEDT2_TE_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CEDT_CXIMS_TARGET_ELEMENT, f)
#define ACPI_CPEP0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CPEP_POLLING,f)
#define ACPI_CSRT0_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CSRT_GROUP,f)
#define ACPI_CSRT1_OFFSET(f) (UINT16) ACPI_OFFSET (ACPI_CSRT_SHARED_INFO,f)
@@ -446,6 +456,7 @@
#define ACPI_AEST0_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_AEST_PROCESSOR,f,o)
#define ACPI_AEST0D_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_AEST_NODE_INTERFACE,f,o)
#define ACPI_AEST0E_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_AEST_NODE_INTERRUPT,f,o)
+#define ACPI_AEST0EA_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_AEST_NODE_INTERRUPT_V2,f,o)
#define ACPI_AGDI_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_TABLE_AGDI,f,o)
#define ACPI_APMTN_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_APMT_NODE,f,o)
#define ACPI_BGRT_FLAG_OFFSET(f,o) ACPI_FLAG_OFFSET (ACPI_TABLE_BGRT,f,o)
diff --git a/source/include/actbl1.h b/source/include/actbl1.h
index 5816a812dff0..71cbc36d3fe7 100644
--- a/source/include/actbl1.h
+++ b/source/include/actbl1.h
@@ -822,13 +822,20 @@ typedef struct acpi_cedt_cfmws_target_element
/* 2: CXL XOR Interleave Math Structure */
-struct acpi_cedt_cxims {
+typedef struct acpi_cedt_cxims {
ACPI_CEDT_HEADER Header;
UINT16 Reserved1;
UINT8 Hbig;
UINT8 NrXormaps;
UINT64 XormapList[];
-};
+} ACPI_CEDT_CXIMS;
+
+typedef struct acpi_cedt_cxims_target_element
+{
+ UINT64 Xormap;
+
+} ACPI_CEDT_CXIMS_TARGET_ELEMENT;
+
/* 3: CXL RCEC Downstream Port Association Structure */
@@ -1038,6 +1045,7 @@ typedef struct acpi_dbg2_device
#define ACPI_DBG2_16550_WITH_GAS 0x0012
#define ACPI_DBG2_SDM845_7_372MHZ 0x0013
#define ACPI_DBG2_INTEL_LPSS 0x0014
+#define ACPI_DBG2_RISCV_SBI_CON 0x0015
#define ACPI_DBG2_1394_STANDARD 0x0000
@@ -2262,7 +2270,7 @@ typedef struct acpi_hmat_cache
UINT32 Reserved1;
UINT64 CacheSize;
UINT32 CacheAttributes;
- UINT16 Reserved2;
+ UINT16 AddressMode;
UINT16 NumberOfSMBIOSHandles;
} ACPI_HMAT_CACHE;
@@ -2275,6 +2283,9 @@ typedef struct acpi_hmat_cache
#define ACPI_HMAT_WRITE_POLICY (0x0000F000)
#define ACPI_HMAT_CACHE_LINE_SIZE (0xFFFF0000)
+#define ACPI_HMAT_CACHE_MODE_UNKNOWN (0)
+#define ACPI_HMAT_CACHE_MODE_EXTENDED_LINEAR (1)
+
/* Values for cache associativity flag */
#define ACPI_HMAT_CA_NONE (0)
diff --git a/source/include/actbl2.h b/source/include/actbl2.h
index 99076bbc460c..cc09702b8a3f 100644
--- a/source/include/actbl2.h
+++ b/source/include/actbl2.h
@@ -259,7 +259,9 @@ typedef struct acpi_aest_hdr
#define ACPI_AEST_SMMU_ERROR_NODE 2
#define ACPI_AEST_VENDOR_ERROR_NODE 3
#define ACPI_AEST_GIC_ERROR_NODE 4
-#define ACPI_AEST_NODE_TYPE_RESERVED 5 /* 5 and above are reserved */
+#define ACPI_AEST_PCIE_ERROR_NODE 5
+#define ACPI_AEST_PROXY_ERROR_NODE 6
+#define ACPI_AEST_NODE_TYPE_RESERVED 7 /* 7 and above are reserved */
/*
@@ -346,6 +348,16 @@ typedef struct acpi_aest_vendor
} ACPI_AEST_VENDOR;
+/* 3: Vendor Defined V2 */
+
+typedef struct acpi_aest_vendor_v2
+{
+ UINT64 AcpiHid;
+ UINT32 AcpiUid;
+ UINT8 VendorSpecificData[16];
+
+} ACPI_AEST_VENDOR_V2;
+
/* 4: Gic Error */
typedef struct acpi_aest_gic
@@ -363,6 +375,22 @@ typedef struct acpi_aest_gic
#define ACPI_AEST_GIC_ITS 3
#define ACPI_AEST_GIC_RESERVED 4 /* 4 and above are reserved */
+/* 5: PCIe Error */
+
+typedef struct acpi_aest_pcie
+{
+ UINT32 IortNodeReference;
+
+} ACPI_AEST_PCIE;
+
+
+/* 6: Proxy Error */
+
+typedef struct acpi_aest_proxy
+{
+ UINT64 NodeAddress;
+
+} ACPI_AEST_PROXY;
/* Node Interface Structure */
@@ -380,11 +408,67 @@ typedef struct acpi_aest_node_interface
} ACPI_AEST_NODE_INTERFACE;
+/* Node Interface Structure V2*/
+
+typedef struct acpi_aest_node_interface_header
+{
+ UINT8 Type;
+ UINT8 GroupFormat;
+ UINT8 Reserved[2];
+ UINT32 Flags;
+ UINT64 Address;
+ UINT32 ErrorRecordIndex;
+ UINT32 ErrorRecordCount;
+
+} ACPI_AEST_NODE_INTERFACE_HEADER;
+
+#define ACPI_AEST_NODE_GROUP_FORMAT_4K 0
+#define ACPI_AEST_NODE_GROUP_FORMAT_16K 1
+#define ACPI_AEST_NODE_GROUP_FORMAT_64K 2
+
+typedef struct acpi_aest_node_interface_common
+{
+ UINT32 ErrorNodeDevice;
+ UINT32 ProcessorAffinity;
+ UINT64 ErrorGroupRegisterBase;
+ UINT64 FaultInjectRegisterBase;
+ UINT64 InterruptConfigRegisterBase;
+
+} ACPI_AEST_NODE_INTERFACE_COMMON;
+
+typedef struct acpi_aest_node_interface_4k
+{
+ UINT64 ErrorRecordImplemented;
+ UINT64 ErrorStatusReporting;
+ UINT64 AddressingMode;
+ ACPI_AEST_NODE_INTERFACE_COMMON Common;
+
+} ACPI_AEST_NODE_INTERFACE_4K;
+
+typedef struct acpi_aest_node_interface_16k
+{
+ UINT64 ErrorRecordImplemented[4];
+ UINT64 ErrorStatusReporting[4];
+ UINT64 AddressingMode[4];
+ ACPI_AEST_NODE_INTERFACE_COMMON Common;
+
+} ACPI_AEST_NODE_INTERFACE_16K;
+
+typedef struct acpi_aest_node_interface_64k
+{
+ INT64 ErrorRecordImplemented[14];
+ UINT64 ErrorStatusReporting[14];
+ UINT64 AddressingMode[14];
+ ACPI_AEST_NODE_INTERFACE_COMMON Common;
+
+} ACPI_AEST_NODE_INTERFACE_64K;
+
/* Values for Type field above */
-#define ACPI_AEST_NODE_SYSTEM_REGISTER 0
-#define ACPI_AEST_NODE_MEMORY_MAPPED 1
-#define ACPI_AEST_XFACE_RESERVED 2 /* 2 and above are reserved */
+#define ACPI_AEST_NODE_SYSTEM_REGISTER 0
+#define ACPI_AEST_NODE_MEMORY_MAPPED 1
+#define ACPI_AEST_NODE_SINGLE_RECORD_MEMORY_MAPPED 2
+#define ACPI_AEST_XFACE_RESERVED 3 /* 2 and above are reserved */
/* Node Interrupt Structure */
@@ -399,6 +483,18 @@ typedef struct acpi_aest_node_interrupt
} ACPI_AEST_NODE_INTERRUPT;
+/* Node Interrupt Structure V2 */
+
+typedef struct acpi_aest_node_interrupt_v2
+{
+ UINT8 Type;
+ UINT8 Reserved[2];
+ UINT8 Flags;
+ UINT32 Gsiv;
+ UINT8 Reserved1[4];
+
+} ACPI_AEST_NODE_INTERRUPT_V2;
+
/* Values for Type field above */
#define ACPI_AEST_NODE_FAULT_HANDLING 0
@@ -548,7 +644,7 @@ typedef struct acpi_table_ccel
* IORT - IO Remapping Table
*
* Conforms to "IO Remapping Table System Software on ARM Platforms",
- * Document number: ARM DEN 0049E.e, Sep 2022
+ * Document number: ARM DEN 0049E.f, Apr 2024
*
******************************************************************************/
@@ -631,6 +727,7 @@ typedef struct acpi_iort_memory_access
#define ACPI_IORT_MF_COHERENCY (1)
#define ACPI_IORT_MF_ATTRIBUTES (1<<1)
+#define ACPI_IORT_MF_CANWBS (1<<2)
/*
@@ -1835,7 +1932,7 @@ typedef struct acpi_mpam_msc_node
UINT32 MaxNrdyUsec;
UINT64 HardwareIdLinkedDevice;
UINT32 InstanceIdLinkedDevice;
- UINT32 NumResouceNodes;
+ UINT32 NumResourceNodes;
} ACPI_MPAM_MSC_NODE;
typedef struct acpi_table_mpam
diff --git a/source/include/actbl3.h b/source/include/actbl3.h
index 477d70af2c65..316197927fb5 100644
--- a/source/include/actbl3.h
+++ b/source/include/actbl3.h
@@ -243,10 +243,10 @@ typedef struct acpi_table_slit
/*******************************************************************************
*
* SPCR - Serial Port Console Redirection table
- * Version 2
+ * Version 4
*
* Conforms to "Serial Port Console Redirection Table",
- * Version 1.03, August 10, 2015
+ * Version 1.10, Jan 5, 2023
*
******************************************************************************/
@@ -264,7 +264,7 @@ typedef struct acpi_table_spcr
UINT8 StopBits;
UINT8 FlowControl;
UINT8 TerminalType;
- UINT8 Reserved1;
+ UINT8 Language;
UINT16 PciDeviceId;
UINT16 PciVendorId;
UINT8 PciBus;
@@ -272,7 +272,11 @@ typedef struct acpi_table_spcr
UINT8 PciFunction;
UINT32 PciFlags;
UINT8 PciSegment;
- UINT32 Reserved2;
+ UINT32 UartClkFreq;
+ UINT32 PreciseBaudrate;
+ UINT16 NameSpaceStringLength;
+ UINT16 NameSpaceStringOffset;
+ char NameSpaceString[];
} ACPI_TABLE_SPCR;
diff --git a/source/include/actypes.h b/source/include/actypes.h
index 695dbb14d7eb..5e1012d86e5a 100644
--- a/source/include/actypes.h
+++ b/source/include/actypes.h
@@ -1561,6 +1561,7 @@ typedef enum
#define ACPI_OSI_WIN_10_19H1 0x14
#define ACPI_OSI_WIN_10_20H1 0x15
#define ACPI_OSI_WIN_11 0x16
+#define ACPI_OSI_WIN_11_22H2 0x17
/* Definitions of getopt */
diff --git a/source/include/platform/acenv.h b/source/include/platform/acenv.h
index e7c8678d2280..cc198c01a134 100644
--- a/source/include/platform/acenv.h
+++ b/source/include/platform/acenv.h
@@ -403,6 +403,12 @@
#define ACPI_RELEASE_GLOBAL_LOCK(GLptr, Pending) Pending = 0
#endif
+/* NULL/invalid value to use for destroyed or not-yet-created semaphores. */
+
+#ifndef ACPI_SEMAPHORE_NULL
+#define ACPI_SEMAPHORE_NULL NULL
+#endif
+
/* Flush CPU cache - used when going to sleep. Wbinvd or similar. */
#ifndef ACPI_FLUSH_CPU_CACHE
diff --git a/source/include/platform/achaiku.h b/source/include/platform/achaiku.h
index 64b59819bfde..044e0b62a2b2 100644
--- a/source/include/platform/achaiku.h
+++ b/source/include/platform/achaiku.h
@@ -191,11 +191,14 @@ struct mutex;
/* ACPICA cache implementation is adequate. */
#define ACPI_USE_LOCAL_CACHE
+/* On other platform the default definition (do nothing) is fine. */
+#if defined(__i386__) || defined(__x86_64__)
#define ACPI_FLUSH_CPU_CACHE() __asm __volatile("wbinvd");
+#endif
/* Based on FreeBSD's due to lack of documentation */
-int AcpiOsAcquireGlobalLock(uint32 *lock);
-int AcpiOsReleaseGlobalLock(uint32 *lock);
+extern int AcpiOsAcquireGlobalLock(volatile uint32_t *lock);
+extern int AcpiOsReleaseGlobalLock(volatile uint32_t *lock);
#define ACPI_ACQUIRE_GLOBAL_LOCK(GLptr, Acq) do { \
(Acq) = AcpiOsAcquireGlobalLock(&((GLptr)->GlobalLock)); \
@@ -205,6 +208,8 @@ int AcpiOsReleaseGlobalLock(uint32 *lock);
(Acq) = AcpiOsReleaseGlobalLock(&((GLptr)->GlobalLock)); \
} while (0)
+#define ACPI_SEMAPHORE_NULL -1
+
#else /* _KERNEL_MODE */
/* Host-dependent types and defines for user-space ACPICA */