10 Mar, 2013

1 commit

  • The OMAP IOMMU driver intentionally fails to build on OMAP1
    platforms, so we should not allow enabling it there.

    Signed-off-by: Arnd Bergmann
    Cc: Joerg Roedel
    Cc: iommu@lists.linux-foundation.org
    Cc: Ohad Ben-Cohen
    Cc: Tony Lindgren
    Cc: Omar Ramirez Luna
    Acked-by: Tony Lindgren
    Signed-off-by: Joerg Roedel

    Arnd Bergmann
     

27 Feb, 2013

1 commit

  • Pull IOMMU Updates from Joerg Roedel:
    "Besides some fixes and cleanups in the code there are three more
    important changes to point out this time:

    * New IOMMU driver for the ARM SHMOBILE platform
    * An IOMMU-API extension for non-paging IOMMUs (required for
    upcoming PAMU driver)
    * Rework of the way the Tegra IOMMU driver accesses its
    registetrs - register windows are easier to extend now.

    There are also a few changes to non-iommu code, but that is acked by
    the respective maintainers."

    * tag 'iommu-updates-v3.9' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (23 commits)
    iommu/tegra: assume CONFIG_OF in SMMU driver
    iommu/tegra: assume CONFIG_OF in gart driver
    iommu/amd: Remove redundant NULL check before dma_ops_domain_free().
    iommu/amd: Initialize device table after dma_ops
    iommu/vt-d: Zero out allocated memory in dmar_enable_qi
    iommu/tegra: smmu: Fix incorrect mask for regbase
    iommu/exynos: Make exynos_sysmmu_disable static
    ARM: mach-shmobile: r8a7740: Add IPMMU device
    ARM: mach-shmobile: sh73a0: Add IPMMU device
    ARM: mach-shmobile: sh7372: Add IPMMU device
    iommu/shmobile: Add iommu driver for Renesas IPMMU modules
    iommu: Add DOMAIN_ATTR_WINDOWS domain attribute
    iommu: Add domain window handling functions
    iommu: Implement DOMAIN_ATTR_PAGING attribute
    iommu: Check for valid pgsize_bitmap in iommu_map/unmap
    iommu: Make sure DOMAIN_ATTR_MAX is really the maximum
    iommu/tegra: smmu: Change SMMU's dependency on ARCH_TEGRA
    iommu/tegra: smmu: Use helper function to check for valid register offset
    iommu/tegra: smmu: Support variable MMIO ranges/blocks
    iommu/tegra: Add missing spinlock initialization
    ...

    Linus Torvalds
     

19 Feb, 2013

1 commit


06 Feb, 2013

1 commit

  • This is the Renesas IPMMU driver and IOMMU API implementation.

    The IPMMU module supports the MMU function and the PMB function. The
    MMU function provides address translation by pagetable compatible with
    ARMv6. The PMB function provides address translation including
    tile-linear translation. This patch implements the MMU function.

    The iommu driver does not register a platform driver directly because:
    - the register space of the MMU function and the PMB function
    have a common register (used for settings flush), so they should ideally
    have a way to appropriately share this register.
    - the MMU function uses the IOMMU API while the PMB function does not.
    - the two functions may be used independently.

    Signed-off-by: Hideki EIRAKU
    Signed-off-by: Joerg Roedel

    Hideki EIRAKU
     

05 Feb, 2013

1 commit


22 Jan, 2013

1 commit

  • The CONFIG_EXPERIMENTAL config item has not carried much meaning for a
    while now and is almost always enabled by default. As agreed during the
    Linux kernel summit, remove it from any "depends on" lines in Kconfigs.

    CC: Joerg Roedel
    CC: Hiroshi DOYU
    CC: Jiri Kosina
    CC: Kukjin Kim
    Signed-off-by: Kees Cook
    Signed-off-by: Greg Kroah-Hartman

    Kees Cook
     

28 Sep, 2012

1 commit


25 Jun, 2012

2 commits

  • The necessary info is expected to pass from DT.

    For more precise resource reservation, there shouldn't be any
    overlapping of register range between SMMU and MC. SMMU register
    offset needs to be calculated correctly, based on its register bank.

    Signed-off-by: Hiroshi DOYU
    Acked-by: Stephen Warren
    Acked-by: Grant Likely
    Signed-off-by: Joerg Roedel

    Hiroshi Doyu
     
  • This code was based on:
    "arch/microblaze/kernel/prom_parse.c"
    "arch/powerpc/kernel/prom_parse.c"

    Can replace "of_parse_dma_window()" in the above. This supports
    different formats flexibly. "prefix" can be configured if any. "busno"
    and "index" are optionally specified. Set NULL and 0 if not used.

    Signed-off-by: Hiroshi DOYU
    Acked-by: Stephen Warren
    Signed-off-by: Joerg Roedel

    Hiroshi Doyu
     

