[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH] docs: improve ARM passthrough doc
On Tue, 20 Jun 2017, Julien Grall wrote: > Hi Stefano, > > On 06/16/2017 09:29 PM, Stefano Stabellini wrote: > > Add a warning: use passthrough with care. > > > > Add a pointer to the gic device tree bindings. Add an explanation on how > > to calculate irq numbers from device tree. > > > > Add a brief explanation of the reg property and a pointer to the xl docs > > for a description of the iomem property. Add a note that in the example > > we are using different memory addresses for guests and host. > > > > Signed-off-by: Stefano Stabellini <sstabellini@xxxxxxxxxx> > > > > diff --git a/docs/misc/arm/passthrough.txt b/docs/misc/arm/passthrough.txt > > index 082e9ab..7140a61 100644 > > --- a/docs/misc/arm/passthrough.txt > > +++ b/docs/misc/arm/passthrough.txt > > @@ -12,7 +12,11 @@ property "xen,passthrough". The command to do it in > > U-Boot is: > > 2) Create a partial device tree describing the device. The IRQ are mapped > > 1:1 to the guest (i.e VIRQ == IRQ). For MMIO, you will have to find a hole > > in the guest memory layout (see xen/include/public/arch-arm.h, note that > > -the layout is not stable and can change between versions of Xen). > > +the layout is not stable and can change between versions of Xen). Please > > +be aware that passing a partial device tree to a VM is a powerful tool, > > +use it with care. In production, only allow assignment of devices which > > +have been previously tested and known to work correctly when given to > > +guests. > > /dts-v1/; > > @@ -48,6 +52,8 @@ Note: > > - #size-cells > > * See http://www.devicetree.org/Device_Tree_Usage for more > > information about device tree. > > + * In this example, the device MMIO region is placed at a different > > + address (0x10000000) compared to the host address (0xfff51000) > > 3) Compile the partial guest device with dtc (Device Tree Compiler). > > For our purpose, the compiled file will be called guest-midway.dtb and > > @@ -60,3 +66,16 @@ dtdev = [ "/soc/ethernet@fff51000" ] > > irqs = [ 112, 113, 114 ] > > iomem = [ "0xfff51,1@0x10000" ] > > +Please refer to your platform docs for the MMIO ranges and interrupts. > > + > > +They can also be calculated from the original device tree (not > > +recommended). See [arm,gic.txt] in the Linux repository for a > > [arm,gic.txt] documentation is only valid for GICv2. GICv3 has a different > documentation, though the interrupt format is the same at the moment. > > I think this should be clarified and explain that the interrupt format will > depend on the virtual interrupt controller exposed to the guest. I'll do, thanks > > +description of the "interrupts" property format. For the GIC, the first > > +cell is interrupt type, and the second cell is the interrupt number. > > +Given that 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 nunbers, each of them can occupy 1 or 2 cells. > > s/nunbers/numbers/ > > > + > > +[arm,gic.txt]: > > https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/Documentation/devicetree/bindings/interrupt-controller/arm,gic.txt > > +[xl.cfg]: https://xenbits.xen.org/docs/unstable/man/xl.cfg.5.html > > > > Cheers, > > -- > Julien Grall > _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx https://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |