xref: /freebsd/share/man/man4/acpi.4 (revision ef47c93f6cf43ded4441f8b3689af5dc80c87ada)
1b6695bd0SMike Smith.\"
2b6695bd0SMike Smith.\" Copyright (c) 2001 Michael Smith
3b6695bd0SMike Smith.\" All rights reserved.
4b6695bd0SMike Smith.\"
5b6695bd0SMike Smith.\" Redistribution and use in source and binary forms, with or without
6b6695bd0SMike Smith.\" modification, are permitted provided that the following conditions
7b6695bd0SMike Smith.\" are met:
8b6695bd0SMike Smith.\" 1. Redistributions of source code must retain the above copyright
9b6695bd0SMike Smith.\"    notice, this list of conditions and the following disclaimer.
10b6695bd0SMike Smith.\" 2. Redistributions in binary form must reproduce the above copyright
11b6695bd0SMike Smith.\"    notice, this list of conditions and the following disclaimer in the
12b6695bd0SMike Smith.\"    documentation and/or other materials provided with the distribution.
13b6695bd0SMike Smith.\"
14b6695bd0SMike Smith.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
15b6695bd0SMike Smith.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
16b6695bd0SMike Smith.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
17b6695bd0SMike Smith.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
18b6695bd0SMike Smith.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
19b6695bd0SMike Smith.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
20b6695bd0SMike Smith.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
21b6695bd0SMike Smith.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
22b6695bd0SMike Smith.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
23b6695bd0SMike Smith.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
24b6695bd0SMike Smith.\" SUCH DAMAGE.
25b6695bd0SMike Smith.\"
26b6695bd0SMike Smith.\" $FreeBSD$
27b6695bd0SMike Smith.\"
28ef47c93fSJung-uk Kim.Dd March 9, 2010
29b6695bd0SMike Smith.Dt ACPI 4
30b6695bd0SMike Smith.Os
31b6695bd0SMike Smith.Sh NAME
32b6695bd0SMike Smith.Nm acpi
33b6695bd0SMike Smith.Nd Advanced Configuration and Power Management support
34b6695bd0SMike Smith.Sh SYNOPSIS
3509f84dd1SRuslan Ermilov.Cd "device acpi"
36b6695bd0SMike Smith.Pp
3709f84dd1SRuslan Ermilov.Cd "options ACPI_DEBUG"
38ba526146SWojciech A. Koszek.Cd "options DDB"
39b6695bd0SMike Smith.Sh DESCRIPTION
40b6695bd0SMike SmithThe
41b6695bd0SMike Smith.Nm
42b6695bd0SMike Smithdriver provides support for the Intel/Microsoft/Compaq/Toshiba ACPI
43b6695bd0SMike Smithstandard.
44b6695bd0SMike SmithThis support includes platform hardware discovery (superseding the
45b6695bd0SMike SmithPnP and PCI BIOS), as well as power management (superseding APM) and
46b6695bd0SMike Smithother features.
47b6695bd0SMike SmithACPI core support is provided by the ACPI CA reference implementation
48b6695bd0SMike Smithfrom Intel.
49d1f717d1SMike Smith.Pp
50d1f717d1SMike SmithNote that the
51d1f717d1SMike Smith.Nm
522010c542SRuslan Ermilovdriver is automatically loaded by the
532010c542SRuslan Ermilov.Xr loader 8 ,
542010c542SRuslan Ermilovand should only be
55edd84e48SNate Lawsoncompiled into the kernel on platforms where ACPI is mandatory.
5644cb3ab0SHiroki Sato.Sh SYSCTL VARIABLES
57edd84e48SNate LawsonThe
58edd84e48SNate Lawson.Nm
59edd84e48SNate Lawsondriver is intended to provide power management without user intervention.
6093870c05SNate LawsonIf the default settings are not optimal, the following sysctls can be
6193870c05SNate Lawsonused to modify or monitor
6293870c05SNate Lawson.Nm
6393870c05SNate Lawsonbehavior.
64edd84e48SNate Lawson.Bl -tag -width indent
65ef47c93fSJung-uk Kim.It Va debug.acpi.enable_debug_objects
66ef47c93fSJung-uk KimEnable dumping Debug objects without
67ef47c93fSJung-uk Kim.Cd "options ACPI_DEBUG" .
68ef47c93fSJung-uk KimDefault is 0, ignore Debug objects.
6993870c05SNate Lawson.It Va hw.acpi.acline
7093870c05SNate LawsonAC line state (1 means online, 0 means on battery power).
71edd84e48SNate Lawson.It Va hw.acpi.cpu.cx_usage
72edd84e48SNate LawsonDebugging information listing the percent of total usage for each sleep state.
73edd84e48SNate LawsonThe values are reset when
74edd84e48SNate Lawson.Va hw.acpi.cpu.cx_lowest
75edd84e48SNate Lawsonis modified.
76edd84e48SNate Lawson.It Va hw.acpi.cpu.cx_lowest
77edd84e48SNate LawsonLowest Cx state to use for idling the CPU.
7803335ffbSYaroslav TykhiyA scheduling algorithm will select states between
7903335ffbSYaroslav Tykhiy.Li C1
8003335ffbSYaroslav Tykhiyand this setting
81edd84e48SNate Lawsonas system load dictates.
82edd84e48SNate LawsonTo enable ACPI CPU idling control,
83edd84e48SNate Lawson.Va machdep.cpu_idle_hlt
84edd84e48SNate Lawsonmust be set to 1.
85edd84e48SNate Lawson.It Va hw.acpi.cpu.cx_supported
86edd84e48SNate LawsonList of supported CPU idle states and their transition latency
87edd84e48SNate Lawsonin microseconds.
8803335ffbSYaroslav TykhiyEach state has a type (e.g.,
8903335ffbSYaroslav Tykhiy.Li C2 ) .
9003335ffbSYaroslav Tykhiy.Li C1
9103335ffbSYaroslav Tykhiyis equivalent to the ia32
9203335ffbSYaroslav Tykhiy.Li HLT
9303335ffbSYaroslav Tykhiyinstruction,
9403335ffbSYaroslav Tykhiy.Li C2
9503335ffbSYaroslav Tykhiyprovides a deeper
9603335ffbSYaroslav Tykhiysleep with the same semantics, and
9703335ffbSYaroslav Tykhiy.Li C3
9803335ffbSYaroslav Tykhiyprovides the deepest sleep
99edd84e48SNate Lawsonbut additionally requires bus mastering to be disabled.
10003335ffbSYaroslav TykhiyStates greater than
10103335ffbSYaroslav Tykhiy.Li C3
10203335ffbSYaroslav Tykhiyprovide even more power savings with the same
10303335ffbSYaroslav Tykhiysemantics as the
10403335ffbSYaroslav Tykhiy.Li C3
10503335ffbSYaroslav Tykhiystate.
106edd84e48SNate LawsonDeeper sleeps provide more power savings but increased transition
107edd84e48SNate Lawsonlatency when an interrupt occurs.
10893870c05SNate Lawson.It Va hw.acpi.disable_on_reboot
10993870c05SNate LawsonDisable ACPI during the reboot process.
11093870c05SNate LawsonMost systems reboot fine with ACPI still enabled, but some require
11193870c05SNate Lawsonexiting to legacy mode first.
11293870c05SNate LawsonDefault is 0, leave ACPI enabled.
11393870c05SNate Lawson.It Va hw.acpi.handle_reboot
11493870c05SNate LawsonUse the ACPI Reset Register capability to reboot the system.
11593870c05SNate LawsonDefault is 0, use legacy reboot support.
11693870c05SNate LawsonSome newer systems require use of this register, while some only work
11793870c05SNate Lawsonwith legacy rebooting support.
11893870c05SNate Lawson.It Va hw.acpi.lid_switch_state
11913a8aa9fSNate LawsonSuspend state
12003335ffbSYaroslav Tykhiy.Pq Li S1 Ns \[en] Ns Li S5
12113a8aa9fSNate Lawsonto enter when the lid switch (i.e., a notebook screen) is closed.
12203335ffbSYaroslav TykhiyDefault is
12303335ffbSYaroslav Tykhiy.Dq Li NONE
12403335ffbSYaroslav Tykhiy(do nothing).
12593870c05SNate Lawson.It Va hw.acpi.power_button_state
12613a8aa9fSNate LawsonSuspend state
12703335ffbSYaroslav Tykhiy.Pq Li S1 Ns \[en] Ns Li S5
12813a8aa9fSNate Lawsonto enter when the power button is pressed.
12913a8aa9fSNate LawsonDefault is
13003335ffbSYaroslav Tykhiy.Li S5
13113a8aa9fSNate Lawson(power-off nicely).
13293870c05SNate Lawson.It Va hw.acpi.reset_video
13393870c05SNate LawsonReset the video adapter from real mode during the resume path.
13493870c05SNate LawsonSome systems need this help, others have display problems if it is enabled.
13593870c05SNate LawsonDefault is 0 (disabled).
13693870c05SNate Lawson.It Va hw.acpi.s4bios
13713a8aa9fSNate LawsonIndicate whether the system supports
13803335ffbSYaroslav Tykhiy.Li S4BIOS .
13993870c05SNate LawsonThis means that the BIOS can handle all the functions of suspending the
14093870c05SNate Lawsonsystem to disk.
14113a8aa9fSNate LawsonOtherwise, the OS is responsible for suspending to disk
14203335ffbSYaroslav Tykhiy.Pq Li S4OS .
14313a8aa9fSNate LawsonMost current systems do not support
14403335ffbSYaroslav Tykhiy.Li S4BIOS .
14593870c05SNate Lawson.It Va hw.acpi.sleep_button_state
14613a8aa9fSNate LawsonSuspend state
14703335ffbSYaroslav Tykhiy.Pq Li S1 Ns \[en] Ns Li S5
14813a8aa9fSNate Lawsonto enter when the sleep button is pressed.
14993870c05SNate LawsonThis is usually a special function button on the keyboard.
15013a8aa9fSNate LawsonDefault is
15103335ffbSYaroslav Tykhiy.Li S3
15213a8aa9fSNate Lawson(suspend-to-RAM).
15393870c05SNate Lawson.It Va hw.acpi.sleep_delay
15493870c05SNate LawsonWait this number of seconds between preparing the system to suspend and
15593870c05SNate Lawsonactually entering the suspend state.
15693870c05SNate LawsonDefault is 1 second.
15793870c05SNate Lawson.It Va hw.acpi.supported_sleep_state
15813a8aa9fSNate LawsonSuspend states
15903335ffbSYaroslav Tykhiy.Pq Li S1 Ns \[en] Ns Li S5
16013a8aa9fSNate Lawsonsupported by the BIOS.
16193870c05SNate Lawson.Bl -tag -width indent
16203335ffbSYaroslav Tykhiy.It Li S1
16393870c05SNate LawsonQuick suspend to RAM.
16403335ffbSYaroslav TykhiyThe CPU enters a lower power state, but most peripherals are left running.
16503335ffbSYaroslav Tykhiy.It Li S2
16613a8aa9fSNate LawsonLower power state than
16703335ffbSYaroslav Tykhiy.Li S1 ,
16813a8aa9fSNate Lawsonbut with the same basic characteristics.
16993870c05SNate LawsonNot supported by many systems.
17003335ffbSYaroslav Tykhiy.It Li S3
17193870c05SNate LawsonSuspend to RAM.
17203335ffbSYaroslav TykhiyMost devices are powered off, and the system stops running except for
17393870c05SNate Lawsonmemory refresh.
17403335ffbSYaroslav Tykhiy.It Li S4
17593870c05SNate LawsonSuspend to disk.
17603335ffbSYaroslav TykhiyAll devices are powered off, and the system stops running.
17793870c05SNate LawsonWhen resuming, the system starts as if from a cold power on.
17893870c05SNate LawsonNot yet supported by
17993870c05SNate Lawson.Fx
18013a8aa9fSNate Lawsonunless
18103335ffbSYaroslav Tykhiy.Li S4BIOS
18213a8aa9fSNate Lawsonis available.
18303335ffbSYaroslav Tykhiy.It Li S5
18493870c05SNate LawsonSystem shuts down cleanly and powers off.
18593870c05SNate Lawson.El
18693870c05SNate Lawson.It Va hw.acpi.verbose
18793870c05SNate LawsonEnable verbose printing from the various ACPI subsystems.
188edd84e48SNate Lawson.El
18944cb3ab0SHiroki Sato.Sh LOADER TUNABLES
1903184cf5aSNate LawsonTunables can be set at the
19187b6284aSRuslan Ermilov.Xr loader 8
1923184cf5aSNate Lawsonprompt before booting the kernel or stored in
1933184cf5aSNate Lawson.Pa /boot/loader.conf .
194b46f4324SNate LawsonMany of these tunables also have a matching
195b46f4324SNate Lawson.Xr sysctl 8
196b46f4324SNate Lawsonentry for access after boot.
197edd84e48SNate Lawson.Bl -tag -width indent
198edd84e48SNate Lawson.It Va acpi_dsdt_load
199edd84e48SNate LawsonEnables loading of a custom ACPI DSDT.
200edd84e48SNate Lawson.It Va acpi_dsdt_name
201edd84e48SNate LawsonName of the DSDT table to load, if loading is enabled.
202edd84e48SNate Lawson.It Va debug.acpi.disabled
203edd84e48SNate LawsonSelectively disables portions of ACPI for debugging purposes.
204ef47c93fSJung-uk Kim.It Va debug.acpi.interpreter_slack
205ef47c93fSJung-uk KimEnable less strict ACPI implementations.
206ef47c93fSJung-uk KimDefault is 1, ignore common BIOS mistakes.
20726db811eSNate Lawson.It Va debug.acpi.max_threads
20826db811eSNate LawsonSpecify the number of task threads that are started on boot.
20926db811eSNate LawsonLimiting this to 1 may help work around various BIOSes that cannot
21026db811eSNate Lawsonhandle parallel requests.
21126db811eSNate LawsonThe default value is 3.
21247bc6a5eSNate Lawson.It Va debug.acpi.quirks
21347bc6a5eSNate LawsonOverride any automatic quirks completely.
214b46f4324SNate Lawson.It Va debug.acpi.resume_beep
215b46f4324SNate LawsonBeep the PC speaker on resume.
216b46f4324SNate LawsonThis can help diagnose suspend/resume problems.
217b46f4324SNate LawsonDefault is 0 (disabled).
218edd84e48SNate Lawson.It Va hint.acpi.0.disabled
219edd84e48SNate LawsonSet this to 1 to disable all of ACPI.
220edd84e48SNate LawsonIf ACPI has been disabled on your system due to a blacklist entry for your
221edd84e48SNate LawsonBIOS, you can set this to 0 to re-enable ACPI for testing.
222edd84e48SNate Lawson.It Va hw.acpi.ec.poll_timeout
223edd84e48SNate LawsonDelay in milliseconds to wait for the EC to respond.
224edd84e48SNate LawsonTry increasing this number if you get the error
2252010c542SRuslan Ermilov.Qq Li AE_NO_HARDWARE_RESPONSE .
22647bc6a5eSNate Lawson.It Va hw.acpi.host_mem_start
22747bc6a5eSNate LawsonOverride the assumed memory starting address for PCI host bridges.
228edd84e48SNate Lawson.It Va hw.acpi.reset_video
229edd84e48SNate LawsonEnables calling the VESA reset BIOS vector on the resume path.
230b46f4324SNate LawsonThis can fix some graphics cards that have problems such as LCD white-out
231b46f4324SNate Lawsonafter resume.
232b46f4324SNate LawsonDefault is 0 (disabled).
233edd84e48SNate Lawson.It Va hw.acpi.serialize_methods
234edd84e48SNate LawsonAllow override of whether methods execute in parallel or not.
2352010c542SRuslan ErmilovEnable this for serial behavior, which fixes
2362010c542SRuslan Ermilov.Qq Li AE_ALREADY_EXISTS
2372010c542SRuslan Ermiloverrors for
2382010c542SRuslan ErmilovAML that really cannot handle parallel method execution.
239edd84e48SNate LawsonIt is off by default since this breaks recursive methods and some IBMs use
240edd84e48SNate Lawsonsuch code.
241edd84e48SNate Lawson.It Va hw.acpi.verbose
242edd84e48SNate LawsonTurn on verbose debugging information about what ACPI is doing.
243e862bc66SChristian Brueffer.It Va hw.pci.link.%s.%d.irq
24493870c05SNate LawsonOverride the interrupt to use for this link and index.
24593870c05SNate LawsonThis capability should be used carefully, and only if a device is not
24693870c05SNate Lawsonworking with
24793870c05SNate Lawson.Nm
24893870c05SNate Lawsonenabled.
24993870c05SNate Lawson.Qq %s
25093870c05SNate Lawsonis the name of the link (e.g., LNKA).
25193870c05SNate Lawson.Qq %d
25293870c05SNate Lawsonis the resource index when the link supports multiple IRQs.
25393870c05SNate LawsonMost PCI links only have one IRQ resource, so the below form should be used.
254e862bc66SChristian Brueffer.It Va hw.pci.link.%s.irq
255e862bc66SChristian BruefferOverride the interrupt to use.
25693870c05SNate LawsonThis capability should be used carefully, and only if a device is not
25793870c05SNate Lawsonworking with
25893870c05SNate Lawson.Nm
25993870c05SNate Lawsonenabled.
26093870c05SNate Lawson.Qq %s
26193870c05SNate Lawsonis the name of the link (e.g., LNKA).
262b6695bd0SMike Smith.El
263edd84e48SNate Lawson.Sh DISABLING ACPI
264edd84e48SNate LawsonSince ACPI support on different platforms varies greatly, there are many
265edd84e48SNate Lawsondebugging and tuning options available.
266b6695bd0SMike Smith.Pp
26707e2d046SMark SantcroosFor machines known not to work with
26807e2d046SMark Santcroos.Nm
26955c71dc9SMark Santcroosenabled, there is a BIOS blacklist.
27055c71dc9SMark SantcroosCurrently, the blacklist only controls whether
27107e2d046SMark Santcroos.Nm
27255c71dc9SMark Santcroosshould be disabled or not.
27355c71dc9SMark SantcroosIn the future, it will have more granularity to control features (the
27455c71dc9SMark Santcroosinfrastructure for that is already there).
27507e2d046SMark Santcroos.Pp
27607e2d046SMark SantcroosTo enable
27707e2d046SMark Santcroos.Nm
27855c71dc9SMark Santcroos(for debugging purposes, etc.) on machines that are on the blacklist, set the
27955c71dc9SMark Santcrooskernel environment variable
28007e2d046SMark Santcroos.Va hint.acpi.0.disabled
28155c71dc9SMark Santcroosto 0.
28255c71dc9SMark SantcroosBefore trying this, consider updating your BIOS to a more recent version that
28355c71dc9SMark Santcroosmay be compatible with ACPI.
28407e2d046SMark Santcroos.Pp
2854e3148f4SWarner LoshTo disable the
2864e3148f4SWarner Losh.Nm
2874e3148f4SWarner Loshdriver completely, set the kernel environment variable
2884e3148f4SWarner Losh.Va hint.acpi.0.disabled
289d865f9efSWes Petersto 1.
290d865f9efSWes Peters.Pp
2914e3148f4SWarner LoshSome i386 machines totally fail to operate with some or all of ACPI disabled.
2924e3148f4SWarner LoshOther i386 machines fail with ACPI enabled.
293edd84e48SNate LawsonDisabling all or part of ACPI on non-i386 platforms (i.e., platforms where
294edd84e48SNate LawsonACPI support is mandatory) may result in a non-functional system.
2954e3148f4SWarner Losh.Pp
296b6695bd0SMike SmithThe
297b6695bd0SMike Smith.Nm
298b6695bd0SMike Smithdriver comprises a set of drivers, which may be selectively disabled
299b6695bd0SMike Smithin case of problems.
300b6695bd0SMike SmithTo disable a sub-driver, list it in the kernel
301b6695bd0SMike Smithenvironment variable
3023184cf5aSNate Lawson.Va debug.acpi.disabled .
30337c51fd9SNate LawsonMultiple entries can be listed, separated by a space.
304b6695bd0SMike Smith.Pp
305b6695bd0SMike SmithACPI sub-devices and features that can be disabled:
3062010c542SRuslan Ermilov.Bl -tag -width ".Li sysresource"
30737c51fd9SNate Lawson.It Li all
308e821c364SNate LawsonDisable all ACPI features and devices.
30918974fe8SNate Lawson.It Li acad
31018974fe8SNate Lawson.Pq Vt device
31118974fe8SNate LawsonSupports AC adapter.
31287b6284aSRuslan Ermilov.It Li bus
313b6695bd0SMike Smith.Pq Vt feature
314b6695bd0SMike SmithProbes and attaches subdevices.
315b6695bd0SMike SmithDisabling will avoid scanning the ACPI namespace entirely.
31687b6284aSRuslan Ermilov.It Li children
317b6695bd0SMike Smith.Pq Vt feature
318b6695bd0SMike SmithAttaches standard ACPI sub-drivers and devices enumerated in the
319b6695bd0SMike SmithACPI namespace.
320b6695bd0SMike SmithDisabling this has a similar effect to disabling
32187b6284aSRuslan Ermilov.Dq Li bus ,
322b6695bd0SMike Smithexcept that the
323b6695bd0SMike SmithACPI namespace will still be scanned.
32487b6284aSRuslan Ermilov.It Li button
325b6695bd0SMike Smith.Pq Vt device
326bf7f20c2SRuslan ErmilovSupports ACPI button devices (typically power and sleep buttons).
32737c51fd9SNate Lawson.It Li cmbat
32837c51fd9SNate Lawson.Pq Vt device
32937c51fd9SNate LawsonControl-method batteries device.
33037c51fd9SNate Lawson.It Li cpu
33137c51fd9SNate Lawson.Pq Vt device
33237c51fd9SNate LawsonSupports CPU power-saving and speed-setting functions.
33387b6284aSRuslan Ermilov.It Li ec
334b6695bd0SMike Smith.Pq Vt device
33537c51fd9SNate LawsonSupports the ACPI Embedded Controller interface, used to communicate
33637c51fd9SNate Lawsonwith embedded platform controllers.
33787b6284aSRuslan Ermilov.It Li isa
338b6695bd0SMike Smith.Pq Vt device
339b6695bd0SMike SmithSupports an ISA bus bridge defined in the ACPI namespace,
340b6695bd0SMike Smithtypically as a child of a PCI bus.
34187b6284aSRuslan Ermilov.It Li lid
342b6695bd0SMike Smith.Pq Vt device
343b6695bd0SMike SmithSupports an ACPI laptop lid switch, which typically puts a
344b6695bd0SMike Smithsystem to sleep.
3454e376d58SNate Lawson.It Li quirks
3464e376d58SNate Lawson.Pq Vt feature
347bf7f20c2SRuslan ErmilovDo not honor quirks.
3484e376d58SNate LawsonQuirks automatically disable ACPI functionality based on the XSDT table's
3494e376d58SNate LawsonOEM vendor name and revision date.
35087b6284aSRuslan Ermilov.It Li pci
351b6695bd0SMike Smith.Pq Vt device
352b6695bd0SMike SmithSupports Host to PCI bridges.
35337c51fd9SNate Lawson.It Li pci_link
354e821c364SNate Lawson.Pq Vt feature
35537c51fd9SNate LawsonPerforms PCI interrupt routing.
35637c51fd9SNate Lawson.It Li sysresource
35737c51fd9SNate Lawson.Pq Vt device
35837c51fd9SNate LawsonPseudo-devices containing resources which ACPI claims.
35987b6284aSRuslan Ermilov.It Li thermal
360b6695bd0SMike Smith.Pq Vt device
361b6695bd0SMike SmithSupports system cooling and heat management.
36287b6284aSRuslan Ermilov.It Li timer
363b6695bd0SMike Smith.Pq Vt device
364b6695bd0SMike SmithImplements a timecounter using the ACPI fixed-frequency timer.
365401cdd95STom Rhodes.It Li video
366401cdd95STom Rhodes.Pq Vt device
3674f068961SRuslan ErmilovSupports
3684f068961SRuslan Ermilov.Xr acpi_video 4
3694f068961SRuslan Ermilovwhich may conflict with
3704f068961SRuslan Ermilov.Xr agp 4
3714f068961SRuslan Ermilovdevice.
372b6695bd0SMike Smith.El
373b6695bd0SMike Smith.Pp
374b6695bd0SMike SmithIt is also possible to avoid portions of the ACPI namespace which
375b6695bd0SMike Smithmay be causing problems, by listing the full path of the root of
376b6695bd0SMike Smiththe region to be avoided in the kernel environment variable
377b6695bd0SMike Smith.Va debug.acpi.avoid .
378b6695bd0SMike SmithThe object and all of its children will be ignored during the
37987b6284aSRuslan Ermilovbus/children scan of the namespace.
380401b484bSNate LawsonThe ACPI CA code will still know about the avoided region.
381edd84e48SNate Lawson.Sh DEBUGGING OUTPUT
382edd84e48SNate LawsonTo enable debugging output,
383edd84e48SNate Lawson.Nm
384edd84e48SNate Lawsonmust be compiled with
3852010c542SRuslan Ermilov.Cd "options ACPI_DEBUG" .
386edd84e48SNate LawsonDebugging output is separated between layers and levels, where a layer is
387edd84e48SNate Lawsona component of the ACPI subsystem, and a level is a particular kind
388edd84e48SNate Lawsonof debugging output.
389edd84e48SNate Lawson.Pp
390edd84e48SNate LawsonBoth layers and levels are specified as a whitespace-separated list of
391edd84e48SNate Lawsontokens, with layers listed in
392edd84e48SNate Lawson.Va debug.acpi.layer
393edd84e48SNate Lawsonand levels in
394edd84e48SNate Lawson.Va debug.acpi.level .
395401b484bSNate Lawson.Pp
396401b484bSNate LawsonThe first set of layers is for ACPI-CA components, and the second is for
397401b484bSNate Lawson.Fx
398401b484bSNate Lawsondrivers.
399401b484bSNate LawsonThe ACPI-CA layer descriptions include the prefix for the files they
400401b484bSNate Lawsonrefer to.
401edd84e48SNate LawsonThe supported layers are:
402edd84e48SNate Lawson.Pp
4032010c542SRuslan Ermilov.Bl -tag -compact -width ".Li ACPI_CA_DISASSEMBLER"
404edd84e48SNate Lawson.It Li ACPI_UTILITIES
405401b484bSNate LawsonUtility ("ut") functions
406edd84e48SNate Lawson.It Li ACPI_HARDWARE
407401b484bSNate LawsonHardware access ("hw")
408edd84e48SNate Lawson.It Li ACPI_EVENTS
409401b484bSNate LawsonEvent and GPE ("ev")
410edd84e48SNate Lawson.It Li ACPI_TABLES
411401b484bSNate LawsonTable access ("tb")
412edd84e48SNate Lawson.It Li ACPI_NAMESPACE
413401b484bSNate LawsonNamespace evaluation ("ns")
414edd84e48SNate Lawson.It Li ACPI_PARSER
415401b484bSNate LawsonAML parser ("ps")
416edd84e48SNate Lawson.It Li ACPI_DISPATCHER
417401b484bSNate LawsonInternal representation of interpreter state ("ds")
418edd84e48SNate Lawson.It Li ACPI_EXECUTER
419401b484bSNate LawsonExecute AML methods ("ex")
420edd84e48SNate Lawson.It Li ACPI_RESOURCES
421401b484bSNate LawsonResource parsing ("rs")
422edd84e48SNate Lawson.It Li ACPI_CA_DEBUGGER
423401b484bSNate LawsonDebugger implementation ("db", "dm")
424edd84e48SNate Lawson.It Li ACPI_OS_SERVICES
425401b484bSNate LawsonUsermode support routines ("os")
426edd84e48SNate Lawson.It Li ACPI_CA_DISASSEMBLER
427401b484bSNate LawsonDisassembler implementation (unused)
428edd84e48SNate Lawson.It Li ACPI_ALL_COMPONENTS
429edd84e48SNate LawsonAll the above ACPI-CA components
430edd84e48SNate Lawson.It Li ACPI_AC_ADAPTER
431edd84e48SNate LawsonAC adapter driver
432edd84e48SNate Lawson.It Li ACPI_BATTERY
433edd84e48SNate LawsonControl-method battery driver
434edd84e48SNate Lawson.It Li ACPI_BUS
435edd84e48SNate LawsonACPI, ISA, and PCI bus drivers
436edd84e48SNate Lawson.It Li ACPI_BUTTON
437edd84e48SNate LawsonPower and sleep button driver
438edd84e48SNate Lawson.It Li ACPI_EC
439edd84e48SNate LawsonEmbedded controller driver
440edd84e48SNate Lawson.It Li ACPI_FAN
441edd84e48SNate LawsonFan driver
442edd84e48SNate Lawson.It Li ACPI_OEM
443edd84e48SNate LawsonPlatform-specific driver for hotkeys, LED, etc.
444edd84e48SNate Lawson.It Li ACPI_POWER
445edd84e48SNate LawsonPower resource driver
446edd84e48SNate Lawson.It Li ACPI_PROCESSOR
447edd84e48SNate LawsonCPU driver
448edd84e48SNate Lawson.It Li ACPI_THERMAL
449edd84e48SNate LawsonThermal zone driver
450edd84e48SNate Lawson.It Li ACPI_TIMER
451edd84e48SNate LawsonTimer driver
452edd84e48SNate Lawson.It Li ACPI_ALL_DRIVERS
453edd84e48SNate LawsonAll the above
454edd84e48SNate Lawson.Fx
455edd84e48SNate LawsonACPI drivers
456edd84e48SNate Lawson.El
457edd84e48SNate Lawson.Pp
458edd84e48SNate LawsonThe supported levels are:
459edd84e48SNate Lawson.Pp
4602010c542SRuslan Ermilov.Bl -tag -compact -width ".Li ACPI_LV_AML_DISASSEMBLE"
461edd84e48SNate Lawson.It Li ACPI_LV_INIT
462401b484bSNate LawsonInitialization progress
463edd84e48SNate Lawson.It Li ACPI_LV_DEBUG_OBJECT
464401b484bSNate LawsonStores to objects
465edd84e48SNate Lawson.It Li ACPI_LV_INFO
466401b484bSNate LawsonGeneral information and progress
467edd84e48SNate Lawson.It Li ACPI_LV_ALL_EXCEPTIONS
468401b484bSNate LawsonAll the previous levels
469edd84e48SNate Lawson.It Li ACPI_LV_PARSE
470edd84e48SNate Lawson.It Li ACPI_LV_DISPATCH
471edd84e48SNate Lawson.It Li ACPI_LV_EXEC
472edd84e48SNate Lawson.It Li ACPI_LV_NAMES
473edd84e48SNate Lawson.It Li ACPI_LV_OPREGION
474edd84e48SNate Lawson.It Li ACPI_LV_BFIELD
475edd84e48SNate Lawson.It Li ACPI_LV_TABLES
476edd84e48SNate Lawson.It Li ACPI_LV_VALUES
477edd84e48SNate Lawson.It Li ACPI_LV_OBJECTS
478edd84e48SNate Lawson.It Li ACPI_LV_RESOURCES
479edd84e48SNate Lawson.It Li ACPI_LV_USER_REQUESTS
480edd84e48SNate Lawson.It Li ACPI_LV_PACKAGE
481edd84e48SNate Lawson.It Li ACPI_LV_VERBOSITY1
482401b484bSNate LawsonAll the previous levels
483edd84e48SNate Lawson.It Li ACPI_LV_ALLOCATIONS
484edd84e48SNate Lawson.It Li ACPI_LV_FUNCTIONS
485edd84e48SNate Lawson.It Li ACPI_LV_OPTIMIZATIONS
486edd84e48SNate Lawson.It Li ACPI_LV_VERBOSITY2
487240d2af5SJung-uk KimAll the previous levels
488edd84e48SNate Lawson.It Li ACPI_LV_ALL
489240d2af5SJung-uk KimSynonym for
490240d2af5SJung-uk Kim.Qq Li ACPI_LV_VERBOSITY2
491edd84e48SNate Lawson.It Li ACPI_LV_MUTEX
492edd84e48SNate Lawson.It Li ACPI_LV_THREADS
493edd84e48SNate Lawson.It Li ACPI_LV_IO
494edd84e48SNate Lawson.It Li ACPI_LV_INTERRUPTS
495edd84e48SNate Lawson.It Li ACPI_LV_VERBOSITY3
496401b484bSNate LawsonAll the previous levels
497edd84e48SNate Lawson.It Li ACPI_LV_AML_DISASSEMBLE
498edd84e48SNate Lawson.It Li ACPI_LV_VERBOSE_INFO
499edd84e48SNate Lawson.It Li ACPI_LV_FULL_TABLES
500edd84e48SNate Lawson.It Li ACPI_LV_EVENTS
501edd84e48SNate Lawson.It Li ACPI_LV_VERBOSE
502401b484bSNate LawsonAll levels after
503401b484bSNate Lawson.Qq Li ACPI_LV_VERBOSITY3
504240d2af5SJung-uk Kim.It Li ACPI_LV_INIT_NAMES
505240d2af5SJung-uk Kim.It Li ACPI_LV_LOAD
506edd84e48SNate Lawson.El
507edd84e48SNate Lawson.Pp
508edd84e48SNate LawsonSelection of the appropriate layer and level values is important
509edd84e48SNate Lawsonto avoid massive amounts of debugging output.
510401b484bSNate LawsonFor example, the following configuration is a good way to gather initial
511401b484bSNate Lawsoninformation.
512401b484bSNate LawsonIt enables debug output for both ACPI-CA and the
513401b484bSNate Lawson.Nm
514401b484bSNate Lawsondriver, printing basic information about errors, warnings, and progress.
515401b484bSNate Lawson.Bd -literal -offset indent
516401b484bSNate Lawsondebug.acpi.layer="ACPI_ALL_COMPONENTS ACPI_ALL_DRIVERS"
517401b484bSNate Lawsondebug.acpi.level="ACPI_LV_ALL_EXCEPTIONS"
518401b484bSNate Lawson.Ed
519edd84e48SNate Lawson.Pp
520edd84e48SNate LawsonDebugging output by the ACPI CA subsystem is prefixed with the
521edd84e48SNate Lawsonmodule name in lowercase, followed by a source line number.
522edd84e48SNate LawsonOutput from the
523edd84e48SNate Lawson.Fx Ns -local
524edd84e48SNate Lawsoncode follows the same format, but
525edd84e48SNate Lawsonthe module name is uppercased.
526f0da5f56STakanori Watanabe.Sh OVERRIDING YOUR BIOS BYTECODE
527287460e8SNate LawsonACPI interprets bytecode named AML
528287460e8SNate Lawson(ACPI Machine Language)
529287460e8SNate Lawsonprovided by the BIOS vendor as a memory image at boot time.
530287460e8SNate LawsonSometimes, the AML code contains a bug that does not appear when parsed
531287460e8SNate Lawsonby the Microsoft implementation.
532287460e8SNate Lawson.Fx
533287460e8SNate Lawsonprovides a way to override it with your own AML code to work around
534287460e8SNate Lawsonor debug such problems.
535287460e8SNate LawsonNote that all AML in your DSDT and any SSDT tables is overridden.
536f0da5f56STakanori Watanabe.Pp
537287460e8SNate LawsonIn order to load your AML code, you must edit
538f0da5f56STakanori Watanabe.Pa /boot/loader.conf
539287460e8SNate Lawsonand include the following lines.
540f0da5f56STakanori Watanabe.Bd -literal -offset indent
541f0da5f56STakanori Watanabeacpi_dsdt_load="YES"
542287460e8SNate Lawsonacpi_dsdt_name="/boot/acpi_dsdt.aml" # You may change this name.
543f0da5f56STakanori Watanabe.Ed
544f0da5f56STakanori Watanabe.Pp
545a627f55aSRuslan ErmilovIn order to prepare your AML code, you will need the
546a627f55aSRuslan Ermilov.Xr acpidump 8
547a627f55aSRuslan Ermilovand
5482010c542SRuslan Ermilov.Xr iasl 8
549297835bcSNate Lawsonutilities and some ACPI knowledge.
550b6695bd0SMike Smith.Sh COMPATIBILITY
5516b74f9b7SNate LawsonACPI is only found and supported on i386/ia32, ia64, and amd64.
552b6695bd0SMike Smith.Sh SEE ALSO
5535413d9e0SWes Peters.Xr kenv 1 ,
554673fbcacSRuslan Ermilov.Xr acpi_thermal 4 ,
5555413d9e0SWes Peters.Xr device.hints 5 ,
556f0da5f56STakanori Watanabe.Xr loader.conf 5 ,
557f64a0a56SRobert Watson.Xr acpiconf 8 ,
558f0da5f56STakanori Watanabe.Xr acpidump 8 ,
559297835bcSNate Lawson.Xr config 8 ,
560297835bcSNate Lawson.Xr iasl 8
561f0da5f56STakanori Watanabe.Rs
562a627f55aSRuslan Ermilov.%A "Compaq Computer Corporation"
563a627f55aSRuslan Ermilov.%A "Intel Corporation"
564a627f55aSRuslan Ermilov.%A "Microsoft Corporation"
565a627f55aSRuslan Ermilov.%A "Phoenix Technologies Ltd."
566a627f55aSRuslan Ermilov.%A "Toshiba Corporation"
567c25a3f8aSNate Lawson.%D August 25, 2003
568f0da5f56STakanori Watanabe.%T "Advanced Configuration and Power Interface Specification"
569aa4a335bSRuslan Ermilov.%U http://acpi.info/spec.htm
570f0da5f56STakanori Watanabe.Re
57187b6284aSRuslan Ermilov.Sh AUTHORS
57287b6284aSRuslan Ermilov.An -nosplit
573b6695bd0SMike SmithThe ACPI CA subsystem is developed and maintained by
574b6695bd0SMike SmithIntel Architecture Labs.
575b6695bd0SMike Smith.Pp
576b6695bd0SMike SmithThe following people made notable contributions to the ACPI subsystem
577b6695bd0SMike Smithin
578b6695bd0SMike Smith.Fx :
579718a5d6aSNate Lawson.An Michael Smith ,
58087b6284aSRuslan Ermilov.An Takanori Watanabe Aq takawata@jp.FreeBSD.org ,
58187b6284aSRuslan Ermilov.An Mitsuru IWASAKI Aq iwasaki@jp.FreeBSD.org ,
582b6695bd0SMike Smith.An Munehiro Matsuda ,
583718a5d6aSNate Lawson.An Nate Lawson ,
584b6695bd0SMike Smiththe ACPI-jp mailing list at
58587b6284aSRuslan Ermilov.Aq acpi-jp@jp.FreeBSD.org ,
586b6695bd0SMike Smithand many other contributors.
587b6695bd0SMike Smith.Pp
588b6695bd0SMike SmithThis manual page was written by
58987b6284aSRuslan Ermilov.An Michael Smith Aq msmith@FreeBSD.org .
590b6695bd0SMike Smith.Sh BUGS
59193870c05SNate LawsonMany BIOS versions have serious bugs that may cause system instability,
59293870c05SNate Lawsonbreak suspend/resume, or prevent devices from operating properly due to
59393870c05SNate LawsonIRQ routing problems.
59493870c05SNate LawsonUpgrade your BIOS to the latest version available from the vendor before
59581ae4b8dSRuslan Ermilovdeciding it is a problem with
59693870c05SNate Lawson.Nm .
59713a8aa9fSNate Lawson.Pp
59813a8aa9fSNate LawsonThe
59913a8aa9fSNate Lawson.Nm
60013a8aa9fSNate LawsonCPU idle power management drive conflicts with the local APIC (LAPIC)
60113a8aa9fSNate Lawsontimer.
60213a8aa9fSNate LawsonDisable APIC mode with
60313a8aa9fSNate Lawson.Va hint.apic.0.disabled
60481ae4b8dSRuslan Ermilovor do not use the
60503335ffbSYaroslav Tykhiy.Li C2
60613a8aa9fSNate Lawsonand
60703335ffbSYaroslav Tykhiy.Li C3
60813a8aa9fSNate Lawsonstates if APIC mode is enabled.
609