Bug 3297 - Acer Tablet C100 - Bios contains two "RSD PTR" signatures
Summary: Acer Tablet C100 - Bios contains two "RSD PTR" signatures
Status: REJECTED DUPLICATE of bug 2415
Alias: None
Product: ACPI
Classification: Unclassified
Component: Config-Tables (show other bugs)
Hardware: i386 Linux
: P2 low
Assignee: Wang, Zhenyu Z
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2004-08-28 23:44 UTC by Poul Flindt
Modified: 2004-11-17 19:23 UTC (History)
1 user (show)

See Also:
Kernel Version: 2.6.7
Subsystem:
Regression: ---
Bisected commit-id:


Attachments
check rsdp value (751 bytes, patch)
2004-09-13 03:37 UTC, Wang, Zhenyu Z
Details | Diff
brute force searching for sane rsdp (3.03 KB, patch)
2004-09-16 01:06 UTC, Wang, Zhenyu Z
Details | Diff

Description Poul Flindt 2004-08-28 23:44:35 UTC
Distribution: 
Gentoo 2004.2 
 
Hardware Environment: 
Acer Tablet PC C100 
ACPI 2.0 Supported  
(This bug is actually caused by Acer taking a very liberal approach to reading 
the ACPI standard, and migth be kind of rare)  
 
Software Environment: 
Problem Description: 
During boot ACPI reports: 
	ACPI: RSDP: ("v000 Acer       ") @ 0x0ef30 
	CRC error !!! 
and the ACPI is disabled. 
 
Steps to reproduce: 
Ennable ACPI in the kernel 
Boot the laptop 
Check driver output with "dmesg" 
 
 
Posible solution: 
The bios contains two "RSD PTR" signatures. The first has CRC fields set to 
0x00 - therefore the CRC check fails. The second signature contains the 
correct CRC and pointers to the ACPI tables. 
Currently the ACPI driver only looks for the first signature, and then checks 
CRC, if it fails, ACPI is disabled. 
A sollution could be to keep looking for a valid signature and CRC. 
Hard coding the adress of the second signature into the driver, has proved to 
me that the ACPI does work, but this is (of course :-) no solution.
Comment 1 Len Brown 2004-09-02 18:58:24 UTC
maybe we want to use this bug as an excuse to consolidate
the two table scanners...
Comment 2 Wang, Zhenyu Z 2004-09-03 00:46:12 UTC
Could you attach dmesg and acpidmp output please?

Comment 3 Poul Flindt 2004-09-11 11:02:58 UTC
DMESG before changing the driver (The numbers after the first ACPI line is the
raw data at the first address in hex)

Linux version 2.6.7-gentoo-r11 (root@sleipner) (gcc version 3.3.3 20040412
(Gentoo Linux 3.3.3-r6, ssp-3.3.2-2, pie-8.7.6)) #36 Fri Aug 6 22:15:14 CEST 2004
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
 BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 000000000ffc0000 (usable)
 BIOS-e820: 000000000ffc0000 - 000000000ffe0000 (reserved)
 BIOS-e820: 000000000ffe0000 - 000000000ffe8000 (ACPI data)
 BIOS-e820: 000000000ffe8000 - 0000000010000000 (ACPI NVS)
 BIOS-e820: 00000000ffff0000 - 0000000100000000 (reserved)
255MB LOWMEM available.
On node 0 totalpages: 65472
  DMA zone: 4096 pages, LIFO batch:1
  Normal zone: 61376 pages, LIFO batch:14
  HighMem zone: 0 pages, LIFO batch:1
DMI 2.3 present.
ACPI: RSDP (v000 Acer  ) @ 0x000ec2d0
 52 53 44 20 50 54 52 20 0 41 63 65 72 20 20 0 0 0 0 0
 ACPI Checksum is 0x3da
 Length = 20
