diff options
author | Leif Lindholm <leif.lindholm@linaro.org> | 2013-06-19 11:46:45 +0100 |
---|---|---|
committer | Leif Lindholm <leif.lindholm@linaro.org> | 2013-06-19 11:46:45 +0100 |
commit | a70b8ca03acd78bb116fe4c9f89f8d5c2205f179 (patch) | |
tree | 49f9dd09a6ad18c45a9c1a5b9eca633a6f1a9f32 /NetworkPkg/UefiPxeBcDxe/PxeBcBoot.c | |
parent | 05575f2d38e4640753f65c7227864366aeb428a0 (diff) | |
parent | 4a21c40a5f30d67cdf876bc50f48abd37d9eea68 (diff) |
Merging uefi-next/linaro-release into masterlinaro-uefi-2013.06
Signed-off-by: Leif Lindholm <leif.lindholm@linaro.org>
Diffstat (limited to 'NetworkPkg/UefiPxeBcDxe/PxeBcBoot.c')
-rw-r--r-- | NetworkPkg/UefiPxeBcDxe/PxeBcBoot.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/NetworkPkg/UefiPxeBcDxe/PxeBcBoot.c b/NetworkPkg/UefiPxeBcDxe/PxeBcBoot.c index 540adee31..5bbefcee9 100644 --- a/NetworkPkg/UefiPxeBcDxe/PxeBcBoot.c +++ b/NetworkPkg/UefiPxeBcDxe/PxeBcBoot.c @@ -98,6 +98,17 @@ PxeBcSelectBootPrompt ( ASSERT (!Mode->UsingIpv6);
VendorOpt = &Cache->Dhcp4.VendorOpt;
+ //
+ // According to the PXE specification 2.1, Table 2-1 PXE DHCP Options,
+ // we must not consider a boot prompt or boot menu if all of the following hold:
+ // - the PXE_DISCOVERY_CONTROL tag(6) is present inside the Vendor Options(43), and has bit 3 set
+ // - a boot file name has been presented in the initial DHCP or ProxyDHCP offer packet.
+ //
+ if (IS_DISABLE_PROMPT_MENU (VendorOpt->DiscoverCtrl) &&
+ Cache->Dhcp4.OptList[PXEBC_DHCP4_TAG_INDEX_BOOTFILE] != NULL) {
+ return EFI_ABORTED;
+ }
+
if (!IS_VALID_BOOT_PROMPT (VendorOpt->BitMap)) {
return EFI_TIMEOUT;
}
|