James Hendricks wrote:
All the code I've seen requires that you build either an ACPI table or an Intel MP 1.x table.
I'll assume you meant APIC (Advanced Programmable Interrupt Controller) instead of ACPI. (Isn't that Advanced Computer Power Interface?) Or is ACPI something different? (too many acronyms)
Looks like I have to build both APIC and Intel MP tables; I am not too excited about that. I guess I'll just printk() everything and hardwire everything in to start with. I don't even think I need to store the information where the bios would; I just need to assign variables. I have no idea how we are going to do autodetection..
I meant ACPI. :) ACPI is mainly associated with power management right now, but it is a lot more than just that. ACPI tables are information tables found on all new computers, built by BIOS as a completely platform independent way of initializing CPUs, routing interrupts, managing power, and other stuff.
Check out arch/ia64 and "grep -i acpi" in there. You'll see where the kernel boot code reads CPU and interrupt info from ACPI tables.
But for X86 that is not the path of least resistence -- you'll still have to write or port ACPI infrastructure to X86. To accomplish your goal quickly it is probably best to simply create the tables expected by mpparse.c...
I am working with kernel 2.4.0-test1; the only file I believe I need to edit is mpparse.c. Does this sound right to everybody?
Yes but where does mpparse get its info from?
I don't see any way around building a memory map in FreeBIOS for anything more than simple configurations...
Jeff