Module Name:    src
Committed By:   martin
Date:           Sat Dec 30 19:33:25 UTC 2023

Modified Files:
        src/sys/stand/efiboot [netbsd-10]: efinet.c

Log Message:
Pull up following revision(s) (requested by rin in ticket #524):

        sys/stand/efiboot/efinet.c: revision 1.7
        sys/stand/efiboot/efinet.c: revision 1.8

MI efiboot: Stop using efi_bootdp after exclusive open for PXE

Once boot device is exclusively opened for Simple Network Protocol,
further access via device path (efi_bootdp) is illegal.

For some implementations, boot device path gets corrupted by
exclusive open, and subsequent access by efi_device_path_depth(),
e.g., causes infinite recursion.

Fix PXE boot for QEMU/aarch64 with EDK2 on some Linux distributions.
Thanks yamaguchi@ for comments and tests.

MI efiboot: efi_net_probe: Examine Messaging Device Path also
Network devices can be found as Hardware or Messaging Device Paths,
see Sec 10.4.4 of UEFI Spec 2.10.

In addition to Hardware Device Path, try Messaging Device Path also.

This fixes PXE boot on implementations with the latter choice, e.g.,
Raspberry Pi 4 UEFI firmware.


To generate a diff of this commit:
cvs rdiff -u -r1.6 -r1.6.32.1 src/sys/stand/efiboot/efinet.c

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Reply via email to