27 May, 2012

1 commit

  • Pull arm-soc driver specific updates from Olof Johansson:
    "These changes are specific to some driver that may be used by multiple
    boards or socs. The most significant change in here is the move of
    the samsung iommu code from a platform specific in-kernel interface to
    the generic iommu subsystem."

    Fix up trivial conflicts in arch/arm/mach-exynos/Kconfig

    * tag 'drivers' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc: (28 commits)
    mmc: dt: Consolidate DT bindings
    iommu/exynos: Add iommu driver for EXYNOS Platforms
    ARM: davinci: optimize the DMA ISR
    ARM: davinci: implement DEBUG_LL port choice
    ARM: tegra: Add SMMU enabler in AHB
    ARM: tegra: Add Tegra AHB driver
    Input: pxa27x_keypad add choice to set direct_key_mask
    Input: pxa27x_keypad direct key may be low active
    Input: pxa27x_keypad bug fix for direct_key_mask
    Input: pxa27x_keypad keep clock on as wakeup source
    ARM: dt: tegra: pinmux changes for USB ULPI
    ARM: tegra: add USB ULPI PHY reset GPIO to device tree
    ARM: tegra: don't hard-code USB ULPI PHY reset_gpio
    ARM: tegra: change pll_p_out4's rate to 24MHz
    ARM: tegra: fix pclk rate
    ARM: tegra: reparent sclk to pll_c_out1
    ARM: tegra: Add pllc clock init table
    ARM: dt: tegra cardhu: basic audio support
    ARM: dt: tegra30.dtsi: Add audio-related nodes
    ARM: tegra: add AUXDATA required for audio
    ...

    Linus Torvalds
     

12 May, 2012

1 commit

  • This is the System MMU driver and IOMMU API implementation for
    EXYNOS SoC platforms. EXYNOS platforms has more than 10 System
    MMUs dedicated for each multimedia accelerators.

    The System MMU driver is already in arc/arm/plat-s5p but it is
    moved to drivers/iommu due to Ohad Ben-Cohen gathered IOMMU
    drivers there.

    Any device driver in EXYNOS platforms that needs to control its
    System MMU must call platform_set_sysmmu() to inform System MMU
    driver who will control it. platform_set_sysmmu() is defined in

    Signed-off-by: KyongHo Cho
    Acked-by: Joerg Roedel
    Signed-off-by: Kukjin Kim

    KyongHo Cho
     

18 Apr, 2012

1 commit


26 Jan, 2012

2 commits

  • Tegra 30 IOMMU H/W, SMMU (System Memory Management Unit). This patch
    implements struct iommu_ops for SMMU for the upper IOMMU API.

    This H/W module supports multiple virtual address spaces(domain x4),
    and manages 2 level H/W translation pagetable.

    Signed-off-by: Hiroshi DOYU
    Signed-off-by: Joerg Roedel

    Hiroshi DOYU
     
  • Tegra 20 IOMMU H/W, GART (Graphics Address Relocation Table). This
    patch implements struct iommu_ops for GART for the upper IOMMU API.

    This H/W module supports only single virtual address space(domain),
    and manages a single level 1-to-1 mapping H/W translation page table.

    [With small fixes by Joerg Roedel]

    Signed-off-by: Hiroshi DOYU
    Signed-off-by: Joerg Roedel

    Hiroshi DOYU
     

14 Dec, 2011

1 commit

  • Since pages are not pinned anymore we need notifications
    when the VMM changes the page-tables. Use mmu_notifiers for
    that.
    Also use the task_exit notifier from the profiling subsystem
    to shutdown all contexts related to this task.

    Signed-off-by: Joerg Roedel

    Joerg Roedel
     

12 Dec, 2011

2 commits


31 Oct, 2011

1 commit

  • * 'next' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (33 commits)
    iommu/core: Remove global iommu_ops and register_iommu
    iommu/msm: Use bus_set_iommu instead of register_iommu
    iommu/omap: Use bus_set_iommu instead of register_iommu
    iommu/vt-d: Use bus_set_iommu instead of register_iommu
    iommu/amd: Use bus_set_iommu instead of register_iommu
    iommu/core: Use bus->iommu_ops in the iommu-api
    iommu/core: Convert iommu_found to iommu_present
    iommu/core: Add bus_type parameter to iommu_domain_alloc
    Driver core: Add iommu_ops to bus_type
    iommu/core: Define iommu_ops and register_iommu only with CONFIG_IOMMU_API
    iommu/amd: Fix wrong shift direction
    iommu/omap: always provide iommu debug code
    iommu/core: let drivers know if an iommu fault handler isn't installed
    iommu/core: export iommu_set_fault_handler()
    iommu/omap: Fix build error with !IOMMU_SUPPORT
    iommu/omap: Migrate to the generic fault report mechanism
    iommu/core: Add fault reporting mechanism
    iommu/core: Use PAGE_SIZE instead of hard-coded value
    iommu/core: use the existing IS_ALIGNED macro
    iommu/msm: ->unmap() should return order of unmapped page
    ...

    Fixup trivial conflicts in drivers/iommu/Makefile: "move omap iommu to
    dedicated iommu folder" vs "Rename the DMAR and INTR_REMAP config
    options" just happened to touch lines next to each other.

    Linus Torvalds
     

