
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.
Regards, Simon