diff options
Diffstat (limited to 'drivers/iommu/Kconfig')
-rw-r--r-- | drivers/iommu/Kconfig | 76 |
1 files changed, 75 insertions, 1 deletions
diff --git a/drivers/iommu/Kconfig b/drivers/iommu/Kconfig index 01068987809d..5c514d0711d1 100644 --- a/drivers/iommu/Kconfig +++ b/drivers/iommu/Kconfig | |||
@@ -158,7 +158,7 @@ config TEGRA_IOMMU_GART | |||
158 | 158 | ||
159 | config TEGRA_IOMMU_SMMU | 159 | config TEGRA_IOMMU_SMMU |
160 | bool "Tegra SMMU IOMMU Support" | 160 | bool "Tegra SMMU IOMMU Support" |
161 | depends on ARCH_TEGRA_3x_SOC && TEGRA_AHB | 161 | depends on ARCH_TEGRA && TEGRA_AHB |
162 | select IOMMU_API | 162 | select IOMMU_API |
163 | help | 163 | help |
164 | Enables support for remapping discontiguous physical memory | 164 | Enables support for remapping discontiguous physical memory |
@@ -187,4 +187,78 @@ config EXYNOS_IOMMU_DEBUG | |||
187 | 187 | ||
188 | Say N unless you need kernel log message for IOMMU debugging | 188 | Say N unless you need kernel log message for IOMMU debugging |
189 | 189 | ||
190 | config SHMOBILE_IPMMU | ||
191 | bool | ||
192 | |||
193 | config SHMOBILE_IPMMU_TLB | ||
194 | bool | ||
195 | |||
196 | config SHMOBILE_IOMMU | ||
197 | bool "IOMMU for Renesas IPMMU/IPMMUI" | ||
198 | default n | ||
199 | depends on (ARM && ARCH_SHMOBILE) | ||
200 | select IOMMU_API | ||
201 | select ARM_DMA_USE_IOMMU | ||
202 | select SHMOBILE_IPMMU | ||
203 | select SHMOBILE_IPMMU_TLB | ||
204 | help | ||
205 | Support for Renesas IPMMU/IPMMUI. This option enables | ||
206 | remapping of DMA memory accesses from all of the IP blocks | ||
207 | on the ICB. | ||
208 | |||
209 | Warning: Drivers (including userspace drivers of UIO | ||
210 | devices) of the IP blocks on the ICB *must* use addresses | ||
211 | allocated from the IPMMU (iova) for DMA with this option | ||
212 | enabled. | ||
213 | |||
214 | If unsure, say N. | ||
215 | |||
216 | choice | ||
217 | prompt "IPMMU/IPMMUI address space size" | ||
218 | default SHMOBILE_IOMMU_ADDRSIZE_2048MB | ||
219 | depends on SHMOBILE_IOMMU | ||
220 | help | ||
221 | This option sets IPMMU/IPMMUI address space size by | ||
222 | adjusting the 1st level page table size. The page table size | ||
223 | is calculated as follows: | ||
224 | |||
225 | page table size = number of page table entries * 4 bytes | ||
226 | number of page table entries = address space size / 1 MiB | ||
227 | |||
228 | For example, when the address space size is 2048 MiB, the | ||
229 | 1st level page table size is 8192 bytes. | ||
230 | |||
231 | config SHMOBILE_IOMMU_ADDRSIZE_2048MB | ||
232 | bool "2 GiB" | ||
233 | |||
234 | config SHMOBILE_IOMMU_ADDRSIZE_1024MB | ||
235 | bool "1 GiB" | ||
236 | |||
237 | config SHMOBILE_IOMMU_ADDRSIZE_512MB | ||
238 | bool "512 MiB" | ||
239 | |||
240 | config SHMOBILE_IOMMU_ADDRSIZE_256MB | ||
241 | bool "256 MiB" | ||
242 | |||
243 | config SHMOBILE_IOMMU_ADDRSIZE_128MB | ||
244 | bool "128 MiB" | ||
245 | |||
246 | config SHMOBILE_IOMMU_ADDRSIZE_64MB | ||
247 | bool "64 MiB" | ||
248 | |||
249 | config SHMOBILE_IOMMU_ADDRSIZE_32MB | ||
250 | bool "32 MiB" | ||
251 | |||
252 | endchoice | ||
253 | |||
254 | config SHMOBILE_IOMMU_L1SIZE | ||
255 | int | ||
256 | default 8192 if SHMOBILE_IOMMU_ADDRSIZE_2048MB | ||
257 | default 4096 if SHMOBILE_IOMMU_ADDRSIZE_1024MB | ||
258 | default 2048 if SHMOBILE_IOMMU_ADDRSIZE_512MB | ||
259 | default 1024 if SHMOBILE_IOMMU_ADDRSIZE_256MB | ||
260 | default 512 if SHMOBILE_IOMMU_ADDRSIZE_128MB | ||
261 | default 256 if SHMOBILE_IOMMU_ADDRSIZE_64MB | ||
262 | default 128 if SHMOBILE_IOMMU_ADDRSIZE_32MB | ||
263 | |||
190 | endif # IOMMU_SUPPORT | 264 | endif # IOMMU_SUPPORT |