diff mbox series

[v2] u-boot: disable CONFIG_BLOBLIST on genericarm64 and qemuarm64

Message ID 20250521184906.181219-1-mikko.rapeli@linaro.org
State New
Headers show
Series [v2] u-boot: disable CONFIG_BLOBLIST on genericarm64 and qemuarm64 | expand

Commit Message

Mikko Rapeli May 21, 2025, 6:49 p.m. UTC
Booting u-boot on qemu with kvm is currently hanging on aarch64
build host. Root cause is in u-boot and CONFIG_BLOBLIST can be
disabled as a workaround.

To reproduce, build on kvm enabled host where "kvm-ok"
succeeds. For example genericarm64 machine and core-image-base
should then boot with:

$ runqemu slirp nographic novga snapshot kvm

On qemuarm64, default kvm setup will boot directly to kernel
and is not affected by this. If build enables u-boot as bios
then the same issue happens.

Without this config workaround, the boot hangs without
any messages in qemu output but ctrl-a-c to qemu console
can shutdown the emulated machine.

This seems to have regressed after u-boot 2025.04 update.
KVM boot can be detected from speed, for example genericarm64
boots in 550 ms with KVM and without in over 5 seconds.

Fixes: [YOCTO #15872]

Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>
---
 meta/recipes-bsp/u-boot/files/disable-CONFIG_BLOBLIST.cfg | 1 +
 meta/recipes-bsp/u-boot/u-boot-common.inc                 | 4 ++++
 2 files changed, 5 insertions(+)
 create mode 100644 meta/recipes-bsp/u-boot/files/disable-CONFIG_BLOBLIST.cfg

Comments

Ilias Apalodimas May 22, 2025, 6:51 a.m. UTC | #1
Hi all,

I am not a yocto expert but this looks reasonable from a u-boot POV.
On Wed, 21 May 2025 at 21:49, Mikko Rapeli <mikko.rapeli@linaro.org> wrote:
>
> Booting u-boot on qemu with kvm is currently hanging on aarch64
> build host. Root cause is in u-boot and CONFIG_BLOBLIST can be
> disabled as a workaround.
>
> To reproduce, build on kvm enabled host where "kvm-ok"
> succeeds. For example genericarm64 machine and core-image-base
> should then boot with:
>
> $ runqemu slirp nographic novga snapshot kvm
>
> On qemuarm64, default kvm setup will boot directly to kernel
> and is not affected by this. If build enables u-boot as bios
> then the same issue happens.
>
> Without this config workaround, the boot hangs without
> any messages in qemu output but ctrl-a-c to qemu console
> can shutdown the emulated machine.
>
> This seems to have regressed after u-boot 2025.04 update.
> KVM boot can be detected from speed, for example genericarm64
> boots in 550 ms with KVM and without in over 5 seconds.
>
> Fixes: [YOCTO #15872]
>
> Cc: Ilias Apalodimas <ilias.apalodimas@linaro.org>
> Signed-off-by: Mikko Rapeli <mikko.rapeli@linaro.org>
> ---

[...]

Acked-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Alexander Kanavin May 22, 2025, 10:51 a.m. UTC | #2
On Wed, 21 May 2025 at 20:49, Mikko Rapeli via lists.openembedded.org
<mikko.rapeli=linaro.org@lists.openembedded.org> wrote:
> +# workaround for aarch64 kvm qemu boot regression
> +SRC_URI:append:qemuarm64 = " file://disable-CONFIG_BLOBLIST.cfg"
> +SRC_URI:append:genericarm64 = " file://disable-CONFIG_BLOBLIST.cfg"

What steps are going to be taken to get to the root cause of this?
Does this workaround have to be kept forever?

Alex
Mikko Rapeli May 22, 2025, 10:57 a.m. UTC | #3
Hi,

On Thu, May 22, 2025 at 12:51:25PM +0200, Alexander Kanavin wrote:
> On Wed, 21 May 2025 at 20:49, Mikko Rapeli via lists.openembedded.org
> <mikko.rapeli=linaro.org@lists.openembedded.org> wrote:
> > +# workaround for aarch64 kvm qemu boot regression
> > +SRC_URI:append:qemuarm64 = " file://disable-CONFIG_BLOBLIST.cfg"
> > +SRC_URI:append:genericarm64 = " file://disable-CONFIG_BLOBLIST.cfg"
> 
> What steps are going to be taken to get to the root cause of this?
> Does this workaround have to be kept forever?

We're following this up with u-boot upstream maintainers.

Then I'd like to add a selftest to oe-core for this usecase of
booting qemuarm64 and genericarm64 target images and u-boot
with qemu under kvm on native aarch64 build machine.

Sorting out some qemuarm64 runqemu details currently.

Cheers,

-Mikko
Alexander Kanavin May 22, 2025, 11:08 a.m. UTC | #4
On Thu, 22 May 2025 at 12:57, Mikko Rapeli <mikko.rapeli@linaro.org> wrote:
> We're following this up with u-boot upstream maintainers.

Confidence in the patch would be greatly improved if the link to this
upstream conversation is provided in it :)

Alex
Mikko Rapeli May 22, 2025, 11:15 a.m. UTC | #5
Hi,

On Thu, May 22, 2025 at 01:08:05PM +0200, Alexander Kanavin wrote:
> On Thu, 22 May 2025 at 12:57, Mikko Rapeli <mikko.rapeli@linaro.org> wrote:
> > We're following this up with u-boot upstream maintainers.
> 
> Confidence in the patch would be greatly improved if the link to this
> upstream conversation is provided in it :)

Sorry, I will add this in v3. It's linked in yocto bugzilla
entry:

https://bugzilla.yoctoproject.org/show_bug.cgi?id=15872
-> https://lists.denx.de/pipermail/u-boot/2025-May/590103.html

Cheers,

-Mikko
diff mbox series

Patch

diff --git a/meta/recipes-bsp/u-boot/files/disable-CONFIG_BLOBLIST.cfg b/meta/recipes-bsp/u-boot/files/disable-CONFIG_BLOBLIST.cfg
new file mode 100644
index 0000000000..d01d3d12d8
--- /dev/null
+++ b/meta/recipes-bsp/u-boot/files/disable-CONFIG_BLOBLIST.cfg
@@ -0,0 +1 @@ 
+# CONFIG_BLOBLIST is not set
diff --git a/meta/recipes-bsp/u-boot/u-boot-common.inc b/meta/recipes-bsp/u-boot/u-boot-common.inc
index fd1eab5cdd..a77c49cb8b 100644
--- a/meta/recipes-bsp/u-boot/u-boot-common.inc
+++ b/meta/recipes-bsp/u-boot/u-boot-common.inc
@@ -16,6 +16,10 @@  SRCREV = "34820924edbc4ec7803eb89d9852f4b870fa760a"
 
 SRC_URI = "git://source.denx.de/u-boot/u-boot.git;protocol=https;branch=master;tag=v${PV}"
 
+# workaround for aarch64 kvm qemu boot regression
+SRC_URI:append:qemuarm64 = " file://disable-CONFIG_BLOBLIST.cfg"
+SRC_URI:append:genericarm64 = " file://disable-CONFIG_BLOBLIST.cfg"
+
 S = "${WORKDIR}/git"
 B = "${WORKDIR}/build"