Re: [PATCH v2 3/6] ACPI: Add driver for the VIOT table

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, May 21, 2021 at 06:39:24PM +0200, Rafael J. Wysocki wrote:
> > diff --git a/drivers/acpi/viot.c b/drivers/acpi/viot.c
> > new file mode 100644
> > index 000000000000..710e5a5eac70
> > --- /dev/null
> > +++ b/drivers/acpi/viot.c
> > @@ -0,0 +1,350 @@
> > +// SPDX-License-Identifier: GPL-2.0
> > +/*
> > + * Virtual I/O topology
> 
> In the first place, more information on what this is all about, please.
> 
> What it does and how it is used.

Sure, I can add:

 *
 * The Virtual I/O Translation Table (VIOT) describes the topology of
 * para-virtual IOMMUs and the endpoints they manage. The OS uses it to
 * initialize devices in the right order, preventing endpoints from
 * issuing DMA before their IOMMU is ready. 
 *
 * When binding a driver to a device, before calling the device driver's
 * probe() method, the driver infrastructure calls dma_configure(). At
 * that point the VIOT driver looks for an IOMMU associated to the device
 * in the VIOT table. If an IOMMU exists and has been initialized, the
 * VIOT driver initializes the device's IOMMU fwspec, allowing the DMA
 * infrastructure to invoke the IOMMU ops when the device driver
 * configures DMA mappings. If an IOMMU exists and hasn't yet been
 * initialized, VIOT returns -EPROBE_DEFER to postpone probing the device
 * until the IOMMU is available.
 */

Thanks,
Jean
_______________________________________________
Virtualization mailing list
Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx
https://lists.linuxfoundation.org/mailman/listinfo/virtualization



[Index of Archives]     [KVM Development]     [Libvirt Development]     [Libvirt Users]     [CentOS Virtualization]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [Kernel Newbies]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite Forum]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux