-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge tag 'iommu-updates-v3.16' of git://git.kernel.org/pub/scm/linux…
…/kernel/git/joro/iommu into next Pull IOMMU updates from Joerg Roedel: "The changes include: - a new IOMMU driver for ARM Renesas SOCs - updates and fixes for the ARM Exynos driver to bring it closer to a usable state again - convert the AMD IOMMUv2 driver to use the mmu_notifier->release call-back instead of the task_exit notifier - random other fixes and minor improvements to a number of other IOMMU drivers" * tag 'iommu-updates-v3.16' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (54 commits) iommu/msm: Use devm_ioremap_resource to simplify code iommu/amd: Fix recently introduced compile warnings arm/ipmmu-vmsa: Fix compile error iommu/exynos: Fix checkpatch warning iommu/exynos: Fix trivial typo iommu/exynos: Remove invalid symbol dependency iommu: fsl_pamu.c: Fix for possible null pointer dereference iommu/amd: Remove duplicate checking code iommu/amd: Handle parallel invalidate_range_start/end calls correctly iommu/amd: Remove IOMMUv2 pasid_state_list iommu/amd: Implement mmu_notifier_release call-back iommu/amd: Convert IOMMUv2 state_table into state_list iommu/amd: Don't access IOMMUv2 state_table directly iommu/ipmmu-vmsa: Support clearing mappings iommu/ipmmu-vmsa: Remove stage 2 PTE bits definitions iommu/ipmmu-vmsa: Support 2MB mappings iommu/ipmmu-vmsa: Rewrite page table management iommu/ipmmu-vmsa: PMD is never folded, PUD always is iommu/ipmmu-vmsa: Set the PTE contiguous hint bit when possible iommu/ipmmu-vmsa: Define driver-specific page directory sizes ...
- Loading branch information
Showing
14 changed files
with
2,087 additions
and
613 deletions.
There are no files selected for viewing
70 changes: 70 additions & 0 deletions
70
Documentation/devicetree/bindings/iommu/samsung,sysmmu.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,70 @@ | ||
Samsung Exynos IOMMU H/W, System MMU (System Memory Management Unit) | ||
|
||
Samsung's Exynos architecture contains System MMUs that enables scattered | ||
physical memory chunks visible as a contiguous region to DMA-capable peripheral | ||
devices like MFC, FIMC, FIMD, GScaler, FIMC-IS and so forth. | ||
|
||
System MMU is an IOMMU and supports identical translation table format to | ||
ARMv7 translation tables with minimum set of page properties including access | ||
permissions, shareability and security protection. In addition, System MMU has | ||
another capabilities like L2 TLB or block-fetch buffers to minimize translation | ||
latency. | ||
|
||
System MMUs are in many to one relation with peripheral devices, i.e. single | ||
peripheral device might have multiple System MMUs (usually one for each bus | ||
master), but one System MMU can handle transactions from only one peripheral | ||
device. The relation between a System MMU and the peripheral device needs to be | ||
defined in device node of the peripheral device. | ||
|
||
MFC in all Exynos SoCs and FIMD, M2M Scalers and G2D in Exynos5420 has 2 System | ||
MMUs. | ||
* MFC has one System MMU on its left and right bus. | ||
* FIMD in Exynos5420 has one System MMU for window 0 and 4, the other system MMU | ||
for window 1, 2 and 3. | ||
* M2M Scalers and G2D in Exynos5420 has one System MMU on the read channel and | ||
the other System MMU on the write channel. | ||
The drivers must consider how to handle those System MMUs. One of the idea is | ||
to implement child devices or sub-devices which are the client devices of the | ||
System MMU. | ||
|
||
Note: | ||
The current DT binding for the Exynos System MMU is incomplete. | ||
The following properties can be removed or changed, if found incompatible with | ||
the "Generic IOMMU Binding" support for attaching devices to the IOMMU. | ||
|
||
Required properties: | ||
- compatible: Should be "samsung,exynos-sysmmu" | ||
- reg: A tuple of base address and size of System MMU registers. | ||
- interrupt-parent: The phandle of the interrupt controller of System MMU | ||
- interrupts: An interrupt specifier for interrupt signal of System MMU, | ||
according to the format defined by a particular interrupt | ||
controller. | ||
- clock-names: Should be "sysmmu" if the System MMU is needed to gate its clock. | ||
Optional "master" if the clock to the System MMU is gated by | ||
another gate clock other than "sysmmu". | ||
Exynos4 SoCs, there needs no "master" clock. | ||
Exynos5 SoCs, some System MMUs must have "master" clocks. | ||
- clocks: Required if the System MMU is needed to gate its clock. | ||
- samsung,power-domain: Required if the System MMU is needed to gate its power. | ||
Please refer to the following document: | ||
Documentation/devicetree/bindings/arm/exynos/power_domain.txt | ||
|
||
Examples: | ||
gsc_0: gsc@13e00000 { | ||
compatible = "samsung,exynos5-gsc"; | ||
reg = <0x13e00000 0x1000>; | ||
interrupts = <0 85 0>; | ||
samsung,power-domain = <&pd_gsc>; | ||
clocks = <&clock CLK_GSCL0>; | ||
clock-names = "gscl"; | ||
}; | ||
|
||
sysmmu_gsc0: sysmmu@13E80000 { | ||
compatible = "samsung,exynos-sysmmu"; | ||
reg = <0x13E80000 0x1000>; | ||
interrupt-parent = <&combiner>; | ||
interrupts = <2 0>; | ||
clock-names = "sysmmu", "master"; | ||
clocks = <&clock CLK_SMMU_GSCL0>, <&clock CLK_GSCL0>; | ||
samsung,power-domain = <&pd_gsc>; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.