230 lines · c
1/* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 */2/******************************************************************************3 *4 * Name: acconfig.h - Global configuration constants5 *6 * Copyright (C) 2000 - 2023, Intel Corp.7 *8 *****************************************************************************/9 10#ifndef _ACCONFIG_H11#define _ACCONFIG_H12 13/******************************************************************************14 *15 * Configuration options16 *17 *****************************************************************************/18 19/*20 * ACPI_DEBUG_OUTPUT - This switch enables all the debug facilities of the21 * ACPI subsystem. This includes the DEBUG_PRINT output22 * statements. When disabled, all DEBUG_PRINT23 * statements are compiled out.24 *25 * ACPI_APPLICATION - Use this switch if the subsystem is going to be run26 * at the application level.27 *28 */29 30/*31 * OS name, used for the _OS object. The _OS object is essentially obsolete,32 * but there is a large base of ASL/AML code in existing machines that check33 * for the string below. The use of this string usually guarantees that34 * the ASL will execute down the most tested code path. Also, there is some35 * code that will not execute the _OSI method unless _OS matches the string36 * below. Therefore, change this string at your own risk.37 */38#define ACPI_OS_NAME "Microsoft Windows NT"39 40/* Maximum objects in the various object caches */41 42#define ACPI_MAX_STATE_CACHE_DEPTH 96 /* State objects */43#define ACPI_MAX_PARSE_CACHE_DEPTH 96 /* Parse tree objects */44#define ACPI_MAX_EXTPARSE_CACHE_DEPTH 96 /* Parse tree objects */45#define ACPI_MAX_OBJECT_CACHE_DEPTH 96 /* Interpreter operand objects */46#define ACPI_MAX_NAMESPACE_CACHE_DEPTH 96 /* Namespace objects */47#define ACPI_MAX_COMMENT_CACHE_DEPTH 96 /* Comments for the -ca option */48 49/*50 * Should the subsystem abort the loading of an ACPI table if the51 * table checksum is incorrect?52 */53#ifndef ACPI_CHECKSUM_ABORT54#define ACPI_CHECKSUM_ABORT FALSE55#endif56 57/*58 * Generate a version of ACPICA that only supports "reduced hardware"59 * platforms (as defined in ACPI 5.0). Set to TRUE to generate a specialized60 * version of ACPICA that ONLY supports the ACPI 5.0 "reduced hardware"61 * model. In other words, no ACPI hardware is supported.62 *63 * If TRUE, this means no support for the following:64 * PM Event and Control registers65 * SCI interrupt (and handler)66 * Fixed Events67 * General Purpose Events (GPEs)68 * Global Lock69 * ACPI PM timer70 */71#ifndef ACPI_REDUCED_HARDWARE72#define ACPI_REDUCED_HARDWARE FALSE73#endif74 75/******************************************************************************76 *77 * Subsystem Constants78 *79 *****************************************************************************/80 81/* Version of ACPI supported */82 83#define ACPI_CA_SUPPORT_LEVEL 584 85/* Maximum count for a semaphore object */86 87#define ACPI_MAX_SEMAPHORE_COUNT 25688 89/* Maximum object reference count (detects object deletion issues) */90 91#define ACPI_MAX_REFERENCE_COUNT 0x400092 93/* Default page size for use in mapping memory for operation regions */94 95#define ACPI_DEFAULT_PAGE_SIZE 4096 /* Must be power of 2 */96 97/* owner_id tracking. 128 entries allows for 4095 owner_ids */98 99#define ACPI_NUM_OWNERID_MASKS 128100 101/* Size of the root table array is increased by this increment */102 103#define ACPI_ROOT_TABLE_SIZE_INCREMENT 4104 105/* Maximum sleep allowed via Sleep() operator */106 107#define ACPI_MAX_SLEEP 2000 /* 2000 millisec == two seconds */108 109/* Address Range lists are per-space_id (Memory and I/O only) */110 111#define ACPI_ADDRESS_RANGE_MAX 2112 113/* Maximum time (default 30s) of While() loops before abort */114 115#define ACPI_MAX_LOOP_TIMEOUT 30116 117/******************************************************************************118 *119 * ACPI Specification constants (Do not change unless the specification changes)120 *121 *****************************************************************************/122 123/* Method info (in WALK_STATE), containing local variables and arguments */124 125#define ACPI_METHOD_NUM_LOCALS 8126#define ACPI_METHOD_MAX_LOCAL 7127 128#define ACPI_METHOD_NUM_ARGS 7129#define ACPI_METHOD_MAX_ARG 6130 131/*132 * Operand Stack (in WALK_STATE), Must be large enough to contain METHOD_MAX_ARG133 */134#define ACPI_OBJ_NUM_OPERANDS 8135#define ACPI_OBJ_MAX_OPERAND 7136 137/* Number of elements in the Result Stack frame, can be an arbitrary value */138 139#define ACPI_RESULTS_FRAME_OBJ_NUM 8140 141/*142 * Maximal number of elements the Result Stack can contain,143 * it may be an arbitrary value not exceeding the types of144 * result_size and result_count (now u8).145 */146#define ACPI_RESULTS_OBJ_NUM_MAX 255147 148/* Constants used in searching for the RSDP in low memory */149 150#define ACPI_EBDA_PTR_LOCATION 0x0000040E /* Physical Address */151#define ACPI_EBDA_PTR_LENGTH 2152#define ACPI_EBDA_WINDOW_SIZE 1024153#define ACPI_HI_RSDP_WINDOW_BASE 0x000E0000 /* Physical Address */154#define ACPI_HI_RSDP_WINDOW_SIZE 0x00020000155#define ACPI_RSDP_SCAN_STEP 16156 157/* Operation regions */158 159#define ACPI_USER_REGION_BEGIN 0x80160 161/* Maximum space_ids for Operation Regions */162 163#define ACPI_MAX_ADDRESS_SPACE 255164#define ACPI_NUM_DEFAULT_SPACES 4165 166/* Array sizes. Used for range checking also */167 168#define ACPI_MAX_MATCH_OPCODE 5169 170/* RSDP checksums */171 172#define ACPI_RSDP_CHECKSUM_LENGTH 20173#define ACPI_RSDP_XCHECKSUM_LENGTH 36174 175/*176 * SMBus, GSBus and IPMI buffer sizes. All have a 2-byte header,177 * containing both Status and Length.178 */179#define ACPI_SERIAL_HEADER_SIZE 2 /* Common for below. Status and Length fields */180 181#define ACPI_SMBUS_DATA_SIZE 32182#define ACPI_SMBUS_BUFFER_SIZE ACPI_SERIAL_HEADER_SIZE + ACPI_SMBUS_DATA_SIZE183 184#define ACPI_IPMI_DATA_SIZE 64185#define ACPI_IPMI_BUFFER_SIZE ACPI_SERIAL_HEADER_SIZE + ACPI_IPMI_DATA_SIZE186 187#define ACPI_MAX_GSBUS_DATA_SIZE 255188#define ACPI_MAX_GSBUS_BUFFER_SIZE ACPI_SERIAL_HEADER_SIZE + ACPI_MAX_GSBUS_DATA_SIZE189 190#define ACPI_PRM_INPUT_BUFFER_SIZE 26191 192#define ACPI_FFH_INPUT_BUFFER_SIZE 256193 194/* _sx_d and _sx_w control methods */195 196#define ACPI_NUM_sx_d_METHODS 4197#define ACPI_NUM_sx_w_METHODS 5198 199/******************************************************************************200 *201 * Miscellaneous constants202 *203 *****************************************************************************/204 205/* UUID constants */206 207#define UUID_BUFFER_LENGTH 16 /* Length of UUID in memory */208#define UUID_STRING_LENGTH 36 /* Total length of a UUID string */209 210/* Positions for required hyphens (dashes) in UUID strings */211 212#define UUID_HYPHEN1_OFFSET 8213#define UUID_HYPHEN2_OFFSET 13214#define UUID_HYPHEN3_OFFSET 18215#define UUID_HYPHEN4_OFFSET 23216 217/******************************************************************************218 *219 * ACPI AML Debugger220 *221 *****************************************************************************/222 223#define ACPI_DEBUGGER_MAX_ARGS ACPI_METHOD_NUM_ARGS + 4 /* Max command line arguments */224#define ACPI_DB_LINE_BUFFER_SIZE 512225 226#define ACPI_DEBUGGER_COMMAND_PROMPT '-'227#define ACPI_DEBUGGER_EXECUTE_PROMPT '%'228 229#endif /* _ACCONFIG_H */230