Loading Documentation/devicetree/bindings/iommu/arm,smmu-v3.txt +19 −0 Original line number Original line Diff line number Diff line Loading @@ -36,5 +36,24 @@ the PCIe specification. NOTE: this only applies to the SMMU itself, not NOTE: this only applies to the SMMU itself, not masters connected upstream of the SMMU. masters connected upstream of the SMMU. - msi-parent : See the generic MSI binding described in devicetree/bindings/interrupt-controller/msi.txt for a description of the msi-parent property. - hisilicon,broken-prefetch-cmd - hisilicon,broken-prefetch-cmd : Avoid sending CMD_PREFETCH_* commands to the SMMU. : Avoid sending CMD_PREFETCH_* commands to the SMMU. ** Example smmu@2b400000 { compatible = "arm,smmu-v3"; reg = <0x0 0x2b400000 0x0 0x20000>; interrupts = <GIC_SPI 74 IRQ_TYPE_EDGE_RISING>, <GIC_SPI 75 IRQ_TYPE_EDGE_RISING>, <GIC_SPI 77 IRQ_TYPE_EDGE_RISING>, <GIC_SPI 79 IRQ_TYPE_EDGE_RISING>; interrupt-names = "eventq", "priq", "cmdq-sync", "gerror"; dma-coherent; #iommu-cells = <0>; msi-parent = <&its 0xff0000>; }; Documentation/devicetree/bindings/iommu/ti,omap-iommu.txt +27 −0 Original line number Original line Diff line number Diff line Loading @@ -4,6 +4,7 @@ Required properties: - compatible : Should be one of, - compatible : Should be one of, "ti,omap2-iommu" for OMAP2/OMAP3 IOMMU instances "ti,omap2-iommu" for OMAP2/OMAP3 IOMMU instances "ti,omap4-iommu" for OMAP4/OMAP5 IOMMU instances "ti,omap4-iommu" for OMAP4/OMAP5 IOMMU instances "ti,dra7-dsp-iommu" for DRA7xx DSP IOMMU instances "ti,dra7-iommu" for DRA7xx IOMMU instances "ti,dra7-iommu" for DRA7xx IOMMU instances - ti,hwmods : Name of the hwmod associated with the IOMMU instance - ti,hwmods : Name of the hwmod associated with the IOMMU instance - reg : Address space for the configuration registers - reg : Address space for the configuration registers Loading @@ -19,6 +20,13 @@ Optional properties: Should be either 8 or 32 (default: 32) Should be either 8 or 32 (default: 32) - ti,iommu-bus-err-back : Indicates the IOMMU instance supports throwing - ti,iommu-bus-err-back : Indicates the IOMMU instance supports throwing back a bus error response on MMU faults. back a bus error response on MMU faults. - ti,syscon-mmuconfig : Should be a pair of the phandle to the DSP_SYSTEM syscon node that contains the additional control register for enabling the MMU, and the MMU instance number (0-indexed) within the sub-system. This property is required for DSP IOMMU instances on DRA7xx SoCs. The instance number should be 0 for DSP MDMA MMUs and 1 for DSP EDMA MMUs. Example: Example: /* OMAP3 ISP MMU */ /* OMAP3 ISP MMU */ Loading @@ -30,3 +38,22 @@ Example: ti,hwmods = "mmu_isp"; ti,hwmods = "mmu_isp"; ti,#tlb-entries = <8>; ti,#tlb-entries = <8>; }; }; /* DRA74x DSP2 MMUs */ mmu0_dsp2: mmu@41501000 { compatible = "ti,dra7-dsp-iommu"; reg = <0x41501000 0x100>; interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>; ti,hwmods = "mmu0_dsp2"; #iommu-cells = <0>; ti,syscon-mmuconfig = <&dsp2_system 0x0>; }; mmu1_dsp2: mmu@41502000 { compatible = "ti,dra7-dsp-iommu"; reg = <0x41502000 0x100>; interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>; ti,hwmods = "mmu1_dsp2"; #iommu-cells = <0>; ti,syscon-mmuconfig = <&dsp2_system 0x1>; }; MAINTAINERS +7 −0 Original line number Original line Diff line number Diff line Loading @@ -8966,6 +8966,13 @@ F: drivers/s390/net/*iucv* F: include/net/iucv/ F: include/net/iucv/ F: net/iucv/ F: net/iucv/ S390 IOMMU (PCI) M: Gerald Schaefer <gerald.schaefer@de.ibm.com> L: linux-s390@vger.kernel.org W: http://www.ibm.com/developerworks/linux/linux390/ S: Supported F: drivers/iommu/s390-iommu.c S3C24XX SD/MMC Driver S3C24XX SD/MMC Driver M: Ben Dooks <ben-linux@fluff.org> M: Ben Dooks <ben-linux@fluff.org> L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) Loading arch/arm64/Kconfig +1 −0 Original line number Original line Diff line number Diff line Loading @@ -75,6 +75,7 @@ config ARM64 select HAVE_PERF_USER_STACK_DUMP select HAVE_PERF_USER_STACK_DUMP select HAVE_RCU_TABLE_FREE select HAVE_RCU_TABLE_FREE select HAVE_SYSCALL_TRACEPOINTS select HAVE_SYSCALL_TRACEPOINTS select IOMMU_DMA if IOMMU_SUPPORT select IRQ_DOMAIN select IRQ_DOMAIN select IRQ_FORCED_THREADING select IRQ_FORCED_THREADING select MODULES_USE_ELF_RELA select MODULES_USE_ELF_RELA Loading arch/arm64/include/asm/dma-mapping.h +7 −8 Original line number Original line Diff line number Diff line Loading @@ -54,16 +54,15 @@ static inline struct dma_map_ops *get_dma_ops(struct device *dev) return __generic_dma_ops(dev); return __generic_dma_ops(dev); } } static inline void arch_setup_dma_ops(struct device *dev, u64 dma_base, u64 size, void arch_setup_dma_ops(struct device *dev, u64 dma_base, u64 size, struct iommu_ops *iommu, bool coherent) struct iommu_ops *iommu, bool coherent); { if (!acpi_disabled && !dev->archdata.dma_ops) dev->archdata.dma_ops = dma_ops; dev->archdata.dma_coherent = coherent; } #define arch_setup_dma_ops arch_setup_dma_ops #define arch_setup_dma_ops arch_setup_dma_ops #ifdef CONFIG_IOMMU_DMA void arch_teardown_dma_ops(struct device *dev); #define arch_teardown_dma_ops arch_teardown_dma_ops #endif /* do not use this function in a driver */ /* do not use this function in a driver */ static inline bool is_device_dma_coherent(struct device *dev) static inline bool is_device_dma_coherent(struct device *dev) { { Loading Loading
Documentation/devicetree/bindings/iommu/arm,smmu-v3.txt +19 −0 Original line number Original line Diff line number Diff line Loading @@ -36,5 +36,24 @@ the PCIe specification. NOTE: this only applies to the SMMU itself, not NOTE: this only applies to the SMMU itself, not masters connected upstream of the SMMU. masters connected upstream of the SMMU. - msi-parent : See the generic MSI binding described in devicetree/bindings/interrupt-controller/msi.txt for a description of the msi-parent property. - hisilicon,broken-prefetch-cmd - hisilicon,broken-prefetch-cmd : Avoid sending CMD_PREFETCH_* commands to the SMMU. : Avoid sending CMD_PREFETCH_* commands to the SMMU. ** Example smmu@2b400000 { compatible = "arm,smmu-v3"; reg = <0x0 0x2b400000 0x0 0x20000>; interrupts = <GIC_SPI 74 IRQ_TYPE_EDGE_RISING>, <GIC_SPI 75 IRQ_TYPE_EDGE_RISING>, <GIC_SPI 77 IRQ_TYPE_EDGE_RISING>, <GIC_SPI 79 IRQ_TYPE_EDGE_RISING>; interrupt-names = "eventq", "priq", "cmdq-sync", "gerror"; dma-coherent; #iommu-cells = <0>; msi-parent = <&its 0xff0000>; };
Documentation/devicetree/bindings/iommu/ti,omap-iommu.txt +27 −0 Original line number Original line Diff line number Diff line Loading @@ -4,6 +4,7 @@ Required properties: - compatible : Should be one of, - compatible : Should be one of, "ti,omap2-iommu" for OMAP2/OMAP3 IOMMU instances "ti,omap2-iommu" for OMAP2/OMAP3 IOMMU instances "ti,omap4-iommu" for OMAP4/OMAP5 IOMMU instances "ti,omap4-iommu" for OMAP4/OMAP5 IOMMU instances "ti,dra7-dsp-iommu" for DRA7xx DSP IOMMU instances "ti,dra7-iommu" for DRA7xx IOMMU instances "ti,dra7-iommu" for DRA7xx IOMMU instances - ti,hwmods : Name of the hwmod associated with the IOMMU instance - ti,hwmods : Name of the hwmod associated with the IOMMU instance - reg : Address space for the configuration registers - reg : Address space for the configuration registers Loading @@ -19,6 +20,13 @@ Optional properties: Should be either 8 or 32 (default: 32) Should be either 8 or 32 (default: 32) - ti,iommu-bus-err-back : Indicates the IOMMU instance supports throwing - ti,iommu-bus-err-back : Indicates the IOMMU instance supports throwing back a bus error response on MMU faults. back a bus error response on MMU faults. - ti,syscon-mmuconfig : Should be a pair of the phandle to the DSP_SYSTEM syscon node that contains the additional control register for enabling the MMU, and the MMU instance number (0-indexed) within the sub-system. This property is required for DSP IOMMU instances on DRA7xx SoCs. The instance number should be 0 for DSP MDMA MMUs and 1 for DSP EDMA MMUs. Example: Example: /* OMAP3 ISP MMU */ /* OMAP3 ISP MMU */ Loading @@ -30,3 +38,22 @@ Example: ti,hwmods = "mmu_isp"; ti,hwmods = "mmu_isp"; ti,#tlb-entries = <8>; ti,#tlb-entries = <8>; }; }; /* DRA74x DSP2 MMUs */ mmu0_dsp2: mmu@41501000 { compatible = "ti,dra7-dsp-iommu"; reg = <0x41501000 0x100>; interrupts = <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>; ti,hwmods = "mmu0_dsp2"; #iommu-cells = <0>; ti,syscon-mmuconfig = <&dsp2_system 0x0>; }; mmu1_dsp2: mmu@41502000 { compatible = "ti,dra7-dsp-iommu"; reg = <0x41502000 0x100>; interrupts = <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>; ti,hwmods = "mmu1_dsp2"; #iommu-cells = <0>; ti,syscon-mmuconfig = <&dsp2_system 0x1>; };
MAINTAINERS +7 −0 Original line number Original line Diff line number Diff line Loading @@ -8966,6 +8966,13 @@ F: drivers/s390/net/*iucv* F: include/net/iucv/ F: include/net/iucv/ F: net/iucv/ F: net/iucv/ S390 IOMMU (PCI) M: Gerald Schaefer <gerald.schaefer@de.ibm.com> L: linux-s390@vger.kernel.org W: http://www.ibm.com/developerworks/linux/linux390/ S: Supported F: drivers/iommu/s390-iommu.c S3C24XX SD/MMC Driver S3C24XX SD/MMC Driver M: Ben Dooks <ben-linux@fluff.org> M: Ben Dooks <ben-linux@fluff.org> L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) L: linux-arm-kernel@lists.infradead.org (moderated for non-subscribers) Loading
arch/arm64/Kconfig +1 −0 Original line number Original line Diff line number Diff line Loading @@ -75,6 +75,7 @@ config ARM64 select HAVE_PERF_USER_STACK_DUMP select HAVE_PERF_USER_STACK_DUMP select HAVE_RCU_TABLE_FREE select HAVE_RCU_TABLE_FREE select HAVE_SYSCALL_TRACEPOINTS select HAVE_SYSCALL_TRACEPOINTS select IOMMU_DMA if IOMMU_SUPPORT select IRQ_DOMAIN select IRQ_DOMAIN select IRQ_FORCED_THREADING select IRQ_FORCED_THREADING select MODULES_USE_ELF_RELA select MODULES_USE_ELF_RELA Loading
arch/arm64/include/asm/dma-mapping.h +7 −8 Original line number Original line Diff line number Diff line Loading @@ -54,16 +54,15 @@ static inline struct dma_map_ops *get_dma_ops(struct device *dev) return __generic_dma_ops(dev); return __generic_dma_ops(dev); } } static inline void arch_setup_dma_ops(struct device *dev, u64 dma_base, u64 size, void arch_setup_dma_ops(struct device *dev, u64 dma_base, u64 size, struct iommu_ops *iommu, bool coherent) struct iommu_ops *iommu, bool coherent); { if (!acpi_disabled && !dev->archdata.dma_ops) dev->archdata.dma_ops = dma_ops; dev->archdata.dma_coherent = coherent; } #define arch_setup_dma_ops arch_setup_dma_ops #define arch_setup_dma_ops arch_setup_dma_ops #ifdef CONFIG_IOMMU_DMA void arch_teardown_dma_ops(struct device *dev); #define arch_teardown_dma_ops arch_teardown_dma_ops #endif /* do not use this function in a driver */ /* do not use this function in a driver */ static inline bool is_device_dma_coherent(struct device *dev) static inline bool is_device_dma_coherent(struct device *dev) { { Loading