Skip to content

Commit

Permalink
Add multiple iPXE binaries
Browse files Browse the repository at this point in the history
Signed-off-by: Arthur Heymans <[email protected]>
  • Loading branch information
ArthurHeymans authored and benjamindoron committed Jun 12, 2024
1 parent 92bd818 commit 2b2a5be
Show file tree
Hide file tree
Showing 8 changed files with 34 additions and 1 deletion.
Original file line number Diff line number Diff line change
Expand Up @@ -325,9 +325,12 @@ PlatformBootManagerAfterConsole (
PlatformRegisterFvBootOption (&gUefiShellFileGuid, L"UEFI Shell", LOAD_OPTION_ACTIVE);

//
// Register iPXE
// Register iPXE's
//
PlatformRegisterFvBootOption (PcdGetPtr (PcdiPXEFile), L"iPXE Network boot", LOAD_OPTION_ACTIVE);
PlatformRegisterFvBootOption (PcdGetPtr (PcdiPXEFileIp4Ip6), L"iPXE Network boot IPv4 and IPV6", LOAD_OPTION_ACTIVE);
PlatformRegisterFvBootOption (PcdGetPtr (PcdiPXEFileIp4), L"iPXE Network boot IPv4", LOAD_OPTION_ACTIVE);
PlatformRegisterFvBootOption (PcdGetPtr (PcdiPXEFileIp6), L"iPXE Network boot IPv6", LOAD_OPTION_ACTIVE);

if (FixedPcdGetBool (PcdBootManagerEscape)) {
Print (
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -71,6 +71,9 @@
gEfiMdeModulePkgTokenSpaceGuid.PcdConOutColumn
gEfiMdeModulePkgTokenSpaceGuid.PcdConInConnectOnDemand
gUefiPayloadPkgTokenSpaceGuid.PcdiPXEFile
gUefiPayloadPkgTokenSpaceGuid.PcdiPXEFileIp4Ip6
gUefiPayloadPkgTokenSpaceGuid.PcdiPXEFileIp4
gUefiPayloadPkgTokenSpaceGuid.PcdiPXEFileIp6
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultBaudRate
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultDataBits
gEfiMdePkgTokenSpaceGuid.PcdUartDefaultParity
Expand Down
Binary file added UefiPayloadPkg/NetworkDrivers/ipxe_ipv4.efi
Binary file not shown.
Binary file added UefiPayloadPkg/NetworkDrivers/ipxe_ipv4_ipv6.efi
Binary file not shown.
Binary file added UefiPayloadPkg/NetworkDrivers/ipxe_ipv6.efi
Binary file not shown.
6 changes: 6 additions & 0 deletions UefiPayloadPkg/UefiPayloadPkg.dec
Original file line number Diff line number Diff line change
Expand Up @@ -62,6 +62,12 @@ gUefiPayloadPkgTokenSpaceGuid.PcdBootloaderParameter|0|UINT64|0x10000004

### FFS filename to find the ipxe application.
gUefiPayloadPkgTokenSpaceGuid.PcdiPXEFile|{ 0xC7, 0x53, 0x86, 0xb6, 0xA1, 0xEE, 0x35, 0x44, 0xA1, 0x99, 0xA4, 0x4F, 0x59, 0xE4, 0x47, 0x6C }|VOID*|0x10000006
### FFS filename to find the ipxe_ipv4_ipv6 application.
gUefiPayloadPkgTokenSpaceGuid.PcdiPXEFileIp4Ip6|{ 0xF8, 0x6A, 0xB6, 0x35, 0x35, 0x5E, 0x35, 0x4D, 0x93, 0x36, 0xAD, 0x9F, 0xBD, 0x80, 0x1F, 0x37 }|VOID*|0x10000007
### FFS filename to find the ipxe_ipv4 application.
gUefiPayloadPkgTokenSpaceGuid.PcdiPXEFileIp4|{ 0x33, 0x90, 0x9A, 0x4C, 0x7A, 0xDC, 0x08, 0x4A, 0xA2, 0xE8, 0xEC, 0x97, 0xBE, 0xF5, 0x57, 0xBF }|VOID*|0x10000008
### FFS filename to find the ipxe_ipv6 application.
gUefiPayloadPkgTokenSpaceGuid.PcdiPXEFileIp6|{ 0x3F, 0x82, 0xC6, 0x57, 0x93, 0x7F, 0xD2, 0x47, 0x8C, 0xFC, 0xAC, 0xEC, 0x5A, 0x51, 0xEE, 0x42 }|VOID*|0x10000009

## Used to help reduce fragmentation in the EFI memory map
gUefiPayloadPkgTokenSpaceGuid.PcdMemoryTypeEfiACPIReclaimMemory|0x19|UINT32|0x10000012
Expand Down
3 changes: 3 additions & 0 deletions UefiPayloadPkg/UefiPayloadPkg.dsc
Original file line number Diff line number Diff line change
Expand Up @@ -145,6 +145,9 @@
# IPXE support
#
DEFINE NETWORK_IPXE = FALSE
DEFINE NETWORK_IPXE_IP4_IP6 = FALSE
DEFINE NETWORK_IPXE_IP4 = FALSE
DEFINE NETWORK_IPXE_IP6 = FALSE

# Dfine the maximum size of the capsule image without a reset flag that the platform can support.
DEFINE MAX_SIZE_NON_POPULATE_CAPSULE = 0xa00000
Expand Down
18 changes: 18 additions & 0 deletions UefiPayloadPkg/UefiPayloadPkg.fdf
Original file line number Diff line number Diff line change
Expand Up @@ -372,6 +372,24 @@ INF MdeModulePkg/Application/BootManagerMenuApp/BootManagerMenuApp.inf
}
!endif

!if (NETWORK_IPXE_IP4_IP6)
FILE FREEFORM = 35B66AF8-5E35-4D35-9336-AD9FBD801F37 {
SECTION PE32 = UefiPayloadPkg/NetworkDrivers/ipxe_ipv4_ipv6.efi
}
!endif

!if (NETWORK_IPXE_IP4)
FILE FREEFORM = 4C9A9033-DC7A-4A08-A2E8-EC97BEF557BF {
SECTION PE32 = UefiPayloadPkg/NetworkDrivers/ipxe_ipv4.efi
}
!endif

!if (NETWORK_IPXE_IP6)
FILE FREEFORM = 57C6823F-7F93-47D2-8CFC-aCEC5A51EE42 {
SECTION PE32 = UefiPayloadPkg/NetworkDrivers/ipxe_ipv6.efi
}
!endif

#
# Network modules (only available on X64)
# Available at https://downloadcenter.intel.com/download/29137?v=t
Expand Down

0 comments on commit 2b2a5be

Please sign in to comment.