Page 1 of 1
MPS table in Intel Core 2 Quad
Posted: Thu Jan 31, 2008 1:11 pm
by alkot
I'm adding SMP support in my OS and testing it at many HW configs. For this moment parsing only Intel MPS tables was good -- I can run my OS on 4 cores per CPU Dual Xeon (8 CPU). But today I got Intel Core 2 Quad CPU on Intel S3000AH motherboard and MPS tables shows only 1 CPU entry. Does this mean that MPS tables are obsolete for this brand new system and i should parse ACPI tables? Or this tables broken?
Where can I find simple source code to understand it (Only MADT parsing)?
Posted: Thu Jan 31, 2008 1:54 pm
by quok
Yes, MPS tables are obsolete. The latest version of the standard is 1.4, and that's quite old. There's quite a few threads on this already, too.
You'll need to implement parsing the RSDP and the RSDT to find the MADT (which actually uses APIC as the table signature, not MADT. That seems to confuse some people). I have some code that'll parse these tables. I can PM it to you if interested. But it's not very hard to figure out just from reading the ACPI spec. I believe the latest version is 3.0b and can be found at
http://acpi.info.
While you're at it, you might as well also look for and parse the XSDT. It's just an extended version of the RSDT, using 64 bit addresses instead of 32 bit addresses.
Posted: Fri Feb 01, 2008 4:04 am
by AJ
Thanks for that valuable information. I, too, was just parsing the MP tables and wondering why I couldn't find more than one CPU on some arch's. Looks like I need to read up on
another standard
Cheers,
Adam
Posted: Fri Feb 01, 2008 6:19 am
by alkot
Yes, quok, big thanks for the info
Good starting point is
ncpu utility from FreeBSD