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