Commit | Line | Data |
---|---|---|
68fb0c66 YT |
1 | .\" |
2 | .\" Copyright (c) 2001 Michael Smith | |
3 | .\" All rights reserved. | |
4 | .\" | |
5 | .\" Redistribution and use in source and binary forms, with or without | |
6 | .\" modification, are permitted provided that the following conditions | |
7 | .\" are met: | |
8 | .\" 1. Redistributions of source code must retain the above copyright | |
9 | .\" notice, this list of conditions and the following disclaimer. | |
10 | .\" 2. Redistributions in binary form must reproduce the above copyright | |
11 | .\" notice, this list of conditions and the following disclaimer in the | |
12 | .\" documentation and/or other materials provided with the distribution. | |
13 | .\" | |
14 | .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | |
15 | .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | |
16 | .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | |
17 | .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | |
18 | .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | |
19 | .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | |
20 | .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | |
21 | .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | |
22 | .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | |
23 | .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | |
24 | .\" SUCH DAMAGE. | |
25 | .\" | |
2f5aa587 | 26 | .\" $FreeBSD: src/share/man/man4/acpi.4,v 1.61.8.1 2009/04/15 03:14:26 kensmith Exp $ |
68fb0c66 | 27 | .\" |
6fcc5279 | 28 | .Dd February 10, 2013 |
68fb0c66 | 29 | .Dt ACPI 4 |
5aa5f05b | 30 | .Os |
68fb0c66 YT |
31 | .Sh NAME |
32 | .Nm acpi | |
33 | .Nd Advanced Configuration and Power Management support | |
34 | .Sh SYNOPSIS | |
35 | .Cd "device acpi" | |
36 | .Pp | |
37 | .Cd "options ACPI_DEBUG" | |
2f5aa587 | 38 | .Cd "options DDB" |
68fb0c66 YT |
39 | .Sh DESCRIPTION |
40 | The | |
41 | .Nm | |
42 | driver provides support for the Intel/Microsoft/Compaq/Toshiba ACPI | |
43 | standard. | |
44 | This support includes platform hardware discovery (superseding the | |
45 | PnP and PCI BIOS), as well as power management (superseding APM) and | |
46 | other features. | |
47 | ACPI core support is provided by the ACPI CA reference implementation | |
48 | from Intel. | |
49 | .Pp | |
50 | Note that the | |
51 | .Nm | |
52 | driver is automatically loaded by the | |
53 | .Xr loader 8 , | |
54 | and should only be | |
55 | compiled into the kernel on platforms where ACPI is mandatory. | |
2f5aa587 | 56 | .Sh SYSCTL VARIABLES |
68fb0c66 YT |
57 | The |
58 | .Nm | |
59 | driver is intended to provide power management without user intervention. | |
2f5aa587 SW |
60 | If the default settings are not optimal, the following sysctls can be |
61 | used to modify or monitor | |
62 | .Nm | |
63 | behavior. | |
68fb0c66 | 64 | .Bl -tag -width indent |
2f5aa587 SW |
65 | .It Va hw.acpi.acline |
66 | AC line state (1 means online, 0 means on battery power). | |
68fb0c66 YT |
67 | .It Va hw.acpi.cpu.cx_usage |
68 | Debugging information listing the percent of total usage for each sleep state. | |
69 | The values are reset when | |
70 | .Va hw.acpi.cpu.cx_lowest | |
71 | is modified. | |
72 | .It Va hw.acpi.cpu.cx_lowest | |
73 | Lowest Cx state to use for idling the CPU. | |
2f5aa587 SW |
74 | A scheduling algorithm will select states between |
75 | .Li C1 | |
76 | and this setting | |
68fb0c66 YT |
77 | as system load dictates. |
78 | To enable ACPI CPU idling control, | |
79 | .Va machdep.cpu_idle_hlt | |
74f3103e | 80 | must be set to 2 (the default value). |
68fb0c66 YT |
81 | .It Va hw.acpi.cpu.cx_supported |
82 | List of supported CPU idle states and their transition latency | |
83 | in microseconds. | |
2f5aa587 SW |
84 | Each state has a type (e.g., |
85 | .Li C2 ) . | |
86 | .Li C1 | |
87 | is equivalent to the ia32 | |
88 | .Li HLT | |
89 | instruction, | |
90 | .Li C2 | |
91 | provides a deeper | |
92 | sleep with the same semantics, and | |
93 | .Li C3 | |
94 | provides the deepest sleep | |
68fb0c66 | 95 | but additionally requires bus mastering to be disabled. |
2f5aa587 SW |
96 | States greater than |
97 | .Li C3 | |
98 | provide even more power savings with the same | |
99 | semantics as the | |
100 | .Li C3 | |
101 | state. | |
68fb0c66 YT |
102 | Deeper sleeps provide more power savings but increased transition |
103 | latency when an interrupt occurs. | |
2f5aa587 SW |
104 | .It Va hw.acpi.disable_on_reboot |
105 | Disable ACPI during the reboot process. | |
106 | Most systems reboot fine with ACPI still enabled, but some require | |
107 | exiting to legacy mode first. | |
108 | Default is 0, leave ACPI enabled. | |
109 | .It Va hw.acpi.handle_reboot | |
110 | Use the ACPI Reset Register capability to reboot the system. | |
111 | Default is 0, use legacy reboot support. | |
112 | Some newer systems require use of this register, while some only work | |
113 | with legacy rebooting support. | |
114 | .It Va hw.acpi.lid_switch_state | |
115 | Suspend state | |
116 | .Pq Li S1 Ns \[en] Ns Li S5 | |
117 | to enter when the lid switch (i.e., a notebook screen) is closed. | |
118 | Default is | |
119 | .Dq Li NONE | |
120 | (do nothing). | |
121 | .It Va hw.acpi.power_button_state | |
122 | Suspend state | |
123 | .Pq Li S1 Ns \[en] Ns Li S5 | |
124 | to enter when the power button is pressed. | |
125 | Default is | |
126 | .Li S5 | |
127 | (power-off nicely). | |
128 | .It Va hw.acpi.reset_video | |
129 | Reset the video adapter from real mode during the resume path. | |
130 | Some systems need this help, others have display problems if it is enabled. | |
131 | Default is 0 (disabled). | |
132 | .It Va hw.acpi.s4bios | |
133 | Indicate whether the system supports | |
134 | .Li S4BIOS . | |
135 | This means that the BIOS can handle all the functions of suspending the | |
136 | system to disk. | |
137 | Otherwise, the OS is responsible for suspending to disk | |
138 | .Pq Li S4OS . | |
139 | Most current systems do not support | |
140 | .Li S4BIOS . | |
141 | .It Va hw.acpi.sleep_button_state | |
142 | Suspend state | |
143 | .Pq Li S1 Ns \[en] Ns Li S5 | |
144 | to enter when the sleep button is pressed. | |
145 | This is usually a special function button on the keyboard. | |
146 | Default is | |
147 | .Li S3 | |
148 | (suspend-to-RAM). | |
149 | .It Va hw.acpi.sleep_delay | |
150 | Wait this number of seconds between preparing the system to suspend and | |
151 | actually entering the suspend state. | |
152 | Default is 1 second. | |
153 | .It Va hw.acpi.supported_sleep_state | |
154 | Suspend states | |
155 | .Pq Li S1 Ns \[en] Ns Li S5 | |
156 | supported by the BIOS. | |
157 | .Bl -tag -width indent | |
158 | .It Li S1 | |
159 | Quick suspend to RAM. | |
160 | The CPU enters a lower power state, but most peripherals are left running. | |
161 | .It Li S2 | |
162 | Lower power state than | |
163 | .Li S1 , | |
164 | but with the same basic characteristics. | |
165 | Not supported by many systems. | |
166 | .It Li S3 | |
167 | Suspend to RAM. | |
168 | Most devices are powered off, and the system stops running except for | |
169 | memory refresh. | |
170 | .It Li S4 | |
171 | Suspend to disk. | |
172 | All devices are powered off, and the system stops running. | |
173 | When resuming, the system starts as if from a cold power on. | |
174 | Not yet supported by | |
175 | .Fx | |
176 | unless | |
177 | .Li S4BIOS | |
178 | is available. | |
179 | .It Li S5 | |
180 | System shuts down cleanly and powers off. | |
181 | .El | |
182 | .It Va hw.acpi.verbose | |
183 | Enable verbose printing from the various ACPI subsystems. | |
68fb0c66 | 184 | .El |
2f5aa587 | 185 | .Sh LOADER TUNABLES |
68fb0c66 YT |
186 | Tunables can be set at the |
187 | .Xr loader 8 | |
188 | prompt before booting the kernel or stored in | |
189 | .Pa /boot/loader.conf . | |
2f5aa587 SW |
190 | Many of these tunables also have a matching |
191 | .Xr sysctl 8 | |
192 | entry for access after boot. | |
68fb0c66 YT |
193 | .Bl -tag -width indent |
194 | .It Va acpi_dsdt_load | |
195 | Enables loading of a custom ACPI DSDT. | |
196 | .It Va acpi_dsdt_name | |
197 | Name of the DSDT table to load, if loading is enabled. | |
198 | .It Va debug.acpi.disabled | |
0961d6d8 MD |
199 | Selectively disables portions of ACPI that are enabled by default, for |
200 | debugging purposes. | |
201 | .It Va debug.acpi.enabled | |
202 | Selectively enables portions of ACPI that are disabled by default, for | |
203 | debugging purposes. | |
2f5aa587 SW |
204 | .It Va debug.acpi.max_threads |
205 | Specify the number of task threads that are started on boot. | |
206 | Limiting this to 1 may help work around various BIOSes that cannot | |
207 | handle parallel requests. | |
208 | The default value is 3. | |
68fb0c66 YT |
209 | .It Va debug.acpi.quirks |
210 | Override any automatic quirks completely. | |
2f5aa587 SW |
211 | .It Va debug.acpi.resume_beep |
212 | Beep the PC speaker on resume. | |
213 | This can help diagnose suspend/resume problems. | |
214 | Default is 0 (disabled). | |
68fb0c66 YT |
215 | .It Va hint.acpi.0.disabled |
216 | Set this to 1 to disable all of ACPI. | |
217 | If ACPI has been disabled on your system due to a blacklist entry for your | |
218 | BIOS, you can set this to 0 to re-enable ACPI for testing. | |
219 | .It Va hw.acpi.ec.poll_timeout | |
220 | Delay in milliseconds to wait for the EC to respond. | |
221 | Try increasing this number if you get the error | |
222 | .Qq Li AE_NO_HARDWARE_RESPONSE . | |
223 | .It Va hw.acpi.host_mem_start | |
224 | Override the assumed memory starting address for PCI host bridges. | |
68fb0c66 YT |
225 | .It Va hw.acpi.reset_video |
226 | Enables calling the VESA reset BIOS vector on the resume path. | |
2f5aa587 SW |
227 | This can fix some graphics cards that have problems such as LCD white-out |
228 | after resume. | |
229 | Default is 0 (disabled). | |
68fb0c66 YT |
230 | .It Va hw.acpi.serialize_methods |
231 | Allow override of whether methods execute in parallel or not. | |
232 | Enable this for serial behavior, which fixes | |
233 | .Qq Li AE_ALREADY_EXISTS | |
234 | errors for | |
235 | AML that really cannot handle parallel method execution. | |
236 | It is off by default since this breaks recursive methods and some IBMs use | |
237 | such code. | |
238 | .It Va hw.acpi.verbose | |
239 | Turn on verbose debugging information about what ACPI is doing. | |
2f5aa587 SW |
240 | .It Va hw.pci.link.%s.%d.irq |
241 | Override the interrupt to use for this link and index. | |
242 | This capability should be used carefully, and only if a device is not | |
243 | working with | |
244 | .Nm | |
245 | enabled. | |
246 | .Qq %s | |
247 | is the name of the link (e.g., LNKA). | |
248 | .Qq %d | |
249 | is the resource index when the link supports multiple IRQs. | |
250 | Most PCI links only have one IRQ resource, so the below form should be used. | |
251 | .It Va hw.pci.link.%s.irq | |
252 | Override the interrupt to use. | |
253 | This capability should be used carefully, and only if a device is not | |
254 | working with | |
255 | .Nm | |
256 | enabled. | |
257 | .Qq %s | |
258 | is the name of the link (e.g., LNKA). | |
68fb0c66 YT |
259 | .El |
260 | .Sh DISABLING ACPI | |
261 | Since ACPI support on different platforms varies greatly, there are many | |
262 | debugging and tuning options available. | |
263 | .Pp | |
264 | For machines known not to work with | |
265 | .Nm | |
266 | enabled, there is a BIOS blacklist. | |
267 | Currently, the blacklist only controls whether | |
268 | .Nm | |
269 | should be disabled or not. | |
270 | In the future, it will have more granularity to control features (the | |
271 | infrastructure for that is already there). | |
272 | .Pp | |
273 | To enable | |
274 | .Nm | |
275 | (for debugging purposes, etc.) on machines that are on the blacklist, set the | |
276 | kernel environment variable | |
277 | .Va hint.acpi.0.disabled | |
278 | to 0. | |
279 | Before trying this, consider updating your BIOS to a more recent version that | |
280 | may be compatible with ACPI. | |
281 | .Pp | |
282 | To disable the | |
283 | .Nm | |
284 | driver completely, set the kernel environment variable | |
285 | .Va hint.acpi.0.disabled | |
286 | to 1. | |
287 | .Pp | |
288 | Some i386 machines totally fail to operate with some or all of ACPI disabled. | |
289 | Other i386 machines fail with ACPI enabled. | |
290 | Disabling all or part of ACPI on non-i386 platforms (i.e., platforms where | |
291 | ACPI support is mandatory) may result in a non-functional system. | |
292 | .Pp | |
293 | The | |
294 | .Nm | |
295 | driver comprises a set of drivers, which may be selectively disabled | |
296 | in case of problems. | |
297 | To disable a sub-driver, list it in the kernel | |
298 | environment variable | |
299 | .Va debug.acpi.disabled . | |
300 | Multiple entries can be listed, separated by a space. | |
301 | .Pp | |
302 | ACPI sub-devices and features that can be disabled: | |
303 | .Bl -tag -width ".Li sysresource" | |
304 | .It Li all | |
305 | Disable all ACPI features and devices. | |
306 | .It Li acad | |
307 | .Pq Vt device | |
308 | Supports AC adapter. | |
309 | .It Li bus | |
310 | .Pq Vt feature | |
311 | Probes and attaches subdevices. | |
312 | Disabling will avoid scanning the ACPI namespace entirely. | |
313 | .It Li children | |
314 | .Pq Vt feature | |
315 | Attaches standard ACPI sub-drivers and devices enumerated in the | |
316 | ACPI namespace. | |
317 | Disabling this has a similar effect to disabling | |
318 | .Dq Li bus , | |
319 | except that the | |
320 | ACPI namespace will still be scanned. | |
321 | .It Li button | |
322 | .Pq Vt device | |
323 | Supports ACPI button devices (typically power and sleep buttons). | |
324 | .It Li cmbat | |
325 | .Pq Vt device | |
326 | Control-method batteries device. | |
327 | .It Li cpu | |
328 | .Pq Vt device | |
329 | Supports CPU power-saving and speed-setting functions. | |
cc6e2b6e SZ |
330 | .It Li cpu_cst |
331 | .Pq Vt device | |
332 | Supports CPU power-saving. | |
333 | Diabling | |
334 | .Dq Li cpu , | |
335 | will also disable this device. | |
c3a2c0df SZ |
336 | .It Li cpu_pst |
337 | .Pq Vt device | |
338 | Supports CPU speed-setting. | |
339 | Diabling | |
340 | .Dq Li cpu , | |
341 | will also disable this device. | |
68fb0c66 YT |
342 | .It Li ec |
343 | .Pq Vt device | |
344 | Supports the ACPI Embedded Controller interface, used to communicate | |
345 | with embedded platform controllers. | |
346 | .It Li isa | |
347 | .Pq Vt device | |
348 | Supports an ISA bus bridge defined in the ACPI namespace, | |
349 | typically as a child of a PCI bus. | |
350 | .It Li lid | |
351 | .Pq Vt device | |
352 | Supports an ACPI laptop lid switch, which typically puts a | |
353 | system to sleep. | |
354 | .It Li quirks | |
355 | .Pq Vt feature | |
356 | Do not honor quirks. | |
357 | Quirks automatically disable ACPI functionality based on the XSDT table's | |
358 | OEM vendor name and revision date. | |
359 | .It Li pci | |
360 | .Pq Vt device | |
361 | Supports Host to PCI bridges. | |
362 | .It Li pci_link | |
363 | .Pq Vt feature | |
364 | Performs PCI interrupt routing. | |
365 | .It Li sysresource | |
366 | .Pq Vt device | |
367 | Pseudo-devices containing resources which ACPI claims. | |
368 | .It Li thermal | |
369 | .Pq Vt device | |
370 | Supports system cooling and heat management. | |
371 | .It Li timer | |
372 | .Pq Vt device | |
373 | Implements a timecounter using the ACPI fixed-frequency timer. | |
6fcc5279 SW |
374 | .It Li hpet |
375 | .Pq Vt feature | |
376 | Supports the High Precision Event Timer. | |
68fb0c66 YT |
377 | .It Li video |
378 | .Pq Vt device | |
2f5aa587 SW |
379 | Supports |
380 | .Xr acpi_video 4 | |
381 | which may conflict with | |
382 | .Xr agp 4 | |
383 | device. | |
68fb0c66 YT |
384 | .El |
385 | .Pp | |
6fcc5279 SW |
386 | .\"The |
387 | .\".Nm | |
388 | .\"driver comprises a set of drivers, | |
389 | .\"which may be selectively enabled in case of testing. | |
390 | .\"To enable a sub-driver, | |
391 | .\"list it in the kernel environment variable | |
392 | .\".Va debug.acpi.enabled . | |
393 | .\"Multiple entries can be listed, | |
394 | .\"separated by a space. | |
395 | .\".Pp | |
396 | .\"ACPI sub-devices and features that can be enabled: | |
397 | .\".Bl -tag -width ".Li sysresource" | |
398 | .\"[...] | |
399 | .\".El | |
400 | .\".Pp | |
68fb0c66 YT |
401 | It is also possible to avoid portions of the ACPI namespace which |
402 | may be causing problems, by listing the full path of the root of | |
403 | the region to be avoided in the kernel environment variable | |
404 | .Va debug.acpi.avoid . | |
405 | The object and all of its children will be ignored during the | |
406 | bus/children scan of the namespace. | |
407 | The ACPI CA code will still know about the avoided region. | |
408 | .Sh DEBUGGING OUTPUT | |
409 | To enable debugging output, | |
410 | .Nm | |
411 | must be compiled with | |
412 | .Cd "options ACPI_DEBUG" . | |
413 | Debugging output is separated between layers and levels, where a layer is | |
414 | a component of the ACPI subsystem, and a level is a particular kind | |
415 | of debugging output. | |
416 | .Pp | |
417 | Both layers and levels are specified as a whitespace-separated list of | |
418 | tokens, with layers listed in | |
419 | .Va debug.acpi.layer | |
420 | and levels in | |
421 | .Va debug.acpi.level . | |
422 | .Pp | |
423 | The first set of layers is for ACPI-CA components, and the second is for | |
494e572f | 424 | .Dx |
68fb0c66 YT |
425 | drivers. |
426 | The ACPI-CA layer descriptions include the prefix for the files they | |
427 | refer to. | |
428 | The supported layers are: | |
429 | .Pp | |
430 | .Bl -tag -compact -width ".Li ACPI_CA_DISASSEMBLER" | |
431 | .It Li ACPI_UTILITIES | |
432 | Utility ("ut") functions | |
433 | .It Li ACPI_HARDWARE | |
434 | Hardware access ("hw") | |
435 | .It Li ACPI_EVENTS | |
436 | Event and GPE ("ev") | |
437 | .It Li ACPI_TABLES | |
438 | Table access ("tb") | |
439 | .It Li ACPI_NAMESPACE | |
440 | Namespace evaluation ("ns") | |
441 | .It Li ACPI_PARSER | |
442 | AML parser ("ps") | |
443 | .It Li ACPI_DISPATCHER | |
444 | Internal representation of interpreter state ("ds") | |
445 | .It Li ACPI_EXECUTER | |
446 | Execute AML methods ("ex") | |
447 | .It Li ACPI_RESOURCES | |
448 | Resource parsing ("rs") | |
449 | .It Li ACPI_CA_DEBUGGER | |
450 | Debugger implementation ("db", "dm") | |
451 | .It Li ACPI_OS_SERVICES | |
452 | Usermode support routines ("os") | |
453 | .It Li ACPI_CA_DISASSEMBLER | |
454 | Disassembler implementation (unused) | |
455 | .It Li ACPI_ALL_COMPONENTS | |
456 | All the above ACPI-CA components | |
457 | .It Li ACPI_AC_ADAPTER | |
458 | AC adapter driver | |
459 | .It Li ACPI_BATTERY | |
460 | Control-method battery driver | |
461 | .It Li ACPI_BUS | |
462 | ACPI, ISA, and PCI bus drivers | |
463 | .It Li ACPI_BUTTON | |
464 | Power and sleep button driver | |
465 | .It Li ACPI_EC | |
466 | Embedded controller driver | |
467 | .It Li ACPI_FAN | |
468 | Fan driver | |
469 | .It Li ACPI_OEM | |
470 | Platform-specific driver for hotkeys, LED, etc. | |
471 | .It Li ACPI_POWER | |
472 | Power resource driver | |
473 | .It Li ACPI_PROCESSOR | |
474 | CPU driver | |
475 | .It Li ACPI_THERMAL | |
476 | Thermal zone driver | |
477 | .It Li ACPI_TIMER | |
478 | Timer driver | |
479 | .It Li ACPI_ALL_DRIVERS | |
480 | All the above | |
494e572f | 481 | .Dx |
68fb0c66 YT |
482 | ACPI drivers |
483 | .El | |
484 | .Pp | |
485 | The supported levels are: | |
486 | .Pp | |
487 | .Bl -tag -compact -width ".Li ACPI_LV_AML_DISASSEMBLE" | |
488 | .It Li ACPI_LV_ERROR | |
489 | Fatal error conditions | |
490 | .It Li ACPI_LV_WARN | |
491 | Warnings and potential problems | |
492 | .It Li ACPI_LV_INIT | |
493 | Initialization progress | |
494 | .It Li ACPI_LV_DEBUG_OBJECT | |
495 | Stores to objects | |
496 | .It Li ACPI_LV_INFO | |
497 | General information and progress | |
498 | .It Li ACPI_LV_ALL_EXCEPTIONS | |
499 | All the previous levels | |
500 | .It Li ACPI_LV_INIT_NAMES | |
501 | .It Li ACPI_LV_PARSE | |
502 | .It Li ACPI_LV_LOAD | |
503 | .It Li ACPI_LV_DISPATCH | |
504 | .It Li ACPI_LV_EXEC | |
505 | .It Li ACPI_LV_NAMES | |
506 | .It Li ACPI_LV_OPREGION | |
507 | .It Li ACPI_LV_BFIELD | |
508 | .It Li ACPI_LV_TABLES | |
509 | .It Li ACPI_LV_VALUES | |
510 | .It Li ACPI_LV_OBJECTS | |
511 | .It Li ACPI_LV_RESOURCES | |
512 | .It Li ACPI_LV_USER_REQUESTS | |
513 | .It Li ACPI_LV_PACKAGE | |
514 | .It Li ACPI_LV_VERBOSITY1 | |
515 | All the previous levels | |
516 | .It Li ACPI_LV_ALLOCATIONS | |
517 | .It Li ACPI_LV_FUNCTIONS | |
518 | .It Li ACPI_LV_OPTIMIZATIONS | |
519 | .It Li ACPI_LV_VERBOSITY2 | |
520 | .It Li ACPI_LV_ALL | |
521 | .It Li ACPI_LV_MUTEX | |
522 | .It Li ACPI_LV_THREADS | |
523 | .It Li ACPI_LV_IO | |
524 | .It Li ACPI_LV_INTERRUPTS | |
525 | .It Li ACPI_LV_VERBOSITY3 | |
526 | All the previous levels | |
527 | .It Li ACPI_LV_AML_DISASSEMBLE | |
528 | .It Li ACPI_LV_VERBOSE_INFO | |
529 | .It Li ACPI_LV_FULL_TABLES | |
530 | .It Li ACPI_LV_EVENTS | |
531 | .It Li ACPI_LV_VERBOSE | |
532 | All levels after | |
533 | .Qq Li ACPI_LV_VERBOSITY3 | |
534 | .El | |
535 | .Pp | |
536 | Selection of the appropriate layer and level values is important | |
537 | to avoid massive amounts of debugging output. | |
538 | For example, the following configuration is a good way to gather initial | |
539 | information. | |
540 | It enables debug output for both ACPI-CA and the | |
541 | .Nm | |
542 | driver, printing basic information about errors, warnings, and progress. | |
543 | .Bd -literal -offset indent | |
544 | debug.acpi.layer="ACPI_ALL_COMPONENTS ACPI_ALL_DRIVERS" | |
545 | debug.acpi.level="ACPI_LV_ALL_EXCEPTIONS" | |
546 | .Ed | |
547 | .Pp | |
548 | Debugging output by the ACPI CA subsystem is prefixed with the | |
549 | module name in lowercase, followed by a source line number. | |
550 | Output from the | |
494e572f | 551 | .Dx Ns -local |
68fb0c66 YT |
552 | code follows the same format, but |
553 | the module name is uppercased. | |
554 | .Sh OVERRIDING YOUR BIOS BYTECODE | |
555 | ACPI interprets bytecode named AML | |
556 | (ACPI Machine Language) | |
557 | provided by the BIOS vendor as a memory image at boot time. | |
558 | Sometimes, the AML code contains a bug that does not appear when parsed | |
559 | by the Microsoft implementation. | |
494e572f | 560 | .Dx |
68fb0c66 YT |
561 | provides a way to override it with your own AML code to work around |
562 | or debug such problems. | |
563 | Note that all AML in your DSDT and any SSDT tables is overridden. | |
564 | .Pp | |
565 | In order to load your AML code, you must edit | |
566 | .Pa /boot/loader.conf | |
567 | and include the following lines. | |
568 | .Bd -literal -offset indent | |
569 | acpi_dsdt_load="YES" | |
570 | acpi_dsdt_name="/boot/acpi_dsdt.aml" # You may change this name. | |
571 | .Ed | |
572 | .Pp | |
573 | In order to prepare your AML code, you will need the | |
574 | .Xr acpidump 8 | |
575 | and | |
576 | .Xr iasl 8 | |
577 | utilities and some ACPI knowledge. | |
578 | .Sh COMPATIBILITY | |
b2b3ffcd | 579 | ACPI is only found and supported on i386/ia32, ia64, and x86_64. |
68fb0c66 YT |
580 | .Sh SEE ALSO |
581 | .Xr kenv 1 , | |
61613c82 SW |
582 | .Xr acpi_asus 4 , |
583 | .Xr acpi_fujitsu 4 , | |
554257bc | 584 | .Xr acpi_hp 4 , |
61613c82 SW |
585 | .Xr acpi_panasonic 4 , |
586 | .Xr acpi_sony 4 , | |
68fb0c66 | 587 | .Xr acpi_thermal 4 , |
edb30af9 SW |
588 | .Xr acpi_thinkpad 4 , |
589 | .Xr acpi_toshiba 4 , | |
61613c82 | 590 | .Xr acpi_video 4 , |
df72b3cd | 591 | .Xr aibs 4 , |
68fb0c66 YT |
592 | .Xr loader.conf 5 , |
593 | .Xr acpiconf 8 , | |
594 | .Xr acpidump 8 , | |
595 | .Xr config 8 , | |
596 | .Xr iasl 8 | |
597 | .Rs | |
598 | .%A "Compaq Computer Corporation" | |
599 | .%A "Intel Corporation" | |
600 | .%A "Microsoft Corporation" | |
601 | .%A "Phoenix Technologies Ltd." | |
602 | .%A "Toshiba Corporation" | |
603 | .%D August 25, 2003 | |
604 | .%T "Advanced Configuration and Power Interface Specification" | |
605 | .%O http://acpi.info/spec.htm | |
606 | .Re | |
607 | .Sh AUTHORS | |
608 | .An -nosplit | |
609 | The ACPI CA subsystem is developed and maintained by | |
610 | Intel Architecture Labs. | |
611 | .Pp | |
612 | The following people made notable contributions to the ACPI subsystem | |
613 | in | |
494e572f | 614 | .Dx : |
68fb0c66 YT |
615 | .An Michael Smith , |
616 | .An Takanori Watanabe Aq takawata@jp.FreeBSD.org , | |
617 | .An Mitsuru IWASAKI Aq iwasaki@jp.FreeBSD.org , | |
618 | .An Munehiro Matsuda , | |
619 | .An Nate Lawson , | |
620 | the ACPI-jp mailing list at | |
621 | .Aq acpi-jp@jp.FreeBSD.org , | |
622 | and many other contributors. | |
623 | .Pp | |
624 | This manual page was written by | |
625 | .An Michael Smith Aq msmith@FreeBSD.org . | |
626 | .Sh BUGS | |
2f5aa587 SW |
627 | Many BIOS versions have serious bugs that may cause system instability, |
628 | break suspend/resume, or prevent devices from operating properly due to | |
629 | IRQ routing problems. | |
630 | Upgrade your BIOS to the latest version available from the vendor before | |
631 | deciding it is a problem with | |
632 | .Nm . | |
633 | .\".Pp | |
634 | .\"The | |
635 | .\".Nm | |
636 | .\"CPU idle power management drive conflicts with the local APIC (LAPIC) | |
637 | .\"timer. | |
638 | .\"Disable APIC mode with | |
639 | .\".Va hint.apic.0.disabled | |
640 | .\"or do not use the | |
641 | .\".Li C2 | |
642 | .\"and | |
643 | .\".Li C3 | |
644 | .\"states if APIC mode is enabled. |