public inbox for gentoo-commits@lists.gentoo.org
 help / color / mirror / Atom feed
* [gentoo-commits] repo/gentoo:master commit in: sys-firmware/edk2/, sys-firmware/edk2/files/descriptors/, ...
@ 2025-03-11  9:08 WANG Xuerui
  0 siblings, 0 replies; only message in thread
From: WANG Xuerui @ 2025-03-11  9:08 UTC (permalink / raw
  To: gentoo-commits

commit:     b98badc24aed1dde0f891f34fa52029bf972d9f4
Author:     WANG Xuerui <xen0n <AT> gentoo <DOT> org>
AuthorDate: Tue Feb 18 11:17:45 2025 +0000
Commit:     WANG Xuerui <xen0n <AT> gentoo <DOT> org>
CommitDate: Tue Mar 11 09:06:21 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=b98badc2

sys-firmware/edk2: add build support for loong

Reviewed-by: Sam James <sam <AT> gentoo.org>
Signed-off-by: WANG Xuerui <xen0n <AT> gentoo.org>

 sys-firmware/edk2/edk2-202411.ebuild               | 21 ++++++++++++++
 .../50-edk2-loongarch64-qcow2-nosb.json            | 33 ++++++++++++++++++++++
 sys-firmware/edk2/files/edk2-202411-loong.patch    | 33 ++++++++++++++++++++++
 3 files changed, 87 insertions(+)

diff --git a/sys-firmware/edk2/edk2-202411.ebuild b/sys-firmware/edk2/edk2-202411.ebuild
index 0b8cd1c71d87..d39b7e4b3797 100644
--- a/sys-firmware/edk2/edk2-202411.ebuild
+++ b/sys-firmware/edk2/edk2-202411.ebuild
@@ -64,6 +64,7 @@ RDEPEND="
 
 PATCHES=(
 	"${FILESDIR}/${PN}-202411-werror.patch"
+	"${FILESDIR}/${PN}-202411-loong.patch"
 	"${FILESDIR}/${PN}-202408-binutils-2.41-textrels.patch"
 )
 
@@ -93,6 +94,14 @@ pkg_setup() {
 		UNIT1="QEMU_VARS.qcow2"
 		FMT="qcow2"
 		;;
+	loong)
+		TARGET_ARCH="LOONGARCH64"
+		QEMU_ARCH="loongarch64"
+		ARCH_DIRS="${DIR}/LoongArchVirtQemu"
+		UNIT0="QEMU_EFI.fd"
+		UNIT1="QEMU_VARS.fd"
+		FMT="raw"
+		;;
 	riscv)
 		TARGET_ARCH="RISCV64"
 		QEMU_ARCH="riscv64"
@@ -260,6 +269,14 @@ src_compile() {
 		mk_fw_vars arm64 Build/ArmVirtQemu-AARCH64.secboot_INSECURE/"${BUILD_DIR}"/FV/QEMU_VARS.fd
 		raw_to_qcow2 64m Build/ArmVirtQemu-AARCH64*/"${BUILD_DIR}"/FV/QEMU_{EFI,VARS}.fd
 		;;
+	loong)
+		BUILD_ARGS+=(
+			# fails to seed the OpenSSL RNG during early initialization due
+			# to improper FPU enabling (maybe too late)
+			-D NETWORK_TLS_ENABLE=FALSE
+		)
+		mybuild -a LOONGARCH64 -p OvmfPkg/LoongArchVirt/LoongArchVirtQemu.dsc
+		;;
 	riscv)
 		mybuild -a RISCV64 -p OvmfPkg/RiscVVirt/RiscVVirtQemu.dsc
 		raw_to_qcow2 32m Build/RiscVVirtQemu/"${BUILD_DIR}"/FV/RISCV_VIRT_{CODE,VARS}.fd
@@ -294,6 +311,10 @@ src_install() {
 			newins Build/ArmVirtQemu-AARCH64${TYPE}/"${BUILD_DIR}"/FV/QEMU_VARS.qcow2 QEMU_VARS${TYPE}.qcow2
 		done
 		;;
+	loong)
+		insinto ${DIR}/LoongArchVirtQemu
+		doins Build/LoongArchVirtQemu/"${BUILD_DIR}"/FV/QEMU_{EFI,VARS}.fd
+		;;
 	riscv)
 		insinto ${DIR}/RiscVVirtQemu
 		doins Build/RiscVVirtQemu/"${BUILD_DIR}"/FV/RISCV_VIRT_{CODE,VARS}.qcow2

