2022-07-13 11:11:44 +02:00
|
|
|
if PAYLOAD_EDK2
|
2015-07-01 00:58:56 +02:00
|
|
|
|
|
|
|
config PAYLOAD_FILE
|
2022-07-13 11:11:44 +02:00
|
|
|
string "edk2 binary"
|
2022-07-22 11:10:38 +02:00
|
|
|
default "$(obj)/UEFIPAYLOAD.fd" if EDK2_UEFIPAYLOAD
|
2022-07-17 21:51:16 +02:00
|
|
|
default "$(obj)/ShimmedUniversalPayload.elf" if EDK2_UNIVERSAL_PAYLOAD
|
2015-07-01 00:58:56 +02:00
|
|
|
help
|
2021-05-10 18:02:13 +02:00
|
|
|
The result of a UefiPayloadPkg build
|
2015-07-01 00:58:56 +02:00
|
|
|
|
2022-07-17 21:51:16 +02:00
|
|
|
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.
|
|
|
|
|
2022-07-22 11:10:38 +02:00
|
|
|
config EDK2_UEFIPAYLOAD
|
|
|
|
bool "Build UefiPayloadPkg"
|
|
|
|
help
|
|
|
|
Build the standard UefiPayloadPkg
|
|
|
|
|
2022-07-17 21:51:16 +02:00
|
|
|
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
|
|
|
|
|
2016-06-03 00:42:29 +02:00
|
|
|
choice
|
2022-07-13 11:11:44 +02:00
|
|
|
prompt "Tianocore's EDK II payload"
|
2022-07-22 11:10:38 +02:00
|
|
|
default EDK2_REPO_MRCHROMEBOX
|
2016-06-03 00:42:29 +02:00
|
|
|
help
|
2022-07-13 11:11:44 +02:00
|
|
|
Select which type of payload edk2 will build (default is UefiPayload)
|
|
|
|
UefiPayload: MrChromebox's customized fork of edk2 which works on most
|
2021-05-10 18:02:13 +02:00
|
|
|
x86_64 devices
|
2022-07-13 11:11:44 +02:00
|
|
|
Upstream: Use upstream edk2 payload from https://github.com/tianocore/edk2
|
2016-06-03 00:42:29 +02:00
|
|
|
|
2022-07-22 11:10:38 +02:00
|
|
|
config EDK2_REPO_MRCHROMEBOX
|
|
|
|
bool "MrChromebox' edk2 fork"
|
2021-05-10 18:02:13 +02:00
|
|
|
help
|
2022-07-13 11:11:44 +02:00
|
|
|
Select this option to build using MrChromebox's custom edk2 fork,
|
2021-05-10 18:02:13 +02:00
|
|
|
which incorporates fixes/improvements from System 76's and 9elements' trees.
|
|
|
|
|
2022-07-22 11:10:38 +02:00
|
|
|
config EDK2_REPO_OFFICIAL
|
|
|
|
bool "Official edk2 repository"
|
2016-06-03 00:42:29 +02:00
|
|
|
help
|
2022-07-22 11:10:38 +02:00
|
|
|
Select this option if you want to use the official edk2 repository to build
|
|
|
|
edk2.
|
2016-06-03 00:42:29 +02:00
|
|
|
|
2022-09-22 22:40:08 +02:00
|
|
|
Please note, this option will not work on any SOC without modification.
|
|
|
|
|
2022-07-22 11:10:38 +02:00
|
|
|
config EDK2_REPO_CUSTOM
|
|
|
|
bool "Specify your own repository"
|
2022-02-04 08:41:16 +01:00
|
|
|
help
|
|
|
|
Specify your own edk2 repository and branch to use.
|
|
|
|
|
2016-06-03 00:42:29 +02:00
|
|
|
endchoice
|
|
|
|
|
2022-07-13 11:11:44 +02:00
|
|
|
config EDK2_REPOSITORY
|
2022-02-04 08:41:16 +01:00
|
|
|
string "URL to git repository for edk2"
|
2022-07-17 21:51:16 +02:00
|
|
|
default "https://github.com/starlabsltd/edk2" if EDK2_UNIVERSAL_PAYLOAD
|
2022-07-22 11:10:38 +02:00
|
|
|
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
|
2022-02-04 08:41:16 +01:00
|
|
|
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.
|
|
|
|
|
2022-07-13 11:11:44 +02:00
|
|
|
config EDK2_TAG_OR_REV
|
2016-06-03 00:42:29 +02:00
|
|
|
string "Insert a commit's SHA-1 or a branch name"
|
2023-04-30 22:21:20 +02:00
|
|
|
default "origin/uefipayload_202304" if EDK2_REPO_MRCHROMEBOX
|
2022-07-17 21:51:16 +02:00
|
|
|
default "origin/universalpayload" if EDK2_UNIVERSAL_PAYLOAD
|
2022-07-22 11:10:38 +02:00
|
|
|
default "origin/master" if EDK2_REPO_OFFICIAL
|
|
|
|
default "" if EDK2_REPO_CUSTOM
|
2016-06-03 00:42:29 +02:00
|
|
|
help
|
2022-02-04 08:41:16 +01:00
|
|
|
The commit's SHA-1 or branch name of the revision to use. This must exist in
|
2022-07-13 11:11:44 +02:00
|
|
|
EDK2_REPOSITORY, and in the case of a branch name, prefixed with origin i.e.
|
2022-02-04 08:41:16 +01:00
|
|
|
"origin/uefipayload_202202"
|
2016-06-03 00:42:29 +02:00
|
|
|
|
2022-10-26 11:32:54 +02:00
|
|
|
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
|
|
|
|
|
2016-06-03 00:42:29 +02:00
|
|
|
choice
|
2022-07-13 11:11:44 +02:00
|
|
|
prompt "edk2 build"
|
|
|
|
default EDK2_RELEASE
|
2016-06-03 00:42:29 +02:00
|
|
|
help
|
|
|
|
Select whether to generate a debug or release build for
|
2022-07-13 11:11:44 +02:00
|
|
|
edk2; default is to generate a release build.
|
2016-06-03 00:42:29 +02:00
|
|
|
|
2022-07-13 11:11:44 +02:00
|
|
|
config EDK2_DEBUG
|
|
|
|
bool "Generate edk2 debug build"
|
2016-06-03 00:42:29 +02:00
|
|
|
help
|
|
|
|
Generate a debug build.
|
|
|
|
|
2022-07-13 11:11:44 +02:00
|
|
|
config EDK2_RELEASE
|
|
|
|
bool "Generate edk2 release build"
|
2016-06-03 00:42:29 +02:00
|
|
|
help
|
|
|
|
Generate a release build.
|
|
|
|
|
|
|
|
endchoice
|
|
|
|
|
2022-07-13 11:11:44 +02:00
|
|
|
config EDK2_BOOTSPLASH_FILE
|
|
|
|
string "edk2 Bootsplash path and filename"
|
2022-07-26 06:27:19 +02:00
|
|
|
default "Documentation/coreboot_logo.bmp"
|
2019-02-22 05:41:59 +01:00
|
|
|
help
|
2022-07-15 14:58:52 +02:00
|
|
|
The path and filename of the file to use as graphical bootsplash
|
|
|
|
image. If this option is not configured, the default
|
2022-02-04 08:41:16 +01:00
|
|
|
coreboot logo (European Brown Hare) will used.
|
|
|
|
|
2022-07-15 14:58:52 +02:00
|
|
|
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
|
2022-07-13 11:11:44 +02:00
|
|
|
edk2 requires, which is an uncompressed BMP, in BMP3 format. It does
|
2022-07-15 14:58:52 +02:00
|
|
|
this using imagemagick (`convert splosh.bmp BMP3:splash.bmp`).
|
|
|
|
|
|
|
|
The newly formatted file will be the dimensions size as the original
|
|
|
|
one.
|
2022-02-04 08:41:16 +01:00
|
|
|
|
2022-07-15 14:58:52 +02:00
|
|
|
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!).
|
2021-01-08 06:37:40 +01:00
|
|
|
|
|
|
|
This image will also be used as the BGRT boot image, which may
|
2022-02-04 08:41:16 +01:00
|
|
|
persist through your OS boot process.
|
2021-01-08 06:37:40 +01:00
|
|
|
|
|
|
|
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).
|
2019-02-22 05:41:59 +01:00
|
|
|
|
|
|
|
If an absolute path is not given, the path will assumed to be
|
|
|
|
relative to the coreboot root directory.
|
|
|
|
|
2022-07-13 11:11:44 +02:00
|
|
|
config EDK2_BOOT_MANAGER_ESCAPE
|
2022-02-09 09:25:39 +01:00
|
|
|
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.
|
|
|
|
|
2022-07-13 11:11:44 +02:00
|
|
|
config EDK2_BOOT_TIMEOUT
|
2022-03-03 09:05:12 +01:00
|
|
|
int "Set the timeout for boot menu prompt"
|
2022-02-04 08:41:16 +01:00
|
|
|
default 2
|
2021-07-12 20:35:51 +02:00
|
|
|
help
|
2022-02-04 08:41:16 +01:00
|
|
|
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.
|
2021-07-12 20:35:51 +02:00
|
|
|
|
2022-07-13 11:11:44 +02:00
|
|
|
config EDK2_CBMEM_LOGGING
|
|
|
|
bool "Enable edk2 logging to CBMEM"
|
2022-02-04 08:41:16 +01:00
|
|
|
help
|
2022-07-13 11:11:44 +02:00
|
|
|
Select this option if you want to enable edk2 logging to CBMEM.
|
2022-02-04 08:41:16 +01:00
|
|
|
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.
|
2021-07-12 20:35:51 +02:00
|
|
|
|
2022-07-18 12:31:00 +02:00
|
|
|
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.
|
|
|
|
|
2022-07-13 11:11:44 +02:00
|
|
|
config EDK2_FOLLOW_BGRT_SPEC
|
2022-02-09 09:27:29 +01:00
|
|
|
bool "Center logo 38.2% from the top of screen"
|
|
|
|
default n
|
|
|
|
help
|
|
|
|
Follow the BGRT Specification implemented by Microsoft and
|
2022-02-09 09:30:07 +01:00
|
|
|
the Boot Logo 38.2% will be vertically centered 38.2% from
|
|
|
|
the top of the display.
|
|
|
|
|
2022-07-13 11:11:44 +02:00
|
|
|
config EDK2_FULL_SCREEN_SETUP
|
2022-07-26 17:50:00 +02:00
|
|
|
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.
|
|
|
|
|
2022-07-13 11:11:44 +02:00
|
|
|
config EDK2_HAVE_EFI_SHELL
|
2022-02-09 09:30:07 +01:00
|
|
|
bool "Include EFI Shell"
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
Include the EFI shell Binary
|
2022-02-09 09:27:29 +01:00
|
|
|
|
2022-07-13 11:11:44 +02:00
|
|
|
config EDK2_PRIORITIZE_INTERNAL
|
2022-02-10 10:21:50 +01:00
|
|
|
bool "Prioritize internal boot devices"
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
Prioritize internal boot devices over external devices
|
|
|
|
|
2022-07-13 11:11:44 +02:00
|
|
|
config EDK2_PS2_SUPPORT
|
2022-02-09 09:31:24 +01:00
|
|
|
bool "Support PS/2 Keyboards"
|
|
|
|
default y
|
|
|
|
help
|
|
|
|
Include support for PS/2 keyboards
|
|
|
|
|
2022-07-13 11:11:44 +02:00
|
|
|
config EDK2_SD_MMC_TIMEOUT
|
2022-07-13 09:09:59 +02:00
|
|
|
int "Timeout in ms for initializing SD and eMMC devices"
|
|
|
|
default 10
|
2022-02-13 22:19:19 +01:00
|
|
|
help
|
|
|
|
The amount of time allowed to initialize the SD Card reader and/or eMMC drive.
|
2022-07-13 09:09:59 +02:00
|
|
|
Most only require 10ms, but certain readers can take 1s.
|
2022-02-13 22:19:19 +01:00
|
|
|
|
2022-07-13 11:11:44 +02:00
|
|
|
config EDK2_SERIAL_SUPPORT
|
2022-07-04 18:01:09 +02:00
|
|
|
bool "Support serial output"
|
2022-07-13 11:11:44 +02:00
|
|
|
default y if EDK2_DEBUG
|
2022-07-04 18:01:09 +02:00
|
|
|
default n
|
|
|
|
help
|
|
|
|
Enable serial port output in edk2. Serial output limits the performance of edk2's
|
|
|
|
FrontPage.
|
|
|
|
|
payloads/edk2: Add Kconfig to enable UEFI Secure Boot support
Now that MrChromebox's default edk2 branch supports Secure Boot, add a
Kconfig to enable it, and do so by default when MrChromebox's branch
is used and SMMSTORE_V2 is enabled (which is a prerequisite).
TEST=build/boot google boards link, panther, lulu,reef, ampton, akemi,
and banshee, verify Secure Boot options available in payload, Secure
Boot status reported properly by Linux/Windows.
Change-Id: I4be58c3315cabe08729d717c59203fdc6a3e2958
Signed-off-by: Matt DeVillier <matt.devillier@gmail.com>
Reviewed-on: https://review.coreboot.org/c/coreboot/+/74869
Reviewed-by: Sean Rhodes <sean@starlabs.systems>
Reviewed-by: Paul Menzel <paulepanter@mailbox.org>
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
2023-04-30 22:10:57 +02:00
|
|
|
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.
|
|
|
|
|
2022-07-13 11:11:44 +02:00
|
|
|
config EDK2_CUSTOM_BUILD_PARAMS
|
|
|
|
string "edk2 additional custom build parameters"
|
2022-07-22 11:10:38 +02:00
|
|
|
default "-D VARIABLE_SUPPORT=SMMSTORE" if EDK2_REPO_MRCHROMEBOX && SMMSTORE_V2
|
2022-02-23 16:55:24 +01:00
|
|
|
help
|
2022-07-27 22:41:54 +02:00
|
|
|
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.
|
2022-02-23 16:55:24 +01:00
|
|
|
|
2022-07-27 22:41:54 +02:00
|
|
|
This option can support both macros `-D` and Pcds `--pcd`.
|
2022-02-23 16:55:24 +01:00
|
|
|
|
2015-07-01 00:58:56 +02:00
|
|
|
endif
|