1 | /* SPDX-License-Identifier: BSD-3-Clause OR GPL-2.0 */ |
2 | /****************************************************************************** |
3 | * |
4 | * Name: acconfig.h - Global configuration constants |
5 | * |
6 | * Copyright (C) 2000 - 2023, Intel Corp. |
7 | * |
8 | *****************************************************************************/ |
9 | |
10 | #ifndef _ACCONFIG_H |
11 | #define _ACCONFIG_H |
12 | |
13 | /****************************************************************************** |
14 | * |
15 | * Configuration options |
16 | * |
17 | *****************************************************************************/ |
18 | |
19 | /* |
20 | * ACPI_DEBUG_OUTPUT - This switch enables all the debug facilities of the |
21 | * ACPI subsystem. This includes the DEBUG_PRINT output |
22 | * statements. When disabled, all DEBUG_PRINT |
23 | * statements are compiled out. |
24 | * |
25 | * ACPI_APPLICATION - Use this switch if the subsystem is going to be run |
26 | * 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 check |
33 | * for the string below. The use of this string usually guarantees that |
34 | * the ASL will execute down the most tested code path. Also, there is some |
35 | * code that will not execute the _OSI method unless _OS matches the string |
36 | * 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 96 /* Comments for the -ca option */ |
48 | |
49 | /* |
50 | * Should the subsystem abort the loading of an ACPI table if the |
51 | * table checksum is incorrect? |
52 | */ |
53 | #ifndef ACPI_CHECKSUM_ABORT |
54 | #define ACPI_CHECKSUM_ABORT FALSE |
55 | #endif |
56 | |
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 specialized |
60 | * 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 registers |
65 | * SCI interrupt (and handler) |
66 | * Fixed Events |
67 | * General Purpose Events (GPEs) |
68 | * Global Lock |
69 | * ACPI PM timer |
70 | * FACS table (Waking vectors and Global Lock) |
71 | */ |
72 | #ifndef ACPI_REDUCED_HARDWARE |
73 | #define ACPI_REDUCED_HARDWARE FALSE |
74 | #endif |
75 | |
76 | /****************************************************************************** |
77 | * |
78 | * Subsystem Constants |
79 | * |
80 | *****************************************************************************/ |
81 | |
82 | /* Version of ACPI supported */ |
83 | |
84 | #define ACPI_CA_SUPPORT_LEVEL 5 |
85 | |
86 | /* Maximum count for a semaphore object */ |
87 | |
88 | #define ACPI_MAX_SEMAPHORE_COUNT 256 |
89 | |
90 | /* Maximum object reference count (detects object deletion issues) */ |
91 | |
92 | #define ACPI_MAX_REFERENCE_COUNT 0x4000 |
93 | |
94 | /* Default page size for use in mapping memory for operation regions */ |
95 | |
96 | #define ACPI_DEFAULT_PAGE_SIZE 4096 /* Must be power of 2 */ |
97 | |
98 | /* owner_id tracking. 128 entries allows for 4095 owner_ids */ |
99 | |
100 | #define ACPI_NUM_OWNERID_MASKS 128 |
101 | |
102 | /* Size of the root table array is increased by this increment */ |
103 | |
104 | #define ACPI_ROOT_TABLE_SIZE_INCREMENT 4 |
105 | |
106 | /* Maximum sleep allowed via Sleep() operator */ |
107 | |
108 | #define ACPI_MAX_SLEEP 2000 /* 2000 millisec == two seconds */ |
109 | |
110 | /* Address Range lists are per-space_id (Memory and I/O only) */ |
111 | |
112 | #define ACPI_ADDRESS_RANGE_MAX 2 |
113 | |
114 | /* Maximum time (default 30s) of While() loops before abort */ |
115 | |
116 | #define ACPI_MAX_LOOP_TIMEOUT 30 |
117 | |
118 | /****************************************************************************** |
119 | * |
120 | * ACPI Specification constants (Do not change unless the specification changes) |
121 | * |
122 | *****************************************************************************/ |
123 | |
124 | /* Method info (in WALK_STATE), containing local variables and arguments */ |
125 | |
126 | #define ACPI_METHOD_NUM_LOCALS 8 |
127 | #define ACPI_METHOD_MAX_LOCAL 7 |
128 | |
129 | #define ACPI_METHOD_NUM_ARGS 7 |
130 | #define ACPI_METHOD_MAX_ARG 6 |
131 | |
132 | /* |
133 | * Operand Stack (in WALK_STATE), Must be large enough to contain METHOD_MAX_ARG |
134 | */ |
135 | #define ACPI_OBJ_NUM_OPERANDS 8 |
136 | #define ACPI_OBJ_MAX_OPERAND 7 |
137 | |
138 | /* Number of elements in the Result Stack frame, can be an arbitrary value */ |
139 | |
140 | #define ACPI_RESULTS_FRAME_OBJ_NUM 8 |
141 | |
142 | /* |
143 | * Maximal number of elements the Result Stack can contain, |
144 | * it may be an arbitrary value not exceeding the types of |
145 | * result_size and result_count (now u8). |
146 | */ |
147 | #define ACPI_RESULTS_OBJ_NUM_MAX 255 |
148 | |
149 | /* Constants used in searching for the RSDP in low memory */ |
150 | |
151 | #define ACPI_EBDA_PTR_LOCATION 0x0000040E /* Physical Address */ |
152 | #define ACPI_EBDA_PTR_LENGTH 2 |
153 | #define ACPI_EBDA_WINDOW_SIZE 1024 |
154 | #define ACPI_HI_RSDP_WINDOW_BASE 0x000E0000 /* Physical Address */ |
155 | #define ACPI_HI_RSDP_WINDOW_SIZE 0x00020000 |
156 | #define ACPI_RSDP_SCAN_STEP 16 |
157 | |
158 | /* Operation regions */ |
159 | |
160 | #define ACPI_USER_REGION_BEGIN 0x80 |
161 | |
162 | /* Maximum space_ids for Operation Regions */ |
163 | |
164 | #define ACPI_MAX_ADDRESS_SPACE 255 |
165 | #define ACPI_NUM_DEFAULT_SPACES 4 |
166 | |
167 | /* Array sizes. Used for range checking also */ |
168 | |
169 | #define ACPI_MAX_MATCH_OPCODE 5 |
170 | |
171 | /* RSDP checksums */ |
172 | |
173 | #define ACPI_RSDP_CHECKSUM_LENGTH 20 |
174 | #define ACPI_RSDP_XCHECKSUM_LENGTH 36 |
175 | |
176 | /* |
177 | * SMBus, GSBus and IPMI buffer sizes. All have a 2-byte header, |
178 | * containing both Status and Length. |
179 | */ |
180 | #define 2 /* Common for below. Status and Length fields */ |
181 | |
182 | #define ACPI_SMBUS_DATA_SIZE 32 |
183 | #define ACPI_SMBUS_BUFFER_SIZE ACPI_SERIAL_HEADER_SIZE + ACPI_SMBUS_DATA_SIZE |
184 | |
185 | #define ACPI_IPMI_DATA_SIZE 64 |
186 | #define ACPI_IPMI_BUFFER_SIZE ACPI_SERIAL_HEADER_SIZE + ACPI_IPMI_DATA_SIZE |
187 | |
188 | #define ACPI_MAX_GSBUS_DATA_SIZE 255 |
189 | #define ACPI_MAX_GSBUS_BUFFER_SIZE ACPI_SERIAL_HEADER_SIZE + ACPI_MAX_GSBUS_DATA_SIZE |
190 | |
191 | #define ACPI_PRM_INPUT_BUFFER_SIZE 26 |
192 | |
193 | #define ACPI_FFH_INPUT_BUFFER_SIZE 256 |
194 | |
195 | /* _sx_d and _sx_w control methods */ |
196 | |
197 | #define ACPI_NUM_sx_d_METHODS 4 |
198 | #define ACPI_NUM_sx_w_METHODS 5 |
199 | |
200 | /****************************************************************************** |
201 | * |
202 | * Miscellaneous constants |
203 | * |
204 | *****************************************************************************/ |
205 | |
206 | /* UUID constants */ |
207 | |
208 | #define UUID_BUFFER_LENGTH 16 /* Length of UUID in memory */ |
209 | #define UUID_STRING_LENGTH 36 /* Total length of a UUID string */ |
210 | |
211 | /* Positions for required hyphens (dashes) in UUID strings */ |
212 | |
213 | #define UUID_HYPHEN1_OFFSET 8 |
214 | #define UUID_HYPHEN2_OFFSET 13 |
215 | #define UUID_HYPHEN3_OFFSET 18 |
216 | #define UUID_HYPHEN4_OFFSET 23 |
217 | |
218 | /****************************************************************************** |
219 | * |
220 | * ACPI AML Debugger |
221 | * |
222 | *****************************************************************************/ |
223 | |
224 | #define ACPI_DEBUGGER_MAX_ARGS ACPI_METHOD_NUM_ARGS + 4 /* Max command line arguments */ |
225 | #define ACPI_DB_LINE_BUFFER_SIZE 512 |
226 | |
227 | #define ACPI_DEBUGGER_COMMAND_PROMPT '-' |
228 | #define ACPI_DEBUGGER_EXECUTE_PROMPT '%' |
229 | |
230 | #endif /* _ACCONFIG_H */ |
231 | |