[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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |