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

Reply via email to