Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 358839
b: refs/heads/master
c: c2c460f
h: refs/heads/master
i:
  358837: 5c1f632
  358835: c401555
  358831: f4a4ccd
v: v3
  • Loading branch information
Hideki EIRAKU authored and Joerg Roedel committed Feb 6, 2013
1 parent 52b5775 commit 4a9d2d5
Show file tree
Hide file tree
Showing 9 changed files with 696 additions and 46 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 573f4145024598990d7191523f86a6d5233be751
refs/heads/master: c2c460f7c148aa1a59630f61dac2481f1efb4f4e
76 changes: 75 additions & 1 deletion trunk/drivers/iommu/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ config TEGRA_IOMMU_GART

config TEGRA_IOMMU_SMMU
bool "Tegra SMMU IOMMU Support"
depends on ARCH_TEGRA && TEGRA_AHB
depends on ARCH_TEGRA_3x_SOC && TEGRA_AHB
select IOMMU_API
help
Enables support for remapping discontiguous physical memory
Expand Down Expand Up @@ -187,4 +187,78 @@ config EXYNOS_IOMMU_DEBUG

Say N unless you need kernel log message for IOMMU debugging

config SHMOBILE_IPMMU
bool

config SHMOBILE_IPMMU_TLB
bool

config SHMOBILE_IOMMU
bool "IOMMU for Renesas IPMMU/IPMMUI"
default n
depends on (ARM && ARCH_SHMOBILE)
select IOMMU_API
select ARM_DMA_USE_IOMMU
select SHMOBILE_IPMMU
select SHMOBILE_IPMMU_TLB
help
Support for Renesas IPMMU/IPMMUI. This option enables
remapping of DMA memory accesses from all of the IP blocks
on the ICB.

Warning: Drivers (including userspace drivers of UIO
devices) of the IP blocks on the ICB *must* use addresses
allocated from the IPMMU (iova) for DMA with this option
enabled.

If unsure, say N.

choice
prompt "IPMMU/IPMMUI address space size"
default SHMOBILE_IOMMU_ADDRSIZE_2048MB
depends on SHMOBILE_IOMMU
help
This option sets IPMMU/IPMMUI address space size by
adjusting the 1st level page table size. The page table size
is calculated as follows:

page table size = number of page table entries * 4 bytes
number of page table entries = address space size / 1 MiB

For example, when the address space size is 2048 MiB, the
1st level page table size is 8192 bytes.

config SHMOBILE_IOMMU_ADDRSIZE_2048MB
bool "2 GiB"

config SHMOBILE_IOMMU_ADDRSIZE_1024MB
bool "1 GiB"

config SHMOBILE_IOMMU_ADDRSIZE_512MB
bool "512 MiB"

config SHMOBILE_IOMMU_ADDRSIZE_256MB
bool "256 MiB"

config SHMOBILE_IOMMU_ADDRSIZE_128MB
bool "128 MiB"

config SHMOBILE_IOMMU_ADDRSIZE_64MB
bool "64 MiB"

config SHMOBILE_IOMMU_ADDRSIZE_32MB
bool "32 MiB"

endchoice

config SHMOBILE_IOMMU_L1SIZE
int
default 8192 if SHMOBILE_IOMMU_ADDRSIZE_2048MB
default 4096 if SHMOBILE_IOMMU_ADDRSIZE_1024MB
default 2048 if SHMOBILE_IOMMU_ADDRSIZE_512MB
default 1024 if SHMOBILE_IOMMU_ADDRSIZE_256MB
default 512 if SHMOBILE_IOMMU_ADDRSIZE_128MB
default 256 if SHMOBILE_IOMMU_ADDRSIZE_64MB
default 128 if SHMOBILE_IOMMU_ADDRSIZE_32MB

endif # IOMMU_SUPPORT
2 changes: 2 additions & 0 deletions trunk/drivers/iommu/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,5 @@ obj-$(CONFIG_OMAP_IOMMU_DEBUG) += omap-iommu-debug.o
obj-$(CONFIG_TEGRA_IOMMU_GART) += tegra-gart.o
obj-$(CONFIG_TEGRA_IOMMU_SMMU) += tegra-smmu.o
obj-$(CONFIG_EXYNOS_IOMMU) += exynos-iommu.o
obj-$(CONFIG_SHMOBILE_IOMMU) += shmobile-iommu.o
obj-$(CONFIG_SHMOBILE_IPMMU) += shmobile-ipmmu.o
Loading

0 comments on commit 4a9d2d5

Please sign in to comment.