From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NKXGf-000718-If for qemu-devel@nongnu.org; Tue, 15 Dec 2009 08:16:45 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NKXGa-0006u3-9e for qemu-devel@nongnu.org; Tue, 15 Dec 2009 08:16:44 -0500 Received: from [199.232.76.173] (port=55933 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NKXGa-0006tl-0h for qemu-devel@nongnu.org; Tue, 15 Dec 2009 08:16:40 -0500 Received: from mail-gx0-f223.google.com ([209.85.217.223]:41264) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1NKXGZ-0002K6-RT for qemu-devel@nongnu.org; Tue, 15 Dec 2009 08:16:39 -0500 Received: by gxk23 with SMTP id 23so5512395gxk.2 for ; Tue, 15 Dec 2009 05:16:39 -0800 (PST) Message-ID: <4B278C34.6080401@codemonkey.ws> Date: Tue, 15 Dec 2009 07:16:36 -0600 From: Anthony Liguori MIME-Version: 1.0 Subject: Re: Proper support for PCI-based option rom loading (was Re: [Qemu-devel] Re: qdev property bug?) References: <4B264AF1.6060802@codemonkey.ws> <7FB8DD1225E54176BCAF5523B6AEA89B@FSCPC> <4B26931E.4000101@codemonkey.ws> <20091214194210.GB6150@redhat.com> <4B269933.3010906@codemonkey.ws> <20091214202019.GF6150@redhat.com> <4B26A0DE.5000304@redhat.com> <20091214203428.GI6150@redhat.com> <20091214203603.GJ6150@redhat.com> <4B26A3B2.2030006@codemonkey.ws> <20091214205141.GC6398@redhat.com> <4B26F678.4010603@codemonkey.ws> <4B27541F.9020603@redhat.com> In-Reply-To: <4B27541F.9020603@redhat.com> 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: Gerd Hoffmann Cc: "Michael S. Tsirkin" , glommer@redhat.com, qemu-devel@nongnu.org, Alexander Graf , Kevin O'Connor , Sebastian Herbszt Gerd Hoffmann wrote: > On 12/15/09 03:37, Anthony Liguori wrote: >> Okay, I think I've figured out how this is supposed to work. With these >> two patches to SeaBIOS and the patch to qemu, I can run: >> >> qemu -net nic,model=rtl8139 -net nic,model=virtio -net nic,model=e1000 >> -boot menu=on >> >> And all three option roms load. I can also select which NIC I want to >> boot from using the F12 menu. This works by not actually loading the >> option roms in the 1M space, but instead making them mappable through >> the PCI devices. With PMM and DDIM, the result is that we only have to >> copy in 2K for each option rom which means we can support up to 48 >> unique option roms. That should be plenty for now. >> >> These patches are very rough but I'll clean them up tomorrow. I'm not >> sure the best way to integrate with the rom infrastructure since we no >> longer have a physical address to map to. Any suggestions Gerd? > > Is this needed in the first place? Integration into pci like your > patch does looks sensible to me. That wouldn't get us re-loading on > reset, but as the guest shouldn't be able to modify the roms I don't > think we need this ... > > We could also add a "romfile" property to the pci bus and do > everything (except setting the default filename) in generic pci code. > > I'm more worried about the CONFIG_OPTIONROMS_DEPLOYED patches for > seabios, although I don't fully understand what they are doing. There > are non-pci option roms (linuxboot, multiboot, extboot) which qemu > will continue to deploy the way roms are deployed today. That's a good point. Need to think about how to best handle that. SeaBIOS supports up to two static option roms so maybe what we need to do is make use of that mechanism for things like linuxboot/extboot. Regards, Anthony Liguori