xref: /freebsd/share/man/man4/acpi.4 (revision 0782e8fa23f1e8caec14e7290f50a3553b3adf2a)
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.\"
28*0782e8faSChristian Brueffer.Dd June 23, 2014
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.
64*0782e8faSChristian BruefferNote that some variables will be available only if the given hardware supports
65*0782e8faSChristian Bruefferthem (such as
66*0782e8faSChristian Brueffer.Va hw.acpi.acline ) .
67edd84e48SNate Lawson.Bl -tag -width indent
68ef47c93fSJung-uk Kim.It Va debug.acpi.enable_debug_objects
69ef47c93fSJung-uk KimEnable dumping Debug objects without
70ef47c93fSJung-uk Kim.Cd "options ACPI_DEBUG" .
71ef47c93fSJung-uk KimDefault is 0, ignore Debug objects.
7293870c05SNate Lawson.It Va hw.acpi.acline
7393870c05SNate LawsonAC line state (1 means online, 0 means on battery power).
74edd84e48SNate Lawson.It Va hw.acpi.cpu.cx_usage
75edd84e48SNate LawsonDebugging information listing the percent of total usage for each sleep state.
76edd84e48SNate LawsonThe values are reset when
77edd84e48SNate Lawson.Va hw.acpi.cpu.cx_lowest
78edd84e48SNate Lawsonis modified.
79edd84e48SNate Lawson.It Va hw.acpi.cpu.cx_lowest
80edd84e48SNate LawsonLowest Cx state to use for idling the CPU.
8103335ffbSYaroslav TykhiyA scheduling algorithm will select states between
8203335ffbSYaroslav Tykhiy.Li C1
8303335ffbSYaroslav Tykhiyand this setting
84edd84e48SNate Lawsonas system load dictates.
85edd84e48SNate LawsonTo enable ACPI CPU idling control,
86947bb4a4SAndriy Gapon.Va machdep.idle
87947bb4a4SAndriy Gaponshould be set to
88947bb4a4SAndriy Gapon.Li acpi
89947bb4a4SAndriy Gaponif it is listed in
90*0782e8faSChristian Brueffer.Va machdep.idle_available .
91edd84e48SNate Lawson.It Va hw.acpi.cpu.cx_supported
92edd84e48SNate LawsonList of supported CPU idle states and their transition latency
93edd84e48SNate Lawsonin microseconds.
9403335ffbSYaroslav TykhiyEach state has a type (e.g.,
9503335ffbSYaroslav Tykhiy.Li C2 ) .
9603335ffbSYaroslav Tykhiy.Li C1
9703335ffbSYaroslav Tykhiyis equivalent to the ia32
9803335ffbSYaroslav Tykhiy.Li HLT
9903335ffbSYaroslav Tykhiyinstruction,
10003335ffbSYaroslav Tykhiy.Li C2
10103335ffbSYaroslav Tykhiyprovides a deeper
10203335ffbSYaroslav Tykhiysleep with the same semantics, and
10303335ffbSYaroslav Tykhiy.Li C3
10403335ffbSYaroslav Tykhiyprovides the deepest sleep
105edd84e48SNate Lawsonbut additionally requires bus mastering to be disabled.
10603335ffbSYaroslav TykhiyStates greater than
10703335ffbSYaroslav Tykhiy.Li C3
10803335ffbSYaroslav Tykhiyprovide even more power savings with the same
10903335ffbSYaroslav Tykhiysemantics as the
11003335ffbSYaroslav Tykhiy.Li C3
11103335ffbSYaroslav Tykhiystate.
112edd84e48SNate LawsonDeeper sleeps provide more power savings but increased transition
113edd84e48SNate Lawsonlatency when an interrupt occurs.
11493870c05SNate Lawson.It Va hw.acpi.disable_on_reboot
11593870c05SNate LawsonDisable ACPI during the reboot process.
11693870c05SNate LawsonMost systems reboot fine with ACPI still enabled, but some require
11793870c05SNate Lawsonexiting to legacy mode first.
11893870c05SNate LawsonDefault is 0, leave ACPI enabled.
11993870c05SNate Lawson.It Va hw.acpi.handle_reboot
12093870c05SNate LawsonUse the ACPI Reset Register capability to reboot the system.
12193870c05SNate LawsonSome newer systems require use of this register, while some only work
12293870c05SNate Lawsonwith legacy rebooting support.
12393870c05SNate Lawson.It Va hw.acpi.lid_switch_state
12413a8aa9fSNate LawsonSuspend state
12503335ffbSYaroslav Tykhiy.Pq Li S1 Ns \[en] Ns Li S5
12613a8aa9fSNate Lawsonto enter when the lid switch (i.e., a notebook screen) is closed.
12703335ffbSYaroslav TykhiyDefault is
12803335ffbSYaroslav Tykhiy.Dq Li NONE
12903335ffbSYaroslav Tykhiy(do nothing).
13093870c05SNate Lawson.It Va hw.acpi.power_button_state
13113a8aa9fSNate LawsonSuspend state
13203335ffbSYaroslav Tykhiy.Pq Li S1 Ns \[en] Ns Li S5
13313a8aa9fSNate Lawsonto enter when the power button is pressed.
13413a8aa9fSNate LawsonDefault is
13503335ffbSYaroslav Tykhiy.Li S5
13613a8aa9fSNate Lawson(power-off nicely).
13793870c05SNate Lawson.It Va hw.acpi.reset_video
13893870c05SNate LawsonReset the video adapter from real mode during the resume path.
13993870c05SNate LawsonSome systems need this help, others have display problems if it is enabled.
14093870c05SNate LawsonDefault is 0 (disabled).
14193870c05SNate Lawson.It Va hw.acpi.s4bios
14213a8aa9fSNate LawsonIndicate whether the system supports
14303335ffbSYaroslav Tykhiy.Li S4BIOS .
14493870c05SNate LawsonThis means that the BIOS can handle all the functions of suspending the
14593870c05SNate Lawsonsystem to disk.
14613a8aa9fSNate LawsonOtherwise, the OS is responsible for suspending to disk
14703335ffbSYaroslav Tykhiy.Pq Li S4OS .
14813a8aa9fSNate LawsonMost current systems do not support
14903335ffbSYaroslav Tykhiy.Li S4BIOS .
15093870c05SNate Lawson.It Va hw.acpi.sleep_button_state
15113a8aa9fSNate LawsonSuspend state
15203335ffbSYaroslav Tykhiy.Pq Li S1 Ns \[en] Ns Li S5
15313a8aa9fSNate Lawsonto enter when the sleep button is pressed.
15493870c05SNate LawsonThis is usually a special function button on the keyboard.
15513a8aa9fSNate LawsonDefault is
15603335ffbSYaroslav Tykhiy.Li S3
15713a8aa9fSNate Lawson(suspend-to-RAM).
15893870c05SNate Lawson.It Va hw.acpi.sleep_delay
15993870c05SNate LawsonWait this number of seconds between preparing the system to suspend and
16093870c05SNate Lawsonactually entering the suspend state.
16193870c05SNate LawsonDefault is 1 second.
16293870c05SNate Lawson.It Va hw.acpi.supported_sleep_state
16313a8aa9fSNate LawsonSuspend states
16403335ffbSYaroslav Tykhiy.Pq Li S1 Ns \[en] Ns Li S5
16513a8aa9fSNate Lawsonsupported by the BIOS.
16693870c05SNate Lawson.Bl -tag -width indent
16703335ffbSYaroslav Tykhiy.It Li S1
16893870c05SNate LawsonQuick suspend to RAM.
16903335ffbSYaroslav TykhiyThe CPU enters a lower power state, but most peripherals are left running.
17003335ffbSYaroslav Tykhiy.It Li S2
17113a8aa9fSNate LawsonLower power state than
17203335ffbSYaroslav Tykhiy.Li S1 ,
17313a8aa9fSNate Lawsonbut with the same basic characteristics.
17493870c05SNate LawsonNot supported by many systems.
17503335ffbSYaroslav Tykhiy.It Li S3
17693870c05SNate LawsonSuspend to RAM.
17703335ffbSYaroslav TykhiyMost devices are powered off, and the system stops running except for
17893870c05SNate Lawsonmemory refresh.
17903335ffbSYaroslav Tykhiy.It Li S4
18093870c05SNate LawsonSuspend to disk.
18103335ffbSYaroslav TykhiyAll devices are powered off, and the system stops running.
18293870c05SNate LawsonWhen resuming, the system starts as if from a cold power on.
18393870c05SNate LawsonNot yet supported by
18493870c05SNate Lawson.Fx
18513a8aa9fSNate Lawsonunless
18603335ffbSYaroslav Tykhiy.Li S4BIOS
18713a8aa9fSNate Lawsonis available.
18803335ffbSYaroslav Tykhiy.It Li S5
18993870c05SNate LawsonSystem shuts down cleanly and powers off.
19093870c05SNate Lawson.El
19193870c05SNate Lawson.It Va hw.acpi.verbose
19293870c05SNate LawsonEnable verbose printing from the various ACPI subsystems.
193edd84e48SNate Lawson.El
19444cb3ab0SHiroki Sato.Sh LOADER TUNABLES
1953184cf5aSNate LawsonTunables can be set at the
19687b6284aSRuslan Ermilov.Xr loader 8
1973184cf5aSNate Lawsonprompt before booting the kernel or stored in
1983184cf5aSNate Lawson.Pa /boot/loader.conf .
199b46f4324SNate LawsonMany of these tunables also have a matching
200b46f4324SNate Lawson.Xr sysctl 8
201b46f4324SNate Lawsonentry for access after boot.
202edd84e48SNate Lawson.Bl -tag -width indent
203edd84e48SNate Lawson.It Va acpi_dsdt_load
204edd84e48SNate LawsonEnables loading of a custom ACPI DSDT.
205edd84e48SNate Lawson.It Va acpi_dsdt_name
206edd84e48SNate LawsonName of the DSDT table to load, if loading is enabled.
207e5751426SJung-uk Kim.It Va debug.acpi.cpu_unordered
20892fa7e24SJung-uk KimDo not use the MADT to match ACPI Processor objects to CPUs.
209e5751426SJung-uk KimThis is needed on a few systems with a buggy BIOS that does not use
210e5751426SJung-uk Kimconsistent processor IDs.
211e5751426SJung-uk KimDefault is 0 (disabled).
212edd84e48SNate Lawson.It Va debug.acpi.disabled
213edd84e48SNate LawsonSelectively disables portions of ACPI for debugging purposes.
214ef47c93fSJung-uk Kim.It Va debug.acpi.interpreter_slack
215ef47c93fSJung-uk KimEnable less strict ACPI implementations.
216ef47c93fSJung-uk KimDefault is 1, ignore common BIOS mistakes.
21726db811eSNate Lawson.It Va debug.acpi.max_threads
21826db811eSNate LawsonSpecify the number of task threads that are started on boot.
21926db811eSNate LawsonLimiting this to 1 may help work around various BIOSes that cannot
22026db811eSNate Lawsonhandle parallel requests.
22126db811eSNate LawsonThe default value is 3.
22247bc6a5eSNate Lawson.It Va debug.acpi.quirks
22347bc6a5eSNate LawsonOverride any automatic quirks completely.
224b46f4324SNate Lawson.It Va debug.acpi.resume_beep
225b46f4324SNate LawsonBeep the PC speaker on resume.
226b46f4324SNate LawsonThis can help diagnose suspend/resume problems.
227b46f4324SNate LawsonDefault is 0 (disabled).
228edd84e48SNate Lawson.It Va hint.acpi.0.disabled
229edd84e48SNate LawsonSet this to 1 to disable all of ACPI.
230edd84e48SNate LawsonIf ACPI has been disabled on your system due to a blacklist entry for your
231edd84e48SNate LawsonBIOS, you can set this to 0 to re-enable ACPI for testing.
232edd84e48SNate Lawson.It Va hw.acpi.ec.poll_timeout
233edd84e48SNate LawsonDelay in milliseconds to wait for the EC to respond.
234edd84e48SNate LawsonTry increasing this number if you get the error
2352010c542SRuslan Ermilov.Qq Li AE_NO_HARDWARE_RESPONSE .
23647bc6a5eSNate Lawson.It Va hw.acpi.host_mem_start
23747bc6a5eSNate LawsonOverride the assumed memory starting address for PCI host bridges.
23866f369d0SJung-uk Kim.It Va hw.acpi.install_interface , hw.acpi.remove_interface
23966f369d0SJung-uk KimInstall or remove OS interface(s) to control return value of
24066f369d0SJung-uk Kim.Ql _OSI
24166f369d0SJung-uk Kimquery method.  When an OS interface is specified in
24266f369d0SJung-uk Kim.Va hw.acpi.install_interface ,
24366f369d0SJung-uk Kim.Li _OSI
24466f369d0SJung-uk Kimquery for the interface returns it is
24566f369d0SJung-uk Kim.Em supported .
24666f369d0SJung-uk KimConversely, when an OS interface is specified in
24766f369d0SJung-uk Kim.Va hw.acpi.remove_interface ,
24866f369d0SJung-uk Kim.Li _OSI
24966f369d0SJung-uk Kimquery returns it is
25066f369d0SJung-uk Kim.Em not supported .
25166f369d0SJung-uk KimMultiple interfaces can be specified in a comma-separated list and
25266f369d0SJung-uk Kimany leading white spaces will be ignored.  For example,
25366f369d0SJung-uk Kim.Qq Li FreeBSD, Linux
25466f369d0SJung-uk Kimis a valid list of two interfaces
25566f369d0SJung-uk Kim.Qq Li FreeBSD
25666f369d0SJung-uk Kimand
25766f369d0SJung-uk Kim.Qq Li Linux .
258edd84e48SNate Lawson.It Va hw.acpi.reset_video
259edd84e48SNate LawsonEnables calling the VESA reset BIOS vector on the resume path.
260b46f4324SNate LawsonThis can fix some graphics cards that have problems such as LCD white-out
261b46f4324SNate Lawsonafter resume.
262b46f4324SNate LawsonDefault is 0 (disabled).
263edd84e48SNate Lawson.It Va hw.acpi.serialize_methods
264edd84e48SNate LawsonAllow override of whether methods execute in parallel or not.
2652010c542SRuslan ErmilovEnable this for serial behavior, which fixes
2662010c542SRuslan Ermilov.Qq Li AE_ALREADY_EXISTS
2672010c542SRuslan Ermiloverrors for
2682010c542SRuslan ErmilovAML that really cannot handle parallel method execution.
269edd84e48SNate LawsonIt is off by default since this breaks recursive methods and some IBMs use
270edd84e48SNate Lawsonsuch code.
271edd84e48SNate Lawson.It Va hw.acpi.verbose
272edd84e48SNate LawsonTurn on verbose debugging information about what ACPI is doing.
273e862bc66SChristian Brueffer.It Va hw.pci.link.%s.%d.irq
27493870c05SNate LawsonOverride the interrupt to use for this link and index.
27593870c05SNate LawsonThis capability should be used carefully, and only if a device is not
27693870c05SNate Lawsonworking with
27793870c05SNate Lawson.Nm
27893870c05SNate Lawsonenabled.
27993870c05SNate Lawson.Qq %s
28093870c05SNate Lawsonis the name of the link (e.g., LNKA).
28193870c05SNate Lawson.Qq %d
28293870c05SNate Lawsonis the resource index when the link supports multiple IRQs.
28393870c05SNate LawsonMost PCI links only have one IRQ resource, so the below form should be used.
284e862bc66SChristian Brueffer.It Va hw.pci.link.%s.irq
285e862bc66SChristian BruefferOverride the interrupt to use.
28693870c05SNate LawsonThis capability should be used carefully, and only if a device is not
28793870c05SNate Lawsonworking with
28893870c05SNate Lawson.Nm
28993870c05SNate Lawsonenabled.
29093870c05SNate Lawson.Qq %s
29193870c05SNate Lawsonis the name of the link (e.g., LNKA).
292b6695bd0SMike Smith.El
293edd84e48SNate Lawson.Sh DISABLING ACPI
294edd84e48SNate LawsonSince ACPI support on different platforms varies greatly, there are many
295edd84e48SNate Lawsondebugging and tuning options available.
296b6695bd0SMike Smith.Pp
29707e2d046SMark SantcroosFor machines known not to work with
29807e2d046SMark Santcroos.Nm
29955c71dc9SMark Santcroosenabled, there is a BIOS blacklist.
30055c71dc9SMark SantcroosCurrently, the blacklist only controls whether
30107e2d046SMark Santcroos.Nm
30255c71dc9SMark Santcroosshould be disabled or not.
30355c71dc9SMark SantcroosIn the future, it will have more granularity to control features (the
30455c71dc9SMark Santcroosinfrastructure for that is already there).
30507e2d046SMark Santcroos.Pp
30607e2d046SMark SantcroosTo enable
30707e2d046SMark Santcroos.Nm
30855c71dc9SMark Santcroos(for debugging purposes, etc.) on machines that are on the blacklist, set the
30955c71dc9SMark Santcrooskernel environment variable
31007e2d046SMark Santcroos.Va hint.acpi.0.disabled
31155c71dc9SMark Santcroosto 0.
31255c71dc9SMark SantcroosBefore trying this, consider updating your BIOS to a more recent version that
31355c71dc9SMark Santcroosmay be compatible with ACPI.
31407e2d046SMark Santcroos.Pp
3154e3148f4SWarner LoshTo disable the
3164e3148f4SWarner Losh.Nm
3174e3148f4SWarner Loshdriver completely, set the kernel environment variable
3184e3148f4SWarner Losh.Va hint.acpi.0.disabled
319d865f9efSWes Petersto 1.
320d865f9efSWes Peters.Pp
3214e3148f4SWarner LoshSome i386 machines totally fail to operate with some or all of ACPI disabled.
3224e3148f4SWarner LoshOther i386 machines fail with ACPI enabled.
323edd84e48SNate LawsonDisabling all or part of ACPI on non-i386 platforms (i.e., platforms where
324edd84e48SNate LawsonACPI support is mandatory) may result in a non-functional system.
3254e3148f4SWarner Losh.Pp
326b6695bd0SMike SmithThe
327b6695bd0SMike Smith.Nm
328b6695bd0SMike Smithdriver comprises a set of drivers, which may be selectively disabled
329b6695bd0SMike Smithin case of problems.
330b6695bd0SMike SmithTo disable a sub-driver, list it in the kernel
331b6695bd0SMike Smithenvironment variable
3323184cf5aSNate Lawson.Va debug.acpi.disabled .
33337c51fd9SNate LawsonMultiple entries can be listed, separated by a space.
334b6695bd0SMike Smith.Pp
335b6695bd0SMike SmithACPI sub-devices and features that can be disabled:
3362010c542SRuslan Ermilov.Bl -tag -width ".Li sysresource"
33737c51fd9SNate Lawson.It Li all
338e821c364SNate LawsonDisable all ACPI features and devices.
33918974fe8SNate Lawson.It Li acad
34018974fe8SNate Lawson.Pq Vt device
34118974fe8SNate LawsonSupports AC adapter.
34287b6284aSRuslan Ermilov.It Li bus
343b6695bd0SMike Smith.Pq Vt feature
344b6695bd0SMike SmithProbes and attaches subdevices.
345b6695bd0SMike SmithDisabling will avoid scanning the ACPI namespace entirely.
34687b6284aSRuslan Ermilov.It Li children
347b6695bd0SMike Smith.Pq Vt feature
348b6695bd0SMike SmithAttaches standard ACPI sub-drivers and devices enumerated in the
349b6695bd0SMike SmithACPI namespace.
350b6695bd0SMike SmithDisabling this has a similar effect to disabling
35187b6284aSRuslan Ermilov.Dq Li bus ,
352b6695bd0SMike Smithexcept that the
353b6695bd0SMike SmithACPI namespace will still be scanned.
35487b6284aSRuslan Ermilov.It Li button
355b6695bd0SMike Smith.Pq Vt device
356bf7f20c2SRuslan ErmilovSupports ACPI button devices (typically power and sleep buttons).
35737c51fd9SNate Lawson.It Li cmbat
35837c51fd9SNate Lawson.Pq Vt device
35937c51fd9SNate LawsonControl-method batteries device.
36037c51fd9SNate Lawson.It Li cpu
36137c51fd9SNate Lawson.Pq Vt device
36237c51fd9SNate LawsonSupports CPU power-saving and speed-setting functions.
36387b6284aSRuslan Ermilov.It Li ec
364b6695bd0SMike Smith.Pq Vt device
36537c51fd9SNate LawsonSupports the ACPI Embedded Controller interface, used to communicate
36637c51fd9SNate Lawsonwith embedded platform controllers.
36787b6284aSRuslan Ermilov.It Li isa
368b6695bd0SMike Smith.Pq Vt device
369b6695bd0SMike SmithSupports an ISA bus bridge defined in the ACPI namespace,
370b6695bd0SMike Smithtypically as a child of a PCI bus.
37187b6284aSRuslan Ermilov.It Li lid
372b6695bd0SMike Smith.Pq Vt device
373b6695bd0SMike SmithSupports an ACPI laptop lid switch, which typically puts a
374b6695bd0SMike Smithsystem to sleep.
3754e376d58SNate Lawson.It Li quirks
3764e376d58SNate Lawson.Pq Vt feature
377bf7f20c2SRuslan ErmilovDo not honor quirks.
3784e376d58SNate LawsonQuirks automatically disable ACPI functionality based on the XSDT table's
3794e376d58SNate LawsonOEM vendor name and revision date.
38087b6284aSRuslan Ermilov.It Li pci
381b6695bd0SMike Smith.Pq Vt device
382b6695bd0SMike SmithSupports Host to PCI bridges.
38337c51fd9SNate Lawson.It Li pci_link
384e821c364SNate Lawson.Pq Vt feature
38537c51fd9SNate LawsonPerforms PCI interrupt routing.
38637c51fd9SNate Lawson.It Li sysresource
38737c51fd9SNate Lawson.Pq Vt device
38837c51fd9SNate LawsonPseudo-devices containing resources which ACPI claims.
38987b6284aSRuslan Ermilov.It Li thermal
390b6695bd0SMike Smith.Pq Vt device
391b6695bd0SMike SmithSupports system cooling and heat management.
39287b6284aSRuslan Ermilov.It Li timer
393b6695bd0SMike Smith.Pq Vt device
394b6695bd0SMike SmithImplements a timecounter using the ACPI fixed-frequency timer.
395401cdd95STom Rhodes.It Li video
396401cdd95STom Rhodes.Pq Vt device
3974f068961SRuslan ErmilovSupports
3984f068961SRuslan Ermilov.Xr acpi_video 4
3994f068961SRuslan Ermilovwhich may conflict with
4004f068961SRuslan Ermilov.Xr agp 4
4014f068961SRuslan Ermilovdevice.
402b6695bd0SMike Smith.El
403b6695bd0SMike Smith.Pp
404b6695bd0SMike SmithIt is also possible to avoid portions of the ACPI namespace which
405b6695bd0SMike Smithmay be causing problems, by listing the full path of the root of
406b6695bd0SMike Smiththe region to be avoided in the kernel environment variable
407b6695bd0SMike Smith.Va debug.acpi.avoid .
408b6695bd0SMike SmithThe object and all of its children will be ignored during the
40987b6284aSRuslan Ermilovbus/children scan of the namespace.
410401b484bSNate LawsonThe ACPI CA code will still know about the avoided region.
411edd84e48SNate Lawson.Sh DEBUGGING OUTPUT
412edd84e48SNate LawsonTo enable debugging output,
413edd84e48SNate Lawson.Nm
414edd84e48SNate Lawsonmust be compiled with
4152010c542SRuslan Ermilov.Cd "options ACPI_DEBUG" .
416edd84e48SNate LawsonDebugging output is separated between layers and levels, where a layer is
417edd84e48SNate Lawsona component of the ACPI subsystem, and a level is a particular kind
418edd84e48SNate Lawsonof debugging output.
419edd84e48SNate Lawson.Pp
420edd84e48SNate LawsonBoth layers and levels are specified as a whitespace-separated list of
421edd84e48SNate Lawsontokens, with layers listed in
422edd84e48SNate Lawson.Va debug.acpi.layer
423edd84e48SNate Lawsonand levels in
424edd84e48SNate Lawson.Va debug.acpi.level .
425401b484bSNate Lawson.Pp
426401b484bSNate LawsonThe first set of layers is for ACPI-CA components, and the second is for
427401b484bSNate Lawson.Fx
428401b484bSNate Lawsondrivers.
429401b484bSNate LawsonThe ACPI-CA layer descriptions include the prefix for the files they
430401b484bSNate Lawsonrefer to.
431edd84e48SNate LawsonThe supported layers are:
432edd84e48SNate Lawson.Pp
4332010c542SRuslan Ermilov.Bl -tag -compact -width ".Li ACPI_CA_DISASSEMBLER"
434edd84e48SNate Lawson.It Li ACPI_UTILITIES
435401b484bSNate LawsonUtility ("ut") functions
436edd84e48SNate Lawson.It Li ACPI_HARDWARE
437401b484bSNate LawsonHardware access ("hw")
438edd84e48SNate Lawson.It Li ACPI_EVENTS
439401b484bSNate LawsonEvent and GPE ("ev")
440edd84e48SNate Lawson.It Li ACPI_TABLES
441401b484bSNate LawsonTable access ("tb")
442edd84e48SNate Lawson.It Li ACPI_NAMESPACE
443401b484bSNate LawsonNamespace evaluation ("ns")
444edd84e48SNate Lawson.It Li ACPI_PARSER
445401b484bSNate LawsonAML parser ("ps")
446edd84e48SNate Lawson.It Li ACPI_DISPATCHER
447401b484bSNate LawsonInternal representation of interpreter state ("ds")
448edd84e48SNate Lawson.It Li ACPI_EXECUTER
449401b484bSNate LawsonExecute AML methods ("ex")
450edd84e48SNate Lawson.It Li ACPI_RESOURCES
451401b484bSNate LawsonResource parsing ("rs")
452edd84e48SNate Lawson.It Li ACPI_CA_DEBUGGER
453401b484bSNate LawsonDebugger implementation ("db", "dm")
454edd84e48SNate Lawson.It Li ACPI_OS_SERVICES
455401b484bSNate LawsonUsermode support routines ("os")
456edd84e48SNate Lawson.It Li ACPI_CA_DISASSEMBLER
457401b484bSNate LawsonDisassembler implementation (unused)
458edd84e48SNate Lawson.It Li ACPI_ALL_COMPONENTS
459edd84e48SNate LawsonAll the above ACPI-CA components
460edd84e48SNate Lawson.It Li ACPI_AC_ADAPTER
461edd84e48SNate LawsonAC adapter driver
462edd84e48SNate Lawson.It Li ACPI_BATTERY
463edd84e48SNate LawsonControl-method battery driver
464edd84e48SNate Lawson.It Li ACPI_BUS
465edd84e48SNate LawsonACPI, ISA, and PCI bus drivers
466edd84e48SNate Lawson.It Li ACPI_BUTTON
467edd84e48SNate LawsonPower and sleep button driver
468edd84e48SNate Lawson.It Li ACPI_EC
469edd84e48SNate LawsonEmbedded controller driver
470edd84e48SNate Lawson.It Li ACPI_FAN
471edd84e48SNate LawsonFan driver
472edd84e48SNate Lawson.It Li ACPI_OEM
473edd84e48SNate LawsonPlatform-specific driver for hotkeys, LED, etc.
474edd84e48SNate Lawson.It Li ACPI_POWER
475edd84e48SNate LawsonPower resource driver
476edd84e48SNate Lawson.It Li ACPI_PROCESSOR
477edd84e48SNate LawsonCPU driver
478edd84e48SNate Lawson.It Li ACPI_THERMAL
479edd84e48SNate LawsonThermal zone driver
480edd84e48SNate Lawson.It Li ACPI_TIMER
481edd84e48SNate LawsonTimer driver
482edd84e48SNate Lawson.It Li ACPI_ALL_DRIVERS
483edd84e48SNate LawsonAll the above
484edd84e48SNate Lawson.Fx
485edd84e48SNate LawsonACPI drivers
486edd84e48SNate Lawson.El
487edd84e48SNate Lawson.Pp
488edd84e48SNate LawsonThe supported levels are:
489edd84e48SNate Lawson.Pp
4902010c542SRuslan Ermilov.Bl -tag -compact -width ".Li ACPI_LV_AML_DISASSEMBLE"
491edd84e48SNate Lawson.It Li ACPI_LV_INIT
492401b484bSNate LawsonInitialization progress
493edd84e48SNate Lawson.It Li ACPI_LV_DEBUG_OBJECT
494401b484bSNate LawsonStores to objects
495edd84e48SNate Lawson.It Li ACPI_LV_INFO
496401b484bSNate LawsonGeneral information and progress
497cc6455afSJung-uk Kim.It Li ACPI_LV_REPAIR
498cc6455afSJung-uk KimRepair a common problem with predefined methods
499edd84e48SNate Lawson.It Li ACPI_LV_ALL_EXCEPTIONS
500401b484bSNate LawsonAll the previous levels
501edd84e48SNate Lawson.It Li ACPI_LV_PARSE
502edd84e48SNate Lawson.It Li ACPI_LV_DISPATCH
503edd84e48SNate Lawson.It Li ACPI_LV_EXEC
504edd84e48SNate Lawson.It Li ACPI_LV_NAMES
505edd84e48SNate Lawson.It Li ACPI_LV_OPREGION
506edd84e48SNate Lawson.It Li ACPI_LV_BFIELD
507edd84e48SNate Lawson.It Li ACPI_LV_TABLES
508edd84e48SNate Lawson.It Li ACPI_LV_VALUES
509edd84e48SNate Lawson.It Li ACPI_LV_OBJECTS
510edd84e48SNate Lawson.It Li ACPI_LV_RESOURCES
511edd84e48SNate Lawson.It Li ACPI_LV_USER_REQUESTS
512edd84e48SNate Lawson.It Li ACPI_LV_PACKAGE
513edd84e48SNate Lawson.It Li ACPI_LV_VERBOSITY1
514401b484bSNate LawsonAll the previous levels
515edd84e48SNate Lawson.It Li ACPI_LV_ALLOCATIONS
516edd84e48SNate Lawson.It Li ACPI_LV_FUNCTIONS
517edd84e48SNate Lawson.It Li ACPI_LV_OPTIMIZATIONS
518edd84e48SNate Lawson.It Li ACPI_LV_VERBOSITY2
519240d2af5SJung-uk KimAll the previous levels
520edd84e48SNate Lawson.It Li ACPI_LV_ALL
521240d2af5SJung-uk KimSynonym for
522240d2af5SJung-uk Kim.Qq Li ACPI_LV_VERBOSITY2
523edd84e48SNate Lawson.It Li ACPI_LV_MUTEX
524edd84e48SNate Lawson.It Li ACPI_LV_THREADS
525edd84e48SNate Lawson.It Li ACPI_LV_IO
526edd84e48SNate Lawson.It Li ACPI_LV_INTERRUPTS
527edd84e48SNate Lawson.It Li ACPI_LV_VERBOSITY3
528401b484bSNate LawsonAll the previous levels
529edd84e48SNate Lawson.It Li ACPI_LV_AML_DISASSEMBLE
530edd84e48SNate Lawson.It Li ACPI_LV_VERBOSE_INFO
531edd84e48SNate Lawson.It Li ACPI_LV_FULL_TABLES
532edd84e48SNate Lawson.It Li ACPI_LV_EVENTS
533edd84e48SNate Lawson.It Li ACPI_LV_VERBOSE
534401b484bSNate LawsonAll levels after
535401b484bSNate Lawson.Qq Li ACPI_LV_VERBOSITY3
536240d2af5SJung-uk Kim.It Li ACPI_LV_INIT_NAMES
537240d2af5SJung-uk Kim.It Li ACPI_LV_LOAD
538edd84e48SNate Lawson.El
539edd84e48SNate Lawson.Pp
540edd84e48SNate LawsonSelection of the appropriate layer and level values is important
541edd84e48SNate Lawsonto avoid massive amounts of debugging output.
542401b484bSNate LawsonFor example, the following configuration is a good way to gather initial
543401b484bSNate Lawsoninformation.
544401b484bSNate LawsonIt enables debug output for both ACPI-CA and the
545401b484bSNate Lawson.Nm
546401b484bSNate Lawsondriver, printing basic information about errors, warnings, and progress.
547401b484bSNate Lawson.Bd -literal -offset indent
548401b484bSNate Lawsondebug.acpi.layer="ACPI_ALL_COMPONENTS ACPI_ALL_DRIVERS"
549401b484bSNate Lawsondebug.acpi.level="ACPI_LV_ALL_EXCEPTIONS"
550401b484bSNate Lawson.Ed
551edd84e48SNate Lawson.Pp
552edd84e48SNate LawsonDebugging output by the ACPI CA subsystem is prefixed with the
553edd84e48SNate Lawsonmodule name in lowercase, followed by a source line number.
554edd84e48SNate LawsonOutput from the
555edd84e48SNate Lawson.Fx Ns -local
556edd84e48SNate Lawsoncode follows the same format, but
557edd84e48SNate Lawsonthe module name is uppercased.
558f0da5f56STakanori Watanabe.Sh OVERRIDING YOUR BIOS BYTECODE
559287460e8SNate LawsonACPI interprets bytecode named AML
560287460e8SNate Lawson(ACPI Machine Language)
561287460e8SNate Lawsonprovided by the BIOS vendor as a memory image at boot time.
562287460e8SNate LawsonSometimes, the AML code contains a bug that does not appear when parsed
563287460e8SNate Lawsonby the Microsoft implementation.
564287460e8SNate Lawson.Fx
565287460e8SNate Lawsonprovides a way to override it with your own AML code to work around
566287460e8SNate Lawsonor debug such problems.
567287460e8SNate LawsonNote that all AML in your DSDT and any SSDT tables is overridden.
568f0da5f56STakanori Watanabe.Pp
569287460e8SNate LawsonIn order to load your AML code, you must edit
570f0da5f56STakanori Watanabe.Pa /boot/loader.conf
571287460e8SNate Lawsonand include the following lines.
572f0da5f56STakanori Watanabe.Bd -literal -offset indent
573f0da5f56STakanori Watanabeacpi_dsdt_load="YES"
574287460e8SNate Lawsonacpi_dsdt_name="/boot/acpi_dsdt.aml" # You may change this name.
575f0da5f56STakanori Watanabe.Ed
576f0da5f56STakanori Watanabe.Pp
577a627f55aSRuslan ErmilovIn order to prepare your AML code, you will need the
578a627f55aSRuslan Ermilov.Xr acpidump 8
579a627f55aSRuslan Ermilovand
5802010c542SRuslan Ermilov.Xr iasl 8
581297835bcSNate Lawsonutilities and some ACPI knowledge.
582b6695bd0SMike Smith.Sh COMPATIBILITY
5836b74f9b7SNate LawsonACPI is only found and supported on i386/ia32, ia64, and amd64.
584b6695bd0SMike Smith.Sh SEE ALSO
5855413d9e0SWes Peters.Xr kenv 1 ,
586673fbcacSRuslan Ermilov.Xr acpi_thermal 4 ,
5875413d9e0SWes Peters.Xr device.hints 5 ,
588f0da5f56STakanori Watanabe.Xr loader.conf 5 ,
589f64a0a56SRobert Watson.Xr acpiconf 8 ,
590f0da5f56STakanori Watanabe.Xr acpidump 8 ,
591297835bcSNate Lawson.Xr config 8 ,
592297835bcSNate Lawson.Xr iasl 8
593f0da5f56STakanori Watanabe.Rs
594a627f55aSRuslan Ermilov.%A "Compaq Computer Corporation"
595a627f55aSRuslan Ermilov.%A "Intel Corporation"
596a627f55aSRuslan Ermilov.%A "Microsoft Corporation"
597a627f55aSRuslan Ermilov.%A "Phoenix Technologies Ltd."
598a627f55aSRuslan Ermilov.%A "Toshiba Corporation"
599c25a3f8aSNate Lawson.%D August 25, 2003
600f0da5f56STakanori Watanabe.%T "Advanced Configuration and Power Interface Specification"
601aa4a335bSRuslan Ermilov.%U http://acpi.info/spec.htm
602f0da5f56STakanori Watanabe.Re
60387b6284aSRuslan Ermilov.Sh AUTHORS
60487b6284aSRuslan Ermilov.An -nosplit
605b6695bd0SMike SmithThe ACPI CA subsystem is developed and maintained by
606b6695bd0SMike SmithIntel Architecture Labs.
607b6695bd0SMike Smith.Pp
608b6695bd0SMike SmithThe following people made notable contributions to the ACPI subsystem
609b6695bd0SMike Smithin
610b6695bd0SMike Smith.Fx :
611718a5d6aSNate Lawson.An Michael Smith ,
61287b6284aSRuslan Ermilov.An Takanori Watanabe Aq takawata@jp.FreeBSD.org ,
61387b6284aSRuslan Ermilov.An Mitsuru IWASAKI Aq iwasaki@jp.FreeBSD.org ,
614b6695bd0SMike Smith.An Munehiro Matsuda ,
615718a5d6aSNate Lawson.An Nate Lawson ,
616b6695bd0SMike Smiththe ACPI-jp mailing list at
61787b6284aSRuslan Ermilov.Aq acpi-jp@jp.FreeBSD.org ,
618b6695bd0SMike Smithand many other contributors.
619b6695bd0SMike Smith.Pp
620b6695bd0SMike SmithThis manual page was written by
62187b6284aSRuslan Ermilov.An Michael Smith Aq msmith@FreeBSD.org .
622b6695bd0SMike Smith.Sh BUGS
62393870c05SNate LawsonMany BIOS versions have serious bugs that may cause system instability,
62493870c05SNate Lawsonbreak suspend/resume, or prevent devices from operating properly due to
62593870c05SNate LawsonIRQ routing problems.
62693870c05SNate LawsonUpgrade your BIOS to the latest version available from the vendor before
62781ae4b8dSRuslan Ermilovdeciding it is a problem with
62893870c05SNate Lawson.Nm .
62913a8aa9fSNate Lawson.Pp
63013a8aa9fSNate LawsonThe
63113a8aa9fSNate Lawson.Nm
63213a8aa9fSNate LawsonCPU idle power management drive conflicts with the local APIC (LAPIC)
63313a8aa9fSNate Lawsontimer.
634ccf87a10SAlexander MotinDisable the local APIC timer with
635ccf87a10SAlexander Motin.Va hint.apic.0.clock=0
63681ae4b8dSRuslan Ermilovor do not use the
63703335ffbSYaroslav Tykhiy.Li C3
638ccf87a10SAlexander Motinand deeper states if the local APIC timer is enabled.
639