[coreboot] how to prevent legacy resource conflict with multiple VGA cards

Myles Watson mylesgw at gmail.com
Tue Oct 26 18:03:50 CEST 2010


>> Thanks for the suggestion. What I am really looking for is the
>> special handling that a commercial BIOS does for legacy video
>> devices. Say you have a typical desktop UMA board. If you add a
>> PCI video card, Windows resource manager will not report any
>> resource conflicts. The same is not true for coreboot+seabios.
>> When you add the PCI video card, Windows device manager reports
>> a resource conflict.
>>
>> One detail I forgot to mention in the original email. What is
>> the exact resource conflict? Coreboot does properly assign
>> unique bar values for both video devices. However, the PCI class
>> code tells the OS that in addition to the bars, both video
>> devices decode memory range a0000-bffff, I/O 3b0-3bb, and I/O
>> 3c0-3df. So there really is a conflict, and using the pci
>> command register to turn off memory and I/O decoding for all but
>> one video card solves the problem.
>
> To disable the command register should be to set the device to off.
I thought there was a flag that was set that took care of that.  I
don't think you need to disable the device.

> I think that you really want is the legacy video bit in the device and
> bridge, VGA pallet snoop and VGA enable in the command register.
I think that's right.

I'm not at my machine right now, but there used to be some options
that controlled which VGA device was set up.  CONFIG_CONSOLE_VGA_MULTI
?  Some other config option that had to do with first VGA device
found?  Maybe it's in src/device/device.c.

Anyway, you had to enable multiple cards and tell it to use the first
one (or the last one sometimes.)

Hopefully that helps.

Thanks,
Myles




More information about the coreboot mailing list