xref: /dflybsd-src/sys/contrib/dev/acpica/source/include/acconfig.h (revision 066b6da29f829f6c7f6211f86db0cc29f0a21c94)
10d02842fSSascha Wildner /******************************************************************************
20d02842fSSascha Wildner  *
30d02842fSSascha Wildner  * Name: acconfig.h - Global configuration constants
40d02842fSSascha Wildner  *
50d02842fSSascha Wildner  *****************************************************************************/
60d02842fSSascha Wildner 
70d02842fSSascha Wildner /*
820294b7eSSascha Wildner  * Copyright (C) 2000 - 2014, Intel Corp.
90d02842fSSascha Wildner  * All rights reserved.
100d02842fSSascha Wildner  *
110d02842fSSascha Wildner  * Redistribution and use in source and binary forms, with or without
120d02842fSSascha Wildner  * modification, are permitted provided that the following conditions
130d02842fSSascha Wildner  * are met:
140d02842fSSascha Wildner  * 1. Redistributions of source code must retain the above copyright
150d02842fSSascha Wildner  *    notice, this list of conditions, and the following disclaimer,
160d02842fSSascha Wildner  *    without modification.
170d02842fSSascha Wildner  * 2. Redistributions in binary form must reproduce at minimum a disclaimer
180d02842fSSascha Wildner  *    substantially similar to the "NO WARRANTY" disclaimer below
190d02842fSSascha Wildner  *    ("Disclaimer") and any redistribution must be conditioned upon
200d02842fSSascha Wildner  *    including a substantially similar Disclaimer requirement for further
210d02842fSSascha Wildner  *    binary redistribution.
220d02842fSSascha Wildner  * 3. Neither the names of the above-listed copyright holders nor the names
230d02842fSSascha Wildner  *    of any contributors may be used to endorse or promote products derived
240d02842fSSascha Wildner  *    from this software without specific prior written permission.
250d02842fSSascha Wildner  *
260d02842fSSascha Wildner  * Alternatively, this software may be distributed under the terms of the
270d02842fSSascha Wildner  * GNU General Public License ("GPL") version 2 as published by the Free
280d02842fSSascha Wildner  * Software Foundation.
290d02842fSSascha Wildner  *
300d02842fSSascha Wildner  * NO WARRANTY
310d02842fSSascha Wildner  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
320d02842fSSascha Wildner  * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
330d02842fSSascha Wildner  * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR
340d02842fSSascha Wildner  * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
350d02842fSSascha Wildner  * HOLDERS OR CONTRIBUTORS BE LIABLE FOR SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
360d02842fSSascha Wildner  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
370d02842fSSascha Wildner  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
380d02842fSSascha Wildner  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
390d02842fSSascha Wildner  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
400d02842fSSascha Wildner  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
410d02842fSSascha Wildner  * POSSIBILITY OF SUCH DAMAGES.
420d02842fSSascha Wildner  */
430d02842fSSascha Wildner 
440d02842fSSascha Wildner #ifndef _ACCONFIG_H
450d02842fSSascha Wildner #define _ACCONFIG_H
460d02842fSSascha Wildner 
470d02842fSSascha Wildner 
480d02842fSSascha Wildner /******************************************************************************
490d02842fSSascha Wildner  *
500d02842fSSascha Wildner  * Configuration options
510d02842fSSascha Wildner  *
520d02842fSSascha Wildner  *****************************************************************************/
530d02842fSSascha Wildner 
540d02842fSSascha Wildner /*
550d02842fSSascha Wildner  * ACPI_DEBUG_OUTPUT    - This switch enables all the debug facilities of the
560d02842fSSascha Wildner  *                        ACPI subsystem. This includes the DEBUG_PRINT output
570d02842fSSascha Wildner  *                        statements. When disabled, all DEBUG_PRINT
580d02842fSSascha Wildner  *                        statements are compiled out.
590d02842fSSascha Wildner  *
600d02842fSSascha Wildner  * ACPI_APPLICATION     - Use this switch if the subsystem is going to be run
610d02842fSSascha Wildner  *                        at the application level.
620d02842fSSascha Wildner  *
630d02842fSSascha Wildner  */
640d02842fSSascha Wildner 
650d02842fSSascha Wildner /*
660d02842fSSascha Wildner  * OS name, used for the _OS object. The _OS object is essentially obsolete,
670d02842fSSascha Wildner  * but there is a large base of ASL/AML code in existing machines that check
680d02842fSSascha Wildner  * for the string below. The use of this string usually guarantees that
690d02842fSSascha Wildner  * the ASL will execute down the most tested code path. Also, there is some
700d02842fSSascha Wildner  * code that will not execute the _OSI method unless _OS matches the string
710d02842fSSascha Wildner  * below. Therefore, change this string at your own risk.
720d02842fSSascha Wildner  */
730d02842fSSascha Wildner #define ACPI_OS_NAME                    "Microsoft Windows NT"
740d02842fSSascha Wildner 
750d02842fSSascha Wildner /* Maximum objects in the various object caches */
760d02842fSSascha Wildner 
770d02842fSSascha Wildner #define ACPI_MAX_STATE_CACHE_DEPTH      96          /* State objects */
780d02842fSSascha Wildner #define ACPI_MAX_PARSE_CACHE_DEPTH      96          /* Parse tree objects */
790d02842fSSascha Wildner #define ACPI_MAX_EXTPARSE_CACHE_DEPTH   96          /* Parse tree objects */
800d02842fSSascha Wildner #define ACPI_MAX_OBJECT_CACHE_DEPTH     96          /* Interpreter operand objects */
810d02842fSSascha Wildner #define ACPI_MAX_NAMESPACE_CACHE_DEPTH  96          /* Namespace objects */
820d02842fSSascha Wildner 
830d02842fSSascha Wildner /*
840d02842fSSascha Wildner  * Should the subsystem abort the loading of an ACPI table if the
850d02842fSSascha Wildner  * table checksum is incorrect?
860d02842fSSascha Wildner  */
870d02842fSSascha Wildner #ifndef ACPI_CHECKSUM_ABORT
880d02842fSSascha Wildner #define ACPI_CHECKSUM_ABORT             FALSE
890d02842fSSascha Wildner #endif
900d02842fSSascha Wildner 
910d02842fSSascha Wildner /*
920d02842fSSascha Wildner  * Generate a version of ACPICA that only supports "reduced hardware"
930d02842fSSascha Wildner  * platforms (as defined in ACPI 5.0). Set to TRUE to generate a specialized
940d02842fSSascha Wildner  * version of ACPICA that ONLY supports the ACPI 5.0 "reduced hardware"
950d02842fSSascha Wildner  * model. In other words, no ACPI hardware is supported.
960d02842fSSascha Wildner  *
970d02842fSSascha Wildner  * If TRUE, this means no support for the following:
980d02842fSSascha Wildner  *      PM Event and Control registers
990d02842fSSascha Wildner  *      SCI interrupt (and handler)
1000d02842fSSascha Wildner  *      Fixed Events
1010d02842fSSascha Wildner  *      General Purpose Events (GPEs)
1020d02842fSSascha Wildner  *      Global Lock
1030d02842fSSascha Wildner  *      ACPI PM timer
1040d02842fSSascha Wildner  *      FACS table (Waking vectors and Global Lock)
1050d02842fSSascha Wildner  */
1060d02842fSSascha Wildner #ifndef ACPI_REDUCED_HARDWARE
1070d02842fSSascha Wildner #define ACPI_REDUCED_HARDWARE           FALSE
1080d02842fSSascha Wildner #endif
1090d02842fSSascha Wildner 
1100d02842fSSascha Wildner 
1110d02842fSSascha Wildner /******************************************************************************
1120d02842fSSascha Wildner  *
1130d02842fSSascha Wildner  * Subsystem Constants
1140d02842fSSascha Wildner  *
1150d02842fSSascha Wildner  *****************************************************************************/
1160d02842fSSascha Wildner 
1170d02842fSSascha Wildner /* Version of ACPI supported */
1180d02842fSSascha Wildner 
1190d02842fSSascha Wildner #define ACPI_CA_SUPPORT_LEVEL           5
1200d02842fSSascha Wildner 
1210d02842fSSascha Wildner /* Maximum count for a semaphore object */
1220d02842fSSascha Wildner 
1230d02842fSSascha Wildner #define ACPI_MAX_SEMAPHORE_COUNT        256
1240d02842fSSascha Wildner 
1250d02842fSSascha Wildner /* Maximum object reference count (detects object deletion issues) */
1260d02842fSSascha Wildner 
1270d02842fSSascha Wildner #define ACPI_MAX_REFERENCE_COUNT        0x800
1280d02842fSSascha Wildner 
1290d02842fSSascha Wildner /* Default page size for use in mapping memory for operation regions */
1300d02842fSSascha Wildner 
1310d02842fSSascha Wildner #define ACPI_DEFAULT_PAGE_SIZE          4096    /* Must be power of 2 */
1320d02842fSSascha Wildner 
1330d02842fSSascha Wildner /* OwnerId tracking. 8 entries allows for 255 OwnerIds */
1340d02842fSSascha Wildner 
1350d02842fSSascha Wildner #define ACPI_NUM_OWNERID_MASKS          8
1360d02842fSSascha Wildner 
1370d02842fSSascha Wildner /* Size of the root table array is increased by this increment */
1380d02842fSSascha Wildner 
1390d02842fSSascha Wildner #define ACPI_ROOT_TABLE_SIZE_INCREMENT  4
1400d02842fSSascha Wildner 
1410d02842fSSascha Wildner /* Maximum number of While() loop iterations before forced abort */
1420d02842fSSascha Wildner 
1430d02842fSSascha Wildner #define ACPI_MAX_LOOP_ITERATIONS        0xFFFF
1440d02842fSSascha Wildner 
1450d02842fSSascha Wildner /* Maximum sleep allowed via Sleep() operator */
1460d02842fSSascha Wildner 
1470d02842fSSascha Wildner #define ACPI_MAX_SLEEP                  2000    /* 2000 millisec == two seconds */
1480d02842fSSascha Wildner 
1490d02842fSSascha Wildner /* Address Range lists are per-SpaceId (Memory and I/O only) */
1500d02842fSSascha Wildner 
1510d02842fSSascha Wildner #define ACPI_ADDRESS_RANGE_MAX          2
1520d02842fSSascha Wildner 
1530d02842fSSascha Wildner 
1540d02842fSSascha Wildner /******************************************************************************
1550d02842fSSascha Wildner  *
1560d02842fSSascha Wildner  * ACPI Specification constants (Do not change unless the specification changes)
1570d02842fSSascha Wildner  *
1580d02842fSSascha Wildner  *****************************************************************************/
1590d02842fSSascha Wildner 
1600d02842fSSascha Wildner /* Method info (in WALK_STATE), containing local variables and argumetns */
1610d02842fSSascha Wildner 
1620d02842fSSascha Wildner #define ACPI_METHOD_NUM_LOCALS          8
1630d02842fSSascha Wildner #define ACPI_METHOD_MAX_LOCAL           7
1640d02842fSSascha Wildner 
1650d02842fSSascha Wildner #define ACPI_METHOD_NUM_ARGS            7
1660d02842fSSascha Wildner #define ACPI_METHOD_MAX_ARG             6
1670d02842fSSascha Wildner 
1680d02842fSSascha Wildner /*
1690d02842fSSascha Wildner  * Operand Stack (in WALK_STATE), Must be large enough to contain METHOD_MAX_ARG
1700d02842fSSascha Wildner  */
1710d02842fSSascha Wildner #define ACPI_OBJ_NUM_OPERANDS           8
1720d02842fSSascha Wildner #define ACPI_OBJ_MAX_OPERAND            7
1730d02842fSSascha Wildner 
1740d02842fSSascha Wildner /* Number of elements in the Result Stack frame, can be an arbitrary value */
1750d02842fSSascha Wildner 
1760d02842fSSascha Wildner #define ACPI_RESULTS_FRAME_OBJ_NUM      8
1770d02842fSSascha Wildner 
1780d02842fSSascha Wildner /*
1790d02842fSSascha Wildner  * Maximal number of elements the Result Stack can contain,
1800d02842fSSascha Wildner  * it may be an arbitray value not exceeding the types of
1810d02842fSSascha Wildner  * ResultSize and ResultCount (now UINT8).
1820d02842fSSascha Wildner  */
1830d02842fSSascha Wildner #define ACPI_RESULTS_OBJ_NUM_MAX        255
1840d02842fSSascha Wildner 
1850d02842fSSascha Wildner /* Constants used in searching for the RSDP in low memory */
1860d02842fSSascha Wildner 
1870d02842fSSascha Wildner #define ACPI_EBDA_PTR_LOCATION          0x0000040E     /* Physical Address */
1880d02842fSSascha Wildner #define ACPI_EBDA_PTR_LENGTH            2
1890d02842fSSascha Wildner #define ACPI_EBDA_WINDOW_SIZE           1024
1900d02842fSSascha Wildner #define ACPI_HI_RSDP_WINDOW_BASE        0x000E0000     /* Physical Address */
1910d02842fSSascha Wildner #define ACPI_HI_RSDP_WINDOW_SIZE        0x00020000
1920d02842fSSascha Wildner #define ACPI_RSDP_SCAN_STEP             16
1930d02842fSSascha Wildner 
1940d02842fSSascha Wildner /* Operation regions */
1950d02842fSSascha Wildner 
1960d02842fSSascha Wildner #define ACPI_USER_REGION_BEGIN          0x80
1970d02842fSSascha Wildner 
1980d02842fSSascha Wildner /* Maximum SpaceIds for Operation Regions */
1990d02842fSSascha Wildner 
2000d02842fSSascha Wildner #define ACPI_MAX_ADDRESS_SPACE          255
2010d02842fSSascha Wildner #define ACPI_NUM_DEFAULT_SPACES         4
2020d02842fSSascha Wildner 
2030d02842fSSascha Wildner /* Array sizes. Used for range checking also */
2040d02842fSSascha Wildner 
2050d02842fSSascha Wildner #define ACPI_MAX_MATCH_OPCODE           5
2060d02842fSSascha Wildner 
2070d02842fSSascha Wildner /* RSDP checksums */
2080d02842fSSascha Wildner 
2090d02842fSSascha Wildner #define ACPI_RSDP_CHECKSUM_LENGTH       20
2100d02842fSSascha Wildner #define ACPI_RSDP_XCHECKSUM_LENGTH      36
2110d02842fSSascha Wildner 
2120d02842fSSascha Wildner /* SMBus, GSBus and IPMI bidirectional buffer size */
2130d02842fSSascha Wildner 
2140d02842fSSascha Wildner #define ACPI_SMBUS_BUFFER_SIZE          34
2150d02842fSSascha Wildner #define ACPI_GSBUS_BUFFER_SIZE          34
2160d02842fSSascha Wildner #define ACPI_IPMI_BUFFER_SIZE           66
2170d02842fSSascha Wildner 
2180d02842fSSascha Wildner /* _SxD and _SxW control methods */
2190d02842fSSascha Wildner 
2200d02842fSSascha Wildner #define ACPI_NUM_SxD_METHODS            4
2210d02842fSSascha Wildner #define ACPI_NUM_SxW_METHODS            5
2220d02842fSSascha Wildner 
2230d02842fSSascha Wildner 
2240d02842fSSascha Wildner /******************************************************************************
2250d02842fSSascha Wildner  *
226*066b6da2SSascha Wildner  * Miscellaneous constants
227*066b6da2SSascha Wildner  *
228*066b6da2SSascha Wildner  *****************************************************************************/
229*066b6da2SSascha Wildner 
230*066b6da2SSascha Wildner /* UUID constants */
231*066b6da2SSascha Wildner 
232*066b6da2SSascha Wildner #define UUID_BUFFER_LENGTH          16 /* Length of UUID in memory */
233*066b6da2SSascha Wildner #define UUID_STRING_LENGTH          36 /* Total length of a UUID string */
234*066b6da2SSascha Wildner 
235*066b6da2SSascha Wildner /* Positions for required hyphens (dashes) in UUID strings */
236*066b6da2SSascha Wildner 
237*066b6da2SSascha Wildner #define UUID_HYPHEN1_OFFSET         8
238*066b6da2SSascha Wildner #define UUID_HYPHEN2_OFFSET         13
239*066b6da2SSascha Wildner #define UUID_HYPHEN3_OFFSET         18
240*066b6da2SSascha Wildner #define UUID_HYPHEN4_OFFSET         23
241*066b6da2SSascha Wildner 
242*066b6da2SSascha Wildner 
243*066b6da2SSascha Wildner /******************************************************************************
244*066b6da2SSascha Wildner  *
2450d02842fSSascha Wildner  * ACPI AML Debugger
2460d02842fSSascha Wildner  *
2470d02842fSSascha Wildner  *****************************************************************************/
2480d02842fSSascha Wildner 
2490d02842fSSascha Wildner #define ACPI_DEBUGGER_MAX_ARGS          ACPI_METHOD_NUM_ARGS + 4 /* Max command line arguments */
2500d02842fSSascha Wildner #define ACPI_DB_LINE_BUFFER_SIZE        512
2510d02842fSSascha Wildner 
2520d02842fSSascha Wildner #define ACPI_DEBUGGER_COMMAND_PROMPT    '-'
2530d02842fSSascha Wildner #define ACPI_DEBUGGER_EXECUTE_PROMPT    '%'
2540d02842fSSascha Wildner 
2550d02842fSSascha Wildner 
2560d02842fSSascha Wildner #endif /* _ACCONFIG_H */
257