All of lore.kernel.org
 help / color / mirror / Atom feed
* [RFC PATCH 0/5] arm64: IOMMU-backed DMA mapping
@ 2015-01-12 20:48 ` Robin Murphy
  0 siblings, 0 replies; 60+ messages in thread
From: Robin Murphy @ 2015-01-12 20:48 UTC (permalink / raw)
  To: linux-arm-kernel-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r,
	iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA
  Cc: linux-lFZ/pmaqli7XmaaqVzeoHQ, arnd-r2nGTMty4D4,
	stefano.stabellini-mvvWK6WmYclDPfheJLI6IQ,
	catalin.marinas-5wv7dgnIgG8, will.deacon-5wv7dgnIgG8,
	thunder.leizhen-hv44wF8Li93QT0dZR+AlfA,
	dwmw2-wEGCiKHe2LqWVfeAwA7xHQ

Hi all,

Whilst it's a long way off perfect, this has reached the point of being
functional and stable enough to be useful, so here it is. The core
consists of the meat of the arch/arm implementation modified to remove
the assumption of PAGE_SIZE pages and ported over to the Intel IOVA
allocator instead of the bitmap-based one. For that, this series depends
on my "Genericise the IOVA allocator" series posted earlier[1].

There are plenty of obvious things still to do, including:

 * Domain and group handling is all wrong, but that's a bigger problem.
   For the moment it does more or less the same thing as the arch/arm
   code, which at least works for the one-IOMMU-per-device situation.
 * IOMMU domains and IOVA domains probably want to be better integrated
   with devices and each other, rather than having a proliferation of
   arch-specific structs.
 * The temporary map_sg implementation - I have a 'proper' iommu_map_sg
   based one in progress, but since the simple one works it's not been
   as high a priority.
 * Port arch/arm over to it. I'd guess it might be preferable to merge
   this through arm64 first, though, rather than overcomplicate matters.
 * There may well be scope for streamlining and tidying up the copied
   parts - In general I've simply avoided touching anything I don't
   fully understand.
 * In the same vein, I'm sure lots of it is fairly ARM-specific, so will
   need longer-term work to become truly generic.

[1]:http://thread.gmane.org/gmane.linux.kernel.iommu/8208

Catalin Marinas (1):
  arm64: Combine coherent and non-coherent swiotlb dma_ops

Robin Murphy (4):
  arm64: implement generic IOMMU configuration
  iommu: implement common IOMMU ops for DMA mapping
  arm64: add IOMMU dma_ops
  arm64: hook up IOMMU dma_ops

 arch/arm64/Kconfig                   |   1 +
 arch/arm64/include/asm/device.h      |   3 +
 arch/arm64/include/asm/dma-mapping.h |  33 +--
 arch/arm64/kernel/setup.c            |   2 +
 arch/arm64/mm/dma-mapping.c          | 435 ++++++++++++++++++++++++++++-----
 include/linux/dma-iommu.h            |  78 ++++++
 lib/Kconfig                          |   8 +
 lib/Makefile                         |   1 +
 lib/dma-iommu.c                      | 455 +++++++++++++++++++++++++++++++++++
 9 files changed, 938 insertions(+), 78 deletions(-)
 create mode 100644 include/linux/dma-iommu.h
 create mode 100644 lib/dma-iommu.c

-- 
1.9.1

^ permalink raw reply	[flat|nested] 60+ messages in thread

end of thread, other threads:[~2015-03-05 16:42 UTC | newest]

Thread overview: 60+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-01-12 20:48 [RFC PATCH 0/5] arm64: IOMMU-backed DMA mapping Robin Murphy
2015-01-12 20:48 ` Robin Murphy
2015-01-13  8:02 ` Yingjoe Chen
2015-01-13  8:02   ` Yingjoe Chen
2015-01-13 12:07   ` Robin Murphy
2015-01-13 12:07     ` Robin Murphy
2015-01-15 18:35   ` Robin Murphy
2015-01-15 18:35     ` Robin Murphy
2015-01-16  7:21     ` Yong Wu
2015-01-16  7:21       ` Yong Wu
2015-01-16 20:12       ` Robin Murphy
2015-01-16 20:12         ` Robin Murphy
     [not found] ` <cover.1421086706.git.robin.murphy-5wv7dgnIgG8@public.gmane.org>
2015-01-12 20:48   ` [RFC PATCH 1/5] arm64: Combine coherent and non-coherent swiotlb dma_ops Robin Murphy
2015-01-12 20:48     ` Robin Murphy
2015-01-12 20:48   ` [RFC PATCH 2/5] arm64: implement generic IOMMU configuration Robin Murphy
2015-01-12 20:48     ` Robin Murphy
2015-01-12 20:48   ` [RFC PATCH 3/5] iommu: implement common IOMMU ops for DMA mapping Robin Murphy
2015-01-12 20:48     ` Robin Murphy
     [not found]     ` <09e5515a9afcb3235f4c425520cd18a6032d31b4.1421086706.git.robin.murphy-5wv7dgnIgG8@public.gmane.org>
