2018-03-14 16:13:07 -07:00
/* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 */
2005-04-16 15:20:36 -07:00
/******************************************************************************
*
* Name : acconfig . h - Global configuration constants
*
2018-01-04 10:06:38 -08:00
* Copyright ( C ) 2000 - 2018 , Intel Corp .
2005-04-16 15:20:36 -07:00
*
2018-03-14 16:13:07 -07:00
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2005-04-16 15:20:36 -07:00
# ifndef _ACCONFIG_H
# define _ACCONFIG_H
/******************************************************************************
*
* Configuration options
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/*
* ACPI_DEBUG_OUTPUT - This switch enables all the debug facilities of the
* ACPI subsystem . This includes the DEBUG_PRINT output
* statements . When disabled , all DEBUG_PRINT
* statements are compiled out .
*
* ACPI_APPLICATION - Use this switch if the subsystem is going to be run
* at the application level .
*
*/
/*
* OS name , used for the _OS object . The _OS object is essentially obsolete ,
* but there is a large base of ASL / AML code in existing machines that check
* for the string below . The use of this string usually guarantees that
* the ASL will execute down the most tested code path . Also , there is some
* code that will not execute the _OSI method unless _OS matches the string
* below . Therefore , change this string at your own risk .
*/
# define ACPI_OS_NAME "Microsoft Windows NT"
/* Maximum objects in the various object caches */
2005-08-05 00:44:28 -04:00
# define ACPI_MAX_STATE_CACHE_DEPTH 96 /* State objects */
# define ACPI_MAX_PARSE_CACHE_DEPTH 96 /* Parse tree objects */
# define ACPI_MAX_EXTPARSE_CACHE_DEPTH 96 /* Parse tree objects */
# define ACPI_MAX_OBJECT_CACHE_DEPTH 96 /* Interpreter operand objects */
2006-03-17 16:44:00 -05:00
# define ACPI_MAX_NAMESPACE_CACHE_DEPTH 96 /* Namespace objects */
2017-04-28 08:53:22 +08:00
# define ACPI_MAX_COMMENT_CACHE_DEPTH 96 /* Comments for the -ca option */
2005-04-16 15:20:36 -07:00
/*
2006-01-27 16:43:00 -05:00
* Should the subsystem abort the loading of an ACPI table if the
2005-04-16 15:20:36 -07:00
* table checksum is incorrect ?
*/
2013-11-21 12:17:27 +08:00
# ifndef ACPI_CHECKSUM_ABORT
2005-04-16 15:20:36 -07:00
# define ACPI_CHECKSUM_ABORT FALSE
2013-11-21 12:17:27 +08:00
# endif
2005-04-16 15:20:36 -07:00
2012-02-14 18:14:27 +08:00
/*
* Generate a version of ACPICA that only supports " reduced hardware "
* platforms ( as defined in ACPI 5.0 ) . Set to TRUE to generate a specialized
* version of ACPICA that ONLY supports the ACPI 5.0 " reduced hardware "
* model . In other words , no ACPI hardware is supported .
*
* If TRUE , this means no support for the following :
* PM Event and Control registers
* SCI interrupt ( and handler )
* Fixed Events
* General Purpose Events ( GPEs )
* Global Lock
* ACPI PM timer
* FACS table ( Waking vectors and Global Lock )
*/
2013-10-29 09:30:29 +08:00
# ifndef ACPI_REDUCED_HARDWARE
2012-02-14 18:14:27 +08:00
# define ACPI_REDUCED_HARDWARE FALSE
2013-10-29 09:30:29 +08:00
# endif
2012-02-14 18:14:27 +08:00
2005-04-16 15:20:36 -07:00
/******************************************************************************
*
* Subsystem Constants
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* Version of ACPI supported */
2012-02-14 13:11:07 +08:00
# define ACPI_CA_SUPPORT_LEVEL 5
2005-04-16 15:20:36 -07:00
/* Maximum count for a semaphore object */
# define ACPI_MAX_SEMAPHORE_COUNT 256
2006-10-03 00:00:00 -04:00
/* Maximum object reference count (detects object deletion issues) */
2005-04-16 15:20:36 -07:00
2018-08-10 14:43:02 -07:00
# define ACPI_MAX_REFERENCE_COUNT 0x4000
2005-04-16 15:20:36 -07:00
2009-10-22 09:11:11 +08:00
/* Default page size for use in mapping memory for operation regions */
2005-04-16 15:20:36 -07:00
2009-10-22 09:11:11 +08:00
# define ACPI_DEFAULT_PAGE_SIZE 4096 /* Must be power of 2 */
2005-04-16 15:20:36 -07:00
2005-12-02 18:27:00 -05:00
/* owner_id tracking. 8 entries allows for 255 owner_ids */
# define ACPI_NUM_OWNERID_MASKS 8
2007-02-02 19:48:18 +03:00
/* Size of the root table array is increased by this increment */
# define ACPI_ROOT_TABLE_SIZE_INCREMENT 4
2010-05-26 11:22:41 +08:00
/* Maximum sleep allowed via Sleep() operator */
2012-12-19 05:36:49 +00:00
# define ACPI_MAX_SLEEP 2000 /* 2000 millisec == two seconds */
2010-05-26 11:22:41 +08:00
2012-01-12 13:10:32 +08:00
/* Address Range lists are per-space_id (Memory and I/O only) */
# define ACPI_ADDRESS_RANGE_MAX 2
2017-11-17 15:40:18 -08:00
/* Maximum time (default 30s) of While() loops before abort */
2016-08-04 16:43:13 +08:00
2017-11-17 15:40:18 -08:00
# define ACPI_MAX_LOOP_TIMEOUT 30
2016-08-04 16:43:13 +08:00
2005-04-16 15:20:36 -07:00
/******************************************************************************
*
* ACPI Specification constants ( Do not change unless the specification changes )
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2005-04-18 22:49:35 -04:00
/* Method info (in WALK_STATE), containing local variables and argumetns */
2005-04-16 15:20:36 -07:00
# define ACPI_METHOD_NUM_LOCALS 8
# define ACPI_METHOD_MAX_LOCAL 7
# define ACPI_METHOD_NUM_ARGS 7
# define ACPI_METHOD_MAX_ARG 6
/*
* Operand Stack ( in WALK_STATE ) , Must be large enough to contain METHOD_MAX_ARG
*/
# define ACPI_OBJ_NUM_OPERANDS 8
# define ACPI_OBJ_MAX_OPERAND 7
2008-04-10 19:06:36 +04:00
/* Number of elements in the Result Stack frame, can be an arbitrary value */
# define ACPI_RESULTS_FRAME_OBJ_NUM 8
/*
* Maximal number of elements the Result Stack can contain ,
* it may be an arbitray value not exceeding the types of
* result_size and result_count ( now u8 ) .
*/
# define ACPI_RESULTS_OBJ_NUM_MAX 255
2005-04-16 15:20:36 -07:00
/* Constants used in searching for the RSDP in low memory */
2005-08-05 00:44:28 -04:00
# define ACPI_EBDA_PTR_LOCATION 0x0000040E /* Physical Address */
2005-04-16 15:20:36 -07:00
# define ACPI_EBDA_PTR_LENGTH 2
# define ACPI_EBDA_WINDOW_SIZE 1024
2005-08-05 00:44:28 -04:00
# define ACPI_HI_RSDP_WINDOW_BASE 0x000E0000 /* Physical Address */
2005-04-16 15:20:36 -07:00
# define ACPI_HI_RSDP_WINDOW_SIZE 0x00020000
# define ACPI_RSDP_SCAN_STEP 16
/* Operation regions */
# define ACPI_USER_REGION_BEGIN 0x80
/* Maximum space_ids for Operation Regions */
# define ACPI_MAX_ADDRESS_SPACE 255
2013-01-11 13:08:51 +01:00
# define ACPI_NUM_DEFAULT_SPACES 4
2005-04-16 15:20:36 -07:00
/* Array sizes. Used for range checking also */
2006-06-08 16:29:00 -04:00
# define ACPI_MAX_MATCH_OPCODE 5
2005-04-16 15:20:36 -07:00
/* RSDP checksums */
# define ACPI_RSDP_CHECKSUM_LENGTH 20
# define ACPI_RSDP_XCHECKSUM_LENGTH 36
2018-10-03 11:45:36 -07:00
/*
* SMBus , GSBus and IPMI buffer sizes . All have a 2 - byte header ,
* containing both Status and Length .
*/
# define ACPI_SERIAL_HEADER_SIZE 2 /* Common for below. Status and Length fields */
# define ACPI_SMBUS_DATA_SIZE 32
# define ACPI_SMBUS_BUFFER_SIZE ACPI_SERIAL_HEADER_SIZE + ACPI_SMBUS_DATA_SIZE
# define ACPI_IPMI_DATA_SIZE 64
# define ACPI_IPMI_BUFFER_SIZE ACPI_SERIAL_HEADER_SIZE + ACPI_IPMI_DATA_SIZE
2005-04-16 15:20:36 -07:00
2018-10-03 11:45:36 -07:00
# define ACPI_MAX_GSBUS_DATA_SIZE 255
# define ACPI_MAX_GSBUS_BUFFER_SIZE ACPI_SERIAL_HEADER_SIZE + ACPI_MAX_GSBUS_DATA_SIZE
2005-04-16 15:20:36 -07:00
2009-06-29 13:39:29 +08:00
/* _sx_d and _sx_w control methods */
# define ACPI_NUM_sx_d_METHODS 4
# define ACPI_NUM_sx_w_METHODS 5
2014-07-30 12:20:39 +08:00
/******************************************************************************
*
* Miscellaneous constants
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* UUID constants */
# define UUID_BUFFER_LENGTH 16 /* Length of UUID in memory */
# define UUID_STRING_LENGTH 36 /* Total length of a UUID string */
/* Positions for required hyphens (dashes) in UUID strings */
# define UUID_HYPHEN1_OFFSET 8
# define UUID_HYPHEN2_OFFSET 13
# define UUID_HYPHEN3_OFFSET 18
# define UUID_HYPHEN4_OFFSET 23
2005-04-16 15:20:36 -07:00
/******************************************************************************
*
* ACPI AML Debugger
*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2013-05-30 10:00:01 +08:00
# define ACPI_DEBUGGER_MAX_ARGS ACPI_METHOD_NUM_ARGS + 4 /* Max command line arguments */
# define ACPI_DB_LINE_BUFFER_SIZE 512
2005-04-16 15:20:36 -07:00
# define ACPI_DEBUGGER_COMMAND_PROMPT '-'
# define ACPI_DEBUGGER_EXECUTE_PROMPT '%'
2005-08-05 00:44:28 -04:00
# endif /* _ACCONFIG_H */