[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