summaryrefslogtreecommitdiff
path: root/source/include
diff options
context:
space:
mode:
authorJung-uk Kim <jkim@FreeBSD.org>2017-06-29 18:42:13 +0000
committerJung-uk Kim <jkim@FreeBSD.org>2017-06-29 18:42:13 +0000
commit744d47ba98ced2e2a7d3aff2f894136544386e34 (patch)
tree917f6a025e019c7b80e50a45fa783593b4e3c19e /source/include
parentc457a42be4fca72c51fdca569271b62213d01a37 (diff)
Import ACPICA 20170629.vendor/acpica/20170629
Notes
svn path=/vendor-sys/acpica/dist/; revision=320476 svn path=/vendor-sys/acpica/20170629/; revision=320477; tag=vendor/acpica/20170629
Diffstat (limited to 'source/include')
-rw-r--r--source/include/acapps.h4
-rw-r--r--source/include/aclocal.h14
-rw-r--r--source/include/acobject.h10
-rw-r--r--source/include/acpixf.h15
-rw-r--r--source/include/actables.h8
-rw-r--r--source/include/actbl.h15
-rw-r--r--source/include/actbl2.h16
-rw-r--r--source/include/platform/acenv.h5
-rw-r--r--source/include/platform/aclinux.h5
9 files changed, 73 insertions, 19 deletions
diff --git a/source/include/acapps.h b/source/include/acapps.h
index 6ef98550601c..4ca3e80fb31e 100644
--- a/source/include/acapps.h
+++ b/source/include/acapps.h
@@ -226,6 +226,10 @@ AcGetAllTablesFromFile (
UINT8 GetOnlyAmlTables,
ACPI_NEW_TABLE_DESC **ReturnListHead);
+void
+AcDeleteTableList (
+ ACPI_NEW_TABLE_DESC *ListHead);
+
BOOLEAN
AcIsFileBinary (
FILE *File);
diff --git a/source/include/aclocal.h b/source/include/aclocal.h
index 1d94a59198fe..399e4c0691ca 100644
--- a/source/include/aclocal.h
+++ b/source/include/aclocal.h
@@ -328,6 +328,7 @@ typedef struct acpi_namespace_node
#define ANOBJ_EVALUATED 0x20 /* Set on first evaluation of node */
#define ANOBJ_ALLOCATED_BUFFER 0x40 /* Method AML buffer is dynamic (InstallMethod) */
+#define IMPLICIT_EXTERNAL 0x02 /* iASL only: This object created implicitly via External */
#define ANOBJ_IS_EXTERNAL 0x08 /* iASL only: This object created via External() */
#define ANOBJ_METHOD_NO_RETVAL 0x10 /* iASL only: Method has no return value */
#define ANOBJ_METHOD_SOME_NO_RETVAL 0x20 /* iASL only: Method has at least one return value */
@@ -1146,7 +1147,7 @@ typedef struct acpi_parse_obj_named
/* This version is used by the iASL compiler only */
-#define ACPI_MAX_PARSEOP_NAME 20
+#define ACPI_MAX_PARSEOP_NAME 20
typedef struct acpi_parse_obj_asl
{
@@ -1190,11 +1191,12 @@ typedef union acpi_parse_object
typedef struct asl_comment_state
{
- UINT8 CommentType;
- UINT32 SpacesBefore;
- ACPI_PARSE_OBJECT *Latest_Parse_Node;
- ACPI_PARSE_OBJECT *ParsingParenBraceNode;
- BOOLEAN CaptureComments;
+ UINT8 CommentType;
+ UINT32 SpacesBefore;
+ ACPI_PARSE_OBJECT *LatestParseOp;
+ ACPI_PARSE_OBJECT *ParsingParenBraceNode;
+ BOOLEAN CaptureComments;
+
} ASL_COMMENT_STATE;
diff --git a/source/include/acobject.h b/source/include/acobject.h
index 25d749637250..f03760977ea0 100644
--- a/source/include/acobject.h
+++ b/source/include/acobject.h
@@ -241,7 +241,9 @@ typedef struct acpi_object_integer
UINT32 Length;
-typedef struct acpi_object_string /* Null terminated, ASCII characters only */
+/* Null terminated, ASCII characters only */
+
+typedef struct acpi_object_string
{
ACPI_OBJECT_COMMON_HEADER
ACPI_COMMON_BUFFER_INFO (char) /* String in AML stream or allocated string */
@@ -359,8 +361,9 @@ typedef struct acpi_object_method
union acpi_operand_object *NotifyList[2]; /* Handlers for system/device notifies */\
union acpi_operand_object *Handler; /* Handler for Address space */
+/* COMMON NOTIFY for POWER, PROCESSOR, DEVICE, and THERMAL */
-typedef struct acpi_object_notify_common /* COMMON NOTIFY for POWER, PROCESSOR, DEVICE, and THERMAL */
+typedef struct acpi_object_notify_common
{
ACPI_OBJECT_COMMON_HEADER
ACPI_COMMON_NOTIFY_INFO
@@ -431,8 +434,9 @@ typedef struct acpi_object_thermal_zone
UINT8 StartFieldBitOffset;/* Bit offset within first field datum (0-63) */\
UINT8 AccessLength; /* For serial regions/fields */
+/* COMMON FIELD (for BUFFER, REGION, BANK, and INDEX fields) */
-typedef struct acpi_object_field_common /* COMMON FIELD (for BUFFER, REGION, BANK, and INDEX fields) */
+typedef struct acpi_object_field_common
{
ACPI_OBJECT_COMMON_HEADER
ACPI_COMMON_FIELD_INFO
diff --git a/source/include/acpixf.h b/source/include/acpixf.h
index 934e668369b0..7aad838661fd 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 0x20170531
+#define ACPI_CA_VERSION 0x20170629
#include "acconfig.h"
#include "actypes.h"
@@ -270,13 +270,14 @@ ACPI_INIT_GLOBAL (UINT8, AcpiGbl_CreateOsiMethod, TRUE);
ACPI_INIT_GLOBAL (UINT8, AcpiGbl_UseDefaultRegisterWidths, TRUE);
/*
- * Whether or not to verify the table checksum before installation. Set
- * this to TRUE to verify the table checksum before install it to the table
- * manager. Note that enabling this option causes errors to happen in some
- * OSPMs during early initialization stages. Default behavior is to do such
- * verification.
+ * Whether or not to validate (map) an entire table to verify
+ * checksum/duplication in early stage before install. Set this to TRUE to
+ * allow early table validation before install it to the table manager.
+ * Note that enabling this option causes errors to happen in some OSPMs
+ * during early initialization stages. Default behavior is to allow such
+ * validation.
*/
-ACPI_INIT_GLOBAL (UINT8, AcpiGbl_VerifyTableChecksum, TRUE);
+ACPI_INIT_GLOBAL (UINT8, AcpiGbl_EnableTableValidation, TRUE);
/*
* Optionally enable output from the AML Debug Object.
diff --git a/source/include/actables.h b/source/include/actables.h
index 8f5a3948c1dd..05a69ffebb38 100644
--- a/source/include/actables.h
+++ b/source/include/actables.h
@@ -206,7 +206,8 @@ AcpiTbValidateTempTable (
ACPI_STATUS
AcpiTbVerifyTempTable (
ACPI_TABLE_DESC *TableDesc,
- char *Signature);
+ char *Signature,
+ UINT32 *TableIndex);
BOOLEAN
AcpiTbIsTableLoaded (
@@ -303,6 +304,11 @@ AcpiTbUnloadTable (
UINT32 TableIndex);
void
+AcpiTbNotifyTable (
+ UINT32 Event,
+ void *Table);
+
+void
AcpiTbTerminate (
void);
diff --git a/source/include/actbl.h b/source/include/actbl.h
index ea522cf9be9a..b72c3bfb303c 100644
--- a/source/include/actbl.h
+++ b/source/include/actbl.h
@@ -517,12 +517,27 @@ typedef struct acpi_table_desc
} ACPI_TABLE_DESC;
+/*
+ * Maximum value of the ValidationCount field in ACPI_TABLE_DESC.
+ * When reached, ValidationCount cannot be changed any more and the table will
+ * be permanently regarded as validated.
+ *
+ * This is to prevent situations in which unbalanced table get/put operations
+ * may cause premature table unmapping in the OS to happen.
+ *
+ * The maximum validation count can be defined to any value, but should be
+ * greater than the maximum number of OS early stage mapping slots to avoid
+ * leaking early stage table mappings to the late stage.
+ */
+#define ACPI_MAX_TABLE_VALIDATIONS ACPI_UINT16_MAX
+
/* Masks for Flags field above */
#define ACPI_TABLE_ORIGIN_EXTERNAL_VIRTUAL (0) /* Virtual address, external maintained */
#define ACPI_TABLE_ORIGIN_INTERNAL_PHYSICAL (1) /* Physical address, internally mapped */
#define ACPI_TABLE_ORIGIN_INTERNAL_VIRTUAL (2) /* Virtual address, internallly allocated */
#define ACPI_TABLE_ORIGIN_MASK (3)
+#define ACPI_TABLE_IS_VERIFIED (4)
#define ACPI_TABLE_IS_LOADED (8)
diff --git a/source/include/actbl2.h b/source/include/actbl2.h
index 80495d8fa9c0..1e91ffc51699 100644
--- a/source/include/actbl2.h
+++ b/source/include/actbl2.h
@@ -874,7 +874,7 @@ typedef struct acpi_ibft_target
* IORT - IO Remapping Table
*
* Conforms to "IO Remapping Table System Software on ARM Platforms",
- * Document number: ARM DEN 0049B, October 2015
+ * Document number: ARM DEN 0049C, May 2017
*
******************************************************************************/
@@ -1013,6 +1013,8 @@ typedef struct acpi_iort_smmu
#define ACPI_IORT_SMMU_V2 0x00000001 /* Generic SMMUv2 */
#define ACPI_IORT_SMMU_CORELINK_MMU400 0x00000002 /* ARM Corelink MMU-400 */
#define ACPI_IORT_SMMU_CORELINK_MMU500 0x00000003 /* ARM Corelink MMU-500 */
+#define ACPI_IORT_SMMU_CORELINK_MMU401 0x00000004 /* ARM Corelink MMU-401 */
+#define ACPI_IORT_SMMU_CAVIUM_THUNDERX 0x00000005 /* Cavium ThunderX SMMUv2 */
/* Masks for Flags field above */
@@ -1036,18 +1038,28 @@ typedef struct acpi_iort_smmu_v3
UINT32 Flags;
UINT32 Reserved;
UINT64 VatosAddress;
- UINT32 Model; /* O: generic SMMUv3 */
+ UINT32 Model;
UINT32 EventGsiv;
UINT32 PriGsiv;
UINT32 GerrGsiv;
UINT32 SyncGsiv;
+ UINT8 Pxm;
+ UINT8 Reserved1;
+ UINT16 Reserved2;
} ACPI_IORT_SMMU_V3;
+/* Values for Model field above */
+
+#define ACPI_IORT_SMMU_V3_GENERIC 0x00000000 /* Generic SMMUv3 */
+#define ACPI_IORT_SMMU_V3_HISILICON_HI161X 0x00000001 /* HiSilicon Hi161x SMMUv3 */
+#define ACPI_IORT_SMMU_V3_CAVIUM_CN99XX 0x00000002 /* Cavium CN99xx SMMUv3 */
+
/* 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_PXM_VALID (1<<3)
/*******************************************************************************
diff --git a/source/include/platform/acenv.h b/source/include/platform/acenv.h
index 5bec576b13fb..df4048e004bf 100644
--- a/source/include/platform/acenv.h
+++ b/source/include/platform/acenv.h
@@ -398,6 +398,11 @@
#define ACPI_INLINE
#endif
+/* Use ordered initialization if compiler doesn't support designated. */
+#ifndef ACPI_STRUCT_INIT
+#define ACPI_STRUCT_INIT(field, value) value
+#endif
+
/*
* Configurable calling conventions:
*
diff --git a/source/include/platform/aclinux.h b/source/include/platform/aclinux.h
index 2c520ee1a5d0..b287e4d9373f 100644
--- a/source/include/platform/aclinux.h
+++ b/source/include/platform/aclinux.h
@@ -287,6 +287,11 @@
#define ACPI_MSG_BIOS_ERROR KERN_ERR "ACPI BIOS Error (bug): "
#define ACPI_MSG_BIOS_WARNING KERN_WARNING "ACPI BIOS Warning (bug): "
+/*
+ * Linux wants to use designated initializers for function pointer structs.
+ */
+#define ACPI_STRUCT_INIT(field, value) .field = value
+
#else /* !__KERNEL__ */
#define ACPI_USE_STANDARD_HEADERS