On Fri, Mar 6, 2009 at 5:08 PM, Kevin O'Connor kevin@koconnor.net wrote:
On Fri, Mar 06, 2009 at 03:33:03PM -0800, Joe Julian wrote:
You suggested, on the coreboot IRC channel, that I enable smbios in seabios to solve the missing mptable and RSDP problem. The reason those are turned off is because the comments for CONFIG_PIRTABLE, CONFIG_MPTABLE, COMFIG_SMBIOS, and CONFIG_ACPI all state, "for emulators". Since this is a bare metal install, wouldn't it be correct to have those options disabled since we need the real data rather than simulated data?
Linux, by default, wont use the acpi tables unless there is an smbios table. The current coreboot targets don't support building an smbios table. So, I programmed SeaBIOS to build a dummy smbios table when it is used with coreboot.
It's safe to leave all of:
#define CONFIG_PIRTABLE 1 #define CONFIG_MPTABLE 1 #define CONFIG_SMBIOS 1 #define CONFIG_ACPI 1
Linux has been happy without these defines for me, except that it says:
DMI not present or invalid.
//Here's a snippet from the log:
Ram Size=0xc0000000 init PNPBIOS table Scan for VGA option rom Attempting to init PCI bdf 00000200 Attempting to map option rom on dev 00000200 Option rom sizing returned f5000000 fffe0000 Inspecting possible rom at f5000000 (vd=014110de bdf=00000200) Copying option rom from f5000000 to 000c0000 Running option rom at 0000c000:00000003 Turning on vga console Starting SeaBIOS
init keyboard i8042 ctr old=00000000 new=00000020 ps2_recvbyte timeout i8042 ctr old=00000000 new=00000020 i8042 ctr old=00000000 new=00000020 i8042 ctr old=00000061 new=00000060 keyboard initialized init lpt init serial init mouse e820 map has 7 items: 0: 0000000000000000 - 000000000009fc00 = 1 1: 000000000009fc00 - 00000000000a0000 = 2 2: 00000000000f0000 - 0000000000100000 = 2 3: 0000000000100000 - 000000007fff0000 = 1 4: 000000007fff0000 - 0000000080000000 = 2 5: 0000000080000000 - 00000000c0000000 = 1 6: 0000000100000000 - 0000000140000000 = 1 final bios_table_addr: 0x000faa4c (used 84%) init boot device ordering
//This is the log if I enable them:
Copying PIR from 7fff0000 to 000fa9a0 Copying ACPI RSDP from 7fff0400 to 000fa9f0 Copying MPTABLE from 7fff1800/7fff1810 to 000faa10 init SMBIOS tables Found 4 cpu(s) SMBIOS table addr=0x000fb060 Ram Size=0xc0000000 init PNPBIOS table Scan for VGA option rom Attempting to init PCI bdf 00000200 Attempting to map option rom on dev 00000200 Option rom sizing returned f5000000 fffe0000 Inspecting possible rom at f5000000 (vd=014110de bdf=00000200) Copying option rom from f5000000 to 000c0000 Running option rom at 0000c000:00000003 Turning on vga console Starting SeaBIOS
init keyboard i8042 ctr old=00000000 new=00000020 ps2_recvbyte timeout i8042 ctr old=00000000 new=00000020 i8042 ctr old=00000000 new=00000020 i8042 ctr old=00000061 new=00000060 keyboard initialized init lpt init serial init mouse e820 map has 7 items: 0: 000000000009fc00 - 00000000000a0000 = 2 1: 00000000000f0000 - 0000000000100000 = 2 2: 0f13000031204d4d - 0f1200003120604d = 268435535 3: 0014001314000001 - 0014501313000001 = 18022417 4: 20000b2000000000 - 20000b2000000000 = 294656 5: 000000008000007f - 00000000c000007f = 1 6: 0000000100000000 - 0000000140000000 = 1 final bios_table_addr: 0x000fb1df (used 103%) bios_table_end_addr overflow!
Mappings 2 & 3 look pretty bad. Is it because the tables were too big, or are the tables too big because of the broken map?
How do I make more room for the tables?
Thanks, Myles