coreboot/payloads/external/iPXE/Kconfig
Matt DeVillier 4374bbd37b payloads/ipxe: Update and use the stable version
Recent changes to iPXE related to UEFI SecureBoot handling are causing
builds to break, so update the "stable" tag to the last commit in
December 2025 and use that by default until things are sorted out in
the master branch.

TEST=build samsung/stumpy with iPXE for edk2

Change-Id: I5ccdbbf35273cf1e963b913327ffa94df46a1497
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/90771
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2026-01-17 23:40:27 +00:00

134 lines
3.2 KiB
Text

## SPDX-License-Identifier: GPL-2.0-only
config PXE
prompt "Add a PXE ROM"
def_bool n
depends on ARCH_X86
if PXE
menu "PXE Options"
choice
prompt "PXE ROM to use"
default BUILD_IPXE if EDK2_ENABLE_IPXE
default PXE_ROM
config PXE_ROM
bool "Add an existing PXE ROM image"
help
Select this option if you have a PXE ROM image that you would
like to add to your ROM.
config BUILD_IPXE
bool "Build and add an iPXE ROM"
help
Select this option to fetch and build a ROM from the iPXE project.
endchoice
config PXE_ROM_FILE
string "PXE ROM filename"
depends on PXE_ROM
default "pxe.rom"
help
The path and filename of the file to use as PXE ROM.
config PXE_ROM_ID
string "network card PCI IDs"
depends on !IPXE_BUILD_EFI
default "10ec,8168"
help
The comma-separated PCI vendor and device ID that would associate
your PXE ROM to your network card.
Example: 10ec,8168
In the above example 10ec is the PCI vendor ID (in hex, but without
the "0x" prefix) and 8168 specifies the PCI device ID of the
network card (also in hex, without "0x" prefix).
Under GNU/Linux you can run `lspci -nn` to list the IDs of your PCI devices.
if BUILD_IPXE
choice
prompt "iPXE version"
default IPXE_STABLE
config IPXE_STABLE
bool "2025.12"
help
iPXE uses a rolling release with no stable version, for
reproducibility, use the last commit of a given month as the
'stable' version.
This is iPXE from the end of December, 2025.
config IPXE_MASTER
bool "master"
help
Newest iPXE version.
endchoice
config IPXE_SERIAL_CONSOLE
bool "Enable iPXE serial console"
def_bool y if CONSOLE_SERIAL
help
Enable/disable iPXE serial console. Since SeaBIOS supports serial
console this option might be helpful to avoid duplicated output.
Unselect to let only SeaBIOS handle printing output.
config IPXE_NO_PROMPT
bool "Do not show prompt to boot from PXE"
default n
help
Don't wait for the user to press Ctrl-B.
The PXE still can be run as it shows up in SeaBIOS's payload list.
config IPXE_ADD_SCRIPT
bool "Embed an iPXE script for automated provisioning"
default n
help
Enable to embed a script that is run instead of an iPXE shell.
config IPXE_SCRIPT
string "Embedded iPXE script path and filename"
depends on IPXE_ADD_SCRIPT
default ""
help
Path to a script that is embedded into the iPXE binary.
Example: startup.ipxe
Uses the ipxe script instead showing the prompt:
"Press Ctrl-B to start iPXE..."
config IPXE_HAS_HTTPS
bool "Enable HTTPS protocol"
default y
help
Enable HTTPS protocol, which allows you to encrypt all communication
with a web server and to verify the server's identity
config IPXE_TRUST_CMD
bool "Enable TRUST commands"
default y
help
Enable imgverify and imgtrust commands, which allow you to verify
digital signature of file prior loading it, and restrict to loading
trusted files only.
config IPXE_BUILD_EFI
bool "Build iPXE for EFI target"
depends on PAYLOAD_EDK2
default y if EDK2_ENABLE_IPXE
default n
help
Build iPXE for EFI target, enabling it to be executed from EDK2. If not
selected, iPXE will be built for use with legacy BIOS.
endif # BUILD_IPXE
endmenu
endif # PXE