On 06/18/21 15:06, Bin Meng wrote: > On Fri, Jun 18, 2021 at 7:46 PM Gerd Hoffmann <kra...@redhat.com> wrote: > >> On Fri, Jun 18, 2021 at 06:46:57PM +0800, Bin Meng wrote: >>> Hi Laszlo, >>> >>> Using the QEMU shipped edk2 bios, for i386, it boots very quickly to >>> the EFI shell. >>> >>> $ qemu-system-i386 -nographic -pflash edk2-i386-code.fd
Ouch. Don't do this. If you use just one pflash chip, then a unified FD file is expected in that chip, containing both varstore and firmware executable. Upstream QEMU does not bundle / install unified FD files however. What it provides are separate executables and varstore *templates*. If you don't want to create a permanent variable store file for your VM, from the template called "edk2-i386-vars.fd", then the minimum command line is something like this: qemu-system-i386 \ -drive if=pflash,unit=0,format=raw,readonly=on,file=edk2-i386-code.fd \ -drive if=pflash,unit=1,format=raw,snapshot=on,file=edk2-i386-vars.fd \ (Nowadays I should use the "blockdev" syntax instead of "-drive", but I've not updated my scripts thus far ;)) >>> >>> However with x86_64, it takes a very long time to boot to the EFI >>> shell. It seems it got stuck in the PXE boot. Any ideas? >> >> One year ago ia32 efi netboot support was dropped (and you are the first >> who noticed 😎 ). I certainly noticed: http://mid.mail-archive.com/e6078611-789f-027b-bea5-759e02b10eee@redhat.com >> > > I guess not many people play with ia32 these days :) > > >> >> commit 9ed02fbb847277bef88dbe6a677cf3e5f39e5a38 >> Author: Gerd Hoffmann <kra...@redhat.com> >> Date: Wed Jul 22 12:24:35 2020 +0200 >> >> ipxe: drop ia32 efi roms >> >> UEFI on ia32 never really took off. Basically the BIOS -> UEFI shift >> came too late, x64 was widespread already, so vendors went from BIOS >> straight to UEFI on x64. >> >> Signed-off-by: Gerd Hoffmann <kra...@redhat.com> >> >> >>> I checked the boot manager, and it seems only 64-bit edk2 bios has >>> built-in PXE boot while 32-bit does not. >> >> It isn't edk2 but the nic boot roms, but yes, lack of pxe support on >> ia32 is the root cause. >> > > Got it. > > >>> Any idea to speed up this whole PXE boot thing? >> >> qemu -nic none ? >> > > Yep this works. Thanks a lot! If you need neither NICs nor disks in your guest at all, then "-nic none" is indeed the simplest solution. Thanks, Laszlo