Hello,

I'm trying to find out why pxe boot with syslinux is failing on QEMU with OVMF. 
The problem is already described here in detail:

http://www.syslinux.org/archives/2014-November/022804.html

Since it is reported to work on real hardware (presumably with a different UEFI 
implementation) I suspect a bug in OVMF. I've tried to debug it but could not 
get very far. Syslinux starts with this code (the whole function can be seen at 
http://git.kernel.org/cgit/boot/syslinux/syslinux.git/tree/efi/main.c#n1252):

status = uefi_call_wrapper(BS->HandleProtocol, 3, image,
                           &LoadedImageProtocol, (void **)&info);
if (status != EFI_SUCCESS) {
        Print(L"Failed to lookup LoadedImageProtocol\n");
        goto out;
}

status = uefi_call_wrapper(BS->HandleProtocol, 3, info->DeviceHandle,
                           &PxeBaseCodeProtocol, (void **)&pxe);
if (status != EFI_SUCCESS) {
        /*
         * Use device handle to set up the volume root to
         * proceed with ADV init.
         */
        if (EFI_ERROR(efi_set_volroot(info->DeviceHandle))) {
                Print(L"Failed to locate root device to prep for ");
                Print(L"file operations & ADV initialization\n");
                goto out;
        }

        efi_derivative(SYSLINUX_FS_SYSLINUX);
        ops[0] = &vfat_fs_ops;
} else {
        efi_derivative(SYSLINUX_FS_PXELINUX);
        ops[0] = &pxe_fs_ops;
}

but it seems to fail to get the PxeBaseCode and takes the wrong path and trying 
to read from a vfat volume instead of pxe hence the error message about failing 
read blocks. If I force it to always use pxe it will fail at
http://git.kernel.org/cgit/boot/syslinux/syslinux.git/tree/efi/pxe.c#n51
when trying to do:

status = LibLocateHandle(ByProtocol, &PxeBaseCodeProtocol,
                         NULL, &nr_handles, &handles);

Does the above make sense to anyone with better understanding of edk2/Ovmf and 
could hint at why it fails? Any insight is greatly appreciated.

Thank you,
BALATON Zoltan

------------------------------------------------------------------------------
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
_______________________________________________
edk2-devel mailing list
edk2-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/edk2-devel

Reply via email to