[syslinux] patch for UEFI PXE booting bugs

Gene Cumm gene.cumm at gmail.com
Thu Jun 25 03:51:49 PDT 2015


On Wed, Apr 29, 2015 at 4:33 AM, Da Shi Cao via Syslinux
<syslinux at zytor.com> wrote:
> PXE booting in UEFI mode of HP Proliant Gen9 will fail if the nic port
> used is not the first one enumerated.
> Based on syslinux 6.03, several modifications have to be made in the
> EFI supporting codes.
> 1. The function "net_parse_dhcp". Instead of using the first handle
> that returns EFI_SUCCESS, a check on the DhcpAckReceived is made. The
> index and the total number handles are saved in global variables.
> 2. Function "efi_create_binding". Instead of using the first handle
> that returns EFI_SUCCESS, a best guess on the working handle is made
> and used directly.
> 3. Functions "core_udp_connect" and "core_udp_sendto". The ip address
> in the global variable IPInfo is used instead of the default address!
>
> Please look at the attached patch file for details.

Looks like we both had part of the right idea.  You even addressed
machines that implement dual stack (IPv4+IPv6) versus single stack in
efi_create_binding(), presuming it's symmetric.

Recently I posted a patch to efi/pxe.c that's similar but uses more
data to determine the potential validity of a
EFI_PXE_BASE_CODE_PROTOCOL handle.

Regarding UseDefaultAddress (as mentioned recently), some
implementations don't route automatically unless it's used.

-- 
-Gene


More information about the Syslinux mailing list