Skip to content

Commit d369624

Browse files
committed
add pve-edk2-firmware
1 parent 66541d2 commit d369624

3 files changed

Lines changed: 145 additions & 0 deletions

File tree

‎.gitmodules‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -186,3 +186,7 @@
186186
[submodule "packages/pve-lxc-syscalld/pve-lxc-syscalld"]
187187
path = packages/pve-lxc-syscalld/pve-lxc-syscalld
188188
url = https://git.proxmox.com/git/pve-lxc-syscalld
189+
[submodule "packages/pve-edk2-firmware/pve-edk2-firmware"]
190+
path = packages/pve-edk2-firmware/pve-edk2-firmware
191+
url = https://github.com/jiangcuo/pve-edk2-firmware
192+
branch = Port
Lines changed: 140 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,140 @@
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
Submodule pve-edk2-firmware added at 8fa42d6

0 commit comments

Comments
 (0)