[coreboot] Documentation for using util/vgabios with coreboot?

Stefan Reinauer stepan at coresystems.de
Mon Jul 28 22:09:53 CEST 2008

Ken.Fuchs at 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.

coresystems GmbH • Brahmsstr. 16 • D-79104 Freiburg i. Br.
      Tel.: +49 761 7668825 • Fax: +49 761 7664613
Email: info at coresystems.dehttp://www.coresystems.de/
Registergericht: Amtsgericht Freiburg • HRB 7656
Geschäftsführer: Stefan Reinauer • Ust-IdNr.: DE245674866

More information about the coreboot mailing list