21 Sep, 2011

1 commit

  • Change the CONFIG_DMAR to CONFIG_INTEL_IOMMU to be consistent
    with the other IOMMU options.

    Rename the CONFIG_INTR_REMAP to CONFIG_IRQ_REMAP to match the
    irq subsystem name.

    And define the CONFIG_DMAR_TABLE for the common ACPI DMAR
    routines shared by both CONFIG_INTEL_IOMMU and CONFIG_IRQ_REMAP.

    Signed-off-by: Suresh Siddha
    Cc: yinghai@kernel.org
    Cc: youquan.song@intel.com
    Cc: joerg.roedel@amd.com
    Cc: tony.luck@intel.com
    Cc: dwmw2@infradead.org
    Link: http://lkml.kernel.org/r/20110824001456.558630224@sbsiddha-desk.sc.intel.com
    Signed-off-by: Ingo Molnar

    Suresh Siddha
     

14 Sep, 2011

1 commit

  • Without this patch it is possible to select the VIDEO_OMAP3
    driver which then selects OMAP_IOVMM. But the omap iommu
    driver is not compiled without IOMMU_SUPPORT enabled. Fix
    that by forcing OMAP_IOMMU and OMAP_IOVMM are enabled before
    VIDEO_OMAP3 can be selected.

    Cc: Ohad Ben-Cohen
    Cc: iommu@lists.linux-foundation.org
    Cc: linux-kernel@vger.kernel.org
    Signed-off-by: Joerg Roedel

    Joerg Roedel
     

29 Aug, 2011

1 commit


26 Aug, 2011

1 commit

  • Move OMAP's iommu drivers to the dedicated iommu drivers folder.

    While OMAP's iovmm (virtual memory manager) driver does not strictly
    belong to the iommu drivers folder, move it there as well, because
    it's by no means OMAP-specific (in concept. technically it is still
    coupled with OMAP's iommu).

    Eventually, iovmm will be completely replaced with the generic,
    iommu-based, dma-mapping API.

    Signed-off-by: Ohad Ben-Cohen
    Acked-by: Laurent Pinchart
    Acked-by: Hiroshi DOYU
    Acked-by: Tony Lindgren
    Signed-off-by: Joerg Roedel

    Ohad Ben-Cohen
     

21 Jun, 2011

4 commits

  • For better navigation this patch moves the drivers/iommu
    drivers into its own submenu in Kconfig.

    Signed-off-by: Joerg Roedel

    Joerg Roedel
     
  • This should ease finding similarities with different platforms,
    with the intention of solving problems once in a generic framework
    which everyone can use.

    Note: to move intel-iommu.c, the declaration of pci_find_upstream_pcie_bridge()
    has to move from drivers/pci/pci.h to include/linux/pci.h. This is handled
    in this patch, too.

    As suggested, also drop DMAR's EXPERIMENTAL tag while we're at it.

    Compile-tested on x86_64.

    Signed-off-by: Ohad Ben-Cohen
    Signed-off-by: Joerg Roedel

    Ohad Ben-Cohen
     
  • This should ease finding similarities with different platforms,
    with the intention of solving problems once in a generic framework
    which everyone can use.

    Compile-tested on x86_64.

    Signed-off-by: Ohad Ben-Cohen
    Signed-off-by: Joerg Roedel

    Ohad Ben-Cohen
     
  • This should ease finding similarities with different platforms,
    with the intention of solving problems once in a generic framework
    which everyone can use.

    Compile-tested for MSM8X60.

    Signed-off-by: Ohad Ben-Cohen
    Acked-by: David Brown
    Signed-off-by: Joerg Roedel

    Ohad Ben-Cohen
     

14 Jun, 2011

1 commit

  • Create a dedicated folder for iommu drivers, and move the base
    iommu implementation over there.

    Grouping the various iommu drivers in a single location will help
    finding similar problems shared by different platforms, so they
    could be solved once, in the iommu framework, instead of solved
    differently (or duplicated) in each driver.

    Signed-off-by: Ohad Ben-Cohen
    Signed-off-by: Joerg Roedel

    Ohad Ben-Cohen