Message ID | 20211116063155.901183-11-penny.zheng@arm.com (mailing list archive) |
---|---|
State | Superseded |
Headers | show |
Series | direct-map memory map | expand |
Hi Penny, > On 16 Nov 2021, at 06:31, Penny Zheng <penny.zheng@arm.com> wrote: > > From: Stefano Stabellini <stefano.stabellini@xilinx.com> > > This commit creates a new doc to document how to do passthrough without IOMMU. > > Signed-off-by: Stefano Stabellini <stefano.stabellini@xilinx.com> > Signed-off-by: Penny Zheng <penny.zheng@arm.com> > --- > docs/misc/arm/passthrough-noiommu.txt | 52 +++++++++++++++++++++++++++ > 1 file changed, 52 insertions(+) > create mode 100644 docs/misc/arm/passthrough-noiommu.txt > > diff --git a/docs/misc/arm/passthrough-noiommu.txt b/docs/misc/arm/passthrough-noiommu.txt > new file mode 100644 > index 0000000000..3e2ef21ad7 > --- /dev/null > +++ b/docs/misc/arm/passthrough-noiommu.txt > @@ -0,0 +1,52 @@ > +Request Device Assignment without IOMMU support > +=============================================== > + > +*WARNING: > +Users should be aware that it is not always secure to assign a device without > +IOMMU protection. > +When the device is not protected by the IOMMU, the administrator should make > +sure that: > + 1. The device is assigned to a trusted guest. > + 2. Users have additional security mechanism on the platform. > + > +This document assumes that the IOMMU is absent from the system or it is > +disabled (status = "disabled" in device tree). > + > +Add xen,force-assign-without-iommu; to the device tree snippet: > + > +ethernet: ethernet@ff0e0000 { > + compatible = "cdns,zynqmp-gem"; > + xen,path = "/amba/ethernet@ff0e0000"; > + xen,reg = <0x0 0xff0e0000 0x1000 0x0 0xff0e0000>; > + xen,force-assign-without-iommu; > +}; > + > +Request 1:1 memory mapping for the domain on static allocation > +============================================================== > + > +Add a direct-map property under the appropriate /chosen/domU node which > +is also statically allocated with physical memory ranges through > +xen,static-mem property as its guest RAM. > + > +Below is an example on how to specify the 1:1 memory mapping for the domain > +on static allocation in the device-tree: > + > +/ { > + chosen { > + domU1 { > + compatible = "xen,domain"; > + #address-cells = <0x2>; > + #size-cells = <0x2>; > + cpus = <2>; > + memory = <0x0 0x80000>; > + #xen,static-mem-address-cells = <0x1>; > + #xen,static-mem-size-cells = <0x1>; > + xen,static-mem = <0x30000000 0x20000000>; > + direct-map; > + ... > + }; > + }; > +}; > + > +Besides reserving a 512MB region starting at the host physical address > +0x30000000 to DomU1, it also requests 1:1 memory mapping. If the guest has some reserved-memory in the device tree, those will not be handle by Xen for DomUs. I think it could be a good idea in the documentation to mention that any reserved-memory required must be assigned using static-mem to the DomU. This could take the form of a comment or a warning in this document. Regards Bertrand > -- > 2.25.1 >
diff --git a/docs/misc/arm/passthrough-noiommu.txt b/docs/misc/arm/passthrough-noiommu.txt new file mode 100644 index 0000000000..3e2ef21ad7 --- /dev/null +++ b/docs/misc/arm/passthrough-noiommu.txt @@ -0,0 +1,52 @@ +Request Device Assignment without IOMMU support +=============================================== + +*WARNING: +Users should be aware that it is not always secure to assign a device without +IOMMU protection. +When the device is not protected by the IOMMU, the administrator should make +sure that: + 1. The device is assigned to a trusted guest. + 2. Users have additional security mechanism on the platform. + +This document assumes that the IOMMU is absent from the system or it is +disabled (status = "disabled" in device tree). + +Add xen,force-assign-without-iommu; to the device tree snippet: + +ethernet: ethernet@ff0e0000 { + compatible = "cdns,zynqmp-gem"; + xen,path = "/amba/ethernet@ff0e0000"; + xen,reg = <0x0 0xff0e0000 0x1000 0x0 0xff0e0000>; + xen,force-assign-without-iommu; +}; + +Request 1:1 memory mapping for the domain on static allocation +============================================================== + +Add a direct-map property under the appropriate /chosen/domU node which +is also statically allocated with physical memory ranges through +xen,static-mem property as its guest RAM. + +Below is an example on how to specify the 1:1 memory mapping for the domain +on static allocation in the device-tree: + +/ { + chosen { + domU1 { + compatible = "xen,domain"; + #address-cells = <0x2>; + #size-cells = <0x2>; + cpus = <2>; + memory = <0x0 0x80000>; + #xen,static-mem-address-cells = <0x1>; + #xen,static-mem-size-cells = <0x1>; + xen,static-mem = <0x30000000 0x20000000>; + direct-map; + ... + }; + }; +}; + +Besides reserving a 512MB region starting at the host physical address +0x30000000 to DomU1, it also requests 1:1 memory mapping.