summaryrefslogtreecommitdiffstats
path: root/src/interface/efi/efiprefix.c
diff options
context:
space:
mode:
authorMichael Brown2021-02-17 19:11:43 +0100
committerMichael Brown2021-02-17 19:11:43 +0100
commitcd3de55ea54d709bb89d97977257dbbd723424e9 (patch)
tree52dd3aaff7a225e6aff8cd5cf361fc6f53e5c64a /src/interface/efi/efiprefix.c
parent[efi] Defer autoboot link-layer address and autoexec script probing (diff)
downloadipxe-cd3de55ea54d709bb89d97977257dbbd723424e9.tar.gz
ipxe-cd3de55ea54d709bb89d97977257dbbd723424e9.tar.xz
ipxe-cd3de55ea54d709bb89d97977257dbbd723424e9.zip
[efi] Record cached DHCPACK from loaded image's device handle, if present
Record the cached DHCPACK obtained from the EFI_PXE_BASE_CODE_PROTOCOL instance installed on the loaded image's device handle, if present. This allows a chainloaded UEFI iPXE to reuse the IPv4 address and DHCP options previously obtained by the built-in PXE stack, as is already done for a chainloaded BIOS iPXE. Signed-off-by: Michael Brown <mcb30@ipxe.org>
Diffstat (limited to 'src/interface/efi/efiprefix.c')
-rw-r--r--src/interface/efi/efiprefix.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/interface/efi/efiprefix.c b/src/interface/efi/efiprefix.c
index 47fbe79a..126c813d 100644
--- a/src/interface/efi/efiprefix.c
+++ b/src/interface/efi/efiprefix.c
@@ -28,6 +28,7 @@ FILE_LICENCE ( GPL2_OR_LATER );
#include <ipxe/efi/efi_snp.h>
#include <ipxe/efi/efi_autoboot.h>
#include <ipxe/efi/efi_autoexec.h>
+#include <ipxe/efi/efi_cachedhcp.h>
#include <ipxe/efi/efi_watchdog.h>
#include <ipxe/efi/efi_veto.h>
@@ -81,6 +82,9 @@ static void efi_init_application ( void ) {
/* Identify autoboot device, if any */
efi_set_autoboot_ll_addr ( device );
+ /* Store cached DHCP packet, if any */
+ efi_cachedhcp_record ( device );
+
/* Load autoexec script, if any */
efi_autoexec_load ( device );
}