If one doesn't have/want to use a commercial VGA BIOS with coreboot ...
... how does one use util/vgabios with coreboot and integrated video?
Since the video signal is being generated by the chipset, it seems that coreboot must do some video related chipset initialization prior to running testbios (util/vgabios).
I assume this has been done on a few boards using coreboot v2. Is there any documentation describing what needs to be done? Can anyone describe the status of util/vgabios?
Thanks,
Ken Fuchs
On Wed, Jul 23, 2008 at 06:02:15PM -0500, Ken.Fuchs@bench.com wrote:
If one doesn't have/want to use a commercial VGA BIOS with coreboot ...
... how does one use util/vgabios with coreboot and integrated video?
util/vgabios is meant for testing if a certain VGA BIOS binary can/will work if it is included in coreboot. So you need the VGA BIOS to use testbios.
Since the video signal is being generated by the chipset, it seems that coreboot must do some video related chipset initialization prior to running testbios (util/vgabios).
Actually not, testbios can hopefully initialize the graphics using the factory VGA BIOS.
I assume this has been done on a few boards using coreboot v2.
Yes, a few chipsets.
Is there any documentation describing what needs to be done?
In a word: modesetting.
Can anyone describe the status of util/vgabios?
I believe it works, I reused parts of testbios today.
//Peter
Ken Fuchs wrote:
Since the video signal is being generated by the chipset, it seems that coreboot must do some video related chipset initialization prior to running testbios (util/vgabios).
Peter Stuge wrote:
Actually not, testbios can hopefully initialize the graphics using the factory VGA BIOS.
So util/vgabios is not a VGABIOS?
If I design a board and port coreboot to it, there probably won't be a factory VGA BIOS, unless it is open source.
Sorry, I thought coreboot's util/vgabios and NONGNU VGABios
http://savannah.nongnu.org/projects/vgabios
or
http://www.nongnu.org/vgabios/
were the same for some odd reason ...
Maybe util/vgabios should be renamed to util/testvgabios to avoid confusion.
--- MS Windows support ---
Furthermore, I need to support MS Windows on a new board, so that will require both SeaBIOS and VGABios. Has anyone done this yet on bare hardware (no qemu or similar emulation), using an open source VGABIOS as opposed to a factory VGA BIOS?
I thought coreboot supported MS Windows via ADLO/BochsBIOS on more than one board and via SeaBIOS on at least one board. Am I wrong about this?
Thanks,
Ken Fuchs
Ken.Fuchs@bench.com wrote:
Ken Fuchs wrote:
Since the video signal is being generated by the chipset, it seems that coreboot must do some video related chipset initialization prior to running testbios (util/vgabios).
Peter Stuge wrote:
Actually not, testbios can hopefully initialize the graphics using the factory VGA BIOS.
So util/vgabios is not a VGABIOS?
It's the userspace version of the x86emu + legacy bios emulation that coreboot uses to initialize VGA. Or, a rather old version of that.
If I design a board and port coreboot to it, there probably won't be a factory VGA BIOS, unless it is open source.
Sorry, I thought coreboot's util/vgabios and NONGNU VGABios
http://savannah.nongnu.org/projects/vgabios
or
http://www.nongnu.org/vgabios/
were the same for some odd reason ...
To get VGA output, you'd need to add hardware initialization for your graphics chip to something like nongnu's vgabios.
Maybe util/vgabios should be renamed to util/testvgabios to avoid confusion.
I agree. maybe testbios, or runoptionrom?
Furthermore, I need to support MS Windows on a new board, so that will require both SeaBIOS and VGABios. Has anyone done this yet on bare hardware (no qemu or similar emulation), using an open source VGABIOS as opposed to a factory VGA BIOS?
I don't think anyone did an open source vgabios for real hardware. It's not enormously hard to do, but you need a very good specification of the vga hardware, and I am not sure that exists for the graphics chip you're looking at. Maybe looking at the linux kernel drivers sheds some light on what is required. Basically, what the driver needs to do initially is set up the RAM (either DDR setup on external cards, or some means of using shared memory). That's the hairy part. Then set a default mode. That should not be too tricky.
It might be possible to run the vendor's option rom through our vgabios/testvgabios utility and have it log accesses to the hardware, to get a basic idea what needs to be done in which order. Timing issues are quite hard to find this way, though, and it's a nasty job producing good logs and then producing good code from that.
Unlike the "rest" of the bios image, the vga option rom is not owned by the bios vendor, but by the graphics chip vendor, normally. This may make things easier in getting the right to redistribute it.
I thought coreboot supported MS Windows via ADLO/BochsBIOS on more than one board and via SeaBIOS on at least one board. Am I wrong about this?
I remember reports saying it happened with at least 2 boards (one of them opteron, YhLu was involved there) with ADLO+BochsBIOS, but I never saw it running myself except in Qemu.