Public bug reported: Binary package hint: linux-source-2.6.22
I've been debugging an ACPI-disabled-at-boot failure on an Acer Travelmate C104TCi (C100) with a Wistron BIOS. [ 0.000000] DMI 2.3 present. [ 0.000000] ACPI: RSDP 000EC2D0, 0014 (r0 Acer ) [ 0.000000] ACPI: 00000000, F000FF5A (r195 Zÿ F000FF57 Zÿ F000FEA5) [ 27.751333] ACPI: Core revision 20070126 [ 27.751501] ACPI Exception (tbxface-0618): AE_NO_ACPI_TABLES, While loading namespace from ACPI tables [20070126] [ 27.751654] ACPI: Unable to load the System Description Tables [ 27.783596] ACPI: Interpreter disabled. There are several references to this problem around the net and a couple of invasive kernel patches that don't address the cause. I wrote a user-space application that scans memory using the method described in the ACPI specifications. It reports: $ sudo ./find-RSDP find-RSDP version 0.1 © 2007 TJ http://intuitivenipple.net Licensed on the terms of GPL version 3 Finds ACPI Root System Descriptor Pointer (for supported BIOS's only). 0x00000000FFFFFFFF Memory size 0x00000000000EC2D0 "RSD PTR " 0x00000000000FE030 "RSD PTR " RSDT @ 0FFE0000 OEM: "Acer " sum: 0 0x0000000005FBFE10 "RSD PTR " Unfortunately the kernel function arch/i386/kernel/acpi/boot.c::acpi_scan_rsdp() doesn't fully implement the ACPI specification - it simply looks for the first "RSD PTR " signature but doesn't check it has found a valid table by calculating the checksum. Because this series of BIOSs happen to have multiple instances of "RSD PTR " and an invalid instance appears first in memory, the kernel tries to use an invalid pointer to the RSDT, leading to the problems. I've prepared a simple patch that calculates the checksum and only returns an RSDT pointer if the checksum == 0. ** Affects: linux-source-2.6.22 (Ubuntu) Importance: High Assignee: Ubuntu Kernel ACPI Team (ubuntu-kernel-acpi) Status: Confirmed -- ACPI acpi_scan_rsdp() breaks some PCs by not honouring ACPI specification https://bugs.launchpad.net/bugs/144336 You received this bug notification because you are a member of Ubuntu Bugs, which is the bug contact for Ubuntu. -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
