[SeaBIOS] [Qemu-devel] RFC: Proposed vfio IGD assignment fw_cfg ABI

Gerd Hoffmann kraxel at redhat.com
Fri May 13 10:21:00 CEST 2016


> #1: "etc/igd-opregion"
> 
> the IGD OpRegion is an area of memory which contains among other
> things, the Video BIOS Table which is integral in allowing an assigned
> IGD to configure and make use of the physical display outputs of the
> system.  "etc/igd-opregion" is an opaque fw_cfg file which the BIOS
> will use to allocate an appropriately sized reserved memory region,
> copy the contents of the fw_cfg file into the allocated memory region,
> and write the base address of the allocated memory region to the dword
> registers at 0xFC in PCI config space on the IGD device itself.  The
> BIOS will look for this fw_cfg file any time a PCI class VGA device is
> found with Intel vendor ID.  Multiple IGD devices per VM, such as might
> potentially be possible with Intel vGPU, is not within the scope of
> this proposal.  The expected size of this fw_cfg file is on the order
> of a few pages, 8KB is typical.

Looks good to me.

> #2: "etc/igd-bdsm"

> possibility of multiple BDSM per VM.  The expected size of this fw_cfg
> file is from 1MB to multiple hundreds of MB with user specified stolen
> video memory.

Having a big fw_cfg file without using the content looks a bit odd to
me.  I'd suggest to create a fw_cfg file with the size in it instead.
Usual way to do this is to stick a 64bit value in little endian byte
order into fw_cfg, then use romfile_loadint() in seabios to read it.

> I'd appreciate any comments on these entries and I'd be happy to
> describe them further.  Perhaps we should create a docs/api/
> directory with these sorts of descriptions where we define how a
> given API is intended to work.

There is docs/specs/ already where this would fit, and it even has a
fw_cfg.txt file.  It might make sense to have a separate igd-assign.txt
though.

cheers,
  Gerd




More information about the SeaBIOS mailing list