From 23a71bc90bca1e3408dc86334ac35e0193f7f418 Mon Sep 17 00:00:00 2001
From: Zygmunt Krynicki <zygmunt.krynicki@huawei.com>
Date: Tue, 15 Feb 2022 13:13:57 +0000
Subject: [PATCH] oniro-{image,linux}: use x-gpt-efi-disk for QEMU x86-64

Similar to how the SECO board was handled, the QEMU x86-64 machine can
now use EFI and GRUB correctly. This change is split over three parts,
MACHINE_FEATURES is modified to enable efi, WKS_FILE_DEPENDS to build
EFI firmware and lastly WKS_FILE to pick the new unified kick-start
file.

This was tested with:

        qemu-system-x86_64 -cpu IvyBridge -machine q35 -bios ovmf.qcow2 \
                oniro-image-base-qemux86-64.wic -m 1024 -nographic

Signed-off-by: Zygmunt Krynicki <zygmunt.krynicki@huawei.com>
---
 meta-oniro-core/classes/oniro-image.bbclass  | 4 +++-
 meta-oniro-core/conf/distro/oniro-linux.conf | 2 ++
 2 files changed, 5 insertions(+), 1 deletion(-)

diff --git a/meta-oniro-core/classes/oniro-image.bbclass b/meta-oniro-core/classes/oniro-image.bbclass
index 0c435ea1..5e8be077 100644
--- a/meta-oniro-core/classes/oniro-image.bbclass
+++ b/meta-oniro-core/classes/oniro-image.bbclass
@@ -40,7 +40,9 @@ IMAGE_FSTYPES:append:seco-intel-b68 = " wic.bz2 wic.bmap"
 IMAGE_FSTYPES:qemux86 ?= "wic wic.bz2"
 WKS_FILE:qemux86 ?= "x-qemux86-directdisk.wks.in"
 IMAGE_FSTYPES:qemux86-64 ?= "wic wic.bz2"
-WKS_FILE:qemux86-64 ?= "x-qemux86-directdisk.wks.in"
+WKS_FILE:qemux86-64 ?= "x-gpt-efi-disk.wks.in"
+# Build EFI firmware for x86-64 QEMU machine.
+WKS_FILE_DEPENDS:qemux86-64 += "ovmf"
 
 WKS_FILE:qemu-generic-arm64 = "x-qemu-efi-disk.wks.in"
 IMAGE_FSTYPES:qemu-generic-arm64 += "wic wic.qcow2"
diff --git a/meta-oniro-core/conf/distro/oniro-linux.conf b/meta-oniro-core/conf/distro/oniro-linux.conf
index 7738a751..71657de5 100644
--- a/meta-oniro-core/conf/distro/oniro-linux.conf
+++ b/meta-oniro-core/conf/distro/oniro-linux.conf
@@ -90,6 +90,8 @@ PREFERRED_PROVIDER_virtual/kernel_qemu-generic-arm64 = "linux-oniro"
 # FIXME: allow GRUB to update the CPU microcode
 # https://booting.oniroproject.org/distro/oniro/-/issues/247
 EFI_PROVIDER = "grub-efi"
+# Add EFI to x86-64 QEMU machine features.
+MACHINE_FEATURES:qemux86-64 += "efi"
 
 # qemu-generic-arm64 specific requirements
 PREFERRED_VERSION_optee-os:qemu-generic-arm64 = "3.14.0"
-- 
GitLab