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