[coreboot] [SeaBIOS] One ROM for multiple devices
Gerd Hoffmann
kraxel at redhat.com
Wed Jun 13 08:50:00 CEST 2012
On 06/13/12 01:06, Steve Goodrich wrote:
> Please be aware that this is cross-posted to both the SeaBIOS and coreboot
> mailing lists. I know this is generally frowned upon, but I believe the
> subject is valid for discussion in both forums.
>
>
> I have a coreboot/SeaBIOS image containing an option ROM that works for
> multiple graphics devices (seven or eight of them). These graphics devices
> come from the same vendor but each device has its own (unique) PCI Device
> ID. If I'm going to load the driver from SeaBIOS, I need to have a copy of
> the option ROM file, each with the name of the target PCI device (e.g.
> "pci1234,5678.rom"). Having seven or eight copies in the BIOS image file is
> a waste of space.
>
> Stefan R. submitted a solution to coreboot to enable mapping one ROM's
> vendor/device ID to another and this solution has worked well for
> coreboot-centric uses.
>
> Unfortunately, this does not address the problem in SeaBIOS. I have started
> working on a solution that extends what Stefan has done, but moves the data
> into a single "translate" file in CBFS. This file contains simple data to
> allow coreboot and/or SeaBIOS to take a PCI device's vendor/device info and
> retrieve alternate vendor/device values.
>
> Since both coreboot and SeaBIOS understand CBFS, the basic translation code
> would be identical.
>
> The data file consists of sets of four 16-bit binary values:
> u16 vendor1, device1; // translate FROM this PCI v/d
> u16 vendor2, device2; // translate TO this PCI v/d
Another possible solution would be to add support for symbolic links to
cbfs.
How do you get around the limitation of a single pci id in the rom
header? Or does seabios skip the pci id verification for rom files
loaded from cbfs?
cheers,
Gerd
More information about the coreboot
mailing list