xen/passthrough: Introduce IOMMU ARM architecture
authorJulien Grall <julien.grall@linaro.org>
Tue, 13 May 2014 15:50:25 +0000 (16:50 +0100)
committerIan Campbell <ian.campbell@citrix.com>
Wed, 14 May 2014 13:45:42 +0000 (14:45 +0100)
commit4a3bdfe07440eb7ecd23f13379cf909f8aa4ab26
tree9ccab07e73b3d72412691cfd256c5ee5614119fa
parentdf6d39cbeba73ba7e1c27b9496c38169b5ec05f8
xen/passthrough: Introduce IOMMU ARM architecture

This patch contains the architecture to use IOMMUs on ARM. There is no
IOMMU drivers on this patch.

In this implementation, IOMMU page table will be shared with the P2M.

The code will run through the device tree and will initialize every IOMMU.
It's possible to have multiple IOMMUs on the same platform, but they must
be handled with the same driver. For now, there is no support for using
multiple iommu drivers at runtime.

Each new IOMMU drivers should contain:

static const char * const myiommu_dt_compat[] __initconst =
{
    /* list of device compatible with the drivers. Will be matched with
     * the "compatible" property on the device tree
     */
    NULL,
};

DT_DEVICE_START(myiommu, "MY IOMMU", DEVICE_IOMMU)
        .compatible = myiommu_compatible,
        .init = myiommu_init,
DT_DEVICE_END

Signed-off-by: Julien Grall <julien.grall@linaro.org>
Acked-by: Ian Campbell <ian.campbell@citrix.com>
Cc: Xiantao Zhang <xiantao.zhang@intel.com>
Cc: Jan Beulich <jbeulich@suse.com>
12 files changed:
xen/arch/arm/Rules.mk
xen/arch/arm/domain.c
xen/arch/arm/domain_build.c
xen/arch/arm/p2m.c
xen/arch/arm/setup.c
xen/drivers/passthrough/Makefile
xen/drivers/passthrough/arm/Makefile [new file with mode: 0644]
xen/drivers/passthrough/arm/iommu.c [new file with mode: 0644]
xen/include/asm-arm/device.h
xen/include/asm-arm/domain.h
xen/include/asm-arm/hvm/iommu.h [new file with mode: 0644]
xen/include/asm-arm/iommu.h [new file with mode: 0644]