From 91564fc370323a5ba7caf7d7a4db265531545561 Mon Sep 17 00:00:00 2001 From: Sean Rhodes Date: Fri, 22 Jul 2022 10:10:38 +0100 Subject: 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 Change-Id: If7f12423058ef69838741f384495ca766ccea083 Reviewed-on: https://review.coreboot.org/c/coreboot/+/66080 Tested-by: build bot (Jenkins) Reviewed-by: Lean Sheng Tan --- payloads/external/Makefile.inc | 5 +++-- payloads/external/edk2/Kconfig | 41 +++++++++++++++++++++++------------------ 2 files changed, 26 insertions(+), 20 deletions(-) (limited to 'payloads/external') 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 -- cgit v1.2.3