ACPI: No System Description Table (RSDT/XSDT) specified in RSDP
Built 1 zonelists
Kernel command line: BOOT_IMAGE=Gentoo26 ro root=306
Initializing CPU#0
CPU 0 irqstacks, hard=c0519000 soft=c0518000
PID hash table entries: 1024 (order 10: 8192 bytes)
Detected 798.534 MHz processor.
Using tsc for high-res timesource
Console: colour VGA+ 80x25
Memory: 254676k/261888k available (2997k kernel code, 6492k reserved, 1022k
data, 156k init, 0k highmem)
Checking if this processor honours the WP bit even in supervisor mode... Ok.
Calibrating delay loop... 1581.05 BogoMIPS
Dentry cache hash table entries: 32768 (order: 5, 131072 bytes)
Inode-cache hash table entries: 16384 (order: 4, 65536 bytes)
Mount-cache hash table entries: 512 (order: 0, 4096 bytes)
CPU:     After generic identify, caps: 0383f9ff 00000000 00000000 00000000
CPU:     After vendor identify, caps: 0383f9ff 00000000 00000000 00000000
CPU: L1 I cache: 16K, L1 D cache: 16K
CPU: L2 cache: 512K
CPU:     After all inits, caps: 0383f9ff 00000000 00000000 00000040
Intel machine check architecture supported.
Intel machine check reporting enabled on CPU#0.
CPU: Intel Mobile Intel(R) Pentium(R) III CPU - M   800MHz stepping 04
Enabling fast FPU save and restore... done.
Enabling unmasked SIMD FPU exception support... done.
Checking 'hlt' instruction... OK.
NET: Registered protocol family 16
PCI: PCI BIOS revision 2.10 entry at 0xf0200, last bus=0
PCI: Using configuration type 1
mtrr: v2.0 (20020519)
ACPI: Subsystem revision 20040326
ACPI: Interpreter disabled.
SCSI subsystem initialized
Linux Kernel Card Services
  options:  [pci] [cardbus] [pm]
usbcore: registered new driver usbfs
usbcore: registered new driver hub
PCI: Probing PCI hardware
PCI: Probing PCI hardware (bus 00)
PCI: Using IRQ router PIIX/ICH [8086/7198] at 0000:00:07.0
PCI: IRQ 0 for device 0000:00:03.0 doesn't match PIRQ mask - try pci=usepirqmask
PCI: Found IRQ 10 for device 0000:00:03.0
PCI: Sharing IRQ 10 with 0000:00:02.0
PCI: Sharing IRQ 10 with 0000:00:03.1
NET: Registered protocol family 23
Machine check exception polling timer started.
apm: BIOS version 1.2 Flags 0x07 (Driver version 1.16ac)
audit: initializing netlink socket (disabled)
audit(1094931658.833:0): initialized
devfs: 2004-01-31 Richard Gooch (rgooch@atnf.csiro.au)
devfs: boot_options: 0x1
Installing knfsd (copyright (C) 1996 okir@monad.swb.de).
NTFS driver 2.1.14 [Flags: R/O].
udf: registering filesystem
Supermount version 2.0.4 for kernel 2.6
Initializing Cryptographic API
mice: PS/2 mouse device common for all mice
ts: Compaq touchscreen protocol output
input: PC Speaker
serio: i8042 AUX port at 0x60,0x64 irq 12
Synaptics Touchpad, model: 1
 Firmware: 5.8
 180 degree mounted touchpad
 Sensor: 38
 new absolute packet format
 Touchpad has extended capability bits
 -> 4 multi-buttons, i.e. besides standard buttons
 -> multifinger detection
 -> palm detection
input: SynPS/2 Synaptics TouchPad on isa0060/serio1
serio: i8042 KBD port at 0x60,0x64 irq 1
input: AT Translated Set 2 keyboard on isa0060/serio0
Real Time Clock Driver v1.12
Linux agpgart interface v0.100 (c) Dave Jones
Serial: 8250/16550 driver $Revision: 1.90 $ 8 ports, IRQ sharing disabled
PCI: Found IRQ 11 for device 0000:00:00.2
PCI: Sharing IRQ 11 with 0000:00:00.1
Using anticipatory io scheduler
Floppy drive(s): fd0 is unknown type 15 (usb?)
floppy0: no floppy controllers found
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
loop: loaded (max 8 devices)
nbd: registered device at major 43
8139too Fast Ethernet driver 0.9.27
PCI: Found IRQ 10 for device 0000:00:04.0
PCI: Sharing IRQ 10 with 0000:00:05.0
PCI: Sharing IRQ 10 with 0000:00:07.2
eth0: RealTek RTL8139 at 0xd0800000, 00:00:e2:98:a6:0e, IRQ 10
eth0:  Identified 8139 chip type 'RTL-8100B/8139D'
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
PIIX4: IDE controller at PCI slot 0000:00:07.1
PIIX4: chipset revision 0
PIIX4: not 100% native mode: will probe irqs later
    ide0: BM-DMA at 0x8440-0x8447, BIOS settings: hda:DMA, hdb:pio
