ACPI: RSDP - ERROR: Invalid checksum
Hi!
I've got here a brand new IBM xServer 236 and try to install debian sarge with kernel 2.6 and I'm now at the end of my knowledge. *sigh*.
When I had a test machine, all went fine, both SMT Processors were detected and the system was stable with 4 Processors. Now, that I have the production machine (newer BIOS), the thing drives me crazy...
Kernel 2.6.11-mm4 dmesg:
Linux version 2.6.11-mm4-ibm1 (root@alderaan) (gcc-Version 3.3.5 (Debian 1:3.3.5-12)) #1 SMP PREEMPT Fri Jun 3 10:29:57 CEST 2005 BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009c000 (usable)
BIOS-e820: 000000000009c000 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 00000000bffcae80 (usable)
BIOS-e820: 00000000bffcae80 - 00000000bffcf800 (ACPI data)
BIOS-e820: 00000000bffcf800 - 00000000c0000000 (reserved)
BIOS-e820: 00000000fec00000 - 0000000100000000 (reserved)
2175MB HIGHMEM available.
896MB LOWMEM available.
found SMP MP-table at 0009c140
On node 0 totalpages: 786378
DMA zone: 4096 pages, LIFO batch:1
Normal zone: 225280 pages, LIFO batch:16
HighMem zone: 557002 pages, LIFO batch:16
DMI 2.3 present.
ACPI: RSDP (v002 IBM ) @ 0x000fdfb0
Quoted 1 line
Quoted 1 line
Quoted 1 line
ERROR: Invalid checksum
Intel MultiProcessor Specification v1.4
Virtual Wire compatibility mode.
OEM ID: IBM ENSW Product ID: REDWOOD SMP APIC at: 0xFEE00000 Processor #0 15:4 APIC version 20
....
2.6.11 kernel with Zhenyu Z Wang's brute force searching for sane rsdp patch:
Linux version 2.6.11-ibm6 (root@alderaan) (gcc-Version 3.3.5 (Debian 1:3.3.5-12)
) #1 SMP Tue Jun 7 15:08:26 CEST 2005
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009c000 (usable)
BIOS-e820: 000000000009c000 - 00000000000a0000 (reserved)
BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 00000000bffcae80 (usable)
BIOS-e820: 00000000bffcae80 - 00000000bffcf800 (ACPI data)
BIOS-e820: 00000000bffcf800 - 00000000c0000000 (reserved)
BIOS-e820: 00000000fec00000 - 0000000100000000 (reserved)
2175MB HIGHMEM available.
896MB LOWMEM available.
found SMP MP-table at 0009c140
On node 0 totalpages: 786378
DMA zone: 4096 pages, LIFO batch:1
Normal zone: 225280 pages, LIFO batch:16
HighMem zone: 557002 pages, LIFO batch:16
DMI 2.3 present.
Wrong RSDP!! 0xbffcf780
ACPI: Unable to locate RSDP
Intel MultiProcessor Specification v1.4
Virtual Wire compatibility mode.
... yadda, yadda...
The RSDP found by acpidmp:
RSDP "IBM" @ 0x000fdfb0
0000: 52 53 44 20 50 54 52 20 75 49 42 4d 20 20 20 02 RSD PTR uIBM .
0010: 80 f7 fc bf ....
Problems: No SMT, PCI devices complaining in dmesg about invalid IRQ, probably buggy MP table, sometimes losing timer ticks on boot and kernel panic.
I also tried to correct the DSDT (sorry, I didn't know better), but the iasl did not find any errors, so what...
The intresting fact is, that the Redhat Enterprise Linux 3 Kernel (2.4.21 with 380 patches/1,6x10^6 lines of patch) has no problems with the RSDP. I could not identify the patch, which made the RSDP work....
Please help me! Make my 236 work with a minimum of patches...
Signature · 11 lines
Klaus Muth HAGOS eG Industriestr. 62 fon: (+49) 711 78805-86 EDV-Programmierung 70565 Stuttgart fax: (+49) 711 78805-35 http://www.hagos.de Germany mailto:[email protected] ------------------------------------------------------- This SF.Net email is sponsored by: NEC IT Guy Games. How far can you shotput a projector? How fast can you ride your desk chair down the office luge track? If you want to score the big prize, get to know the little guy. Play to win an NEC 61" plasma display: http://www.necitguy.com/?r=20
A message that is not in the archive (sent off-list or not yet received): [email protected]
Hi!
Ok, I do the Ingrid.
Am Dienstag, 7. Juni 2005 15:46 schrieb Klaus Muth:
Quoted 3 lines
ACPI: RSDP (v002 IBM ) @
0x000fdfb0Quoted 1 line
Quoted 1 line
Quoted 1 line
ERROR: Invalid checksum
[...]
Quoted 4 lines
The RSDP found by acpidmp:
RSDP "IBM" @0x000fdfb0
0000: 52 53 44 20 50 54 52 20 75 49 42 4d 20 20 20 02 RSD PTR uIBM .
0010: 80 f7 fc bf ....
Yeah, this is the problem. I downgraded the BIOS, now the kernel uses ACPI:
ACPI: RSDP (v000 IBM ) @ 0x000fdfc0
ACPI: RSDT (v001 IBM SERONYXP 0x00001000 IBM 0x45444f43) @ 0xbffcf780
ACPI: FADT (v001 IBM SERONYXP 0x00001000 IBM 0x45444f43) @ 0xbffcf700
ACPI: MADT (v001 IBM SERONYXP 0x00001000 IBM 0x45444f43) @ 0xbffcf640
ACPI: MCFG (v001 IBM SERONYXP 0x00001000 IBM 0x45444f43) @ 0xbffcf600
ACPI: DSDT (v001 IBM SERGEODE 0x00001000 MSFT 0x0100000b) @ 0x00000000
ACPI: PM-Timer IO Port: 0x588
ACPI: Local APIC address 0xfee00000
ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled) [and so on]
and acpidmp:
RSDP "IBM" @ 0x000fdfc0
0000: 52 53 44 20 50 54 52 20 77 49 42 4d 20 20 20 00 RSD PTR wIBM .
0010: 80 f7 fc bf
Is it possible, that IBM did update the version without updating the checksum? Now, that I downgraded the BIOS, the x236 runs like a charm with 4 processors and all PCI interrupts routed correctly ;). I strongly suspect now, that the linux acpi code is correct with saying "Checksum error" ;).
Signature · 11 lines
Klaus Muth HAGOS eG Industriestr. 62 fon: (+49) 711 78805-86 EDV-Programmierung 70565 Stuttgart fax: (+49) 711 78805-35 http://www.hagos.de Germany mailto:[email protected] ------------------------------------------------------- This SF.Net email is sponsored by: NEC IT Guy Games. How far can you shotput a projector? How fast can you ride your desk chair down the office luge track? If you want to score the big prize, get to know the little guy. Play to win an NEC 61" plasma display: http://www.necitguy.com/?r=20
A message that is not in the archive (sent off-list or not yet received): [email protected]
Am Mittwoch, 8. Juni 2005 15:29 schrieb Klaus Muth:
Quoted 3 lines
Hi!
Ok, I do the Ingrid.
AAARGH. Another Ingrid. Seems, that the acpi_find_rsdp() is rather optimistic about finding the RSDP [arch/i386/kernel/acpi/boot.c, acpi_scan_rsdp]:
/*
* Scan all 16-byte boundaries of the physical memory region for the
* RSDP signature.
*/
for (offset = 0; offset < length; offset += 16) {
if (strncmp((char *) (start + offset), "RSD PTR ", sig_len))
continue;
return (start + offset);
}
It seems to happen, that the IBM BIOS contains just the string "RSD PTR " exactly at a 16-Byte-Boundary before the real RSDP block, so the wrnog address is returned and acpi_table_init() in drivers/acpi/tables.c fails to checksum this block of course.
The patched up RedHat Kernel uses
static struct acpi_table_rsdp * __initacpi_find_root_pointer(void)
{
struct acpi_table_rsdp * rsdp;
/*
* Physical address is given
*/
/*
* Region 1) Search EBDA (low memory) paragraphs
*/
rsdp = acpi_tb_scan_memory_for_rsdp(__va(LO_RSDP_WINDOW_BASE),
LO_RSDP_WINDOW_SIZE);
if (rsdp)
return rsdp;
/*
* Region 2) Search upper memory: 16-byte boundaries in E0000h-F0000h */
rsdp = acpi_tb_scan_memory_for_rsdp(__va(HI_RSDP_WINDOW_BASE),
HI_RSDP_WINDOW_SIZE);
if (rsdp)
return rsdp;
printk(KERN_ERR "ACPI: System description tables not found\n"); return NULL;
}
to find the RSDP and seems to find it in Region 2. GRRRR.
Is there any patch to do the same with a vanilla 2.6 Kernel?
Signature · 11 lines
Klaus Muth HAGOS eG Industriestr. 62 fon: (+49) 711 78805-86 EDV-Programmierung 70565 Stuttgart fax: (+49) 711 78805-35 http://www.hagos.de Germany mailto:[email protected] ------------------------------------------------------- This SF.Net email is sponsored by: NEC IT Guy Games. How far can you shotput a projector? How fast can you ride your desk chair down the office luge track? If you want to score the big prize, get to know the little guy. Play to win an NEC 61" plasma display: http://www.necitguy.com/?r=20
A message that is not in the archive (sent off-list or not yet received): [email protected]
Am Donnerstag, 9. Juni 2005 11:13 schrieb Klaus Muth:
Quoted 4 lines
It seems to happen, that the IBM BIOS contains just the string "RSD PTR " exactly at a 16-Byte-Boundary before the real RSDP block, so the wrnog address is returned and
acpi_table_init()indrivers/acpi/tables.cfails to checksum this block of course.
[... 2.4 kernel finding the real RSDP ...]
Quoted 1 line
Is there any patch to do the same with a vanilla 2.6 Kernel?
Ahem. Did I hit a FAQ? If so: I could not find the answer. Could just someone be so kind to point me in the right direction?
TIA
Signature · 11 lines
Klaus Muth HAGOS eG Industriestr. 62 fon: (+49) 711 78805-86 EDV-Programmierung 70565 Stuttgart fax: (+49) 711 78805-35 http://www.hagos.de Germany mailto:[email protected] ------------------------------------------------------- SF.Net email is sponsored by: Discover Easy Linux Migration Strategies from IBM. Find simple to follow Roadmaps, straightforward articles, informative Webcasts and more! Get everything you need to get up to speed, fast. http://ads.osdn.com/?ad_id=7477&alloc_id=16492&op=click