Merge branch 'acpica'
* acpica: (40 commits) ACPICA: Update version to 20171215 ACPICA: trivial style fix, no functional change ACPICA: Fix a couple memory leaks during package object resolution ACPICA: Recognize the Windows 10 version 1607 and 1703 OSI strings ACPICA: DT compiler: prevent error if optional field at the end of table is not present ACPICA: Rename a global variable, no functional change ACPICA: Create and deploy safe version of strncpy ACPICA: Cleanup the global variables and update comments ACPICA: Debugger: fix slight indentation issue ACPICA: Fix a regression in the acpi_evaluate_object_type() interface ACPICA: Update for a few debug output statements ACPICA: Debug output, no functional change ACPICA: Update information in MAINTAINERS ACPICA: Rename variable to match upstream ACPICA: Update version to 20171110 ACPICA: ACPI 6.2: Additional PPTT flags ACPICA: Update linkage for get mutex name interface ACPICA: Update mutex error messages, no functional change ACPICA: Debugger: add "background" command for method execution ACPICA: Small typo fix, no functional change ...
This commit is contained in:
@@ -145,9 +145,9 @@
|
||||
|
||||
#define ACPI_ADDRESS_RANGE_MAX 2
|
||||
|
||||
/* Maximum number of While() loops before abort */
|
||||
/* Maximum time (default 30s) of While() loops before abort */
|
||||
|
||||
#define ACPI_MAX_LOOP_COUNT 0x000FFFFF
|
||||
#define ACPI_MAX_LOOP_TIMEOUT 30
|
||||
|
||||
/******************************************************************************
|
||||
*
|
||||
|
@@ -130,8 +130,9 @@ struct acpi_exception_info {
|
||||
#define AE_HEX_OVERFLOW EXCEP_ENV (0x0020)
|
||||
#define AE_DECIMAL_OVERFLOW EXCEP_ENV (0x0021)
|
||||
#define AE_OCTAL_OVERFLOW EXCEP_ENV (0x0022)
|
||||
#define AE_END_OF_TABLE EXCEP_ENV (0x0023)
|
||||
|
||||
#define AE_CODE_ENV_MAX 0x0022
|
||||
#define AE_CODE_ENV_MAX 0x0023
|
||||
|
||||
/*
|
||||
* Programmer exceptions
|
||||
@@ -195,7 +196,7 @@ struct acpi_exception_info {
|
||||
#define AE_AML_CIRCULAR_REFERENCE EXCEP_AML (0x001E)
|
||||
#define AE_AML_BAD_RESOURCE_LENGTH EXCEP_AML (0x001F)
|
||||
#define AE_AML_ILLEGAL_ADDRESS EXCEP_AML (0x0020)
|
||||
#define AE_AML_INFINITE_LOOP EXCEP_AML (0x0021)
|
||||
#define AE_AML_LOOP_TIMEOUT EXCEP_AML (0x0021)
|
||||
#define AE_AML_UNINITIALIZED_NODE EXCEP_AML (0x0022)
|
||||
#define AE_AML_TARGET_TYPE EXCEP_AML (0x0023)
|
||||
|
||||
@@ -275,7 +276,8 @@ static const struct acpi_exception_info acpi_gbl_exception_names_env[] = {
|
||||
EXCEP_TXT("AE_DECIMAL_OVERFLOW",
|
||||
"Overflow during ASCII decimal-to-binary conversion"),
|
||||
EXCEP_TXT("AE_OCTAL_OVERFLOW",
|
||||
"Overflow during ASCII octal-to-binary conversion")
|
||||
"Overflow during ASCII octal-to-binary conversion"),
|
||||
EXCEP_TXT("AE_END_OF_TABLE", "Reached the end of table")
|
||||
};
|
||||
|
||||
static const struct acpi_exception_info acpi_gbl_exception_names_pgm[] = {
|
||||
@@ -368,8 +370,8 @@ static const struct acpi_exception_info acpi_gbl_exception_names_aml[] = {
|
||||
"The length of a Resource Descriptor in the AML is incorrect"),
|
||||
EXCEP_TXT("AE_AML_ILLEGAL_ADDRESS",
|
||||
"A memory, I/O, or PCI configuration address is invalid"),
|
||||
EXCEP_TXT("AE_AML_INFINITE_LOOP",
|
||||
"An apparent infinite AML While loop, method was aborted"),
|
||||
EXCEP_TXT("AE_AML_LOOP_TIMEOUT",
|
||||
"An AML While loop exceeded the maximum execution time"),
|
||||
EXCEP_TXT("AE_AML_UNINITIALIZED_NODE",
|
||||
"A namespace node is uninitialized or unresolved"),
|
||||
EXCEP_TXT("AE_AML_TARGET_TYPE",
|
||||
|
@@ -46,7 +46,7 @@
|
||||
|
||||
/* Current ACPICA subsystem version in YYYYMMDD format */
|
||||
|
||||
#define ACPI_CA_VERSION 0x20170831
|
||||
#define ACPI_CA_VERSION 0x20171215
|
||||
|
||||
#include <acpi/acconfig.h>
|
||||
#include <acpi/actypes.h>
|
||||
@@ -260,11 +260,11 @@ ACPI_INIT_GLOBAL(u8, acpi_gbl_osi_data, 0);
|
||||
ACPI_INIT_GLOBAL(u8, acpi_gbl_reduced_hardware, FALSE);
|
||||
|
||||
/*
|
||||
* Maximum number of While() loop iterations before forced method abort.
|
||||
* Maximum timeout for While() loop iterations before forced method abort.
|
||||
* This mechanism is intended to prevent infinite loops during interpreter
|
||||
* execution within a host kernel.
|
||||
*/
|
||||
ACPI_INIT_GLOBAL(u32, acpi_gbl_max_loop_iterations, ACPI_MAX_LOOP_COUNT);
|
||||
ACPI_INIT_GLOBAL(u32, acpi_gbl_max_loop_iterations, ACPI_MAX_LOOP_TIMEOUT);
|
||||
|
||||
/*
|
||||
* This mechanism is used to trace a specified AML method. The method is
|
||||
|
@@ -69,9 +69,10 @@
|
||||
#define ACPI_SIG_HEST "HEST" /* Hardware Error Source Table */
|
||||
#define ACPI_SIG_MADT "APIC" /* Multiple APIC Description Table */
|
||||
#define ACPI_SIG_MSCT "MSCT" /* Maximum System Characteristics Table */
|
||||
#define ACPI_SIG_PDTT "PDTT" /* Processor Debug Trigger Table */
|
||||
#define ACPI_SIG_PDTT "PDTT" /* Platform Debug Trigger Table */
|
||||
#define ACPI_SIG_PPTT "PPTT" /* Processor Properties Topology Table */
|
||||
#define ACPI_SIG_SBST "SBST" /* Smart Battery Specification Table */
|
||||
#define ACPI_SIG_SDEV "SDEV" /* Secure Devices table */
|
||||
#define ACPI_SIG_SLIT "SLIT" /* System Locality Distance Information Table */
|
||||
#define ACPI_SIG_SRAT "SRAT" /* System Resource Affinity Table */
|
||||
#define ACPI_SIG_NFIT "NFIT" /* NVDIMM Firmware Interface Table */
|
||||
@@ -1149,7 +1150,8 @@ enum acpi_nfit_type {
|
||||
ACPI_NFIT_TYPE_CONTROL_REGION = 4,
|
||||
ACPI_NFIT_TYPE_DATA_REGION = 5,
|
||||
ACPI_NFIT_TYPE_FLUSH_ADDRESS = 6,
|
||||
ACPI_NFIT_TYPE_RESERVED = 7 /* 7 and greater are reserved */
|
||||
ACPI_NFIT_TYPE_CAPABILITIES = 7,
|
||||
ACPI_NFIT_TYPE_RESERVED = 8 /* 8 and greater are reserved */
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -1162,7 +1164,7 @@ struct acpi_nfit_system_address {
|
||||
struct acpi_nfit_header header;
|
||||
u16 range_index;
|
||||
u16 flags;
|
||||
u32 reserved; /* Reseved, must be zero */
|
||||
u32 reserved; /* Reserved, must be zero */
|
||||
u32 proximity_domain;
|
||||
u8 range_guid[16];
|
||||
u64 address;
|
||||
@@ -1281,9 +1283,72 @@ struct acpi_nfit_flush_address {
|
||||
u64 hint_address[1]; /* Variable length */
|
||||
};
|
||||
|
||||
/* 7: Platform Capabilities Structure */
|
||||
|
||||
struct acpi_nfit_capabilities {
|
||||
struct acpi_nfit_header header;
|
||||
u8 highest_capability;
|
||||
u8 reserved[3]; /* Reserved, must be zero */
|
||||
u32 capabilities;
|
||||
u32 reserved2;
|
||||
};
|
||||
|
||||
/* Capabilities Flags */
|
||||
|
||||
#define ACPI_NFIT_CAPABILITY_CACHE_FLUSH (1) /* 00: Cache Flush to NVDIMM capable */
|
||||
#define ACPI_NFIT_CAPABILITY_MEM_FLUSH (1<<1) /* 01: Memory Flush to NVDIMM capable */
|
||||
#define ACPI_NFIT_CAPABILITY_MEM_MIRRORING (1<<2) /* 02: Memory Mirroring capable */
|
||||
|
||||
/*
|
||||
* NFIT/DVDIMM device handle support - used as the _ADR for each NVDIMM
|
||||
*/
|
||||
struct nfit_device_handle {
|
||||
u32 handle;
|
||||
};
|
||||
|
||||
/* Device handle construction and extraction macros */
|
||||
|
||||
#define ACPI_NFIT_DIMM_NUMBER_MASK 0x0000000F
|
||||
#define ACPI_NFIT_CHANNEL_NUMBER_MASK 0x000000F0
|
||||
#define ACPI_NFIT_MEMORY_ID_MASK 0x00000F00
|
||||
#define ACPI_NFIT_SOCKET_ID_MASK 0x0000F000
|
||||
#define ACPI_NFIT_NODE_ID_MASK 0x0FFF0000
|
||||
|
||||
#define ACPI_NFIT_DIMM_NUMBER_OFFSET 0
|
||||
#define ACPI_NFIT_CHANNEL_NUMBER_OFFSET 4
|
||||
#define ACPI_NFIT_MEMORY_ID_OFFSET 8
|
||||
#define ACPI_NFIT_SOCKET_ID_OFFSET 12
|
||||
#define ACPI_NFIT_NODE_ID_OFFSET 16
|
||||
|
||||
/* Macro to construct a NFIT/NVDIMM device handle */
|
||||
|
||||
#define ACPI_NFIT_BUILD_DEVICE_HANDLE(dimm, channel, memory, socket, node) \
|
||||
((dimm) | \
|
||||
((channel) << ACPI_NFIT_CHANNEL_NUMBER_OFFSET) | \
|
||||
((memory) << ACPI_NFIT_MEMORY_ID_OFFSET) | \
|
||||
((socket) << ACPI_NFIT_SOCKET_ID_OFFSET) | \
|
||||
((node) << ACPI_NFIT_NODE_ID_OFFSET))
|
||||
|
||||
/* Macros to extract individual fields from a NFIT/NVDIMM device handle */
|
||||
|
||||
#define ACPI_NFIT_GET_DIMM_NUMBER(handle) \
|
||||
((handle) & ACPI_NFIT_DIMM_NUMBER_MASK)
|
||||
|
||||
#define ACPI_NFIT_GET_CHANNEL_NUMBER(handle) \
|
||||
(((handle) & ACPI_NFIT_CHANNEL_NUMBER_MASK) >> ACPI_NFIT_CHANNEL_NUMBER_OFFSET)
|
||||
|
||||
#define ACPI_NFIT_GET_MEMORY_ID(handle) \
|
||||
(((handle) & ACPI_NFIT_MEMORY_ID_MASK) >> ACPI_NFIT_MEMORY_ID_OFFSET)
|
||||
|
||||
#define ACPI_NFIT_GET_SOCKET_ID(handle) \
|
||||
(((handle) & ACPI_NFIT_SOCKET_ID_MASK) >> ACPI_NFIT_SOCKET_ID_OFFSET)
|
||||
|
||||
#define ACPI_NFIT_GET_NODE_ID(handle) \
|
||||
(((handle) & ACPI_NFIT_NODE_ID_MASK) >> ACPI_NFIT_NODE_ID_OFFSET)
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* PDTT - Processor Debug Trigger Table (ACPI 6.2)
|
||||
* PDTT - Platform Debug Trigger Table (ACPI 6.2)
|
||||
* Version 0
|
||||
*
|
||||
******************************************************************************/
|
||||
@@ -1301,14 +1366,14 @@ struct acpi_table_pdtt {
|
||||
* starting at array_offset.
|
||||
*/
|
||||
struct acpi_pdtt_channel {
|
||||
u16 sub_channel_id;
|
||||
u8 subchannel_id;
|
||||
u8 flags;
|
||||
};
|
||||
|
||||
/* Mask and Flags for above */
|
||||
/* Flags for above */
|
||||
|
||||
#define ACPI_PDTT_SUBCHANNEL_ID_MASK 0x00FF
|
||||
#define ACPI_PDTT_RUNTIME_TRIGGER (1<<8)
|
||||
#define ACPI_PPTT_WAIT_COMPLETION (1<<9)
|
||||
#define ACPI_PDTT_RUNTIME_TRIGGER (1)
|
||||
#define ACPI_PDTT_WAIT_COMPLETION (1<<1)
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
@@ -1376,6 +1441,20 @@ struct acpi_pptt_cache {
|
||||
#define ACPI_PPTT_MASK_CACHE_TYPE (0x0C) /* Cache type */
|
||||
#define ACPI_PPTT_MASK_WRITE_POLICY (0x10) /* Write policy */
|
||||
|
||||
/* Attributes describing cache */
|
||||
#define ACPI_PPTT_CACHE_READ_ALLOCATE (0x0) /* Cache line is allocated on read */
|
||||
#define ACPI_PPTT_CACHE_WRITE_ALLOCATE (0x01) /* Cache line is allocated on write */
|
||||
#define ACPI_PPTT_CACHE_RW_ALLOCATE (0x02) /* Cache line is allocated on read and write */
|
||||
#define ACPI_PPTT_CACHE_RW_ALLOCATE_ALT (0x03) /* Alternate representation of above */
|
||||
|
||||
#define ACPI_PPTT_CACHE_TYPE_DATA (0x0) /* Data cache */
|
||||
#define ACPI_PPTT_CACHE_TYPE_INSTR (1<<2) /* Instruction cache */
|
||||
#define ACPI_PPTT_CACHE_TYPE_UNIFIED (2<<2) /* Unified I & D cache */
|
||||
#define ACPI_PPTT_CACHE_TYPE_UNIFIED_ALT (3<<2) /* Alternate representation of above */
|
||||
|
||||
#define ACPI_PPTT_CACHE_POLICY_WB (0x0) /* Cache is write back */
|
||||
#define ACPI_PPTT_CACHE_POLICY_WT (1<<4) /* Cache is write through */
|
||||
|
||||
/* 2: ID Structure */
|
||||
|
||||
struct acpi_pptt_id {
|
||||
@@ -1403,6 +1482,68 @@ struct acpi_table_sbst {
|
||||
u32 critical_level;
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* SDEV - Secure Devices Table (ACPI 6.2)
|
||||
* Version 1
|
||||
*
|
||||
******************************************************************************/
|
||||
|
||||
struct acpi_table_sdev {
|
||||
struct acpi_table_header header; /* Common ACPI table header */
|
||||
};
|
||||
|
||||
struct acpi_sdev_header {
|
||||
u8 type;
|
||||
u8 flags;
|
||||
u16 length;
|
||||
};
|
||||
|
||||
/* Values for subtable type above */
|
||||
|
||||
enum acpi_sdev_type {
|
||||
ACPI_SDEV_TYPE_NAMESPACE_DEVICE = 0,
|
||||
ACPI_SDEV_TYPE_PCIE_ENDPOINT_DEVICE = 1,
|
||||
ACPI_SDEV_TYPE_RESERVED = 2 /* 2 and greater are reserved */
|
||||
};
|
||||
|
||||
/* Values for flags above */
|
||||
|
||||
#define ACPI_SDEV_HANDOFF_TO_UNSECURE_OS (1)
|
||||
|
||||
/*
|
||||
* SDEV subtables
|
||||
*/
|
||||
|
||||
/* 0: Namespace Device Based Secure Device Structure */
|
||||
|
||||
struct acpi_sdev_namespace {
|
||||
struct acpi_sdev_header header;
|
||||
u16 device_id_offset;
|
||||
u16 device_id_length;
|
||||
u16 vendor_data_offset;
|
||||
u16 vendor_data_length;
|
||||
};
|
||||
|
||||
/* 1: PCIe Endpoint Device Based Device Structure */
|
||||
|
||||
struct acpi_sdev_pcie {
|
||||
struct acpi_sdev_header header;
|
||||
u16 segment;
|
||||
u16 start_bus;
|
||||
u16 path_offset;
|
||||
u16 path_length;
|
||||
u16 vendor_data_offset;
|
||||
u16 vendor_data_length;
|
||||
};
|
||||
|
||||
/* 1a: PCIe Endpoint path entry */
|
||||
|
||||
struct acpi_sdev_pcie_path {
|
||||
u8 device;
|
||||
u8 function;
|
||||
};
|
||||
|
||||
/*******************************************************************************
|
||||
*
|
||||
* SLIT - System Locality Distance Information Table
|
||||
|
@@ -810,6 +810,7 @@ struct acpi_iort_smmu_v3 {
|
||||
u8 pxm;
|
||||
u8 reserved1;
|
||||
u16 reserved2;
|
||||
u32 id_mapping_index;
|
||||
};
|
||||
|
||||
/* Values for Model field above */
|
||||
@@ -1246,6 +1247,8 @@ enum acpi_spmi_interface_types {
|
||||
* TCPA - Trusted Computing Platform Alliance table
|
||||
* Version 2
|
||||
*
|
||||
* TCG Hardware Interface Table for TPM 1.2 Clients and Servers
|
||||
*
|
||||
* Conforms to "TCG ACPI Specification, Family 1.2 and 2.0",
|
||||
* Version 1.2, Revision 8
|
||||
* February 27, 2017
|
||||
@@ -1310,6 +1313,8 @@ struct acpi_table_tcpa_server {
|
||||
* TPM2 - Trusted Platform Module (TPM) 2.0 Hardware Interface Table
|
||||
* Version 4
|
||||
*
|
||||
* TCG Hardware Interface Table for TPM 2.0 Clients and Servers
|
||||
*
|
||||
* Conforms to "TCG ACPI Specification, Family 1.2 and 2.0",
|
||||
* Version 1.2, Revision 8
|
||||
* February 27, 2017
|
||||
@@ -1329,15 +1334,23 @@ struct acpi_table_tpm2 {
|
||||
/* Values for start_method above */
|
||||
|
||||
#define ACPI_TPM2_NOT_ALLOWED 0
|
||||
#define ACPI_TPM2_RESERVED1 1
|
||||
#define ACPI_TPM2_START_METHOD 2
|
||||
#define ACPI_TPM2_RESERVED3 3
|
||||
#define ACPI_TPM2_RESERVED4 4
|
||||
#define ACPI_TPM2_RESERVED5 5
|
||||
#define ACPI_TPM2_MEMORY_MAPPED 6
|
||||
#define ACPI_TPM2_COMMAND_BUFFER 7
|
||||
#define ACPI_TPM2_COMMAND_BUFFER_WITH_START_METHOD 8
|
||||
#define ACPI_TPM2_RESERVED9 9
|
||||
#define ACPI_TPM2_RESERVED10 10
|
||||
#define ACPI_TPM2_COMMAND_BUFFER_WITH_ARM_SMC 11 /* V1.2 Rev 8 */
|
||||
#define ACPI_TPM2_RESERVED 12
|
||||
|
||||
/* Trailer appears after any start_method subtables */
|
||||
/* Optional trailer appears after any start_method subtables */
|
||||
|
||||
struct acpi_tpm2_trailer {
|
||||
u8 method_parameters[12];
|
||||
u32 minimum_log_length; /* Minimum length for the event log area */
|
||||
u64 log_address; /* Address of the event log area */
|
||||
};
|
||||
|
@@ -468,6 +468,8 @@ typedef void *acpi_handle; /* Actually a ptr to a NS Node */
|
||||
#define ACPI_NSEC_PER_MSEC 1000000L
|
||||
#define ACPI_NSEC_PER_SEC 1000000000L
|
||||
|
||||
#define ACPI_TIME_AFTER(a, b) ((s64)((b) - (a)) < 0)
|
||||
|
||||
/* Owner IDs are used to track namespace nodes for selective deletion */
|
||||
|
||||
typedef u8 acpi_owner_id;
|
||||
@@ -1299,6 +1301,8 @@ typedef enum {
|
||||
#define ACPI_OSI_WIN_7 0x0B
|
||||
#define ACPI_OSI_WIN_8 0x0C
|
||||
#define ACPI_OSI_WIN_10 0x0D
|
||||
#define ACPI_OSI_WIN_10_RS1 0x0E
|
||||
#define ACPI_OSI_WIN_10_RS2 0x0F
|
||||
|
||||
/* Definitions of getopt */
|
||||
|
||||
|
Reference in New Issue
Block a user