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

Re: [Xen-devel] [PATCH v8 8/8] xen/arm: add dom0-less device assignment info to docs



On Thu, 3 Oct 2019, Julien Grall wrote:
> Hi Stefano,
> 
> On 03/10/2019 02:35, Stefano Stabellini wrote:
> > Add info about the SPI used for the virtual pl011.
> > 
> > Signed-off-by: Stefano Stabellini <stefanos@xxxxxxxxxx>
> > 
> > ---
> > Changes in v8:
> > - remove sentence about xen,path being optional
> > 
> > Changes in v7:
> > - add xen,force-assign-without-iommu
> > - clarify xen,reg and xen,path go together
> > - remove acked-by due to changes
> > 
> > Changes in v6:
> > - fix nr_spis description
> > - add ack
> > 
> > Changes in v5:
> > - improve wording
> > 
> > Changes in v4:
> > - fix spelling
> > - add "multiboot,module"
> > - improve commit message
> > - improve doc
> > - expand the nr_spis and vpl011 sections and include information about
> >    the vpl011 SPI
> > - move passthrough information to docs/misc/arm/passthrough.txt
> > 
> > Changes in v3:
> > - add nr_spis
> > - change description of interrupts and interrupt-parent
> > 
> > Changes in v2:
> > - device tree fragment loaded in cacheable memory
> > - rename multiboot,dtb to multiboot,device-tree
> > - rename "path" to "xen,path"
> > - add a note about device memory mapping
> > - introduce xen,reg
> > - specify only the GIC is supported
> > ---
> >   docs/misc/arm/device-tree/booting.txt |  44 ++++++++++-
> >   docs/misc/arm/passthrough.txt         | 106 ++++++++++++++++++++++++++
> >   2 files changed, 149 insertions(+), 1 deletion(-)
> > 
> > diff --git a/docs/misc/arm/device-tree/booting.txt
> > b/docs/misc/arm/device-tree/booting.txt
> > index 317a9e962a..649e00d09f 100644
> > --- a/docs/misc/arm/device-tree/booting.txt
> > +++ b/docs/misc/arm/device-tree/booting.txt
> > @@ -146,7 +146,18 @@ with the following properties:
> >     - vpl011
> >   -    An empty property to enable/disable a virtual pl011 for the guest to
> > use.
> > +    An empty property to enable/disable a virtual pl011 for the guest to
> > +    use. The virtual pl011 uses SPI number 0 (see GUEST_VPL011_SPI).
> > +    Please note that the SPI used for the virtual pl011 could clash with
> > the
> > +    physical SPI of a physical device assigned to the guest.
> > +
> > +- nr_spis
> > +
> > +    Optional. A 32-bit integer specifying the number of SPIs (Shared
> > +    Peripheral Interrupts) to allocate for the domain. If nr_spis is
> > +    missing, the max number of SPIs supported by the physical GIC is
> > +    used, or GUEST_VPL011_SPI+1 if vpl011 is enabled, whichever is
> > +    greater.
> >     - #address-cells and #size-cells
> >   @@ -226,3 +237,34 @@ chosen {
> >           };
> >       };
> >   };
> > +
> > +
> > +Device Assignment
> > +=================
> > +
> > +Device Assignment (Passthrough) is supported by adding another module,
> > +alongside the kernel and ramdisk, with the device tree fragment
> > +corresponding to the device node to assign to the guest.
> > +
> > +The dtb sub-node should have the following properties:
> > +
> > +- compatible
> > +
> > +    "multiboot,device-tree" and "multiboot,module"
> > +
> > +- reg
> > +
> > +    Specifies the physical address of the device tree binary fragment
> > +    RAM and its length.
> > +
> > +As an example:
> > +
> > +        module@0xc000000 {
> > +            compatible = "multiboot,device-tree", "multiboot,module";
> > +            reg = <0x0 0xc000000 0xffffff>;
> > +        };
> > +
> > +The DTB fragment is loaded at 0xc000000 in the example above. It should
> > +follow the convention explained in docs/misc/arm/passthrough.txt. The
> > +DTB fragment will be added to the guest device tree, so that the guest
> > +kernel will be able to discover the device.
> > diff --git a/docs/misc/arm/passthrough.txt b/docs/misc/arm/passthrough.txt
> > index 0efbd122de..6826e1f341 100644
> > --- a/docs/misc/arm/passthrough.txt
> > +++ b/docs/misc/arm/passthrough.txt
> > @@ -80,6 +80,112 @@ SPI numbers start from 32, in this example 80 + 32 =
> > 112.
> >   See man [xl.cfg] for the iomem format. The reg property is just a pair
> >   of address, then size numbers, each of them can occupy 1 or 2 cells.
> >   +
> > +Dom0-less Device Passthrough
> > +============================
> > +
> > +The partial device tree for dom0-less guests should have the following
> > +properties for each node corresponding to a physical device to assign to
> > +the guest:
> > +
> > +- xen,reg
> > +
> > +  The xen,reg property is an array of:
> > +
> > +    <phys_addr size guest_addr>
> > +
> > +  They specify the physical address and size of the device memory
> > +  ranges together with the corresponding guest address to map them to.
> > +  The size of `phys_addr' and `guest_addr' is determined by
> > +  #address-cells, the size of `size' is determined by #size-cells, of
> > +  the partial device tree.
> > +  The memory will be mapped as device memory in the guest (Device-nGnRE).
> > +
> > +- xen,path
> > +
> > +  A string property representing the path in the host device tree to the
> > +  corresponding device node.
> > +
> > +- xen,force-assign-without-iommu
> > +  If xen,force-assign-without-iommu is present Xen continues booting
> > +  even on IOMMU setup errors for the device (i.e. the device is not
> > +  protected by an IOMMU).
> 
> Reading again, this suggest the option can be used to force assignment if a
> Device is behind an IOMMU but the setup failed.
> 
> All IOMMUs should be configured to deny any transaction. So your device is not
> going to work. We should also probably state the consequence of using this
> option.
> 
> It would be better to say:
> 
> "If xen,force-assign-without-iommu is present, Xen will allow to assign a
> device even if it is not behind an IOMMU. This will render your platform
> *unsafe* if the device is DMA-capable".

Yes, this is clear, I'll use your version. Can I retain the acked-by
while I make this change?

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxxx
https://lists.xenproject.org/mailman/listinfo/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.