[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Qemu-devel] Re: vgabios + qemu: issues and plans.

From: Sebastian Herbszt
Subject: [Qemu-devel] Re: vgabios + qemu: issues and plans.
Date: Wed, 5 May 2010 21:56:56 +0200

Gerd Hoffmann wrote:

Today we have two vgabios versions in qemu: The standard one (vgabios.bin) and the cirrus one (vgabios-cirrus.bin).

The cirrus vgabios is a PCI ROM. We can (and do) load it into the ROM PCI bar. The vgabios checks the pci config space to figure where the linear framebuffer (for vesa graphics) is mapped to. It knows how to program the cirrus.

The standard bios isn't a PCI ROM. We have to load it using the seabios firmware interface. It expects to find the linear framebuffer at the magic address 0xe0000000. It uses the bochs extentions to implement vesa graphics support.

So, what is wrong with this?

First, I'd like to be able to load the vgabios via PCI ROM bar on all pci vga cards (stdvga, vmware, soon qxl). The PCI ID in the bios has to match the PCI ID of the card, so we'll need a bunch of vga bios binaries, all identical except for the PCI ID. Or we need some kind of binary patching. Otherwise seabios will not load them from the PCI ROM bar.

vgabios could be build multiple times with PCIBIOS set and VENDOR_ID and
DEVICE_ID supplied from the Makefile like it's already done with VGABIOS_DATE.

Second, I want to get rid of the magic address 0xe0000000 (except for isa-vga). This is basically just a matter of updating to vgabios version 0.6c. And this needs one vga bios binary per vga card too as the PCI ID is used to lookup the card (and then the framebuffer address) in PCI config space.

Comments? Especially on the binary patching? Worth it? Or just build a bunch of binaries? They are not *that* big after all ...

Few more bios binaries should do no harm. This is currently used for eepro100
(gpxe-eepro100-80861209.rom and gpxe-eepro100-80861229.rom). So maybe
define a similar naming convention for the vgabios.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]