Skip to contentSkip to conversation

ACPI: RSDP - ERROR: Invalid checksum

DISCUSSION Klaus Muth 1 participant 4 messages Jun 7, 2005 – Jun 28, 2005 3 messages not in the archive ACPI

lore
Share & tools
lore

Klaus Muth

author
#0 lore raw

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]

author
#2 lore raw

Hi!

Ok, I do the Ingrid.

Am Dienstag, 7. Juni 2005 15:46 schrieb Klaus Muth:

Quoted 3 lines

ACPI: RSDP (v002 IBM ) @ 0x000fdfb0

Quoted 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]

author
#4 lore raw

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 * __init
acpi_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]

author
#6 lore raw

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() in drivers/acpi/tables.c fails 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