From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NKweT-0007fT-N9 for qemu-devel@nongnu.org; Wed, 16 Dec 2009 11:23:01 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NKweP-0007er-2s for qemu-devel@nongnu.org; Wed, 16 Dec 2009 11:23:01 -0500 Received: from [199.232.76.173] (port=53906 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NKweO-0007eo-Rm for qemu-devel@nongnu.org; Wed, 16 Dec 2009 11:22:56 -0500 Received: from mx1.redhat.com ([209.132.183.28]:55074) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1NKweO-0005jP-M3 for qemu-devel@nongnu.org; Wed, 16 Dec 2009 11:22:56 -0500 Message-ID: <4B290951.20505@redhat.com> Date: Wed, 16 Dec 2009 17:22:41 +0100 From: Gerd Hoffmann MIME-Version: 1.0 Subject: Re: Proper support for PCI-based option rom loading (was Re: [Qemu-devel] Re: qdev property bug?) References: <20091214203428.GI6150@redhat.com> <20091214203603.GJ6150@redhat.com> <4B26A3B2.2030006@codemonkey.ws> <20091214205141.GC6398@redhat.com> <4B26F678.4010603@codemonkey.ws> <4B27541F.9020603@redhat.com> <4B276197.1080606@redhat.com> <4B27E518.7060300@codemonkey.ws> <20091215211715.GF26712@redhat.com> <4B28026E.4060100@codemonkey.ws> <20091216045725.GC12410@morn.localdomain> In-Reply-To: <20091216045725.GC12410@morn.localdomain> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Kevin O'Connor Cc: Chris Wright , "Michael S. Tsirkin" , glommer@redhat.com, seabios@seabios.org, qemu-devel@nongnu.org, Alexander Graf , Sebastian Herbszt > Right now, qemu cfg uses two ports - a file select port (0x510) and a > data port (0x511). Perhaps two new ports could be added - a file name > port (0x0512) and a file length port (0x513). > > Basically, if there is some way for SeaBIOS to walk a list of "files" > in the "qemu cfg" space, then it should be straight forward to enhance > the existing code in seabios to extract and deploy roms in addition to > those found in the PCI bar. What information does seabios need? It probably needs to know whenever the rom in question is the vga bios or an option rom. It probably also wants to get the vga bios first I assume? Is a (file) name needed? Would seabios load the option roms one by one or all in one go? I'd tend to have one fw_cfg entry which returns structed data, like this: struct fw_files { u32 filecount; struct fw_file { u32 type; /* vga, option, other? */ u32 size; /* file size */ u32 select; /* write this to 0x510 to read it */ u32 reserved; /* you never know ;) */ char name[16]; /* maybe: filename */ }; }; What do you think? cheers, Gerd