xref: /linux/include/acpi/acconfig.h (revision 75c8044f)
133620c54SBob Moore /******************************************************************************
233620c54SBob Moore  *
333620c54SBob Moore  * Name: acconfig.h - Global configuration constants
433620c54SBob Moore  *
533620c54SBob Moore  *****************************************************************************/
633620c54SBob Moore 
733620c54SBob Moore /*
833620c54SBob Moore  * Copyright (C) 2000 - 2012, Intel Corp.
933620c54SBob Moore  * All rights reserved.
1033620c54SBob Moore  *
1133620c54SBob Moore  * Redistribution and use in source and binary forms, with or without
1233620c54SBob Moore  * modification, are permitted provided that the following conditions
1333620c54SBob Moore  * are met:
1433620c54SBob Moore  * 1. Redistributions of source code must retain the above copyright
1533620c54SBob Moore  *    notice, this list of conditions, and the following disclaimer,
1633620c54SBob Moore  *    without modification.
1733620c54SBob Moore  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
1833620c54SBob Moore  *    substantially similar to the "NO WARRANTY" disclaimer below
1933620c54SBob Moore  *    ("Disclaimer") and any redistribution must be conditioned upon
2033620c54SBob Moore  *    including a substantially similar Disclaimer requirement for further
2133620c54SBob Moore  *    binary redistribution.
2233620c54SBob Moore  * 3. Neither the names of the above-listed copyright holders nor the names
2333620c54SBob Moore  *    of any contributors may be used to endorse or promote products derived
2433620c54SBob Moore  *    from this software without specific prior written permission.
2533620c54SBob Moore  *
2633620c54SBob Moore  * Alternatively, this software may be distributed under the terms of the
2733620c54SBob Moore  * GNU General Public License ("GPL") version 2 as published by the Free
2833620c54SBob Moore  * Software Foundation.
2933620c54SBob Moore  *
3033620c54SBob Moore  * NO WARRANTY
3133620c54SBob Moore  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
3233620c54SBob Moore  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
3333620c54SBob Moore  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
3433620c54SBob Moore  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
3533620c54SBob Moore  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
3633620c54SBob Moore  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
3733620c54SBob Moore  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
3833620c54SBob Moore  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
3933620c54SBob Moore  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
4033620c54SBob Moore  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
4133620c54SBob Moore  * POSSIBILITY OF SUCH DAMAGES.
4233620c54SBob Moore  */
4333620c54SBob Moore 
4433620c54SBob Moore #ifndef _ACCONFIG_H
4533620c54SBob Moore #define _ACCONFIG_H
4633620c54SBob Moore 
4733620c54SBob Moore /******************************************************************************
4833620c54SBob Moore  *
4933620c54SBob Moore  * Configuration options
5033620c54SBob Moore  *
5133620c54SBob Moore  *****************************************************************************/
5233620c54SBob Moore 
5333620c54SBob Moore /*
5433620c54SBob Moore  * ACPI_DEBUG_OUTPUT    - This switch enables all the debug facilities of the
5533620c54SBob Moore  *                        ACPI subsystem.  This includes the DEBUG_PRINT output
5633620c54SBob Moore  *                        statements.  When disabled, all DEBUG_PRINT
5733620c54SBob Moore  *                        statements are compiled out.
5833620c54SBob Moore  *
5933620c54SBob Moore  * ACPI_APPLICATION     - Use this switch if the subsystem is going to be run
6033620c54SBob Moore  *                        at the application level.
6133620c54SBob Moore  *
6233620c54SBob Moore  */
6333620c54SBob Moore 
6433620c54SBob Moore /*
6533620c54SBob Moore  * OS name, used for the _OS object.  The _OS object is essentially obsolete,
6633620c54SBob Moore  * but there is a large base of ASL/AML code in existing machines that check
6733620c54SBob Moore  * for the string below.  The use of this string usually guarantees that
6833620c54SBob Moore  * the ASL will execute down the most tested code path.  Also, there is some
6933620c54SBob Moore  * code that will not execute the _OSI method unless _OS matches the string
7033620c54SBob Moore  * below.  Therefore, change this string at your own risk.
7133620c54SBob Moore  */
7233620c54SBob Moore #define ACPI_OS_NAME                    "Microsoft Windows NT"
7333620c54SBob Moore 
7433620c54SBob Moore /* Maximum objects in the various object caches */
7533620c54SBob Moore 
7633620c54SBob Moore #define ACPI_MAX_STATE_CACHE_DEPTH      96	/* State objects */
7733620c54SBob Moore #define ACPI_MAX_PARSE_CACHE_DEPTH      96	/* Parse tree objects */
7833620c54SBob Moore #define ACPI_MAX_EXTPARSE_CACHE_DEPTH   96	/* Parse tree objects */
7933620c54SBob Moore #define ACPI_MAX_OBJECT_CACHE_DEPTH     96	/* Interpreter operand objects */
8033620c54SBob Moore #define ACPI_MAX_NAMESPACE_CACHE_DEPTH  96	/* Namespace objects */
8133620c54SBob Moore 
8233620c54SBob Moore /*
8333620c54SBob Moore  * Should the subsystem abort the loading of an ACPI table if the
8433620c54SBob Moore  * table checksum is incorrect?
8533620c54SBob Moore  */
8633620c54SBob Moore #define ACPI_CHECKSUM_ABORT             FALSE
8733620c54SBob Moore 
8833620c54SBob Moore /*
8933620c54SBob Moore  * Generate a version of ACPICA that only supports "reduced hardware"
9033620c54SBob Moore  * platforms (as defined in ACPI 5.0). Set to TRUE to generate a specialized
9133620c54SBob Moore  * version of ACPICA that ONLY supports the ACPI 5.0 "reduced hardware"
9233620c54SBob Moore  * model. In other words, no ACPI hardware is supported.
9333620c54SBob Moore  *
9433620c54SBob Moore  * If TRUE, this means no support for the following:
9533620c54SBob Moore  *      PM Event and Control registers
9633620c54SBob Moore  *      SCI interrupt (and handler)
9733620c54SBob Moore  *      Fixed Events
9833620c54SBob Moore  *      General Purpose Events (GPEs)
9933620c54SBob Moore  *      Global Lock
10033620c54SBob Moore  *      ACPI PM timer
10133620c54SBob Moore  *      FACS table (Waking vectors and Global Lock)
10233620c54SBob Moore  */
10333620c54SBob Moore #define ACPI_REDUCED_HARDWARE           FALSE
10433620c54SBob Moore 
10533620c54SBob Moore /******************************************************************************
10633620c54SBob Moore  *
10733620c54SBob Moore  * Subsystem Constants
10833620c54SBob Moore  *
10933620c54SBob Moore  *****************************************************************************/
11033620c54SBob Moore 
11133620c54SBob Moore /* Version of ACPI supported */
11233620c54SBob Moore 
11333620c54SBob Moore #define ACPI_CA_SUPPORT_LEVEL           5
11433620c54SBob Moore 
11533620c54SBob Moore /* Maximum count for a semaphore object */
11633620c54SBob Moore 
11733620c54SBob Moore #define ACPI_MAX_SEMAPHORE_COUNT        256
11833620c54SBob Moore 
11933620c54SBob Moore /* Maximum object reference count (detects object deletion issues) */
12033620c54SBob Moore 
12133620c54SBob Moore #define ACPI_MAX_REFERENCE_COUNT        0x1000
12233620c54SBob Moore 
12333620c54SBob Moore /* Default page size for use in mapping memory for operation regions */
12433620c54SBob Moore 
12533620c54SBob Moore #define ACPI_DEFAULT_PAGE_SIZE          4096	/* Must be power of 2 */
12633620c54SBob Moore 
12733620c54SBob Moore /* owner_id tracking. 8 entries allows for 255 owner_ids */
12833620c54SBob Moore 
12933620c54SBob Moore #define ACPI_NUM_OWNERID_MASKS          8
13033620c54SBob Moore 
13133620c54SBob Moore /* Size of the root table array is increased by this increment */
13233620c54SBob Moore 
13333620c54SBob Moore #define ACPI_ROOT_TABLE_SIZE_INCREMENT  4
13433620c54SBob Moore 
13533620c54SBob Moore /* Maximum number of While() loop iterations before forced abort */
13633620c54SBob Moore 
13733620c54SBob Moore #define ACPI_MAX_LOOP_ITERATIONS        0xFFFF
13833620c54SBob Moore 
13933620c54SBob Moore /* Maximum sleep allowed via Sleep() operator */
14033620c54SBob Moore 
141*75c8044fSLv Zheng #define ACPI_MAX_SLEEP                  2000	/* 2000 millisec == two seconds */
14233620c54SBob Moore 
14333620c54SBob Moore /* Address Range lists are per-space_id (Memory and I/O only) */
14433620c54SBob Moore 
14533620c54SBob Moore #define ACPI_ADDRESS_RANGE_MAX          2
14633620c54SBob Moore 
14733620c54SBob Moore /******************************************************************************
14833620c54SBob Moore  *
14933620c54SBob Moore  * ACPI Specification constants (Do not change unless the specification changes)
15033620c54SBob Moore  *
15133620c54SBob Moore  *****************************************************************************/
15233620c54SBob Moore 
15333620c54SBob Moore /* Number of distinct GPE register blocks and register width */
15433620c54SBob Moore 
15533620c54SBob Moore #define ACPI_MAX_GPE_BLOCKS             2
15633620c54SBob Moore #define ACPI_GPE_REGISTER_WIDTH         8
15733620c54SBob Moore 
15833620c54SBob Moore /* Method info (in WALK_STATE), containing local variables and argumetns */
15933620c54SBob Moore 
16033620c54SBob Moore #define ACPI_METHOD_NUM_LOCALS          8
16133620c54SBob Moore #define ACPI_METHOD_MAX_LOCAL           7
16233620c54SBob Moore 
16333620c54SBob Moore #define ACPI_METHOD_NUM_ARGS            7
16433620c54SBob Moore #define ACPI_METHOD_MAX_ARG             6
16533620c54SBob Moore 
16633620c54SBob Moore /* Length of _HID, _UID, _CID, and UUID values */
16733620c54SBob Moore 
16833620c54SBob Moore #define ACPI_DEVICE_ID_LENGTH           0x09
16933620c54SBob Moore #define ACPI_MAX_CID_LENGTH             48
17033620c54SBob Moore #define ACPI_UUID_LENGTH                16
17133620c54SBob Moore 
17233620c54SBob Moore /*
17333620c54SBob Moore  * Operand Stack (in WALK_STATE), Must be large enough to contain METHOD_MAX_ARG
17433620c54SBob Moore  */
17533620c54SBob Moore #define ACPI_OBJ_NUM_OPERANDS           8
17633620c54SBob Moore #define ACPI_OBJ_MAX_OPERAND            7
17733620c54SBob Moore 
17833620c54SBob Moore /* Number of elements in the Result Stack frame, can be an arbitrary value */
17933620c54SBob Moore 
18033620c54SBob Moore #define ACPI_RESULTS_FRAME_OBJ_NUM      8
18133620c54SBob Moore 
18233620c54SBob Moore /*
18333620c54SBob Moore  * Maximal number of elements the Result Stack can contain,
18433620c54SBob Moore  * it may be an arbitray value not exceeding the types of
18533620c54SBob Moore  * result_size and result_count (now u8).
18633620c54SBob Moore  */
18733620c54SBob Moore #define ACPI_RESULTS_OBJ_NUM_MAX        255
18833620c54SBob Moore 
18933620c54SBob Moore /* Names within the namespace are 4 bytes long */
19033620c54SBob Moore 
19133620c54SBob Moore #define ACPI_NAME_SIZE                  4
19233620c54SBob Moore #define ACPI_PATH_SEGMENT_LENGTH        5	/* 4 chars for name + 1 char for separator */
19333620c54SBob Moore #define ACPI_PATH_SEPARATOR             '.'
19433620c54SBob Moore 
19533620c54SBob Moore /* Sizes for ACPI table headers */
19633620c54SBob Moore 
19733620c54SBob Moore #define ACPI_OEM_ID_SIZE                6
19833620c54SBob Moore #define ACPI_OEM_TABLE_ID_SIZE          8
19933620c54SBob Moore 
20033620c54SBob Moore /* Constants used in searching for the RSDP in low memory */
20133620c54SBob Moore 
20233620c54SBob Moore #define ACPI_EBDA_PTR_LOCATION          0x0000040E	/* Physical Address */
20333620c54SBob Moore #define ACPI_EBDA_PTR_LENGTH            2
20433620c54SBob Moore #define ACPI_EBDA_WINDOW_SIZE           1024
20533620c54SBob Moore #define ACPI_HI_RSDP_WINDOW_BASE        0x000E0000	/* Physical Address */
20633620c54SBob Moore #define ACPI_HI_RSDP_WINDOW_SIZE        0x00020000
20733620c54SBob Moore #define ACPI_RSDP_SCAN_STEP             16
20833620c54SBob Moore 
20933620c54SBob Moore /* Operation regions */
21033620c54SBob Moore 
21133620c54SBob Moore #define ACPI_USER_REGION_BEGIN          0x80
21233620c54SBob Moore 
21333620c54SBob Moore /* Maximum space_ids for Operation Regions */
21433620c54SBob Moore 
21533620c54SBob Moore #define ACPI_MAX_ADDRESS_SPACE          255
21633620c54SBob Moore 
21733620c54SBob Moore /* Array sizes.  Used for range checking also */
21833620c54SBob Moore 
21933620c54SBob Moore #define ACPI_MAX_MATCH_OPCODE           5
22033620c54SBob Moore 
22133620c54SBob Moore /* RSDP checksums */
22233620c54SBob Moore 
22333620c54SBob Moore #define ACPI_RSDP_CHECKSUM_LENGTH       20
22433620c54SBob Moore #define ACPI_RSDP_XCHECKSUM_LENGTH      36
22533620c54SBob Moore 
22633620c54SBob Moore /* SMBus, GSBus and IPMI bidirectional buffer size */
22733620c54SBob Moore 
22833620c54SBob Moore #define ACPI_SMBUS_BUFFER_SIZE          34
22933620c54SBob Moore #define ACPI_GSBUS_BUFFER_SIZE          34
23033620c54SBob Moore #define ACPI_IPMI_BUFFER_SIZE           66
23133620c54SBob Moore 
23233620c54SBob Moore /* _sx_d and _sx_w control methods */
23333620c54SBob Moore 
23433620c54SBob Moore #define ACPI_NUM_sx_d_METHODS           4
23533620c54SBob Moore #define ACPI_NUM_sx_w_METHODS           5
23633620c54SBob Moore 
23733620c54SBob Moore /******************************************************************************
23833620c54SBob Moore  *
23933620c54SBob Moore  * ACPI AML Debugger
24033620c54SBob Moore  *
24133620c54SBob Moore  *****************************************************************************/
24233620c54SBob Moore 
24333620c54SBob Moore #define ACPI_DEBUGGER_MAX_ARGS          8	/* Must be max method args + 1 */
244f540fadfSLv Zheng #define ACPI_DB_LINE_BUFFER_SIZE	512
24533620c54SBob Moore 
24633620c54SBob Moore #define ACPI_DEBUGGER_COMMAND_PROMPT    '-'
24733620c54SBob Moore #define ACPI_DEBUGGER_EXECUTE_PROMPT    '%'
24833620c54SBob Moore 
24933620c54SBob Moore #endif				/* _ACCONFIG_H */
250