hda: ST94811A, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hda: max request size: 1024KiB
hda: 78140160 sectors (40007 MB) w/8192KiB Cache, CHS=16383/255/63, UDMA(33)
 /dev/ide/host0/bus0/target0/lun0: p2 p3 < p5 p6 p7 >
PCI: Found IRQ 10 for device 0000:00:03.0
PCI: Sharing IRQ 10 with 0000:00:02.0
PCI: Sharing IRQ 10 with 0000:00:03.1
Yenta: CardBus bridge found at 0000:00:03.0 [1025:101b]
Yenta: ISA IRQ mask 0x0238, PCI irq 10
Socket status: 30000006
PCI: Found IRQ 10 for device 0000:00:03.1
PCI: Sharing IRQ 10 with 0000:00:02.0
PCI: Sharing IRQ 10 with 0000:00:03.0
Yenta: CardBus bridge found at 0000:00:03.1 [1025:101b]
Yenta: ISA IRQ mask 0x0238, PCI irq 10
Socket status: 30000410
USB Universal Host Controller Interface driver v2.2
PCI: Found IRQ 10 for device 0000:00:07.2
PCI: Sharing IRQ 10 with 0000:00:04.0
PCI: Sharing IRQ 10 with 0000:00:05.0
uhci_hcd 0000:00:07.2: Intel Corp. 82440MX USB Universal Host Controller
uhci_hcd 0000:00:07.2: irq 10, io base 00008400
uhci_hcd 0000:00:07.2: new USB bus registered, assigned bus number 1
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
usbcore: registered new driver usblp
drivers/usb/class/usblp.c: v0.13: USB Printer Device Class driver
Initializing USB Mass Storage driver...
usbcore: registered new driver usb-storage
USB Mass Storage support registered.
usbcore: registered new driver wacom
drivers/usb/input/wacom.c: v1.30:USB Wacom Graphire and Wacom Intuos tablet driver
usbcore: registered new driver usbserial
drivers/usb/serial/usb-serial.c: USB Serial Driver core v2.0
drivers/usb/serial/usb-serial.c: USB Serial support registered for FTDI SIO
drivers/usb/serial/usb-serial.c: USB Serial support registered for FTDI 8U232AM
Compatible
drivers/usb/serial/usb-serial.c: USB Serial support registered for FTDI FT232BM
Compatible
drivers/usb/serial/usb-serial.c: USB Serial support registered for USB-UIRT
Infrared Tranceiver
drivers/usb/serial/usb-serial.c: USB Serial support registered for
Home-Electronics TIRA-1 IR Transceiver
usbcore: registered new driver ftdi_sio
drivers/usb/serial/ftdi_sio.c: v1.4.0:USB FTDI Serial Converters Driver
drivers/usb/serial/usb-serial.c: USB Serial support registered for PL-2303
usbcore: registered new driver pl2303
drivers/usb/serial/pl2303.c: Prolific PL2303 USB to serial adaptor driver v0.10
i2c /dev entries driver
Advanced Linux Sound Architecture Driver Version 1.0.4 (Mon May 17 14:31:44 2004
UTC).
PCI: Found IRQ 11 for device 0000:00:00.1
PCI: Sharing IRQ 11 with 0000:00:00.2
PCI: Setting latency timer of device 0000:00:00.1 to 64
intel8x0_measure_ac97_clock: measured 49485 usecs
intel8x0: clocking to 48000
ALSA device list:
  #0: Intel 440MX at 0x7000, irq 11
