Hello, This may be a dumb question, but I was wondering, can I use SeaBIOS as a payload without loading assembly blob roms? I ask this because I am going to be running custom VGA code after VM86 excicutes the vga rom and returns back to coreboot. I don't think this would be possible for SeaBIOS, because at that point it has already left coreboot. So I would like to just use SeaBIOS as my payload to boot disks only. Is this possible? If so what options do I need to define in SeaBIOS?
Hi,
You can either use LGPL VGA bios from http://www.nongnu.org/vgabios/ (use VGA only image) or you can use vga bios from kevin just right in the Seabios. But if you dont need any - I use SeaBIOS without any option ROMs and it works too. (grub boots and boots kernel)
Rudolf
On Tue, 12 May 2009 12:53:43 +0200, Rudolf Marek r.marek@assembler.cz wrote:
Hi,
You can either use LGPL VGA bios from http://www.nongnu.org/vgabios/ (use VGA only image) or you can use vga bios from kevin just right in the Seabios.
I don't know if this is an option, I don't want it to mess with any of the vga registers already set by coreboot.
But if you dont need any - I use SeaBIOS without any option ROMs and it works too. (grub boots and boots kernel)
Ok, but do you have vga output or just serial console. Will SeaBIOS know vga has already been initialized and send output to the vga screen?
On Tue, 12 May 2009 14:06:00 +0200, Rudolf Marek r.marek@assembler.cz wrote:
Ok, but do you have vga output or just serial console.
if VGA is initialized in coreboot -> use the free VGA bios as ROM for Seabios.
oh so it just acts as a dummy rom for SeaBIOS?
Joseph Smith wrote:
On Tue, 12 May 2009 14:06:00 +0200, Rudolf Marek r.marek@assembler.cz wrote:
Ok, but do you have vga output or just serial console.
if VGA is initialized in coreboot -> use the free VGA bios as ROM for Seabios.
oh so it just acts as a dummy rom for SeaBIOS?
Yes its not dummy - it is just normal VGA BIOS for VGA compatible hardware... So once you have initialized that to this state, you can use that.
Kevin now started the rewrite to C, I think you can find some preliminary version in vgasrc/ of SeaBIOS
Rudolf
On Tue, 12 May 2009 14:30:31 +0200, Rudolf Marek r.marek@assembler.cz wrote:
Joseph Smith wrote:
On Tue, 12 May 2009 14:06:00 +0200, Rudolf Marek r.marek@assembler.cz wrote:
Ok, but do you have vga output or just serial console.
if VGA is initialized in coreboot -> use the free VGA bios as ROM for Seabios.
oh so it just acts as a dummy rom for SeaBIOS?
Yes its not dummy - it is just normal VGA BIOS for VGA compatible hardware... So once you have initialized that to this state, you can use that.
Kevin now started the rewrite to C, I think you can find some preliminary version in vgasrc/ of SeaBIOS
So if it not a dummy vga bios what registers does it set to initialize graphics? The lower VESA compatable mmio registers? Is there a list of vga compatable hardware? Intel?
-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1
So if it not a dummy vga bios what registers does it set to initialize graphics?
The standard VGA one.
The lower VESA compatable mmio registers?
Not VESA compatible, because VESA does not define any std regs/
Is there a list of vga compatable hardware? Intel?
All HW is more or less VGA compatible, some cards may need special init or some special modesetting. Luc knows more.
Rudolf
Sorry I forgot to answer. Just dont put there any option rom (no BDF defines, no cbfs rom module)
Rudolf
On Tue, May 12, 2009 at 06:50:26AM -0400, Joseph Smith wrote:
This may be a dumb question, but I was wondering, can I use SeaBIOS as a payload without loading assembly blob roms? I ask this because I am going to be running custom VGA code after VM86 excicutes the vga rom and returns back to coreboot. I don't think this would be possible for SeaBIOS, because at that point it has already left coreboot. So I would like to just use SeaBIOS as my payload to boot disks only. Is this possible? If so what options do I need to define in SeaBIOS?
To turn off option rom processing in SeaBIOS, edit the file src/config.h and change the setting CONFIG_OPTIONROMS to 0.
However, most boot loaders (eg, grub) will require a working vga bios. Running the vgabios in an emulator wont register the 16 bit vga callbacks - SeaBIOS must run the vgabios in order for these callbacks to work.
It's not clear what your end goal is or what problem you're trying to fix - maybe an alternate solution is possible.
-Kevin
On Tue, 12 May 2009 21:26:04 -0400, Kevin O'Connor kevin@koconnor.net wrote:
On Tue, May 12, 2009 at 06:50:26AM -0400, Joseph Smith wrote:
This may be a dumb question, but I was wondering, can I use SeaBIOS as a payload without loading assembly blob roms? I ask this because I am going to be running custom VGA code after VM86 excicutes the vga rom and returns back to coreboot. I don't think this would be possible for SeaBIOS, because at that point it has already left coreboot. So I would like to just use SeaBIOS as my payload to boot
disks
only. Is this possible? If so what options do I need to define in
SeaBIOS?
To turn off option rom processing in SeaBIOS, edit the file src/config.h and change the setting CONFIG_OPTIONROMS to 0.
However, most boot loaders (eg, grub) will require a working vga bios. Running the vgabios in an emulator wont register the 16 bit vga callbacks - SeaBIOS must run the vgabios in order for these callbacks to work.
It's not clear what your end goal is or what problem you're trying to fix - maybe an alternate solution is possible.
Well it would be hard to fit 2 years of research into this email but in a nut shell I am going to be doing some direct framebuffer manipulation to get the tv-out working. I need to do this AFTER the VGA ROM runs and sets up the initial graphics. Therefore the current ROM emulators in coreboot will let me achieve this because they return to coreboot thus allowing me to run code directly manipulating the framebuffer.
I would like to try SeaBIOS but in the above scenario, I don't see how it is possible.
If you have an alternate solution I am all ears.
On Tue, May 12, 2009 at 09:58:11PM -0400, Joseph Smith wrote:
Well it would be hard to fit 2 years of research into this email but in a nut shell I am going to be doing some direct framebuffer manipulation to get the tv-out working. I need to do this AFTER the VGA ROM runs and sets up the initial graphics. Therefore the current ROM emulators in coreboot will let me achieve this because they return to coreboot thus allowing me to run code directly manipulating the framebuffer.
Random ideas:
- hack the tvout stuff into seabios instead of coreboot
- place the tvout stuff in an elf, and have seabios run it like a payload
- place the tvout stuff into an option rom and tell seabios to run it
- teach seabios to return to coreboot
- run the vga bios from both coreboot and seabios and hope it doesn't reset your registers
- initialize the vga card without a vgabios; replace factory vgabios with the open source vga bios
-Kevin
On Tue, 12 May 2009 23:13:54 -0400, Kevin O'Connor kevin@koconnor.net wrote:
On Tue, May 12, 2009 at 09:58:11PM -0400, Joseph Smith wrote:
Well it would be hard to fit 2 years of research into this email but in
a
nut shell I am going to be doing some direct framebuffer manipulation to get the tv-out working. I need to do this AFTER the VGA ROM runs and
sets
up the initial graphics. Therefore the current ROM emulators in coreboot will let me achieve this because they return to coreboot thus allowing
me
to run code directly manipulating the framebuffer.
Random ideas:
- hack the tvout stuff into seabios instead of coreboot
Why not both? Not at the same time of course. coreboot could run it if using a non-SeaBIOS payload, and SeaBIOS could run it if it is used as the payload. That would work.
Joseph Smith wrote:
If you have an alternate solution I am all ears.
coreboot runs VGA BIOS in emulator
coreboot runs bayou
bayou runs your tweak payload
bayou then runs SeaBIOS
SeaBIOS runs legacy bootloader
//Peter
On Wed, 13 May 2009 15:29:44 +0200, Peter Stuge peter@stuge.se wrote:
Joseph Smith wrote:
If you have an alternate solution I am all ears.
coreboot runs VGA BIOS in emulator
coreboot runs bayou
bayou runs your tweak payload
bayou then runs SeaBIOS
SeaBIOS runs legacy bootloader
Ah bayou, the legacy of Jordan...
Joseph Smith wrote:
Ah bayou, the legacy of Jordan...
It's good stuff. I bet it's just a config option to run the included payloads in sequence instead of with a menu.
//Peter
On Wed, 13 May 2009 15:51:14 +0200, Peter Stuge peter@stuge.se wrote:
Joseph Smith wrote:
Ah bayou, the legacy of Jordan...
It's good stuff. I bet it's just a config option to run the included payloads in sequence instead of with a menu.
I agree bayou is cool:-) I will have to take a look and see.
On Wed, May 13, 2009 at 6:58 AM, Joseph Smith joe@settoplinux.org wrote:
I agree bayou is cool:-) I will have to take a look and see.
I guess we want bayou to use cbfs now? I don't recall how it finds the various payloads.
ron
ron minnich wrote:
I guess we want bayou to use cbfs now? I don't recall how it finds the various payloads.
It is built to include the various payloads in a private archive format within the payload. The tool is included in the bayou source.
//Peter