Re: [RFC 1/5] dt-bindings: iommu: Add reserved-dma-region for IOMMU device
On Tue, Mar 6, 2018 at 5:11 PM, Robin Murphy wrote: > > On 06/03/18 04:59, Jitendra Bhivare wrote: >> >> Certain regions in IO virtual address space may need to be reserved to be >> not used for devices configured behind IOMMU. >> >> Add documentation of the property to allow such regions to be specified in >> DT to be reserved using IOMMU_RESV_RESERVED type. > > > That sounds like software policy; DT is for describing hardware. It is to describe the holes in address space for which hardware can't provide mappings. > >> Reviewed-by: Ray Jui >> Reviewed-by: Vikram Prakash >> Reviewed-by: Scott Branden >> Signed-off-by: Jitendra Bhivare >> --- >> Documentation/devicetree/bindings/iommu/iommu.txt | 17 + >> 1 file changed, 17 insertions(+) >> >> diff --git a/Documentation/devicetree/bindings/iommu/iommu.txt >> b/Documentation/devicetree/bindings/iommu/iommu.txt >> index 5a8b462..5a58ef2 100644 >> --- a/Documentation/devicetree/bindings/iommu/iommu.txt >> +++ b/Documentation/devicetree/bindings/iommu/iommu.txt >> @@ -98,6 +98,20 @@ requirements of that use-case haven't been fully >> determined yet. Implementing >> this is therefore not recommended without further discussion and extension >> of >> this binding. >> +Optional properties: >> + >> +- reserved-dma-region: This specifies DMA region to be reserved with >> specific >> + prot in IOVA space. It is in tuples of (busno,prot,bus_addr,size). > > > What do busno and prot actually mean, and what are valid values for them? > > Robin. busno was part of initial commit 4e0ee78f in implementation of of_get_dma_window. I am not sure what was the use of it in PowerPC. Similar implementation can be seen in of_parse_dma_window. prot is access permission flags for the region for reserving in SW. This I will remove. > > >> +- #region-address-cells: specifies number of cells needed to encode bus_addr >> + >> +- #region-size-cells: specifies number of cells needed to encode size >> + >> +Notes: >> +== >> +This can be applied to IOMMU master node or to children (such as PCI host >> +bridges) on the bus behind IOMMU. >> + >> Examples: >> = >> @@ -173,6 +187,9 @@ Multiple-master IOMMU with configurable DMA window: >> * master (i.e. the I/O virtual address space). >> */ >> #iommu-cells = <4>; >> + #region-address-cells = <2>; >> + #region-size-cells = <2>; >> + reserved-dma-region = <0x0 0x0 0x04 0x0 0x04 0x0>; >> }; >> master { >> ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
Re: [RFC 1/5] dt-bindings: iommu: Add reserved-dma-region for IOMMU device
On Tue, Mar 6, 2018 at 5:11 PM, Robin Murphy wrote: > On 06/03/18 04:59, Jitendra Bhivare wrote: > >> Certain regions in IO virtual address space may need to be reserved to be >> not used for devices configured behind IOMMU. >> >> Add documentation of the property to allow such regions to be specified in >> DT to be reserved using IOMMU_RESV_RESERVED type. >> > > That sounds like software policy; DT is for describing hardware. It is to describe the holes in address space for which hardware can't provide mappings. > > > Reviewed-by: Ray Jui >> Reviewed-by: Vikram Prakash >> Reviewed-by: Scott Branden >> Signed-off-by: Jitendra Bhivare >> --- >> Documentation/devicetree/bindings/iommu/iommu.txt | 17 >> + >> 1 file changed, 17 insertions(+) >> >> diff --git a/Documentation/devicetree/bindings/iommu/iommu.txt >> b/Documentation/devicetree/bindings/iommu/iommu.txt >> index 5a8b462..5a58ef2 100644 >> --- a/Documentation/devicetree/bindings/iommu/iommu.txt >> +++ b/Documentation/devicetree/bindings/iommu/iommu.txt >> @@ -98,6 +98,20 @@ requirements of that use-case haven't been fully >> determined yet. Implementing >> this is therefore not recommended without further discussion and >> extension of >> this binding. >> +Optional properties: >> + >> +- reserved-dma-region: This specifies DMA region to be reserved with >> specific >> + prot in IOVA space. It is in tuples of (busno,prot,bus_addr,size). >> > > What do busno and prot actually mean, and what are valid values for them? busno was part of initial commit 4e0ee78f in implementation of of_get_dma_window. I am not sure what was the use of it in Powerpc. Similar implementation can be seen in of_parse_dma_window. prot is access permission flags for the region for reserving in SW.This I will remove. > > > Robin. > > > +- #region-address-cells: specifies number of cells needed to encode >> bus_addr >> + >> +- #region-size-cells: specifies number of cells needed to encode size >> + >> +Notes: >> +== >> +This can be applied to IOMMU master node or to children (such as PCI host >> +bridges) on the bus behind IOMMU. >> + >> Examples: >> = >> @@ -173,6 +187,9 @@ Multiple-master IOMMU with configurable DMA window: >> * master (i.e. the I/O virtual address space). >> */ >> #iommu-cells = <4>; >> + #region-address-cells = <2>; >> + #region-size-cells = <2>; >> + reserved-dma-region = <0x0 0x0 0x04 0x0 0x04 0x0>; >> }; >> master { >> >> ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu
Re: [RFC 1/5] dt-bindings: iommu: Add reserved-dma-region for IOMMU device
On 06/03/18 04:59, Jitendra Bhivare wrote: Certain regions in IO virtual address space may need to be reserved to be not used for devices configured behind IOMMU. Add documentation of the property to allow such regions to be specified in DT to be reserved using IOMMU_RESV_RESERVED type. That sounds like software policy; DT is for describing hardware. Reviewed-by: Ray Jui Reviewed-by: Vikram Prakash Reviewed-by: Scott Branden Signed-off-by: Jitendra Bhivare --- Documentation/devicetree/bindings/iommu/iommu.txt | 17 + 1 file changed, 17 insertions(+) diff --git a/Documentation/devicetree/bindings/iommu/iommu.txt b/Documentation/devicetree/bindings/iommu/iommu.txt index 5a8b462..5a58ef2 100644 --- a/Documentation/devicetree/bindings/iommu/iommu.txt +++ b/Documentation/devicetree/bindings/iommu/iommu.txt @@ -98,6 +98,20 @@ requirements of that use-case haven't been fully determined yet. Implementing this is therefore not recommended without further discussion and extension of this binding. +Optional properties: + +- reserved-dma-region: This specifies DMA region to be reserved with specific + prot in IOVA space. It is in tuples of (busno,prot,bus_addr,size). What do busno and prot actually mean, and what are valid values for them? Robin. +- #region-address-cells: specifies number of cells needed to encode bus_addr + +- #region-size-cells: specifies number of cells needed to encode size + +Notes: +== +This can be applied to IOMMU master node or to children (such as PCI host +bridges) on the bus behind IOMMU. + Examples: = @@ -173,6 +187,9 @@ Multiple-master IOMMU with configurable DMA window: * master (i.e. the I/O virtual address space). */ #iommu-cells = <4>; + #region-address-cells = <2>; + #region-size-cells = <2>; + reserved-dma-region = <0x0 0x0 0x04 0x0 0x04 0x0>; }; master { ___ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu