From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1Maacj-0002xU-GV for qemu-devel@nongnu.org; Mon, 10 Aug 2009 15:33:37 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1Maacd-0002uD-LZ for qemu-devel@nongnu.org; Mon, 10 Aug 2009 15:33:36 -0400 Received: from [199.232.76.173] (port=37153 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1Maacd-0002u4-DS for qemu-devel@nongnu.org; Mon, 10 Aug 2009 15:33:31 -0400 Received: from an-out-0708.google.com ([209.85.132.242]:62095) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1Maacd-0005Uc-1s for qemu-devel@nongnu.org; Mon, 10 Aug 2009 15:33:31 -0400 Received: by an-out-0708.google.com with SMTP id c38so1025770ana.37 for ; Mon, 10 Aug 2009 12:33:27 -0700 (PDT) MIME-Version: 1.0 In-Reply-To: <4A806C86.6030504@codemonkey.ws> References: <1249782222-6724-1-git-send-email-jljusten@gmail.com> <4A806C86.6030504@codemonkey.ws> Date: Mon, 10 Aug 2009 12:33:27 -0700 Message-ID: <2a50f7880908101233x6d714803x8b59edce805f9253@mail.gmail.com> Subject: Re: [Qemu-devel] [PATCH] pc.c: Add UEFI IA32 & X64 machine types. From: Jordan Justen Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: Anthony Liguori Cc: qemu-devel@nongnu.org On Mon, Aug 10, 2009 at 11:52 AM, Anthony Liguori wr= ote: > Jordan Justen wrote: >> >> For i386, this change adds a 'uefi' machine type. =A0For x86_64, this >> change adds 'uefi' and 'uefi32' machine types. >> > > Why are uefi32 machines explicitly needed? In UEFI systems, the OS architecture is assumed to be the same as the firmware architecture. So, when booting a 32-bit x86 UEFI OS, you need to use a firmware that runs in 32-bit mode. So, you could either run the 32-bit qemu: $ qemu -M uefi or, achieve similar results from the x86_64 qemu: $ qemu-system-x86_64 -M uefi32 I am not sure if this is desirable for qemu in general, but I often test the 32-bit OVMF via qemu-system-x86_64. > How does one build the uefi roms? I work for Intel on the OVMF project, which supports UEFI for qemu: * https://edk2.tianocore.org/OVMF.html (Currently this project is considered at an alpha stage.) It is not a trivial process to build OVMF, but it can be done on Linux, OS X or Windows. This page is a decent starting point, but it will call out from pre-requisite setup instructions from other web pages. * https://edk2.tianocore.org/build-ovmf.html Also, binary builds are available at: * https://edk2.tianocore.org/servlets/ProjectDocumentList?folderID=3D101 > Is uefi all that useful in the absence of a CSM? =A0Wouldn't it make more > sense to add a CSM to uefi and then switch the default pc to use uefi? CSM is an interface that layers on top of a UEFI firmware to provide legacy BIOS support. Considering that UEFI is attempting to replace the legacy BIOS interfaces with non-legacy interfaces, obviously it should be useful without a CSM. :) You can boot a UEFI OS without a CSM, and I have been making good progress on booting Fedora 11 (UEFI) on qemu with OVMF. --- Regarding CSM, I have a few more points, but I should mention that these might involve my personal opinions, and not represent Intel... Firstly, I don't think there is an open-source CSM available. I think tianocore.org could benefit from an open source CSM, even if it was limited compared to other commercial CSM offerings. I think something like a bochs BIOS based CSM is definitely possible. But since I think the bochs BIOS is GPL licensed, it would more difficult for us to use it on tianocore.org, since we try to stick with BSD licensed code. > >> These machine types will load different bios and video bios images: >> > > Regards, > > Anthony Liguori >