NET: Registered protocol family 2
IP: routing cache hash table of 2048 buckets, 16Kbytes
TCP: Hash tables configured (established 16384 bind 32768)
NET: Registered protocol family 1
NET: Registered protocol family 17
PM: Reading pmdisk image.
PM: Resume from disk failed.
ReiserFS: hda6: found reiserfs format "3.6" with standard journal
ReiserFS: hda6: using ordered data mode
ReiserFS: hda6: journal params: device hda6, size 8192, journal first block 18,
max trans len 1024, max batch 900, max commit age 30, max trans age 30
ReiserFS: hda6: checking transaction log (hda6)
ReiserFS: hda6: Using r5 hash to sort names
VFS: Mounted root (reiserfs filesystem) readonly.
Mounted devfs on /dev
Freeing unused kernel memory: 156k freed
Adding 875500k swap on /dev/hda5.  Priority:-1 extents:1
hostap_crypt: registered algorithm 'NULL'
ipw2100: Intel(R) PRO/Wireless 2100 Network Driver, 0.44
ipw2100: Copyright(c) 2003-2004 Intel Corporation
eth0: link down
eth0: link up, 100Mbps, full-duplex, lpa 0x45E1




Comment 4 Poul Flindt 2004-09-11 11:23:20 UTC
dmesg output after changing driver to look at a higher address, unfortunately
the first part drowns in lost ticks (left out here), but ACPI works.

I dont have acpidump rigth now, so you it might take a while before I can post
the output from that.


Losing some ticks... checking if CPU frequency changed.
Losing too many ticks!
TSC cannot be used as a timesource.
Possible reasons for this are:
  You're running with Speedstep,
  You don't have DMA enabled for your hard disk (see hdparm),
  Incorrect TSC synchronization on an SMP system (see dmesg).
Falling back to a sane timesource now.
Losing some ticks... checking if CPU frequency changed.
spurious 8259A interrupt: IRQ7.
floppy0: no floppy controllers found
RAMDISK driver initialized: 16 RAM disks of 4096K size 1024 blocksize
loop: loaded (max 8 devices)
nbd: registered device at major 43
8139too Fast Ethernet driver 0.9.27
eth0: RealTek RTL8139 at 0xd080d000, 00:00:e2:98:a6:0e, IRQ 10
eth0:  Identified 8139 chip type 'RTL-8100B/8139D'
Uniform Multi-Platform E-IDE driver Revision: 7.00alpha2
ide: Assuming 33MHz system bus speed for PIO modes; override with idebus=xx
PIIX4: IDE controller at PCI slot 0000:00:07.1
PIIX4: chipset revision 0
PIIX4: not 100% native mode: will probe irqs later
    ide0: BM-DMA at 0x8440-0x8447, BIOS settings: hda:DMA, hdb:pio
hda: ST94811A, ATA DISK drive
ide0 at 0x1f0-0x1f7,0x3f6 on irq 14
hda: max request size: 1024KiB
hda: 78140160 sectors (40007 MB) w/8192KiB Cache, CHS=16383/255/63, UDMA(33)
 /dev/ide/host0/bus0/target0/lun0: p2 p3 < p5 p6 p7 >
Yenta: CardBus bridge found at 0000:00:03.0 [1025:101b]
Yenta: ISA IRQ mask 0x0038, PCI irq 10
Socket status: 30000006
Yenta: CardBus bridge found at 0000:00:03.1 [1025:101b]
Yenta: ISA IRQ mask 0x0038, PCI irq 10
Socket status: 30000410
USB Universal Host Controller Interface driver v2.2
uhci_hcd 0000:00:07.2: Intel Corp. 82440MX USB Universal Host Controller
uhci_hcd 0000:00:07.2: irq 10, io base 00008400
uhci_hcd 0000:00:07.2: new USB bus registered, assigned bus number 1
hub 1-0:1.0: USB hub found
hub 1-0:1.0: 2 ports detected
usbcore: registered new driver usblp
drivers/usb/class/usblp.c: v0.13: USB Printer Device Class driver
Initializing USB Mass Storage driver...
usbcore: registered new driver usb-storage
USB Mass Storage support registered.
usbcore: registered new driver wacom
drivers/usb/input/wacom.c: v1.30:USB Wacom Graphire and Wacom Intuos tablet driver
usbcore: registered new driver usbserial
drivers/usb/serial/usb-serial.c: USB Serial Driver core v2.0
drivers/usb/serial/usb-serial.c: USB Serial support registered for FTDI SIO
drivers/usb/serial/usb-serial.c: USB Serial support registered for FTDI 8U232AM
Compatible
drivers/usb/serial/usb-serial.c: USB Serial support registered for FTDI FT232BM
Compatible
drivers/usb/serial/usb-serial.c: USB Serial support registered for USB-UIRT
Infrared Tranceiver
drivers/usb/serial/usb-serial.c: USB Serial support registered for
Home-Electronics TIRA-1 IR Transceiver
usbcore: registered new driver ftdi_sio
drivers/usb/serial/ftdi_sio.c: v1.4.0:USB FTDI Serial Converters Driver
drivers/usb/serial/usb-serial.c: USB Serial support registered for PL-2303
usbcore: registered new driver pl2303
drivers/usb/serial/pl2303.c: Prolific PL2303 USB to serial adaptor driver v0.10
i2c /dev entries driver
Advanced Linux Sound Architecture Driver Version 1.0.4 (Mon May 17 14:31:44 2004
UTC).
PCI: Setting latency timer of device 0000:00:00.1 to 64
intel8x0_measure_ac97_clock: measured 99382 usecs
intel8x0: clocking to 48000
ALSA device list:
  #0: Intel 440MX at 0x7000, irq 11
