On Wed, Aug 07, 2024 at 03:47:21AM +0200, Heinrich Schuchardt wrote: > On 06.08.24 14:58, Simon Glass wrote: > > While sandbox supports virtio it cannot support actually using the block > > devices to read files, since there is nothing on the other end of the > > 'virtqueue'. > > > > A recent change makes EFI probe all block devices, whether used or not. > > This is apparently required by EFI, although it violates U-Boot's > > lazy-init principle. > > > > We cannot just drop the virtio devices as they are used in sandbox tests. > > > > So for now just add a special case to work around this. > > > > Signed-off-by: Simon Glass <s...@chromium.org> > > --- > > > > (no changes since v1) > > > > lib/efi_loader/efi_disk.c | 14 +++++++++++++- > > 1 file changed, 13 insertions(+), 1 deletion(-) > > > > diff --git a/lib/efi_loader/efi_disk.c b/lib/efi_loader/efi_disk.c > > index 93a9a5ac025..2e1d37848fc 100644 > > --- a/lib/efi_loader/efi_disk.c > > +++ b/lib/efi_loader/efi_disk.c > > @@ -838,8 +838,20 @@ efi_status_t efi_disk_get_device_name(const > > efi_handle_t handle, char *buf, int > > efi_status_t efi_disks_register(void) > > { > > struct udevice *dev; > > + struct uclass *uc; > > > > - uclass_foreach_dev_probe(UCLASS_BLK, dev) { > > + uclass_id_foreach_dev(UCLASS_BLK, dev, uc) { > > + /* > > + * The virtio block-device hangs on sandbox when accessed since > > + * there is nothing listening to the mailbox > > + */ > > + if (IS_ENABLED(CONFIG_SANDBOX)) { > > + struct blk_desc *desc = dev_get_uclass_plat(dev); > > + > > + if (desc->uclass_id == UCLASS_VIRTIO) > > + continue; > > We should avoid depending on the sandbox everywhere. > > Please, fix the problem in the sandbox driver. > > If you cannot fix it, run the tests involving virtio on QEMU instead of > the sandbox.
This is an area we go back-and-forth on but, yes, IMHO, if we can't easily provide a virtio device for sandbox, QEMU is right there and what this is for, so I see sandbox as more useful as build rather than runtime checking in this case. -- Tom
signature.asc
Description: PGP signature