[coreboot] how to prevent legacy resource conflict with multiple VGA cards
scott at notabs.org
Tue Oct 26 20:04:47 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.
The VGA enable bit in the bridge control register disables VGA for
the entire bus. What if the bus has two VGA cards, and one is the
one you want to use?
]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.
I found and tried CONFIG_CONSOLE_VGA_MULTI. I see a couple of problems
with it. First, it seems to apply only to AMD K8 and family 10h processors
(in my case this is OK). A bigger problem is that it seems to control
VGA on an HT link by HT link basis. One problem there is that an HT link
could have multiple graphics cards. The CONFIG_CONSOLE_VGA_MULTI doesn't
work for me for a different reason. The graphics that needs to be disabled
is not on an HT link at all, it is the internal UMA graphics.
]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