232 lines
7.5 KiB
Plaintext
232 lines
7.5 KiB
Plaintext
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
|