From ed2ebb5c329261c1f9694c8933c1b843effb5b6e Mon Sep 17 00:00:00 2001 From: Andrei Gherzan <andrei.gherzan@huawei.com> Date: Wed, 10 Aug 2022 01:04:37 +0200 Subject: [PATCH] qemuarm-efi.conf: Introduce qemuarm machine equivalent with EFI This machine is based on Cortex-A15 with softfp (to avoid hacks on grub side as it requires softfp or a way to force flag to softfp). For the EFI side, it uses edk2-firmware. Signed-off-by: Andrei Gherzan <andrei.gherzan@huawei.com> Signed-off-by: Luca Seritan <luca.seritan@huawei.com> --- .../conf/machine/include/qemu-efi.inc | 42 +++++++++++++++++++ meta-oniro-core/conf/machine/qemuarm-efi.conf | 18 ++++++++ 2 files changed, 60 insertions(+) create mode 100644 meta-oniro-core/conf/machine/include/qemu-efi.inc create mode 100644 meta-oniro-core/conf/machine/qemuarm-efi.conf diff --git a/meta-oniro-core/conf/machine/include/qemu-efi.inc b/meta-oniro-core/conf/machine/include/qemu-efi.inc new file mode 100644 index 00000000..97023a49 --- /dev/null +++ b/meta-oniro-core/conf/machine/include/qemu-efi.inc @@ -0,0 +1,42 @@ +# SPDX-FileCopyrightText: Huawei Inc. +# +# SPDX-License-Identifier: Apache-2.0 + +require conf/machine/include/qemu.inc + +PREFERRED_PROVIDER_virtual/kernel ?= "linux-yocto" +KCONFIG_MODE = "--alldefconfig" +MACHINE_EXTRA_RRECOMMENDS += "kernel-modules linux-firmware" + +SERIAL_CONSOLES ?= "115200;ttyAMA0 115200;hvc0" +SERIAL_CONSOLES_CHECK = "${SERIAL_CONSOLES}" + +# This provides the bios for runqemu +EXTRA_IMAGEDEPENDS += "edk2-firmware" + +IMAGE_FSTYPES += "wic wic.gz" +WKS_FILE ?= "x-gpt-efi-disk.wks.in" + +# For runqemu +QB_MACHINE_VIRT_HIGHMEM ?= "on" +QB_MACHINE = "-machine virt,highmem=${QB_MACHINE_VIRT_HIGHMEM}" +QB_SMP = "-smp 4" +# For graphics to work we need to define the VGA device as well as the necessary USB devices +QB_GRAPHICS = "-device virtio-gpu-pci" +QB_OPT_APPEND = "-device qemu-xhci -device usb-tablet -device usb-kbd" +# Virtio Networking support +QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no" +QB_NETWORK_DEVICE = "-device virtio-net-pci,netdev=net0,mac=@MAC@" +# Virtio block device +QB_ROOTFS_OPT = "-drive id=disk0,file=@ROOTFS@,if=none,format=raw" +# Virtio serial console +QB_SERIAL_OPT = "-device virtio-serial-pci -chardev null,id=virtcon -device virtconsole,chardev=virtcon" +QB_TCPSERIAL_OPT = "-device virtio-serial-pci -chardev socket,id=virtcon,port=@PORT@,host=127.0.0.1 -device virtconsole,chardev=virtcon" + +# Boot the wic image via EFI +QB_DEFAULT_FSTYPE = "wic" +QB_DEFAULT_KERNEL = "none" +QB_DEFAULT_BIOS = "uefi.bin" +QB_ROOTFS_EXTRA_OPT += "bootindex=0" +EFI_PROVIDER = "grub-efi" +MACHINE_FEATURES += "efi" diff --git a/meta-oniro-core/conf/machine/qemuarm-efi.conf b/meta-oniro-core/conf/machine/qemuarm-efi.conf new file mode 100644 index 00000000..592ac181 --- /dev/null +++ b/meta-oniro-core/conf/machine/qemuarm-efi.conf @@ -0,0 +1,18 @@ +# SPDX-FileCopyrightText: Huawei Inc. +# +# SPDX-License-Identifier: Apache-2.0 + +#@TYPE: Machine +#@NAME: qemuarm-efi +#@DESCRIPTION: Qemu Arm machine that boots via EFI. + +DEFAULTTUNE ?= "cortexa15t-neon" +require conf/machine/include/arm/armv7a/tune-cortexa15.inc +require conf/machine/include/qemu-efi.inc + +KERNEL_IMAGETYPE ?= "zImage" + +# For runqemu +QB_SYSTEM_NAME = "qemu-system-arm" +QB_MACHINE_VIRT_HIGHMEM = "off" +QB_CPU = "-cpu cortex-a15" -- GitLab