summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSean Rhodes <sean@starlabs.systems>2022-07-22 10:10:38 +0100
committerMartin Roth <martin.roth@amd.corp-partner.google.com>2022-10-08 20:57:20 +0000
commit91564fc370323a5ba7caf7d7a4db265531545561 (patch)
tree524ee4258f77b8a04263d6b23c1cadfd5e2d44ef
parent325afdaf9fd58e6bbfc6884c86e1ea1d5c92b678 (diff)
payloads/edk2: Separate the build target and repository
Until recently, there were two options to build edk2, UefiPayloadPkg and CorebootPayloadPkg. Now, there is only one, UefiPayloadPkg but soon, there will be Universal Payload. It makes more sense, as the official edk2 repository doesn't work with coreboot, to have the build target and repository separate. That will allow for building either UefiPayloadPkg or Universal Payload from the official repository, MrChromebox' fork or a custom repository. Signed-off-by: Sean Rhodes <sean@starlabs.systems> Change-Id: If7f12423058ef69838741f384495ca766ccea083 Reviewed-on: https://review.coreboot.org/c/coreboot/+/66080 Tested-by: build bot (Jenkins) <no-reply@coreboot.org> Reviewed-by: Lean Sheng Tan <sheng.tan@9elements.com>
-rw-r--r--payloads/external/Makefile.inc5
-rw-r--r--payloads/external/edk2/Kconfig41
2 files changed, 26 insertions, 20 deletions
diff --git a/payloads/external/Makefile.inc b/payloads/external/Makefile.inc
index 6720f30630..3ca3fc9c75 100644
--- a/payloads/external/Makefile.inc
+++ b/payloads/external/Makefile.inc
@@ -161,8 +161,9 @@ $(obj)/UEFIPAYLOAD.fd: $(DOTCONFIG)
CONFIG_EDK2_REPOSITORY=$(CONFIG_EDK2_REPOSITORY) \
CONFIG_EDK2_TAG_OR_REV=$(CONFIG_EDK2_TAG_OR_REV) \
CONFIG_EDK2_UEFIPAYLOAD=$(CONFIG_EDK2_UEFIPAYLOAD) \
- CONFIG_EDK2_UPSTREAM=$(CONFIG_EDK2_UPSTREAM) \
- CONFIG_EDK2_CUSTOM=$(CONFIG_EDK2_CUSTOM) \
+ CONFIG_EDK2_REPO_OFFICIAL=$(CONFIG_EDK2_REPO_OFFICIAL) \
+ CONFIG_EDK2_REPO_MRCHROMEBOX=$(CONFIG_EDK2_REPO_MRCHROMEBOX) \
+ CONFIG_EDK2_REPO_CUSTOM=$(CONFIG_EDK2_REPO_CUSTOM) \
CONFIG_EDK2_CUSTOM_BUILD_PARAMS=$(CONFIG_EDK2_CUSTOM_BUILD_PARAMS) \
CONFIG_EDK2_DEBUG=$(CONFIG_EDK2_DEBUG) \
CONFIG_EDK2_RELEASE=$(CONFIG_EDK2_RELEASE) \
diff --git a/payloads/external/edk2/Kconfig b/payloads/external/edk2/Kconfig
index ec6be897e3..d2a589bdbb 100644
--- a/payloads/external/edk2/Kconfig
+++ b/payloads/external/edk2/Kconfig
@@ -2,32 +2,39 @@ if PAYLOAD_EDK2
config PAYLOAD_FILE
string "edk2 binary"
- default "$(obj)/UEFIPAYLOAD.fd"
+ 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_UEFIPAYLOAD
+ 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_UEFIPAYLOAD
- bool "UEFIPayload"
+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_UPSTREAM
- bool "Upstream"
+config EDK2_REPO_OFFICIAL
+ bool "Official edk2 repository"
help
- Select this option if you want to use upstream edk2 to build edk2.
+ Select this option if you want to use the official edk2 repository to build
+ edk2.
-config EDK2_CUSTOM
- bool "Custom"
+config EDK2_REPO_CUSTOM
+ bool "Specify your own repository"
help
Specify your own edk2 repository and branch to use.
@@ -35,16 +42,18 @@ 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
+ 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_UEFIPAYLOAD
- default "origin/master" if EDK2_UPSTREAM
+ 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.
@@ -69,8 +78,6 @@ config EDK2_RELEASE
endchoice
-if EDK2_UEFIPAYLOAD || EDK2_CUSTOM || EDK2_UPSTREAM
-
config EDK2_ABOVE_4G_MEMORY
bool "Enable above 4G memory"
default n
@@ -188,11 +195,9 @@ config EDK2_SERIAL_SUPPORT
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
+ 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