payloads/external/edk2: Add ability to build different payload pkg

Change-Id: If45d681604a93c1ae9fb463b3a6ef01a1a5cbe3a
Signed-off-by: Michał Żygowski <michal.zygowski@3mdeb.com>
This commit is contained in:
Michał Żygowski
2026-01-15 12:08:31 +01:00
parent d14771059a
commit 4eb4e7aafc
2 changed files with 25 additions and 23 deletions
+1 -1
View File
@@ -161,7 +161,7 @@ IPXE_EFI := payloads/external/iPXE/ipxe/ipxe.rom
endif
$(obj)/UEFIPAYLOAD.fd: $(DOTCONFIG) $(IPXE_EFI)
$(MAKE) -C payloads/external/edk2 UefiPayloadPkg \
$(MAKE) -C payloads/external/edk2 DasharoPayloadPkg \
HOSTCC="$(HOSTCC)" \
CC="$(HOSTCC)" \
CONFIG_EDK2_REPOSITORY=$(CONFIG_EDK2_REPOSITORY) \
+24 -22
View File
@@ -26,8 +26,10 @@ endif
OBJCOPY = $(GCC_PREFIX)objcopy
PAYLOAD_PKG=DasharoPayloadPkg
ifeq ($(CONFIG_EDK2_UEFIPAYLOAD),y)
BUILD_STR += -p UefiPayloadPkg/UefiPayloadPkg.dsc
BUILD_STR += -p $(PAYLOAD_PKG)/$(PAYLOAD_PKG).dsc
endif
BUILD_STR += -t GCC
BUILD_STR += -D BOOTLOADER=COREBOOT
@@ -195,7 +197,7 @@ ifneq ($(CONFIG_EDK2_CUSTOM_BUILD_PARAMS),)
BUILD_STR += $(CONFIG_EDK2_CUSTOM_BUILD_PARAMS)
endif
all: UefiPayloadPkg
all: $(PAYLOAD_PKG)
$(WORKSPACE):
mkdir $(WORKSPACE)
@@ -223,8 +225,8 @@ $(EDK2_PATH): $(WORKSPACE)
fi
cd $(EDK2_PATH); \
git checkout MdeModulePkg/Logo/Logo.bmp > /dev/null 2>&1 || true; \
if [ -e UefiPayloadPkg/ShimLayer/UniversalPayload.o ]; then \
rm UefiPayloadPkg/ShimLayer/UniversalPayload.o; \
if [ -e $(PAYLOAD_PKG)/ShimLayer/UniversalPayload.o ]; then \
rm $(PAYLOAD_PKG)/ShimLayer/UniversalPayload.o; \
fi; \
echo " Fetching new commits from $(CONFIG_EDK2_REPOSITORY)"; \
git fetch origin 2>/dev/null; \
@@ -253,8 +255,8 @@ logo: $(EDK2_PATH)
gop_driver: $(EDK2_PATH)
if [ -n "$(CONFIG_EDK2_GOP_DRIVER)" ]; then \
echo "Using GOP driver $(CONFIG_EDK2_GOP_FILE)"; \
cp $(top)/$(CONFIG_EDK2_GOP_FILE) $(EDK2_PATH)/UefiPayloadPkg/IntelGopDriver.efi; \
cp $(top)/$(CONFIG_INTEL_GMA_VBT_FILE) $(EDK2_PATH)/UefiPayloadPkg/vbt.bin; \
cp $(top)/$(CONFIG_EDK2_GOP_FILE) $(EDK2_PATH)/$(PAYLOAD_PKG)/IntelGopDriver.efi; \
cp $(top)/$(CONFIG_INTEL_GMA_VBT_FILE) $(EDK2_PATH)/$(PAYLOAD_PKG)/vbt.bin; \
fi; \
ipxe_rom: $(EDK2_PATH)
@@ -307,49 +309,49 @@ prep: $(EDK2_PATH) $(EDK2_PLATFORMS_PATH) clean checktools logo gop_driver ipxe_
source $(EDK2_PATH)/edksetup.sh; \
unset CC; $(MAKE) -C $(EDK2_PATH)/BaseTools 2>&1; \
$(WORKSPACE)/Build/UefiPayloadPkgX64/$(RELEASE_STR)_GCC/FV/UEFIPAYLOAD.fd: \
$(WORKSPACE)/Build/$(PAYLOAD_PKG)X64/$(RELEASE_STR)_GCC/FV/UEFIPAYLOAD.fd: \
prep print
cd $(WORKSPACE); \
source $(EDK2_PATH)/edksetup.sh; \
echo -n "EDK2: Building... "; \
build -a IA32 -a X64 -b $(RELEASE_STR) $(BUILD_STR) \
-y $(WORKSPACE)/Build/UefiPayloadPkgX64/UEFIPAYLOAD.txt; \
-y $(WORKSPACE)/Build/$(PAYLOAD_PKG)X64/UEFIPAYLOAD.txt; \
if [ ! -f $@ ]; then \
echo "Failed!"; \
exit 1; \
fi
echo "Success!"; \
$(WORKSPACE)/Build/UefiPayloadPkgX64/UniversalPayload.elf: \
$(WORKSPACE)/Build/$(PAYLOAD_PKG)X64/UniversalPayload.elf: \
prep print
cd $(WORKSPACE); \
source $(EDK2_PATH)/edksetup.sh; \
echo -n "EDK2: Building... "; \
$(EDK2_PATH)/UefiPayloadPkg/UniversalPayloadBuild.sh -a IA32 -b $(RELEASE_STR) $(BUILD_STR)
$(EDK2_PATH)/$(PAYLOAD_PKG)/UniversalPayloadBuild.sh -a IA32 -b $(RELEASE_STR) $(BUILD_STR)
if [ ! -f $@ ]; then \
echo "Failed!"; \
exit 1; \
fi
echo "Success!"; \
$(WORKSPACE)/Build/UefiPayloadPkgX64/$(RELEASE_STR)_GCC/IA32/UefiPayloadPkg/ShimLayer/ShimLayer/DEBUG/ShimLayer.dll: \
$(WORKSPACE)/Build/UefiPayloadPkgX64/UniversalPayload.elf prep
cd $(WORKSPACE)/Build/UefiPayloadPkgX64 && \
$(WORKSPACE)/Build/$(PAYLOAD_PKG)X64/$(RELEASE_STR)_GCC/IA32/$(PAYLOAD_PKG)/ShimLayer/ShimLayer/DEBUG/ShimLayer.dll: \
$(WORKSPACE)/Build/$(PAYLOAD_PKG)X64/UniversalPayload.elf prep
cd $(WORKSPACE)/Build/$(PAYLOAD_PKG)X64 && \
$(OBJCOPY) -I binary UniversalPayload.elf -O elf32-i386 -B i386 \
$(EDK2_PATH)/UefiPayloadPkg/ShimLayer/UniversalPayload.o; \
$(EDK2_PATH)/$(PAYLOAD_PKG)/ShimLayer/UniversalPayload.o; \
cd $(WORKSPACE) && \
source $(EDK2_PATH)/edksetup.sh; \
build -p UefiPayloadPkg/UefiPayloadPkg.dsc -b $(RELEASE_STR) -a IA32 -a X64 \
-m UefiPayloadPkg/ShimLayer/ShimLayer.inf \
build -p $(PAYLOAD_PKG)/$(PAYLOAD_PKG).dsc -b $(RELEASE_STR) -a IA32 -a X64 \
-m $(PAYLOAD_PKG)/ShimLayer/ShimLayer.inf \
-t COREBOOT -D BOOTLOADER=COREBOOT -D SHIMLAYER=TRUE \
-y $(WORKSPACE)/Build/UefiPayloadPkgX64/ShimLayer.txt
-y $(WORKSPACE)/Build/$(PAYLOAD_PKG)X64/ShimLayer.txt
UefiPayloadPkg: $(WORKSPACE)/Build/UefiPayloadPkgX64/$(RELEASE_STR)_GCC/FV/UEFIPAYLOAD.fd
mv $(WORKSPACE)/Build/UefiPayloadPkgX64/$(RELEASE_STR)_GCC/FV/UEFIPAYLOAD.fd \
$(PAYLOAD_PKG): $(WORKSPACE)/Build/$(PAYLOAD_PKG)X64/$(RELEASE_STR)_GCC/FV/UEFIPAYLOAD.fd
mv $(WORKSPACE)/Build/$(PAYLOAD_PKG)X64/$(RELEASE_STR)_GCC/FV/UEFIPAYLOAD.fd \
../../../build/UEFIPAYLOAD.fd
UniversalPayload: $(WORKSPACE)/Build/UefiPayloadPkgX64/$(RELEASE_STR)_GCC/IA32/UefiPayloadPkg/ShimLayer/ShimLayer/DEBUG/ShimLayer.dll
mv $(WORKSPACE)/Build/UefiPayloadPkgX64/$(RELEASE_STR)_GCC/IA32/UefiPayloadPkg/ShimLayer/ShimLayer/DEBUG/ShimLayer.dll \
UniversalPayload: $(WORKSPACE)/Build/$(PAYLOAD_PKG)X64/$(RELEASE_STR)_GCC/IA32/$(PAYLOAD_PKG)/ShimLayer/ShimLayer/DEBUG/ShimLayer.dll
mv $(WORKSPACE)/Build/$(PAYLOAD_PKG)X64/$(RELEASE_STR)_GCC/IA32/$(PAYLOAD_PKG)/ShimLayer/ShimLayer/DEBUG/ShimLayer.dll \
../../../build/ShimmedUniversalPayload.elf
clean:
@@ -358,4 +360,4 @@ clean:
distclean:
rm -rf $(WORKSPACE)
.PHONY: $(EDK2_PATH) checktools logo UefiPayloadPkg UniversalPayload clean distclean
.PHONY: $(EDK2_PATH) checktools logo $(PAYLOAD_PKG) UniversalPayload clean distclean