Am Montag, den 18.03.2013, 15:13 +0100 schrieb Christian Gmeiner:
2013/3/18 Paul Menzel paulepanter@users.sourceforge.net:
using the AMD/ATI based ASRock E350M1 [1] with coreboot and SeaBIOS 1.7.2.1 as a payload and GRUB 2 (1.99-27 from Debian Sid/unstable) on the hard drive, letting coreboot load the VGA Option ROM and disabling »Option ROMs« in the menu »BIOS interfaces«
config OPTIONROMS bool "Option ROMS" default y # I set it to n. help Support finding and running option roms during POST.
I only see »AMD Wrestler …« printed to the screen (from the VGA Option ROM loaded by coreboot I guess) and I neither see the SeaBIOS header(?) with version nor the bootmenu. GRUB 2 does not show its (terminal) menu either and just shows funny, colorful characters covering the whole screen.
http://www.coreboot.org/SeaBIOS#coreboot - do not load the vga option rom in coreboot - do it in seabios.
Yes, thanks. Though I assumed »best results« would mean, that when using coreboot for loading the VGA Option ROM, that it might decrease performance or something like that and not that Linux does not find the ROM at all. If that is a known issue, a note should be added to the Kconfig description or if coreboot is chosen as a target, then the Option ROM option should be enabled automatically, right? If yes, please say so and I am going to try to come up with a patch.
Thanks,
Paul
Paul Menzel wrote:
http://www.coreboot.org/SeaBIOS#coreboot - do not load the vga option rom in coreboot - do it in seabios.
Yes, thanks. Though I assumed »best results« would mean
Please don't assume. When something is unclear, creating an opportunity for assumption, then documentation and/or code should be improved, so that no assumption is needed.
not that Linux does not find the ROM at all. If that is a known issue, a note should be added to the Kconfig description
It's quite natural since coreboot is not equipped to run option ROMs; it does not have any BIOS interrupt services, which option ROMs typically rely on, since option ROMs are a BIOS concept.
or if coreboot is chosen as a target, then the Option ROM option should be enabled automatically, right?
Which option ROM option are you talking about? Please be specific, use the CONFIG_ name. And since discussion now covers both coreboot and SeaBIOS it helps further if you specify which project the particular option is in.
There are use cases both for coreboot running option ROMs and SeaBIOS running option ROMs, regardless of how SeaBIOS was started.
I tend to agree that coreboot should default to not run option ROMs, and possibly the SeaBIOS configuration generated by the coreboot build files should enable SeaBIOS running the option ROM in that case, but it's not trivial to find a way that makes sense for every case. Feel free to think about it and propose an improvement, it can probably be better than it is at the moment.
//Peter
Am Dienstag, den 19.03.2013, 18:37 +0100 schrieb Peter Stuge:
Paul Menzel wrote:
http://www.coreboot.org/SeaBIOS#coreboot - do not load the vga option rom in coreboot - do it in seabios.
Yes, thanks. Though I assumed »best results« would mean
Please don't assume. When something is unclear, creating an opportunity for assumption, then documentation and/or code should be improved, so that no assumption is needed.
You are right. Though that’s why I am bringing this up, so when I am more knowledgeable I can improve the Wiki.
not that Linux does not find the ROM at all. If that is a known issue, a note should be added to the Kconfig description
It's quite natural since coreboot is not equipped to run option ROMs; it does not have any BIOS interrupt services, which option ROMs typically rely on, since option ROMs are a BIOS concept.
Ah, I forgot that. Though it looked like the AMD/ATI Wrestler VGA option ROM was run as something was printed to the screen and at least the Linux console worked – no kernel mode setting (KMS) though.
The .config for *coreboot* has the following set.
CONFIG_VGA_BRIDGE_SETUP=y CONFIG_VGA_ROM_RUN=y CONFIG_ON_DEVICE_ROM_RUN=y CONFIG_PCI_OPTION_ROM_RUN_REALMODE=y # CONFIG_PCI_OPTION_ROM_RUN_YABEL is not set
or if coreboot is chosen as a target, then the Option ROM option should be enabled automatically, right?
Which option ROM option are you talking about? Please be specific, use the CONFIG_ name.
Sorry it was stripped in Christian’s reply. I talk about the following Kconfig option in SeaBIOS.
config OPTIONROMS bool "Option ROMS" default y # I set it to n. help Support finding and running option roms during POST.
And since discussion now covers both coreboot and SeaBIOS it helps further if you specify which project the particular option is in.
The above is from SeaBIOS.
There are use cases both for coreboot running option ROMs and SeaBIOS running option ROMs, regardless of how SeaBIOS was started.
For my use case, starting the ASRock E350M1 as fast as possible with coreboot → SeaBIOS → GRUB (hard drive) – it probably does not matter. Especially as it takes 10 seconds until the hard drive can be accessed.
I tend to agree that coreboot should default to not run option ROMs, and possibly the SeaBIOS configuration generated by the coreboot build files should enable SeaBIOS running the option ROM in that case, but it's not trivial to find a way that makes sense for every case. Feel free to think about it and propose an improvement, it can probably be better than it is at the moment.
Right. I remember that this was discussed for coreboot once. As I am using a revision from middle 2012
commit bdca15337bc9337f399b43290dc74cb598c5ec4d Author: Nico Huber nico.huber@secunet.com Date: Mon May 21 14:01:52 2012 +0200
libpayload: Remove orphaned delay from USB mass storage
[…]
Reviewed-on: http://review.coreboot.org/1071
it might be that it is not used there yet. Checking it, you already submitted that patch setting this correctly for coreboot.
commit be0ede412edb631892312d3972c8439fa7053203 Author: Peter Stuge peter@stuge.se Date: Sat Oct 27 14:17:04 2012 +0200
Run option ROMs in coreboot by default only if the payload is not SeaBIOS
[…]
Reviewed-on: http://review.coreboot.org/1637
So something similar could be setup for SeaBIOS. Though the option is set to yes by default. So it should not be needed.
To summarize, I have to figure out if coreboot is able to run the VGA option ROM correctly and if yes, why SeaBIOS, GRUB and Linux cannot use(?) it.
Thanks,
Paul
On Wed, Mar 20, 2013 at 01:21:48AM +0100, Paul Menzel wrote:
To summarize, I have to figure out if coreboot is able to run the VGA option ROM correctly and if yes, why SeaBIOS, GRUB and Linux cannot use(?) it.
If you want to use the option ROM during runtime, then SeaBIOS (and only SeaBIOS) should run the option ROM. Nothing else will work reliably.
SeaBIOS needs to run the rom, because otherwise the 16bit runtime hooks that the option ROM establishes will not be present during runtime.
Running the option ROM in both coreboot and SeaBIOS is not desirable, because option ROMs are not designed to initialize the hardware twice - it could easily get confused.
So, why does coreboot even have the ability to run option ROMs? This feature is useful when not using SeaBIOS, as it allows coreboot to initialize the VGA hardware. Some programs can talk directly to the vga hardware, but only if the vga hardware has been initialized. This doesn't work for anything that talks to the vga hardware via the VGA option ROM - all of these users must use SeaBIOS and must let SeaBIOS run the option ROM.
-Kevin