301 lines
9.9 KiB
Plaintext
301 lines
9.9 KiB
Plaintext
if PAYLOAD_EDK2
|
|
|
|
config PAYLOAD_FILE
|
|
string "edk2 binary"
|
|
default "$(obj)/UEFIPAYLOAD.fd" if EDK2_UEFIPAYLOAD
|
|
default "$(obj)/ShimmedUniversalPayload.elf" if EDK2_UNIVERSAL_PAYLOAD
|
|
help
|
|
The result of a UefiPayloadPkg build
|
|
|
|
choice
|
|
prompt "EDK II build type"
|
|
default EDK2_UEFIPAYLOAD
|
|
help
|
|
Select the build type for edk2. UniversalPayload is recommended, as it is
|
|
replacing UefiPayloadPkg. Whilst in the transition phase between the two,
|
|
both options exist.
|
|
|
|
config EDK2_UEFIPAYLOAD
|
|
bool "Build UefiPayloadPkg"
|
|
help
|
|
Build the standard UefiPayloadPkg
|
|
|
|
config EDK2_UNIVERSAL_PAYLOAD
|
|
bool "Build Universal Payload"
|
|
help
|
|
Select this option if you want to build a coreboot image
|
|
with EDK2s Universal Payload. If you don't know what this is
|
|
about, just leave it enabled.
|
|
|
|
Universal Payload should ideally only be built from upstream EDK2,
|
|
https://github.com/tianocore/edk2, as this is regularly build tested
|
|
and it encourages patches to be merged upstream.
|
|
|
|
Whilst the required patches are being merged, this is pointed to
|
|
Star Labs GitHub repository which contains these patches and is based
|
|
on a known working commit.
|
|
|
|
See https://universalscalablefirmware.github.io/documentation/ for more information.
|
|
|
|
endchoice
|
|
|
|
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, commit c4fdec0a83d6 ("UefiCpuPkg/MtrrLib: Improve MtrrDebugPrintAllMtrrsWorker"),
|
|
and the preceding MTRR patches, must be in the branch used or edk2 will not boot due
|
|
to trampling MTRRs set up by coreboot.
|
|
|
|
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/starlabsltd/edk2" if EDK2_UNIVERSAL_PAYLOAD
|
|
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_202309" if EDK2_REPO_MRCHROMEBOX
|
|
default "origin/universalpayload" if EDK2_UNIVERSAL_PAYLOAD
|
|
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"
|
|
|
|
config EDK2_USE_EDK2_PLATFORMS
|
|
bool "Use edk2-platforms repository"
|
|
default n
|
|
help
|
|
Clone edk2-platforms repository to the edk2 workspace for additional modules.
|
|
|
|
if EDK2_USE_EDK2_PLATFORMS
|
|
|
|
config EDK2_PLATFORMS_REPOSITORY
|
|
string "URL to git repository for edk2-platforms"
|
|
default "https://github.com/tianocore/edk2-platforms"
|
|
help
|
|
URL to the edk2-platfors repository to clone.
|
|
|
|
config EDK2_PLATFORMS_TAG_OR_REV
|
|
string "Insert a commit's SHA-1 or a branch name"
|
|
default "origin/master"
|
|
help
|
|
The commit's SHA-1 or branch name of the revision to use. This must exist in
|
|
EDK2_PLATFORMS_REPOSITORY, and in the case of a branch name, prefixed with
|
|
origin i.e. "origin/master"
|
|
|
|
endif
|
|
|
|
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_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"
|
|
depends on EDK2_REPO_MRCHROMEBOX
|
|
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"
|
|
depends on EDK2_REPO_MRCHROMEBOX
|
|
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_SECURE_BOOT_SUPPORT
|
|
bool "Enable UEFI Secure Boot support"
|
|
depends on EDK2_REPO_MRCHROMEBOX && SMMSTORE_V2
|
|
default y if EDK2_REPO_MRCHROMEBOX && SMMSTORE_V2
|
|
help
|
|
Select this option to enable UEFI SecureBoot support in edk2.
|
|
UEFI SecureBoot will be disabled by default and can be enabled from the menu option.
|
|
|
|
config EDK2_GOP_DRIVER
|
|
bool "Add a GOP driver to the Tianocore build"
|
|
depends on INTEL_GMA_ADD_VBT && NO_GFX_INIT && EDK2_REPO_MRCHROMEBOX
|
|
default y if INTEL_GMA_ADD_VBT && NO_GFX_INIT && EDK2_REPO_MRCHROMEBOX
|
|
help
|
|
Select this option to have edk2 use an external GOP driver for display init.
|
|
|
|
config EDK2_GOP_FILE
|
|
string "GOP driver file"
|
|
depends on EDK2_GOP_DRIVER
|
|
default "IntelGopDriver.efi"
|
|
help
|
|
The name of the GOP driver file passed to edk2.
|
|
|
|
config EDK2_DISABLE_TPM
|
|
bool "Disable TPM support in edk2"
|
|
default y if EDK2_REPO_MRCHROMEBOX && TPM_GOOGLE_CR50 && SOC_AMD_COMMON
|
|
help
|
|
Select this option to disable TPM support in edk2. This is necessary to avoid boot
|
|
hangs on some boards with a CR50 TPM, particularly those with an AMD Zen SoC.
|
|
|
|
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
|