[BUG] issues with new bootflow, uefi and virtio

Vincent Stehlé vincent.stehle at arm.com
Tue Apr 11 14:00:24 CEST 2023


On Fri, Apr 07, 2023 at 05:31:06PM +1200, Simon Glass wrote:
..
> > When combined with the patch from Mathew[1], it does indeed repair the case of
> > efi boot with two virtio disks, specifically when the first virtio disk is the
> > one we want to boot from.
> > FWIW, the system will not boot when I invert the two virtio disks.
> 
> Is this because it only uses the first virtio device? You could check
> your boot_targets variable. With standard boot you can use 'virtio'
> instead of 'vritio0' and it will find any virtio devices.

Hi Simon,

Thank you for the tips; I did not know that you could use a generic `virtio' or
a more specific `virtio0' specification in boot_targets.
By default the boot_targets variable does indeed contain the generic `virtio' in
my case.

Quick tests matrix:

                disk image virtio
                (#num) blk index
  boot_targets  (#30) 0  (#31) 1
  ------------  -------  -------
        virtio     ok      FAIL
       virtio0     ok     (fail)
       virtio1   (fail)     ok

This is with both patches, on Qemu.
The fails between () are expected.

I find it interesting that specifying `virtio1' does work when the bootable
image is on the second virtio disk, while auto-detection with `virtio' does not
seem to:

  virtio1
  ~~~~~~~

  => setenv boot_targets virtio1
  => boot
  Scanning for bootflows in all bootdevs
  Seq Method State Uclass Part Name Filename
  --- ------ ----- ------ ---- ---- --------
  Scanning global bootmeth 'efi_mgr':
  Scanning bootdev 'virtio-blk#31.bootdev':
    0 efi    ready virtio    1 virtio-blk#31.bootdev.par efi/boot/bootaa64.efi
  ** Booting bootflow 'virtio-blk#31.bootdev.part_1' with efi
  Using prior-stage device tree
  Missing TPMv2 device for EFI_TCG_PROTOCOL
  Booting /efi\boot\bootaa64.efi

  virtio
  ~~~~~~

  => setenv boot_targets virtio
  => boot
  Scanning for bootflows in all bootdevs
  Seq Method State Uclass Part Name Filename
  --- ------ ----- ------ ---- ---- --------
  Scanning global bootmeth 'efi_mgr':
  Scanning bootdev 'virtio-blk#30.bootdev':
  No more bootdevs
  --- ------ ----- ------ ---- ---- --------
  (0 bootflows, 0 valid)

The messages seem to indicate that virtio #31 / 1 was not even considered when
specifying `virtio'.
(Note that I have edited the logs a bit to avoid wrapping lines.)

Best regards,
Vincent.

> 
> >
> > Best regards,
> > Vincent.
> >
> > [1]: https://lists.denx.de/pipermail/u-boot/2023-April/514527.html
> 
> Regards,
> Simon


More information about the U-Boot mailing list