[PATCH v2 37/39] efi: Avoid using sandbox virtio devices
Tom Rini
trini at konsulko.com
Wed Aug 7 03:56:13 CEST 2024
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 <sjg at 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
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20240806/b50a2315/attachment.sig>
More information about the U-Boot
mailing list