if PAYLOAD_TIANOCORE config PAYLOAD_FILE string "Tianocore binary" default "$(obj)/UEFIPAYLOAD.fd" help The result of a UefiPayloadPkg build choice prompt "Tianocore payload" default TIANOCORE_UEFIPAYLOAD help Select which type of payload Tianocore will build (default is UefiPayload) UefiPayload: MrChromebox's customized fork of Tianocore which works on most x86_64 devices Upstream: Use upstream Tianocore payload from https://github.com/tianocore/edk2 CorebootPayload: MrChromebox's customized fork of the deprecated CorebootPayloadPkg Tianocore build target. It may work better on some older hardware (eg, x230) which does not work properly with the UefiPayloadPkg options. config TIANOCORE_UEFIPAYLOAD bool "UEFIPayload" help Select this option to build using MrChromebox's custom Tianocore fork, which incorporates fixes/improvements from System 76's and 9elements' trees. config TIANOCORE_UPSTREAM bool "Upstream" help Select this option if you want to use upstream EDK2 to build Tianocore. config TIANOCORE_COREBOOTPAYLOAD bool "CorebootPayload" help Select this option to build using MrChromebox's older (now deprecated) CorebootPayloadPkg-based Tianocore branch config TIANOCORE_CUSTOM bool "Custom" help Specify your own edk2 repository and branch to use. endchoice config TIANOCORE_REPOSITORY string "URL to git repository for edk2" default "https://github.com/tianocore/edk2" if TIANOCORE_UPSTREAM default "https://github.com/mrchromebox/edk2" if TIANOCORE_UEFIPAYLOAD || TIANOCORE_COREBOOTPAYLOAD help coreboot supports an array of build options which can be found below. These options will only have an effect if the relevant options exist in the target repository. config TIANOCORE_TAG_OR_REV string "Insert a commit's SHA-1 or a branch name" default "origin/uefipayload_202107" if TIANOCORE_UEFIPAYLOAD default "origin/master" if TIANOCORE_UPSTREAM default "origin/coreboot_fb" if TIANOCORE_COREBOOTPAYLOAD help The commit's SHA-1 or branch name of the revision to use. This must exist in TIANOCORE_REPOSITORY, and in the case of a branch name, prefixed with origin i.e. "origin/uefipayload_202202" choice prompt "Tianocore build" default TIANOCORE_RELEASE help Select whether to generate a debug or release build for Tianocore; default is to generate a release build. config TIANOCORE_DEBUG bool "Generate Tianocore debug build" help Generate a debug build. config TIANOCORE_RELEASE bool "Generate Tianocore release build" help Generate a release build. endchoice if TIANOCORE_UEFIPAYLOAD || TIANOCORE_CUSTOM || TIANOCORE_UPSTREAM config TIANOCORE_ABOVE_4G_MEMORY bool "Enable above 4G memory" default n help Select this option to enable Above 4G Decode. This will allow the payload to use all of the memory, rather than an maximum of 4G. Disabling memory above 4G is useful for bootloaders that are not fully 64-bit aware such as Qubes R4.0.4 bootloader. config TIANOCORE_BOOTSPLASH_FILE string "Tianocore Bootsplash path and filename" default "Documentation/coreboot_logo.bmp" help The path and filename of the file to use as graphical bootsplash image. If this option is not configured, the default coreboot logo (European Brown Hare) will used. You can use any image format supported by imagemagick, a list of which can be found [here](https://imagemagick.org/script/formats.php). The build process will automatically convert this to the format that EDK2 requires, which is an uncompressed BMP, in BMP3 format. It does this using imagemagick (`convert splosh.bmp BMP3:splash.bmp`). The newly formatted file will be the dimensions size as the original one. The build process will automatically do this conversion, so it can be supplied with any format that imagemagick can process (which is pretty much any!). This image will also be used as the BGRT boot image, which may persist through your OS boot process. See ACPI spec 6.3, 5.2.22 Boot Graphics Resource Table (BGRT), and Microsoft's documentation on BGRT positioning: Docs/Windows/Windows Drivers/Bring up guide/Boot screen components Accordingly, the image used should be no taller/wider than 40% of the display panel's native pixel height/width (or resolution set). If an absolute path is not given, the path will assumed to be relative to the coreboot root directory. config TIANOCORE_BOOT_MANAGER_ESCAPE bool "Use Escape key for Boot Manager" default n help Use Escape as the hot-key to access the Boot Manager. This replaces the default key of F2. config TIANOCORE_BOOT_TIMEOUT int "Set the timeout for boot menu prompt" default 2 help The length of time in seconds for which the boot splash/menu prompt will be displayed. For boards with an internal display, the default value of 2s is generally sufficient. For boards with an external display, a value of 5s is generally sufficient. config TIANOCORE_CBMEM_LOGGING bool "Enable Tianocore logging to CBMEM" help Select this option if you want to enable Tianocore logging to CBMEM. You may want to increase the default cbmem buffer size when selecting this option, especially if using a debug (vs release) build. Selecting this option will increase the payload size in CBFS by 0x10000. config TIANOCORE_FOLLOW_BGRT_SPEC bool "Center logo 38.2% from the top of screen" default n help Follow the BGRT Specification implemented by Microsoft and the Boot Logo 38.2% will be vertically centered 38.2% from the top of the display. config TIANOCORE_FULL_SCREEN_SETUP bool "Use the full screen for the edk2 frontpage" default y help Allow edk2 to use the full screen to display the frontpage (aka "Boot Menu"). With this option disable, it will be limited to 640x480. config TIANOCORE_HAVE_EFI_SHELL bool "Include EFI Shell" default y help Include the EFI shell Binary config TIANOCORE_PRIORITIZE_INTERNAL bool "Prioritize internal boot devices" default y help Prioritize internal boot devices over external devices config TIANOCORE_PS2_SUPPORT bool "Support PS/2 Keyboards" default y help Include support for PS/2 keyboards config TIANOCORE_SD_MMC_TIMEOUT int "Timeout in ms for initializing SD and eMMC devices" default 10 help The amount of time allowed to initialize the SD Card reader and/or eMMC drive. Most only require 10ms, but certain readers can take 1s. config TIANOCORE_SERIAL_SUPPORT bool "Support serial output" default y if TIANOCORE_DEBUG default n help Enable serial port output in edk2. Serial output limits the performance of edk2's FrontPage. endif if TIANOCORE_COREBOOTPAYLOAD config TIANOCORE_USE_8254_TIMER bool "TianoCore 8254 Timer" help Use 8254 Timer for legacy support. endif config TIANOCORE_CUSTOM_BUILD_PARAMS string "TianoCore additional custom build parameters" help edk2 has build options that are not modified by coreboot, and these can be found in `UefiPayloadPkg/UefiPayloadPkg.dsc`. Forks may also support additional build options that should have been upstreamed but have not. This option can support both macros `-D` and Pcds `--pcd`. endif