From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NKt3A-0007lr-QF for qemu-devel@nongnu.org; Wed, 16 Dec 2009 07:32:16 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NKt35-0007ik-2Y for qemu-devel@nongnu.org; Wed, 16 Dec 2009 07:32:15 -0500 Received: from [199.232.76.173] (port=39662 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NKt33-0007iR-Vf for qemu-devel@nongnu.org; Wed, 16 Dec 2009 07:32:10 -0500 Received: from mx1.redhat.com ([209.132.183.28]:25376) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1NKt33-0002yB-NG for qemu-devel@nongnu.org; Wed, 16 Dec 2009 07:32:10 -0500 Message-ID: <4B28D33E.50202@redhat.com> Date: Wed, 16 Dec 2009 13:31:58 +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 Hi, > 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. I think using fw_config is the only sane way to make it work, especially in case we switch vga bios load to pci bar too. base address for vga bios is 0xc0000 base address for option roms is 0xc8000 If the vga bios is larger than 0x08000 bytes then the first option rom has to be loaded at a higher address. Which is actually the case, check 'info roms': addr=00000000000c0000 size=0x008c00 mem=ram name="vgabios-cirrus.bin" addr=00000000000c9000 size=0x00dc00 mem=ram name="pxe-virtio.bin" addr=00000000fffe0000 size=0x020000 mem=rom name="bios.bin" Thus having qemu load -- say -- linuxboot.bin and seabios load vgabios-cirrus.bin and pxe-virtio.bin simply isn't going to work. qemu has no idea what address linuxboot.bin can be loaded at (without introducing dirty hacks). cheers, Gerd