]> git.proxmox.com Git - pve-edk2-firmware.git/commitdiff
build RISC-V images and ship as separate package
authorThomas Lamprecht <t.lamprecht@proxmox.com>
Tue, 14 Nov 2023 17:06:36 +0000 (18:06 +0100)
committerThomas Lamprecht <t.lamprecht@proxmox.com>
Sun, 19 Nov 2023 13:29:16 +0000 (14:29 +0100)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
debian/control
debian/pve-edk2-firmware-riscv.install [new file with mode: 0644]
debian/rules

index 0e4ed6e12fb6b8bdfec957f22d21f55e84004474..3d1ca573727e236d5972b1c9474ded444c4f577d 100644 (file)
@@ -8,6 +8,7 @@ Build-Depends: bc,
  dpkg (>= 1.19.3),
  gcc-aarch64-linux-gnu,
  gcc-multilib [i386],
+ gcc-riscv64-linux-gnu,
  iasl,
  mtools,
  nasm,
@@ -41,6 +42,15 @@ Description: edk2 based ARM64 UEFI firmware modules for virtual machines
  for UEFI, including Secure Boot, allowing use of UEFI in place of a
  traditional BIOS in your VM.
 
+Package: pve-edk2-firmware-riscv
+Architecture: all
+Depends: ${misc:Depends},
+Multi-Arch: foreign
+Description: edk2 based RISC-V UEFI firmware modules for virtual machines
+ A build of EDK II for 64-bit RISC-V virtual machines. It includes full support
+ for UEFI, including Secure Boot, allowing use of UEFI in place of a
+ traditional BIOS in your VM.
+
 Package: pve-edk2-firmware-legacy
 Architecture: all
 Depends: ${misc:Depends},
diff --git a/debian/pve-edk2-firmware-riscv.install b/debian/pve-edk2-firmware-riscv.install
new file mode 100644 (file)
index 0000000..561eca5
--- /dev/null
@@ -0,0 +1,2 @@
+Build/RiscVVirtQemu/RELEASE_*GCC*/FV/RISCV_VIRT_CODE.fd /usr/share/pve-edk2-firmware
+Build/RiscVVirtQemu/RELEASE_*GCC*/FV/RISCV_VIRT_VARS.fd /usr/share/pve-edk2-firmware
index 7fda0b1ddcb7f33c386b29ce5b6ad753e4b151bc..a0477ca5c471b0db9e60ccf41bf02aa970520b86 100755 (executable)
@@ -7,6 +7,7 @@ include /usr/share/dpkg/default.mk
 BUILD_TYPE ?= RELEASE
 EDK2_TOOLCHAIN = GCC5
 export $(EDK2_TOOLCHAIN)_AARCH64_PREFIX=aarch64-linux-gnu-
+export $(EDK2_TOOLCHAIN)_RISCV64_PREFIX=riscv64-linux-gnu-
 
 export PYTHON3_ENABLE=TRUE
 
@@ -41,6 +42,7 @@ AAVMF_FLAGS += -DTPM2_ENABLE=TRUE
 AAVMF_FLAGS += -DTPM2_CONFIG_ENABLE=TRUE
 AAVMF_FLAGS += -DCAVIUM_ERRATUM_27456=TRUE
 
+RISCV64_FLAGS = $(COMMON_FLAGS)
 
 # Clear variables used internally by the edk2 build system
 undefine WORKSPACE
@@ -53,7 +55,7 @@ undefine CONF_PATH
 %:
        dh $@
 
-override_dh_auto_build: build-qemu-efi-aarch64 build-ovmf build-ovmf32
+override_dh_auto_build: build-qemu-efi-aarch64 build-ovmf build-ovmf32 build-qemu-efi-riscv64
 
 debian/setup-build-stamp:
        cp -a debian/Logo.bmp MdeModulePkg/Logo/Logo.bmp
@@ -86,6 +88,9 @@ AAVMF_VARS      = $(AAVMF_BUILD_DIR)/FV/AAVMF_VARS.fd
 AAVMF_IMAGES    = $(AAVMF_CODE) $(AAVMF_VARS)
 AAVMF_PREENROLLED_VARS = $(addprefix $(AAVMF_BUILD_DIR)/FV/,AAVMF_VARS.ms.fd AAVMF_VARS.snakeoil.fd)
 
+RISCV64_BUILD_DIR = Build/RiscVVirtQemu/$(BUILD_TYPE)_$(EDK2_TOOLCHAIN)
+RISCV64_IMAGES    = $(addprefix $(RISCV64_BUILD_DIR)/FV/,RISCV_VIRT_CODE.fd RISCV_VIRT_VARS.fd)
+
 build-ovmf32: $(OVMF32_BINARIES) $(OVMF32_IMAGES)
 $(OVMF32_BINARIES) $(OVMF32_IMAGES): debian/setup-build-stamp
        rm -rf $(OVMF32_INSTALL_DIR)
@@ -199,6 +204,16 @@ build-qemu-efi-aarch64: $(AAVMF_BINARIES) $(AAVMF_IMAGES) $(AAVMF_PREENROLLED_VA
 $(AAVMF_BINARIES) $(AAVMF_IMAGES): ArmPkg/Library/GccLto/liblto-aarch64.a
        $(MAKE) -f debian/rules build-qemu-efi EDK2_ARCH_DIR=AArch64 EDK2_HOST_ARCH=AARCH64 FW_NAME=AAVMF
 
+build-qemu-efi-riscv64:  $(RISCV64_IMAGES)
+$(RISCV64_IMAGES): debian/setup-build-stamp
+       set -e; . ./edksetup.sh; \
+               build -a RISCV64 \
+                       -t $(EDK2_TOOLCHAIN) \
+                       -p OvmfPkg/RiscVVirt/RiscVVirtQemu.dsc \
+                       $(RISCV64_FLAGS) -b $(BUILD_TYPE)
+       truncate -s 32M $(RISCV64_BUILD_DIR)/FV/RISCV_VIRT_CODE.fd
+       truncate -s 32M $(RISCV64_BUILD_DIR)/FV/RISCV_VIRT_VARS.fd
+
 override_dh_auto_clean:
        -. ./edksetup.sh; build clean
        make -C BaseTools clean
@@ -234,4 +249,4 @@ get-orig-source:
                edk2-$(DEB_VERSION_UPSTREAM)
        rm -rf edk2.tmp edk2-$(DEB_VERSION_UPSTREAM)
 
-.PHONY: build-ovmf build-ovmf32 build-qemu-efi build-qemu-efi-aarch64
+.PHONY: build-ovmf build-ovmf32 build-qemu-efi build-qemu-efi-aarch64 build-qemu-efi-riscv64