QEMU & KVM broken for arm64
Mikko Rapeli
mikko.rapeli at linaro.org
Wed May 21 13:43:04 CEST 2025
Hi,
On Wed, May 21, 2025 at 12:08:19PM +0300, Ilias Apalodimas wrote:
> ++CC Mikko who stumbled upon it
>
> On Wed, 21 May 2025 at 12:07, Ilias Apalodimas
> <ilias.apalodimas at linaro.org> wrote:
> >
> > Hi all,
> >
> > Starting from commit 53d5a221632e ("emulation: Use bloblist to hold
> > tables") I can't boot U-Boot with QEMU (version 8.2.2) & KVM anymore.
> > The command line to reproduce it is:
> > qemu-system-aarch64 -smp 2 -nographic -cpu host -m 4096 -accel kvm
> > -bios u-boot.bin -machine virt,secure=off
> >
> > commit 24768a23a9b3 ("emulation: fdt: Relax condition for
> > OF_HAS_PRIOR_STAGE") boots fine.
> >
> > Simon do you have an arm64 host to reproduce this?
Since full revert is hard, a simple config changes on top
of 2024.04 fixes this:
--- a/configs/qemu_arm64_defconfig
+++ b/configs/qemu_arm64_defconfig
@@ -2,7 +2,6 @@ CONFIG_ARM=y
CONFIG_POSITION_INDEPENDENT=y
CONFIG_ARCH_QEMU=y
CONFIG_SYS_MALLOC_LEN=0x1000000
-CONFIG_BLOBLIST_SIZE_RELOC=0x2000
CONFIG_NR_DRAM_BANKS=1
CONFIG_CUSTOM_SYS_INIT_SP_ADDR=0x40200000
CONFIG_ENV_SIZE=0x40000
@@ -27,7 +26,7 @@ CONFIG_USE_PREBOOT=y
# CONFIG_DISPLAY_CPUINFO is not set
# CONFIG_DISPLAY_BOARDINFO is not set
CONFIG_PCI_INIT_R=y
-CONFIG_BLOBLIST=y
+# CONFIG_BLOBLIST is not set
CONFIG_CMD_SMBIOS=y
CONFIG_CMD_BOOTZ=y
CONFIG_CMD_BOOTEFI_SELFTEST=y
So should users apply this as config snippet or patch if they plan to
boot with qemu and kvm?
I'm using yocto and genericarm64 machine target to build on native
aarch64 and then run the resulting u-boot and kernel+initrd+rootfs
from wic image using:
$ sudo /home/builder/src/base/repo/poky/build_genericarm64/tmp/work/aarch64-linux/qemu-helper-native/1.0/recipe-sysroot-native/usr/bin/qemu-system-aarch64 -device virtio-net-pci,netdev=net0,mac=52:54:00:12:35:02 -netdev user,id=net0,hostfwd=tcp:127.0.0.1:2222-:22,hostfwd=tcp:127.0.0.1:2323-:23,tftp=/home/builder/src/base/repo/poky/build_genericarm64/tmp/deploy/images/genericarm64 -object rng-random,filename=/dev/urandom,id=rng0 -device virtio-rng-pci,rng=rng0 -drive id=root,file=/home/builder/src/base/repo/poky/build_genericarm64/tmp/deploy/images/genericarm64/core-image-base-genericarm64.rootfs.wic,if=none,format=raw -device virtio-blk-pci,drive=root -machine virt,secure=off -cpu host -accel kvm -m 256 -serial mon:stdio -serial null -nographic -vga none -bios /home/builder/src/base/repo/poky/build_genericarm64/tmp/deploy/images/genericarm64/u-boot.bin
(sudo due to not being in kvm group yet)
Cheers,
-Mikko
More information about the U-Boot
mailing list