[coreboot] how to prevent legacy resource conflict with multiple VGA cards
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.
More information about the coreboot