2015-01-23 17:42       ` Laura Abbott
2015-01-23 17:42         ` Laura Abbott
     [not found]         ` <54C287F7.3060603-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2015-01-23 18:14           ` Robin Murphy
2015-01-23 18:14             ` Robin Murphy
2015-01-27  0:21       ` Joerg Roedel
2015-01-27  0:21         ` Joerg Roedel
     [not found]         ` <20150127002116.GI30345-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
2015-01-27 12:27           ` Robin Murphy
2015-01-27 12:27             ` Robin Murphy
     [not found]             ` <54C7843B.3000605-5wv7dgnIgG8@public.gmane.org>
2015-01-27 12:38               ` Joerg Roedel
2015-01-27 12:38                 ` Joerg Roedel
     [not found]                 ` <20150127123809.GJ30345-zLv9SwRftAIdnm+yROfE0A@public.gmane.org>
2015-01-28 13:53                   ` Will Deacon
2015-01-28 13:53                     ` Will Deacon
2015-01-12 20:48   ` [RFC PATCH 4/5] arm64: add IOMMU dma_ops Robin Murphy
2015-01-12 20:48     ` Robin Murphy
     [not found]     ` <aa7de3b1dd189c31eb8b14d0c0eea699183f8a2c.1421086706.git.robin.murphy-5wv7dgnIgG8@public.gmane.org>
2015-01-23 15:26       ` Will Deacon
2015-01-23 15:26         ` Will Deacon
     [not found]         ` <20150123152605.GA31460-5wv7dgnIgG8@public.gmane.org>
2015-01-23 17:33           ` Robin Murphy
2015-01-23 17:33             ` Robin Murphy
2015-01-26  3:25       ` Joseph Lo
2015-01-26  3:25         ` Joseph Lo
     [not found]         ` <54C5B3B9.1040300-DDmLM1+adcrQT0dZR+AlfA@public.gmane.org>
2015-01-27 17:30           ` Robin Murphy
2015-01-27 17:30             ` Robin Murphy
2015-01-26  9:10       ` Joseph Lo
2015-01-26  9:10         ` Joseph Lo
2015-01-28  2:22       ` Joseph Lo
2015-01-28  2:22         ` Joseph Lo
2015-03-05 14:31       ` Marek Szyprowski
2015-03-05 14:31         ` Marek Szyprowski
2015-01-12 20:48   ` [RFC PATCH 5/5] arm64: hook up " Robin Murphy
2015-01-12 20:48     ` Robin Murphy
2015-01-13 11:08   ` [RFC PATCH 0/5] arm64: IOMMU-backed DMA mapping Stefano Stabellini
2015-01-13 11:08     ` Stefano Stabellini
     [not found]     ` <alpine.DEB.2.02.1501131102540.3058-7Z66fg9igcxYtxbxJUhB2Dgeux46jI+i@public.gmane.org>
2015-01-13 11:45       ` Robin Murphy
2015-01-13 11:45         ` Robin Murphy
2015-01-23 16:47   ` Catalin Marinas
2015-01-23 16:47     ` Catalin Marinas
     [not found]     ` <20150123164759.GF9557-M2fw3Uu6cmfZROr8t4l/smS4ubULX0JqMm0uRHvK7Nw@public.gmane.org>
2015-01-23 17:41       ` Robin Murphy
2015-01-23 17:41         ` Robin Murphy
2015-03-05 14:31   ` Marek Szyprowski
2015-03-05 14:31     ` Marek Szyprowski
     [not found]     ` <54F868A8.7070103-Sze3O3UU22JBDgjK7y7TUQ@public.gmane.org>
2015-03-05 16:42       ` Robin Murphy
2015-03-05 16:42         ` Robin Murphy

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.