From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1NKhDg-0001Dc-Lz for qemu-devel@nongnu.org; Tue, 15 Dec 2009 18:54:20 -0500 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1NKhDc-0001CZ-0o for qemu-devel@nongnu.org; Tue, 15 Dec 2009 18:54:19 -0500 Received: from [199.232.76.173] (port=40813 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1NKhDb-0001CW-UQ for qemu-devel@nongnu.org; Tue, 15 Dec 2009 18:54:15 -0500 Received: from mail-px0-f189.google.com ([209.85.216.189]:44505) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1NKhDb-0005vN-GR for qemu-devel@nongnu.org; Tue, 15 Dec 2009 18:54:15 -0500 Received: by pxi27 with SMTP id 27so269009pxi.4 for ; Tue, 15 Dec 2009 15:54:14 -0800 (PST) MIME-Version: 1.0 In-Reply-To: <4B27C8F7.8030608@codemonkey.ws> References: <4B26931E.4000101@codemonkey.ws> <20091214203603.GJ6150@redhat.com> <4B26A3B2.2030006@codemonkey.ws> <20091214205141.GC6398@redhat.com> <4B26F678.4010603@codemonkey.ws> <20091215043454.GD22611@morn.localdomain> <4B278BE9.3010900@codemonkey.ws> <4B279B24.1090004@codemonkey.ws> <4B279E47.80109@redhat.com> <4B27C8F7.8030608@codemonkey.ws> Date: Tue, 15 Dec 2009 18:54:13 -0500 Message-ID: <28396b010912151554p15e27376lf2279f9811eac2cf@mail.gmail.com> Subject: Re: [SeaBIOS] Proper support for PCI-based option rom loading (was Re: [Qemu-devel] Re: qdev property bug?) From: Kevin OConnor Content-Type: multipart/alternative; boundary=001636e0ac516b3650047acd1bf8 List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: seabios@seabios.org, Avi Kivity , qemu-devel@nongnu.org --001636e0ac516b3650047acd1bf8 Content-Type: text/plain; charset=ISO-8859-1 On Tue, Dec 15, 2009 at 12:35 PM, Anthony Liguori wrote: > Avi Kivity wrote: > >> bochs bios required all 128kB, so this is probably a leftover. >> > > This is apparently well defined in the PIIX spec. There is a bit of a > difference between the lower half and upper half of the BIOS region though > and I expect this is part of what the problem is. FYI, the following patch > works. Surprisingly, we only need to restore the 0xe8000..0xe8fff region. > Still trying to understand what's happening. > > SeaBIOS is currently using over 64K of space. So, it is extending into the e-segment and thus needs to have the e-segment copied properly (I missed that in my earlier email). SeaBIOS is only extending a few K into the e-segment, so only that part needs to be saved and restored. Should SeaBIOS options be trimmed so that it fit under 64K, then the build would create only a 64K rom. However, since it is larger than 64K, it pads itself to 128K. As mentioned before, SeaBIOS can still copy roms into the unused parts of the e-segment, as it knows which parts of the e-segment it is using. -Kevin --001636e0ac516b3650047acd1bf8 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable On Tue, Dec 15, 2009 at 12:35 PM, Anthony Liguori <anthony@codemonkey.ws> = wrote:
Avi Kivity wrote:
bochs bios required all 128kB, so this is probably a leftover.

This is apparently well defined in the PIIX spec. =A0There is a bit of a di= fference between the lower half and upper half of the BIOS region though an= d I expect this is part of what the problem is. =A0FYI, the following patch= works. =A0Surprisingly, we only need to restore the 0xe8000..0xe8fff regio= n. =A0Still trying to understand what's happening.


SeaBIOS is currently using over 64K of space.=A0 = So, it is extending into the e-segment
and thus needs to have the e-segm= ent copied properly (I missed that in my
earlier email).

SeaBIOS = is only extending a few K into the e-segment, so only that part needs to be saved and restored.

Should SeaBIOS options be trimmed so that it = fit under 64K, then the build would
create only a 64K rom.=A0 However, s= ince it is larger than 64K, it pads itself to 128K.=A0 As
mentioned befo= re, SeaBIOS can still copy roms into the unused parts of the e-segment,
as it knows which parts of the e-segment it is using.

-Kevin

=
--001636e0ac516b3650047acd1bf8--