summaryrefslogtreecommitdiff
path: root/payloads/external/edk2/Kconfig
diff options
context:
space:
mode:
Diffstat (limited to 'payloads/external/edk2/Kconfig')
-rw-r--r--payloads/external/edk2/Kconfig203
1 files changed, 203 insertions, 0 deletions
diff --git a/payloads/external/edk2/Kconfig b/payloads/external/edk2/Kconfig
new file mode 100644
index 0000000000..ec6be897e3
--- /dev/null
+++ b/payloads/external/edk2/Kconfig
@@ -0,0 +1,203 @@
+if PAYLOAD_EDK2
+
+config PAYLOAD_FILE
+ string "edk2 binary"
+ default "$(obj)/UEFIPAYLOAD.fd"
+ help
+ The result of a UefiPayloadPkg build
+
+choice
+ prompt "Tianocore's EDK II payload"
+ default EDK2_UEFIPAYLOAD
+ 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_UEFIPAYLOAD
+ bool "UEFIPayload"
+ 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_UPSTREAM
+ bool "Upstream"
+ help
+ Select this option if you want to use upstream edk2 to build edk2.
+
+config EDK2_CUSTOM
+ bool "Custom"
+ 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/tianocore/edk2" if EDK2_UPSTREAM
+ default "https://github.com/mrchromebox/edk2" if EDK2_UEFIPAYLOAD
+ 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_UEFIPAYLOAD
+ default "origin/master" if EDK2_UPSTREAM
+ 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
+
+if EDK2_UEFIPAYLOAD || EDK2_CUSTOM || EDK2_UPSTREAM
+
+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_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.
+
+endif
+
+config EDK2_CUSTOM_BUILD_PARAMS
+ string "edk2 additional custom build parameters"
+ default "-D VARIABLE_SUPPORT=SMMSTORE" if EDK2_UEFIPAYLOAD && 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