| if PAYLOAD_EDK2 |
| |
| config PAYLOAD_FILE |
| string "edk2 binary" |
| default "$(obj)/UEFIPAYLOAD.fd" if EDK2_UEFIPAYLOAD |
| help |
| The result of a UefiPayloadPkg build |
| |
| config EDK2_UEFIPAYLOAD |
| bool "Build UefiPayloadPkg" |
| default y |
| help |
| Build the standard UefiPayloadPkg |
| |
| choice |
| prompt "Tianocore's EDK II payload" |
| default EDK2_REPO_MRCHROMEBOX |
| help |
| Select which type of payload edk2 will build (default is UefiPayload) |
| UefiPayload: MrChromebox's customized fork of edk2 which works on most |
| x86_64 devices |
| Upstream: Use upstream edk2 payload from https://github.com/tianocore/edk2 |
| |
| config EDK2_REPO_MRCHROMEBOX |
| bool "MrChromebox' edk2 fork" |
| help |
| Select this option to build using MrChromebox's custom edk2 fork, |
| which incorporates fixes/improvements from System 76's and 9elements' trees. |
| |
| config EDK2_REPO_OFFICIAL |
| bool "Official edk2 repository" |
| help |
| Select this option if you want to use the official edk2 repository to build |
| edk2. |
| |
| Please note, this option will not work on any SOC without modification. |
| |
| config EDK2_REPO_CUSTOM |
| bool "Specify your own repository" |
| help |
| Specify your own edk2 repository and branch to use. |
| |
| endchoice |
| |
| config EDK2_REPOSITORY |
| string "URL to git repository for edk2" |
| default "https://github.com/mrchromebox/edk2" if EDK2_REPO_MRCHROMEBOX |
| default "https://github.com/tianocore/edk2" if EDK2_REPO_OFFICIAL |
| default "" if EDK2_REPO_CUSTOM |
| 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 EDK2_TAG_OR_REV |
| string "Insert a commit's SHA-1 or a branch name" |
| default "origin/uefipayload_202207" if EDK2_REPO_MRCHROMEBOX |
| default "origin/master" if EDK2_REPO_OFFICIAL |
| default "" if EDK2_REPO_CUSTOM |
| help |
| The commit's SHA-1 or branch name of the revision to use. This must exist in |
| EDK2_REPOSITORY, and in the case of a branch name, prefixed with origin i.e. |
| "origin/uefipayload_202202" |
| |
| choice |
| prompt "edk2 build" |
| default EDK2_RELEASE |
| help |
| Select whether to generate a debug or release build for |
| edk2; default is to generate a release build. |
| |
| config EDK2_DEBUG |
| bool "Generate edk2 debug build" |
| help |
| Generate a debug build. |
| |
| config EDK2_RELEASE |
| bool "Generate edk2 release build" |
| help |
| Generate a release build. |
| |
| endchoice |
| |
| config EDK2_VERBOSE_BUILD |
| bool "Output verbose build log for troubleshooting build failures" |
| help |
| Switch off the `-q` (quiet) and `-s` (silent) build arguments which makes the |
| build log extremely verbose. This can be used to troubleshoot failed builds |
| which are usually down to missing tools or toolchain. |
| |
| config EDK2_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 EDK2_BOOTSPLASH_FILE |
| string "edk2 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 EDK2_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 EDK2_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 EDK2_CBMEM_LOGGING |
| bool "Enable edk2 logging to CBMEM" |
| help |
| Select this option if you want to enable edk2 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 EDK2_CPU_TIMER_LIB |
| bool |
| default n |
| help |
| For recent Intel and AMD CPUs, the 0x15 CPUID instruction will return Time |
| Stamp Counter Frequence. For CPUs that do not support this instruction, |
| EDK2 must include a different library which is the reason why this must be |
| configured at build time. |
| |
| If this is enabled, and the CPU doesn't support 0x15, it will fail to |
| boot. If it is not enabled, and the CPU does support 0x15, it will still |
| boot but without support for the leaf. Consequently, it is disabled by |
| default. |
| |
| config EDK2_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 EDK2_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 EDK2_HAVE_EFI_SHELL |
| bool "Include EFI Shell" |
| default y |
| help |
| Include the EFI shell Binary |
| |
| config EDK2_PRIORITIZE_INTERNAL |
| bool "Prioritize internal boot devices" |
| default y |
| help |
| Prioritize internal boot devices over external devices |
| |
| config EDK2_PS2_SUPPORT |
| bool "Support PS/2 Keyboards" |
| default y |
| help |
| Include support for PS/2 keyboards |
| |
| config EDK2_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 EDK2_SERIAL_SUPPORT |
| bool "Support serial output" |
| default y if EDK2_DEBUG |
| default n |
| help |
| Enable serial port output in edk2. Serial output limits the performance of edk2's |
| FrontPage. |
| |
| config EDK2_CUSTOM_BUILD_PARAMS |
| string "edk2 additional custom build parameters" |
| default "-D VARIABLE_SUPPORT=SMMSTORE" if EDK2_REPO_MRCHROMEBOX && SMMSTORE_V2 |
| 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 |