xref: /linux/include/acpi/acconfig.h (revision 612c2932)
195857638SErik Schmauss /* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 */
233620c54SBob Moore /******************************************************************************
333620c54SBob Moore  *
433620c54SBob Moore  * Name: acconfig.h - Global configuration constants
533620c54SBob Moore  *
6*612c2932SBob Moore  * Copyright (C) 2000 - 2023, Intel Corp.
733620c54SBob Moore  *
895857638SErik Schmauss  *****************************************************************************/
933620c54SBob Moore 
1033620c54SBob Moore #ifndef _ACCONFIG_H
1133620c54SBob Moore #define _ACCONFIG_H
1233620c54SBob Moore 
1333620c54SBob Moore /******************************************************************************
1433620c54SBob Moore  *
1533620c54SBob Moore  * Configuration options
1633620c54SBob Moore  *
1733620c54SBob Moore  *****************************************************************************/
1833620c54SBob Moore 
1933620c54SBob Moore /*
2033620c54SBob Moore  * ACPI_DEBUG_OUTPUT    - This switch enables all the debug facilities of the
2133620c54SBob Moore  *                        ACPI subsystem.  This includes the DEBUG_PRINT output
2233620c54SBob Moore  *                        statements.  When disabled, all DEBUG_PRINT
2333620c54SBob Moore  *                        statements are compiled out.
2433620c54SBob Moore  *
2533620c54SBob Moore  * ACPI_APPLICATION     - Use this switch if the subsystem is going to be run
2633620c54SBob Moore  *                        at the application level.
2733620c54SBob Moore  *
2833620c54SBob Moore  */
2933620c54SBob Moore 
3033620c54SBob Moore /*
3133620c54SBob Moore  * OS name, used for the _OS object.  The _OS object is essentially obsolete,
3233620c54SBob Moore  * but there is a large base of ASL/AML code in existing machines that check
3333620c54SBob Moore  * for the string below.  The use of this string usually guarantees that
3433620c54SBob Moore  * the ASL will execute down the most tested code path.  Also, there is some
3533620c54SBob Moore  * code that will not execute the _OSI method unless _OS matches the string
3633620c54SBob Moore  * below.  Therefore, change this string at your own risk.
3733620c54SBob Moore  */
3833620c54SBob Moore #define ACPI_OS_NAME                    "Microsoft Windows NT"
3933620c54SBob Moore 
4033620c54SBob Moore /* Maximum objects in the various object caches */
4133620c54SBob Moore 
4233620c54SBob Moore #define ACPI_MAX_STATE_CACHE_DEPTH      96	/* State objects */
4333620c54SBob Moore #define ACPI_MAX_PARSE_CACHE_DEPTH      96	/* Parse tree objects */
4433620c54SBob Moore #define ACPI_MAX_EXTPARSE_CACHE_DEPTH   96	/* Parse tree objects */
4533620c54SBob Moore #define ACPI_MAX_OBJECT_CACHE_DEPTH     96	/* Interpreter operand objects */
4633620c54SBob Moore #define ACPI_MAX_NAMESPACE_CACHE_DEPTH  96	/* Namespace objects */
479cf7adecSBob Moore #define ACPI_MAX_COMMENT_CACHE_DEPTH    96	/* Comments for the -ca option */
4833620c54SBob Moore 
4933620c54SBob Moore /*
5033620c54SBob Moore  * Should the subsystem abort the loading of an ACPI table if the
5133620c54SBob Moore  * table checksum is incorrect?
5233620c54SBob Moore  */
53c38f671eSLv Zheng #ifndef ACPI_CHECKSUM_ABORT
5433620c54SBob Moore #define ACPI_CHECKSUM_ABORT             FALSE
55c38f671eSLv Zheng #endif
5633620c54SBob Moore 
5733620c54SBob Moore /*
5833620c54SBob Moore  * Generate a version of ACPICA that only supports "reduced hardware"
5933620c54SBob Moore  * platforms (as defined in ACPI 5.0). Set to TRUE to generate a specialized
6033620c54SBob Moore  * version of ACPICA that ONLY supports the ACPI 5.0 "reduced hardware"
6133620c54SBob Moore  * model. In other words, no ACPI hardware is supported.
6233620c54SBob Moore  *
6333620c54SBob Moore  * If TRUE, this means no support for the following:
6433620c54SBob Moore  *      PM Event and Control registers
6533620c54SBob Moore  *      SCI interrupt (and handler)
6633620c54SBob Moore  *      Fixed Events
6733620c54SBob Moore  *      General Purpose Events (GPEs)
6833620c54SBob Moore  *      Global Lock
6933620c54SBob Moore  *      ACPI PM timer
7033620c54SBob Moore  *      FACS table (Waking vectors and Global Lock)
7133620c54SBob Moore  */
72c0144dc0SBob Moore #ifndef ACPI_REDUCED_HARDWARE
7333620c54SBob Moore #define ACPI_REDUCED_HARDWARE           FALSE
74c0144dc0SBob Moore #endif
7533620c54SBob Moore 
7633620c54SBob Moore /******************************************************************************
7733620c54SBob Moore  *
7833620c54SBob Moore  * Subsystem Constants
7933620c54SBob Moore  *
8033620c54SBob Moore  *****************************************************************************/
8133620c54SBob Moore 
8233620c54SBob Moore /* Version of ACPI supported */
8333620c54SBob Moore 
8433620c54SBob Moore #define ACPI_CA_SUPPORT_LEVEL           5
8533620c54SBob Moore 
8633620c54SBob Moore /* Maximum count for a semaphore object */
8733620c54SBob Moore 
8833620c54SBob Moore #define ACPI_MAX_SEMAPHORE_COUNT        256
8933620c54SBob Moore 
9033620c54SBob Moore /* Maximum object reference count (detects object deletion issues) */
9133620c54SBob Moore 
928b23570aSErik Schmauss #define ACPI_MAX_REFERENCE_COUNT        0x4000
9333620c54SBob Moore 
9433620c54SBob Moore /* Default page size for use in mapping memory for operation regions */
9533620c54SBob Moore 
9633620c54SBob Moore #define ACPI_DEFAULT_PAGE_SIZE          4096	/* Must be power of 2 */
9733620c54SBob Moore 
9867a72420SBob Moore /* owner_id tracking. 128 entries allows for 4095 owner_ids */
9933620c54SBob Moore 
10067a72420SBob Moore #define ACPI_NUM_OWNERID_MASKS          128
10133620c54SBob Moore 
10233620c54SBob Moore /* Size of the root table array is increased by this increment */
10333620c54SBob Moore 
10433620c54SBob Moore #define ACPI_ROOT_TABLE_SIZE_INCREMENT  4
10533620c54SBob Moore 
10633620c54SBob Moore /* Maximum sleep allowed via Sleep() operator */
10733620c54SBob Moore 
10875c8044fSLv Zheng #define ACPI_MAX_SLEEP                  2000	/* 2000 millisec == two seconds */
10933620c54SBob Moore 
11033620c54SBob Moore /* Address Range lists are per-space_id (Memory and I/O only) */
11133620c54SBob Moore 
11233620c54SBob Moore #define ACPI_ADDRESS_RANGE_MAX          2
11333620c54SBob Moore 
114164a08ceSLv Zheng /* Maximum time (default 30s) of While() loops before abort */
11502dcdc3eSBob Moore 
116164a08ceSLv Zheng #define ACPI_MAX_LOOP_TIMEOUT           30
11702dcdc3eSBob Moore 
11833620c54SBob Moore /******************************************************************************
11933620c54SBob Moore  *
12033620c54SBob Moore  * ACPI Specification constants (Do not change unless the specification changes)
12133620c54SBob Moore  *
12233620c54SBob Moore  *****************************************************************************/
12333620c54SBob Moore 
124465e490dSColin Ian King /* Method info (in WALK_STATE), containing local variables and arguments */
12533620c54SBob Moore 
12633620c54SBob Moore #define ACPI_METHOD_NUM_LOCALS          8
12733620c54SBob Moore #define ACPI_METHOD_MAX_LOCAL           7
12833620c54SBob Moore 
12933620c54SBob Moore #define ACPI_METHOD_NUM_ARGS            7
13033620c54SBob Moore #define ACPI_METHOD_MAX_ARG             6
13133620c54SBob Moore 
13233620c54SBob Moore /*
13333620c54SBob Moore  * Operand Stack (in WALK_STATE), Must be large enough to contain METHOD_MAX_ARG
13433620c54SBob Moore  */
13533620c54SBob Moore #define ACPI_OBJ_NUM_OPERANDS           8
13633620c54SBob Moore #define ACPI_OBJ_MAX_OPERAND            7
13733620c54SBob Moore 
13833620c54SBob Moore /* Number of elements in the Result Stack frame, can be an arbitrary value */
13933620c54SBob Moore 
14033620c54SBob Moore #define ACPI_RESULTS_FRAME_OBJ_NUM      8
14133620c54SBob Moore 
14233620c54SBob Moore /*
14333620c54SBob Moore  * Maximal number of elements the Result Stack can contain,
144c163f90cSErik Schmauss  * it may be an arbitrary value not exceeding the types of
14533620c54SBob Moore  * result_size and result_count (now u8).
14633620c54SBob Moore  */
14733620c54SBob Moore #define ACPI_RESULTS_OBJ_NUM_MAX        255
14833620c54SBob Moore 
14933620c54SBob Moore /* Constants used in searching for the RSDP in low memory */
15033620c54SBob Moore 
15133620c54SBob Moore #define ACPI_EBDA_PTR_LOCATION          0x0000040E	/* Physical Address */
15233620c54SBob Moore #define ACPI_EBDA_PTR_LENGTH            2
15333620c54SBob Moore #define ACPI_EBDA_WINDOW_SIZE           1024
15433620c54SBob Moore #define ACPI_HI_RSDP_WINDOW_BASE        0x000E0000	/* Physical Address */
15533620c54SBob Moore #define ACPI_HI_RSDP_WINDOW_SIZE        0x00020000
15633620c54SBob Moore #define ACPI_RSDP_SCAN_STEP             16
15733620c54SBob Moore 
15833620c54SBob Moore /* Operation regions */
15933620c54SBob Moore 
16033620c54SBob Moore #define ACPI_USER_REGION_BEGIN          0x80
16133620c54SBob Moore 
16233620c54SBob Moore /* Maximum space_ids for Operation Regions */
16333620c54SBob Moore 
16433620c54SBob Moore #define ACPI_MAX_ADDRESS_SPACE          255
16542f8fb75SBob Moore #define ACPI_NUM_DEFAULT_SPACES         4
16633620c54SBob Moore 
16733620c54SBob Moore /* Array sizes.  Used for range checking also */
16833620c54SBob Moore 
16933620c54SBob Moore #define ACPI_MAX_MATCH_OPCODE           5
17033620c54SBob Moore 
17133620c54SBob Moore /* RSDP checksums */
17233620c54SBob Moore 
17333620c54SBob Moore #define ACPI_RSDP_CHECKSUM_LENGTH       20
17433620c54SBob Moore #define ACPI_RSDP_XCHECKSUM_LENGTH      36
17533620c54SBob Moore 
176e324e101SBob Moore /*
177e324e101SBob Moore  * SMBus, GSBus and IPMI buffer sizes. All have a 2-byte header,
178e324e101SBob Moore  * containing both Status and Length.
179e324e101SBob Moore  */
180e324e101SBob Moore #define ACPI_SERIAL_HEADER_SIZE         2	/* Common for below. Status and Length fields */
18133620c54SBob Moore 
182e324e101SBob Moore #define ACPI_SMBUS_DATA_SIZE            32
183e324e101SBob Moore #define ACPI_SMBUS_BUFFER_SIZE          ACPI_SERIAL_HEADER_SIZE + ACPI_SMBUS_DATA_SIZE
184e324e101SBob Moore 
185e324e101SBob Moore #define ACPI_IPMI_DATA_SIZE             64
186e324e101SBob Moore #define ACPI_IPMI_BUFFER_SIZE           ACPI_SERIAL_HEADER_SIZE + ACPI_IPMI_DATA_SIZE
187e324e101SBob Moore 
188e324e101SBob Moore #define ACPI_MAX_GSBUS_DATA_SIZE        255
189e324e101SBob Moore #define ACPI_MAX_GSBUS_BUFFER_SIZE      ACPI_SERIAL_HEADER_SIZE + ACPI_MAX_GSBUS_DATA_SIZE
19033620c54SBob Moore 
19104da290dSErik Kaneda #define ACPI_PRM_INPUT_BUFFER_SIZE      26
19204da290dSErik Kaneda 
193ee64b827SSudeep Holla #define ACPI_FFH_INPUT_BUFFER_SIZE      256
194ee64b827SSudeep Holla 
19533620c54SBob Moore /* _sx_d and _sx_w control methods */
19633620c54SBob Moore 
19733620c54SBob Moore #define ACPI_NUM_sx_d_METHODS           4
19833620c54SBob Moore #define ACPI_NUM_sx_w_METHODS           5
19933620c54SBob Moore 
20033620c54SBob Moore /******************************************************************************
20133620c54SBob Moore  *
20290da690bSBob Moore  * Miscellaneous constants
20390da690bSBob Moore  *
20490da690bSBob Moore  *****************************************************************************/
20590da690bSBob Moore 
20690da690bSBob Moore /* UUID constants */
20790da690bSBob Moore 
20890da690bSBob Moore #define UUID_BUFFER_LENGTH          16	/* Length of UUID in memory */
20990da690bSBob Moore #define UUID_STRING_LENGTH          36	/* Total length of a UUID string */
21090da690bSBob Moore 
21190da690bSBob Moore /* Positions for required hyphens (dashes) in UUID strings */
21290da690bSBob Moore 
21390da690bSBob Moore #define UUID_HYPHEN1_OFFSET         8
21490da690bSBob Moore #define UUID_HYPHEN2_OFFSET         13
21590da690bSBob Moore #define UUID_HYPHEN3_OFFSET         18
21690da690bSBob Moore #define UUID_HYPHEN4_OFFSET         23
21790da690bSBob Moore 
21890da690bSBob Moore /******************************************************************************
21990da690bSBob Moore  *
22033620c54SBob Moore  * ACPI AML Debugger
22133620c54SBob Moore  *
22233620c54SBob Moore  *****************************************************************************/
22333620c54SBob Moore 
22429a241ccSBob Moore #define ACPI_DEBUGGER_MAX_ARGS          ACPI_METHOD_NUM_ARGS + 4	/* Max command line arguments */
225f540fadfSLv Zheng #define ACPI_DB_LINE_BUFFER_SIZE        512
22633620c54SBob Moore 
22733620c54SBob Moore #define ACPI_DEBUGGER_COMMAND_PROMPT    '-'
22833620c54SBob Moore #define ACPI_DEBUGGER_EXECUTE_PROMPT    '%'
22933620c54SBob Moore 
23033620c54SBob Moore #endif				/* _ACCONFIG_H */
231