On Wed, 2011-05-04 at 00:51 +0200, Sebastian Herbszt wrote:
Glauber Costa wrote:
On Wed, 2011-05-04 at 00:31 +0200, Sebastian Herbszt wrote:
Glauber Costa wrote:
On Wed, 2011-05-04 at 00:02 +0200, Sebastian Herbszt wrote:
Anthony Liguori wrote:
On 05/03/2011 03:23 PM, Sebastian Herbszt wrote: > Glauber Costa wrote: >> It is theorectically possible for a system to have more than >> one pci vga card. In particular, I am interested in the use of SGAbios >> as a pci device, alongside of a normal vga bios in QEMU. > > Can't SGAbios be loaded as an option rom without this change?
But then you're loading it as a legacy ROM which is fairly ugly and requires additional SeaBIOS hackery.
Why is this ugly and which additional hackery does it need? SGAbios is a legacy ROM; the PNP header is disabled and there is no PCIR.
It is, but does not need to be (I've also patched sgabios to include a PCIR). Since it is a device, it is nice to have it plugged it to a bus. If for nothing else, for discovering capabilities - A guest using sgabios this way is now aware that it has a double-head system.
I don't think "it is a device", more likely a functionality. SGAbios doesn't add a new device/hardware to the system.
This depends on how you model it. One can think that this functionality is achieved by hooking a device into the system. "Hooking a device" is how most functionality is achieved in real systems anyway.
Do you plan to add a new (emulated) PCI device and deploy SGAbios thru its BAR?
Yes
Do you plan to add support for "Google Memory Console"?
No.
Also, let us not focus only in the specifics: Having two pci vga cards is a real possibility, there's even a use case for that, as anthony mentioned.
If you call the init function of two vga roms, will the last one win and hook int 10h?
Yes.
This might not always be the desired case. How can i control which card wins?
Bus enumeration order, only. But that's a good question. Maybe we should come up with a method other than bus enumeration for that. But at the tip of my tongue, none come to mind.
And this is totally orthogonal to whether it is loaded as a pci device, or in vgaroms/ The statement is true for both methods.
Shouldn't VGAbdf be set to the last (the winning) card then?
That's certainly better, you are right.
In the specific case of sgabios, it chains the int10h calls to whatever was there before, which is, IMHO, a very sane thing.
Sebastian