[coreboot] seaBIOS config options "for emulators"

Myles Watson mylesgw at gmail.com
Mon Mar 9 18:17:16 CET 2009


On Mon, Mar 9, 2009 at 9:00 AM, Myles Watson <mylesgw at gmail.com> wrote:
> On Fri, Mar 6, 2009 at 5:08 PM, Kevin O'Connor <kevin at 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?

Tables were too big.

> How do I make more room for the tables?

I set CONFIG_MAX_BIOSTABLE to 2048+512

Thanks,
Myles




More information about the coreboot mailing list