|
| 1 | +From 5f3c91a04bc303b216f4462ef2947f922951eac3 Mon Sep 17 00:00:00 2001 |
| 2 | +From: jiangcuo <jiangcuo@bingsin.com> |
| 3 | +Date: Tue, 5 Nov 2024 21:15:21 +0800 |
| 4 | +Subject: [PATCH] Add loongarch64 build on amd64 |
| 5 | + |
| 6 | +--- |
| 7 | + Makefile | 5 +++-- |
| 8 | + debian/control | 7 +++++++ |
| 9 | + debian/pve-edk2-firmware-loongarch64.install | 2 ++ |
| 10 | + debian/pve-edk2-firmware-loongarch64.links | 2 ++ |
| 11 | + debian/rules | 22 ++++++++++++++++---- |
| 12 | + 5 files changed, 32 insertions(+), 6 deletions(-) |
| 13 | + create mode 100644 debian/pve-edk2-firmware-loongarch64.install |
| 14 | + create mode 100644 debian/pve-edk2-firmware-loongarch64.links |
| 15 | + |
| 16 | +diff --git a/Makefile b/Makefile |
| 17 | +index 6091ce7..d66e4bc 100644 |
| 18 | +--- a/Makefile |
| 19 | ++++ b/Makefile |
| 20 | +@@ -13,8 +13,9 @@ VIRTUAL_DEB = $(PACKAGE)_$(DEB_VERSION)_all.deb |
| 21 | + AMD64_DEB = $(PACKAGE)-legacy_$(DEB_VERSION)_all.deb $(PACKAGE)-ovmf_$(DEB_VERSION)_all.deb |
| 22 | + AARCH64_DEB = $(PACKAGE)-aarch64_$(DEB_VERSION)_all.deb |
| 23 | + RISCV_DEB = $(PACKAGE)-riscv_$(DEB_VERSION)_all.deb |
| 24 | ++LOONGARCH64_DEB = $(PACKAGE)-loongarch64_$(DEB_VERSION)_all.deb |
| 25 | + |
| 26 | +-DEBS = $(VIRTUAL_DEB) $(AMD64_DEB) $(AARCH64_DEB) $(RISCV_DEB) |
| 27 | ++DEBS = $(VIRTUAL_DEB) $(AMD64_DEB) $(AARCH64_DEB) $(RISCV_DEB) $(LOONGARCH64_DEB) |
| 28 | + |
| 29 | + all: $(DEBS) |
| 30 | + @echo $(DEBS) |
| 31 | +@@ -29,7 +30,7 @@ $(BUILDDIR): $(SRCDIR)/Readme.md |
| 32 | + |
| 33 | + .PHONY: deb |
| 34 | + deb: $(DEBS) |
| 35 | +-$(AMD64_DEB) $(AARCH64_DEB) $(RISCV_DEB): $(VIRTUAL_DEB) |
| 36 | ++$(AMD64_DEB) $(AARCH64_DEB) $(RISCV_DEB) $(LOONGARCH64_DEB): $(VIRTUAL_DEB) |
| 37 | + $(VIRTUAL_DEB): $(BUILDDIR) |
| 38 | + cd $(BUILDDIR); dpkg-buildpackage -b -uc -us |
| 39 | + lintian $(DEBS) |
| 40 | +diff --git a/debian/control b/debian/control |
| 41 | +index 3867cd2..92afbe1 100644 |
| 42 | +--- a/debian/control |
| 43 | ++++ b/debian/control |
| 44 | +@@ -66,6 +66,13 @@ Description: edk2 based RISC-V UEFI firmware modules for virtual machines |
| 45 | + for UEFI, including Secure Boot, allowing use of UEFI in place of a |
| 46 | + traditional BIOS in your VM. |
| 47 | + |
| 48 | ++Package: pve-edk2-firmware-loongarch64 |
| 49 | ++Architecture: all |
| 50 | ++Depends: ${misc:Depends}, |
| 51 | ++Multi-Arch: foreign |
| 52 | ++Description: edk2 based loongarch64 UEFI firmware modules for virtual machines |
| 53 | ++ A build of EDK II for 64-bit loongarch virtual machines. |
| 54 | ++ |
| 55 | + Package: pve-edk2-firmware-legacy |
| 56 | + Architecture: all |
| 57 | + Depends: ${misc:Depends}, |
| 58 | +diff --git a/debian/pve-edk2-firmware-loongarch64.install b/debian/pve-edk2-firmware-loongarch64.install |
| 59 | +new file mode 100644 |
| 60 | +index 0000000..a0dfaf6 |
| 61 | +--- /dev/null |
| 62 | ++++ b/debian/pve-edk2-firmware-loongarch64.install |
| 63 | +@@ -0,0 +1,2 @@ |
| 64 | ++Build/LoongArchVirtQemu/RELEASE_*GCC*/FV/QEMU_EFI.fd /usr/share/pve-edk2-firmware/LOONGARCH64 |
| 65 | ++Build/LoongArchVirtQemu/RELEASE_*GCC*/FV/QEMU_VARS.fd /usr/share/pve-edk2-firmware/LOONGARCH64 |
| 66 | +\ No newline at end of file |
| 67 | +diff --git a/debian/pve-edk2-firmware-loongarch64.links b/debian/pve-edk2-firmware-loongarch64.links |
| 68 | +new file mode 100644 |
| 69 | +index 0000000..973a78e |
| 70 | +--- /dev/null |
| 71 | ++++ b/debian/pve-edk2-firmware-loongarch64.links |
| 72 | +@@ -0,0 +1,2 @@ |
| 73 | ++/usr/share/pve-edk2-firmware/LOONGARCH64/QEMU_EFI.fd /usr/share/pve-edk2-firmware/LOONGARCH64_VIRT_CODE.fd |
| 74 | ++/usr/share/pve-edk2-firmware/LOONGARCH64/QEMU_VARS.fd /usr/share/pve-edk2-firmware/LOONGARCH64_VIRT_VARS.fd |
| 75 | +\ No newline at end of file |
| 76 | +diff --git a/debian/rules b/debian/rules |
| 77 | +index a47c807..09d6908 100755 |
| 78 | +--- a/debian/rules |
| 79 | ++++ b/debian/rules |
| 80 | +@@ -28,7 +28,7 @@ ifeq ($(DEB_BUILD_ARCH),loongarch64) |
| 81 | + endif |
| 82 | + |
| 83 | + PCD_RELEASE_DATE = $(shell date -d@$(SOURCE_DATE_EPOCH) "+%m/%d/%Y") |
| 84 | +-PCD_FLAGS = --pcd PcdFirmwareVendor=L"Proxmox distribution of EDK II\\0" |
| 85 | ++PCD_FLAGS = --pcd PcdFirmwareVendor=L"Proxmox Port distribution of EDK II\\0" |
| 86 | + PCD_FLAGS += --pcd PcdFirmwareVersionString=L"$(DEB_VERSION)\\0" |
| 87 | + PCD_FLAGS += --pcd PcdFirmwareReleaseDateString=L"$(PCD_RELEASE_DATE)\\0" |
| 88 | + COMMON_FLAGS = -DNETWORK_HTTP_BOOT_ENABLE=TRUE |
| 89 | +@@ -50,7 +50,9 @@ AAVMF_FLAGS += -DTPM2_CONFIG_ENABLE=TRUE |
| 90 | + AAVMF_FLAGS += -DCAVIUM_ERRATUM_27456=TRUE |
| 91 | + |
| 92 | + RISCV64_FLAGS = $(COMMON_FLAGS) |
| 93 | +-LOONGARCH64_FLAGS = $(COMMON_FLAGS) |
| 94 | ++LOONGARCH64_FLAGS = -DNETWORK_HTTP_BOOT_ENABLE=TRUE |
| 95 | ++LOONGARCH64_FLAGS += -DSECURE_BOOT_ENABLE=TRUE |
| 96 | ++LOONGARCH64_FLAGS += -DNETWORK_IP6_ENABLE=TRUE |
| 97 | + |
| 98 | + # Clear variables used internally by the edk2 build system |
| 99 | + undefine WORKSPACE |
| 100 | +@@ -63,7 +65,7 @@ undefine CONF_PATH |
| 101 | + %: |
| 102 | + dh $@ |
| 103 | + |
| 104 | +-override_dh_auto_build: build-qemu-efi-aarch64 build-ovmf build-ovmf32 build-qemu-efi-riscv64 |
| 105 | ++override_dh_auto_build: build-qemu-efi-aarch64 build-ovmf build-ovmf32 build-qemu-efi-riscv64 build-qemu-efi-loongarch64 |
| 106 | + |
| 107 | + debian/setup-build-stamp: |
| 108 | + cp -a debian/Logo.bmp MdeModulePkg/Logo/Logo.bmp |
| 109 | +@@ -99,6 +101,10 @@ AAVMF_PREENROLLED_VARS = $(addprefix $(AAVMF_BUILD_DIR)/FV/,AAVMF_VARS.ms.fd AAV |
| 110 | + RISCV64_BUILD_DIR = Build/RiscVVirtQemu/$(BUILD_TYPE)_$(EDK2_TOOLCHAIN) |
| 111 | + RISCV64_IMAGES = $(addprefix $(RISCV64_BUILD_DIR)/FV/,RISCV_VIRT_CODE.fd RISCV_VIRT_VARS.fd) |
| 112 | + |
| 113 | ++ |
| 114 | ++LOONGARCH64_BUILD_DIR = Build/LoongArchVirtQemu/$(BUILD_TYPE)_$(EDK2_TOOLCHAIN) |
| 115 | ++LOONGARCH64_IMAGES = $(addprefix $(LOONGARCH64_BUILD_DIR)/FV/,QEMU_EFI.fd QEMU_VARS.fd) |
| 116 | ++ |
| 117 | + build-ovmf32: $(OVMF32_BINARIES) $(OVMF32_IMAGES) |
| 118 | + $(OVMF32_BINARIES) $(OVMF32_IMAGES): debian/setup-build-stamp |
| 119 | + rm -rf $(OVMF32_INSTALL_DIR) |
| 120 | +@@ -217,6 +223,14 @@ $(RISCV64_IMAGES): debian/setup-build-stamp |
| 121 | + truncate -s 32M $(RISCV64_BUILD_DIR)/FV/RISCV_VIRT_CODE.fd |
| 122 | + truncate -s 32M $(RISCV64_BUILD_DIR)/FV/RISCV_VIRT_VARS.fd |
| 123 | + |
| 124 | ++build-qemu-efi-loongarch64: $(LOONGARCH64_IMAGES) |
| 125 | ++$(LOONGARCH64_IMAGES): debian/setup-build-stamp |
| 126 | ++ set -e; . ./edksetup.sh; \ |
| 127 | ++ build -a LOONGARCH64 \ |
| 128 | ++ -t $(EDK2_TOOLCHAIN) \ |
| 129 | ++ -p OvmfPkg/LoongArchVirt/LoongArchVirtQemu.dsc \ |
| 130 | ++ $(LOONGARCH64_FLAGS) -b $(BUILD_TYPE) |
| 131 | ++ |
| 132 | + override_dh_auto_clean: |
| 133 | + -. ./edksetup.sh; build clean |
| 134 | + make -C BaseTools clean |
| 135 | +@@ -253,4 +267,4 @@ get-orig-source: |
| 136 | + edk2-$(DEB_VERSION_UPSTREAM) |
| 137 | + rm -rf edk2.tmp edk2-$(DEB_VERSION_UPSTREAM) |
| 138 | + |
| 139 | +-.PHONY: build-ovmf build-ovmf32 build-qemu-efi build-qemu-efi-aarch64 build-qemu-efi-riscv64 |
| 140 | ++.PHONY: build-ovmf build-ovmf32 build-qemu-efi build-qemu-efi-aarch64 build-qemu-efi-riscv64 build-qemu-efi-loongarch64 |
0 commit comments