diff --git a/sys-firmware/edk2/files/descriptors/50-edk2-loongarch64-qcow2-nosb.json b/sys-firmware/edk2/files/descriptors/50-edk2-loongarch64-qcow2-nosb.json
new file mode 100644
index 000000000000..54c07649b6a1
--- /dev/null
+++ b/sys-firmware/edk2/files/descriptors/50-edk2-loongarch64-qcow2-nosb.json
@@ -0,0 +1,33 @@
+{
+    "description": "UEFI for LoongArch VMs",
+    "interface-types": [
+        "uefi"
+    ],
+    "mapping": {
+        "device": "flash",
+        "mode" : "split",
+        "executable": {
+            "filename": "/usr/share/edk2/LoongArchVirtQemu/QEMU_EFI.fd",
+            "format": "raw"
+        },
+        "nvram-template": {
+            "filename": "/usr/share/edk2/LoongArchVirtQemu/QEMU_VARS.fd",
+            "format": "raw"
+        }
+    },
+    "targets": [
+        {
+            "architecture": "loongarch64",
+            "machines": [
+                "virt",
+                "virt-*"
+            ]
+        }
+    ],
+    "features": [
+
+    ],
+    "tags": [
+
+    ]
+}

diff --git a/sys-firmware/edk2/files/edk2-202411-loong.patch b/sys-firmware/edk2/files/edk2-202411-loong.patch
new file mode 100644
index 000000000000..f2df0376b730
--- /dev/null
+++ b/sys-firmware/edk2/files/edk2-202411-loong.patch
@@ -0,0 +1,33 @@
+https://github.com/tianocore/edk2/commit/b8f3199595d23c29433528a5207a6aa9fb368d44
+From: Chao Li <lichao@loongson.cn>
+Date: Tue, 17 Dec 2024 18:05:45 +0800
+Subject: [PATCH] OvmfPkg/LoongArch: Enabling some base libraries
+
+BaseCryptLib, RngLib, IntrinsicLib and OpensslLib are enabled by default
+on LoongArch VM, since some APPs or OS require them.
+
+Cc: Ard Biesheuvel <ardb+tianocore@kernel.org>
+Cc: Jiewen Yao <jiewen.yao@intel.com>
+Cc: Gerd Hoffmann <kraxel@redhat.com>
+Signed-off-by: Chao Li <lichao@loongson.cn>
+--- a/OvmfPkg/LoongArchVirt/LoongArchVirtQemu.dsc
++++ b/OvmfPkg/LoongArchVirt/LoongArchVirtQemu.dsc
+@@ -156,6 +156,18 @@
+   FileExplorerLib                  | MdeModulePkg/Library/FileExplorerLib/FileExplorerLib.inf
+   ImagePropertiesRecordLib         | MdeModulePkg/Library/ImagePropertiesRecordLib/ImagePropertiesRecordLib.inf
+ 
++  #
++  # CryptoPkg libraries needed by multiple firmware features
++  #
++  IntrinsicLib                     | CryptoPkg/Library/IntrinsicLib/IntrinsicLib.inf
++!if $(NETWORK_TLS_ENABLE) == TRUE
++  OpensslLib                       | CryptoPkg/Library/OpensslLib/OpensslLib.inf
++!else
++  OpensslLib                       | CryptoPkg/Library/OpensslLib/OpensslLibCrypto.inf
++!endif
++  BaseCryptLib                     | CryptoPkg/Library/BaseCryptLib/BaseCryptLib.inf
++  RngLib                           | MdeModulePkg/Library/BaseRngLibTimerLib/BaseRngLibTimerLib.inf
++
+ !if $(HTTP_BOOT_ENABLE) == TRUE
+   HttpLib                          | MdeModulePkg/Library/DxeHttpLib/DxeHttpLib.inf
+ !endif


^ permalink raw reply related	[flat|nested] only message in thread

only message in thread, other threads:[~2025-03-11  9:08 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2025-03-11  9:08 [gentoo-commits] repo/gentoo:master commit in: sys-firmware/edk2/, sys-firmware/edk2/files/descriptors/, WANG Xuerui

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox