From bbbab1a75e99e51aae7a37672d5d9d700438b0c1 Mon Sep 17 00:00:00 2001 From: Tom Rhodes Date: Mon, 16 Feb 2004 22:46:14 +0000 Subject: [PATCH] Merge the last updates I have for ACPI. This just includes markup fixes and the like. --- .../books/handbook/config/chapter.sgml | 119 +++++++++--------- 1 file changed, 62 insertions(+), 57 deletions(-) diff --git a/en_US.ISO8859-1/books/handbook/config/chapter.sgml b/en_US.ISO8859-1/books/handbook/config/chapter.sgml index cb0a02487d..557b2b8309 100644 --- a/en_US.ISO8859-1/books/handbook/config/chapter.sgml +++ b/en_US.ISO8859-1/books/handbook/config/chapter.sgml @@ -2332,7 +2332,7 @@ device_probe_and_attach: cbb0 attach returned 12 ACPI-CA interpreter continue to appear. This document is intended to help you assist the &os; - ACPI maintainers in identifying the culprit + ACPI maintainers in identifying the root cause of problems you observe and debugging and developing a solution. Thanks for reading this and we hope we can solve your system's problems. @@ -2350,7 +2350,7 @@ device_probe_and_attach: cbb0 attach returned 12 Description of the buggy behavior, including system type and model and anything that causes the bug to appear. Also, please note as accurately as possible when the bug began - occuring if it is new for you. + occurring if it is new for you. @@ -2397,7 +2397,8 @@ device_probe_and_attach: cbb0 attach returned 12 us track the problem and resolve it. Do not send a PR without emailing acpi-jp first as we use PRs as reminders of existing problems, not a - reporting mechanism. + reporting mechanism. It is likely that your problem has been + reported by someone before. @@ -2411,11 +2412,11 @@ device_probe_and_attach: cbb0 attach returned 12 controllers, and bus enumeration. Most systems implement less than the full standard. For instance, a desktop system usually only implements the bus enumeration parts while a laptop might - have a lot of cooling and battery management support as well. - Laptops also have suspend and resume, with their own associated + have cooling and battery management support as well. Laptops + also have suspend and resume, with their own associated complexity. - An ACPIM-compliant system has various + An ACPI-compliant system has various components. The BIOS and chipset vendors provide various fixed tables (e.g., FADT) in memory that specify things like the APIC @@ -2429,11 +2430,12 @@ device_probe_and_attach: cbb0 attach returned 12 device drivers and the kernel to accept information from the ACPI subsystem. For &os;, Intel has provided an interpreter (ACPI-CA) that is - shared with Linux and NetBSD. The path to - ACPI-CA is - src/sys/contrib/dev/acpica. The glue code - that allows ACPI-CA to work on &os; is in - src/sys/dev/acpica/Osd. Finally, drivers + shared with Linux and NetBSD. The path to the + ACPI-CA source code is + src/sys/contrib/dev/acpica. + The glue code that allows ACPI-CA to work on + &os; is in + src/sys/dev/acpica/Osd. Finally, drivers that implement various ACPI devices are found in src/sys/dev/acpica. @@ -2475,7 +2477,8 @@ device_probe_and_attach: cbb0 attach returned 12 S4OS, and S5. If was one (1), I would have S4BIOS - instead of S4OS. + support instead of S4 + OS. When testing suspend/resume, start with S1, if supported. This state is most @@ -2539,8 +2542,7 @@ device_probe_and_attach: cbb0 attach returned 12 the BIOS configures interrupts before boot, correctness of the APIC (MADT) table, and routing of the - SCI. There are several patches and ad-hoc - workarounds that may help. + SCI. Interrupt storms can be distinguished from lost interrupts by checking the output of vmstat @@ -2550,8 +2552,12 @@ device_probe_and_attach: cbb0 attach returned 12 system appears hung, try breaking to DDB (CTRL ALTESC on - console) and type show interrupts. Patches - to try if you get an interrupt storm are: + console) and type . + + Your best hope when dealing with interrupt problems is to + try disabling APIC support with + 1 in + loader.conf. @@ -2570,11 +2576,23 @@ device_probe_and_attach: cbb0 attach returned 12 Then, try to isolate the problem by booting with ACPI disabled. If that works, you can - isolate the ACPI subsystem by using various + isolate the ACPI subsystem by using various values of . See the &man.acpi.4; manual page for some examples. + + System Powers Up After Suspend or Shutdown + First, try setting + 0 + in &man.loader.conf.5;. This keeps ACPI + from disabling various events during the shutdown process. + Some systems need this value set to 1 (the + default) for the same reason. This usually fixes + the problem of a system powering up spontaneously after a + suspend or poweroff. + + Other Problems @@ -2597,8 +2615,7 @@ device_probe_and_attach: cbb0 attach returned 12 is usually manifested by kernel console messages like this: - ACPI-1287: *** Error: Method execution failed - [\\_SB_.PCI0.LPC0.FIGD._STA] (Node 0xc3f6d160), AE_NOT_FOUND + ACPI-1287: *** Error: Method execution failed [\\_SB_.PCI0.LPC0.FIGD._STA] (Node 0xc3f6d160), AE_NOT_FOUND Often, you can resolve these problems by updating your BIOS to the latest revision. Most console @@ -2657,44 +2674,28 @@ device_probe_and_attach: cbb0 attach returned 12 various Windows versions. You can tell &os; to claim it is any OS to see if this fixes problems you may have. An easy way to override this is to set - =Windows 2001 + =Windows 2001 in /boot/loader.conf or other similar - strings you find in the ASL. You could - also manually change references to _OS or - _OS_ (they are the same thing) to check for - &os;. For example: - - If (MCTH (\_OS, "Microsoft Windows NT")) -{ - Return (PIC1) -} -Else -{ - Return (PIC0) -} - - Modified to look for &os;: - - If (MCTH (\_OS, "FreeBSD")) -{ - Return (PIC1) -} -Else -{ - Return (PIC0) -} + strings you find in the ASL. Missing Return statements - Explaination of these things. + Some methods do not explicitly return a value as the + standard requires. While ACPI-CA + does not handle this, &os; has a workaround that allows it to + return the value implicitly. You can also add explicit + Return statements where required if you know what value should + be returned. To force iasl to compile the + ASL, use the + flag. Overriding the Default <acronym>AML</acronym> - After you customize your.asl, it - will need rebuilt, run: + After you customize your.asl, you + will want to compile it, run: &prompt.root; iasl your.asl @@ -2708,13 +2709,14 @@ Else filename for iasl. You can load this instead of your BIOS's buggy copy (which is still present in flash memory) by editing - /boot/loader.conf as follows: + /boot/loader.conf as + follows: acpi_dsdt_load="YES" acpi_dsdt_name="/boot/DSDT.aml" Be sure to copy your DSDT.aml to the - /boot directory. + /boot directory. @@ -2722,15 +2724,17 @@ acpi_dsdt_name="/boot/DSDT.aml" ACPI The ACPI driver has a very flexible - debuging facility. It allows you to specify a set of subsystems + debugging facility. It allows you to specify a set of subsystems as well as the level of verbosity. The subsystems you wish to debug are specified as layers and are broken down into ACPI-CA components (ACPI_ALL_COMPONENTS) and ACPI hardware support (ACPI_ALL_DRIVERS). The verbosity of debugging output is specified as the level and ranges from ACPI_LV_ERROR (just report - errors) to ACPI_LV_VERBOSE (everything). In practice, you will - want to use a serial console to log the output if it is so long + errors) to ACPI_LV_VERBOSE (everything). The + level is a bitmask so multiple options can be set + at once, separated by spaces. In practice, you will want to use + a serial console to log the output if it is so long it flushes the console message buffer. A full list of the individual layers and levels is found in the &man.acpi.4; manual page. @@ -2748,10 +2752,11 @@ acpi_dsdt_name="/boot/DSDT.aml" ACPI_DEBUG=1 Install acpi.ko in - /boot/kernel and add your desired level and - layer to loader.conf. This example enables - debug messages for all ACPI-CA components and - all ACPI hardware drivers + /boot/kernel and add your + desired level and layer to loader.conf. + This example enables debug messages for all + ACPI-CA components and all + ACPI hardware drivers (CPU, LID, etc.) It will only output error messages, the least verbose level. @@ -2802,7 +2807,7 @@ debug.acpi.level="ACPI_LV_ERROR" DSDT debugging resource. - (Uses Compaq as an example but useful.) + (Uses Compaq as an example but generally useful.)