Some of TI OMAP series have the peripheral devices with their own
Memory Management Unit(IOMMU), which is composed of its own TLB and
optional H/W pagetable (TWL). These MMUs doesn't depend on MPU(ARM)
MMU at all, but their algorithms are quite similar and they share the
same physical address space. This patch provides with common in-kernel
iommu APIs such OMAP peripheral devices(Camera ISP, IVA1, IVA2, DSP
and the equivalent ones in the latest OMAP successors) to handle
peripheral device IOMMUs in the same manner.
"tlb and pagetable primitives" has been updated with Russell's
comments on:
http://marc.info/?l=linux-omap&m=122087083712670&w=2
Generalizing this omap iommu code independently from each device
drivers, "Camera(ISP)", "TI bridge(IVA/DSP)", "dspgateway(DSP)" and
the future OMAP equivalent device would be more robust and reduce the
maintenance cost since keeping this critical code at one place can
avoid some risks, like wrong MMU settings, which may cause critical
damages on the system.
---
The following changes since commit 091438dd5668396328a3419abcbc6591159eb8d1:
Linus Torvalds (1):
Linux 2.6.30-rc4
are available in the git repository at:
http://git.gitorious.org/lk/mainline.git iommu
Hiroshi DOYU (6):
omap iommu: tlb and pagetable primitives
omap iommu: omap2 architecture specific functions
omap iommu: omap3 iommu device registration
omap iommu: simple virtual address space management
omap iommu: entries for Kconfig and Makefile
omap2 iommu: entries for Kconfig and Makefile
arch/arm/include/asm/io.h | 6 +
arch/arm/mach-omap2/Makefile | 5 +
arch/arm/mach-omap2/iommu2.c | 323 ++++++++++
arch/arm/mach-omap2/omap3-iommu.c | 105 ++++
arch/arm/mm/ioremap.c | 11 +
arch/arm/plat-omap/Kconfig | 8 +
arch/arm/plat-omap/Makefile | 1 +
arch/arm/plat-omap/include/mach/iommu.h | 168 +++++
arch/arm/plat-omap/include/mach/iommu2.h | 96 +++
arch/arm/plat-omap/include/mach/iovmm.h | 94 +++
arch/arm/plat-omap/iommu.c | 996 ++++++++++++++++++++++++++++++
arch/arm/plat-omap/iopgtable.h | 72 +++
arch/arm/plat-omap/iovmm.c | 890 ++++++++++++++++++++++++++
13 files changed, 2775 insertions(+), 0 deletions(-)
create mode 100644 arch/arm/mach-omap2/iommu2.c
create mode 100644 arch/arm/mach-omap2/omap3-iommu.c
create mode 100644 arch/arm/plat-omap/include/mach/iommu.h
create mode 100644 arch/arm/plat-omap/include/mach/iommu2.h
create mode 100644 arch/arm/plat-omap/include/mach/iovmm.h
create mode 100644 arch/arm/plat-omap/iommu.c
create mode 100644 arch/arm/plat-omap/iopgtable.h
create mode 100644 arch/arm/plat-omap/iovmm.c
--
To unsubscribe from this list: send the line "unsubscribe linux-omap" in
the body of a message to [email protected]
More majordomo info at http://vger.kernel.org/majordomo-info.html