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