NET: Registered protocol family 2
IP: routing cache hash table of 2048 buckets, 16Kbytes
TCP: Hash tables configured (established 16384 bind 32768)
NET: Registered protocol family 1
NET: Registered protocol family 17
PM: Reading pmdisk image.
PM: Resume from disk failed.
ACPI: (supports S0 S3 S4 S4bios S5)
ReiserFS: hda6: found reiserfs format "3.6" with standard journal
ReiserFS: hda6: using ordered data mode
ReiserFS: hda6: journal params: device hda6, size 8192, journal first block 18,
max trans len 1024, max batch 900, max commit age 30, max trans age 30
ReiserFS: hda6: checking transaction log (hda6)
ReiserFS: hda6: Using r5 hash to sort names
VFS: Mounted root (reiserfs filesystem) readonly.
Mounted devfs on /dev
Freeing unused kernel memory: 156k freed
Adding 875500k swap on /dev/hda5.  Priority:-1 extents:1
hostap_crypt: registered algorithm 'NULL'
ipw2100: Intel(R) PRO/Wireless 2100 Network Driver, 0.44
ipw2100: Copyright(c) 2003-2004 Intel Corporation
eth0: link up, 100Mbps, full-duplex, lpa 0x45E1
Comment 5 Wang, Zhenyu Z 2004-09-13 03:35:32 UTC
Good finding! I think we should check rsdp value in table before checksum.
Pls, try patch below to see if it works.
Comment 6 Wang, Zhenyu Z 2004-09-13 03:37:18 UTC
Created attachment 3662 [details]
check rsdp value
Comment 7 Poul Flindt 2004-09-14 04:09:29 UTC
This works on the acer c100, since the rsdp in the bad header happens to be NULL.
I disagree on the order of checking, it is nescessary to do the checksum, since
the  code in ../drivers/acpi/table.c checks it later and disables acpi if it fails.

The function acpi_compute_checksum in tables.c could be called from
../arch/i386/kernel/acpi/boot.c for each rsdp signature.
This would work even if someone left a rsdp header in the bios with a non-NULL
pointer but invalid checksum (allthough chances for this is small).
Comment 8 Wang, Zhenyu Z 2004-09-16 01:00:05 UTC
Yes, we should get rid of 'static' for using acpi_table_compute_checksum().
I think from the spec, doing brute-force search for rsdp is ok.
Comment 9 Wang, Zhenyu Z 2004-09-16 01:06:59 UTC
Created attachment 3670 [details]
brute force searching for sane rsdp
Comment 10 Len Brown 2004-11-17 19:22:00 UTC
need to delete, rather than fix this code
closing as a duplicate of bug 2415
Comment 11 Len Brown 2004-11-17 19:22:25 UTC

*** This bug has been marked as a duplicate of 1415 ***
Comment 12 Len Brown 2004-11-17 19:23:59 UTC
er that is twenty-FOUR-fifteen...

*** This bug has been marked as a duplicate of 2415 ***

Note You need to log in before you can comment on or make changes to this bug.