poky.lists.yoctoproject.org archive mirror
 help / color / mirror / Atom feed
From: ross.burton@arm.com
To: poky@lists.yoctoproject.org
Subject: [PATCH] genericarm64: add qemuboot configuration
Date: Fri, 22 Mar 2024 16:50:09 +0000	[thread overview]
Message-ID: <20240322165009.3704771-1-ross.burton@arm.com> (raw)

From: Ross Burton <ross.burton@arm.com>

A basic SystemReady IR system can be provided by qemu-system-aarch64
and u-boot, so tell u-boot to build the qemu_arm64 machine and configure
qemuboot to start that u-boot and search the virtio-attached wic image
for the EFI boot partition.

Currently this machine support emulated (Cortex-A76) and virtualised (KVM)
execution, and virtio storage/network/console.  Display support will be
added shortly.

Note that this machine still doesn't build U-Boot by default, as a u-boot
binary for qemu in deploy would potentially confuse users who want to
boot on real hardware and think this u-boot is needed.  If you wish to
use genericarm64 with runqemu, you'll need to manually bitbake u-boot.

Signed-off-by: Ross Burton <ross.burton@arm.com>
---
 meta-yocto-bsp/conf/machine/genericarm64.conf | 27 +++++++++++++++++++
 1 file changed, 27 insertions(+)

diff --git a/meta-yocto-bsp/conf/machine/genericarm64.conf b/meta-yocto-bsp/conf/machine/genericarm64.conf
index 7c4c76ffe0c..4afd6c3a870 100644
--- a/meta-yocto-bsp/conf/machine/genericarm64.conf
+++ b/meta-yocto-bsp/conf/machine/genericarm64.conf
@@ -29,3 +29,30 @@ EFI_PROVIDER ?= "${@bb.utils.contains("DISTRO_FEATURES", "systemd", "systemd-boo
 
 # Try to bring up one physical serial console, or a virtualized serial console
 SERIAL_CONSOLES ?= "115200;ttyAMA0 115200;hvc0"
+
+# Allow u-boot to be built for use with qemu-system-aarch64.
+# This u-boot is _not_ suitable for use with real hardware, and the expectation
+# of this machine is that real hardware comes with the firmware pre-loaded.
+UBOOT_MACHINE = "qemu_arm64_defconfig"
+
+# runqemu configuration to run a genericarm64 image inside a qemu-system-aarch64. You will need
+# to build u-boot explicitly.
+IMAGE_CLASSES += "qemuboot"
+QB_SYSTEM_NAME = "qemu-system-aarch64"
+# Boot the virtual machine with either an emulated Cortex-A76, or the host if using KVM
+QB_MACHINE = "-machine virt"
+QB_CPU = "-cpu cortex-a76"
+QB_CPU_KVM = "-cpu host -machine gic-version=3"
+QB_SMP = "-smp 4"
+# Boot into U-Boot and let that scan the disk for the next step, don't pass any kernel or filesystem hints
+QB_DEFAULT_BIOS = "u-boot.bin"
+QB_DEFAULT_KERNEL = "none"
+QB_DEFAULT_FSTYPE = "wic"
+QB_FSINFO = "wic:no-kernel-in-fs"
+# Mount the wic rootfs as a virtio block device
+QB_ROOTFS_OPT = "-drive id=root,file=@ROOTFS@,if=none,format=raw -device virtio-blk-pci,drive=root"
+# Virtio serial consoles
+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,nodelay=on -device virtconsole,chardev=virtcon"
+# Virtio networking
+QB_TAP_OPT = "-netdev tap,id=net0,ifname=@TAP@,script=no,downscript=no"
-- 
2.34.1



             reply	other threads:[~2024-03-22 16:50 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-03-22 16:50 ross.burton [this message]
2024-03-22 17:02 ` [poky] [PATCH] genericarm64: add qemuboot configuration Jose Quaresma
2024-03-22 17:09   ` Ross Burton
2024-03-26 10:59     ` Jose Quaresma

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240322165009.3704771-1-ross.burton@arm.com \
    --to=ross.burton@arm.com \
    --cc=poky@lists.yoctoproject.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).