From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47021) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1b2RXf-0003HO-Mb for qemu-devel@nongnu.org; Mon, 16 May 2016 19:03:16 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1b2RXa-00083W-LU for qemu-devel@nongnu.org; Mon, 16 May 2016 19:03:15 -0400 Received: from mx1.redhat.com ([209.132.183.28]:43864) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1b2RXa-00083M-GO for qemu-devel@nongnu.org; Mon, 16 May 2016 19:03:10 -0400 Date: Mon, 16 May 2016 17:03:07 -0600 From: Alex Williamson Message-ID: <20160516170307.51cf7ab2@t450s.home> In-Reply-To: <1463127660.14138.42.camel@redhat.com> References: <20160512180425.2ad55ded@t450s.home> <1463127660.14138.42.camel@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Subject: Re: [Qemu-devel] RFC: Proposed vfio IGD assignment fw_cfg ABI List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Gerd Hoffmann Cc: qemu-devel , Kevin O'Connor , seabios@seabios.org On Fri, 13 May 2016 10:21:00 +0200 Gerd Hoffmann wrote: > > #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 think following this approach I'd rename the fw_cfg file to "etc/igd-bdsm-size", otherwise looks reasonable, I'll make the change. > > 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. Yeah, even beyond these fw_cfg options there's probably enough oddity with IGD assignment to have it's own docs file. I'll cook something up for the next posting. Thanks for the review and comments. Alex