All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCHv7 00/26] VFIO support for platform and AMBA devices on ARM
@ 2014-09-23 14:45 Antonios Motakis
  2014-09-23 14:46   ` Antonios Motakis
                   ` (25 more replies)
  0 siblings, 26 replies; 104+ messages in thread
From: Antonios Motakis @ 2014-09-23 14:45 UTC (permalink / raw)
  To: alex.williamson-H+wXaHxf7aLQT0dZR+AlfA,
	kvmarm-FPEHb7Xf0XXUo1n7N8X6UoWGPAHP3yOg,
	iommu-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA
  Cc: kvm-u79uwXL29TY76Z2rM5mHXA, eric.auger-QSEj5FYQhm4dnm+yROfE0A,
	marc.zyngier-5wv7dgnIgG8, will.deacon-5wv7dgnIgG8,
	Antonios Motakis, tech-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J,
	christoffer.dall-QSEj5FYQhm4dnm+yROfE0A

This patch series aims to implement VFIO support for platform devices that
reside behind an IOMMU. Examples of such devices are devices behind an ARM
SMMU, or behind a Samsung Exynos System MMU.

This version of the patch series introduces numerous fixes and cleanups based
on the feedback received on the previous version, and also features support
for ARM AMBA devices.

The API used is based on the existing VFIO API that is also used with PCI
devices. Only devices that include a basic set of IRQs and memory regions are
targeted; devices with complex relationships with other devices on a device
tree are not taken into account at this stage.

This patch series is based on Linux 3.17-rc5 and can be cloned from the
branch vfio-platform-v7 at git-9UaJU3cA/F/QT0dZR+AlfA@public.gmane.org:virtualopensystems/linux-kvm-arm.git

Changes since v6:
 - Integrated support for AMBA devices
 - Numerous cleanups and fixes
Changes since v5:
 - Full eventfd support for IRQ masking and unmasking.
 - Changed IOMMU_EXEC to IOMMU_NOEXEC, along with related flags in VFIO.
 - Other fixes based on reviewer comments.
Changes since v4:
 - Use static offsets for each region in the VFIO device fd
 - Include patch in the series for the ARM SMMU to expose IOMMU_EXEC
   availability via IOMMU_CAP_DMA_EXEC
 - Rebased on VFIO multi domain support:
   - IOMMU_EXEC is now available if at least one IOMMU in the container
     supports it
   - Expose IOMMU_EXEC if available via the capability VFIO_IOMMU_PROT_EXEC
 - Some bug fixes
Changes since v3:
 - Use Kim Phillips' driver_probe_device()
Changes since v2:
 - Fixed Read/Write and MMAP on device regions
 - Removed dependency on Device Tree
 - Interrupts support
 - Interrupt masking/unmasking
 - Automask level sensitive interrupts
 - Introduced VFIO_DMA_MAP_FLAG_EXEC
 - Code clean ups

Antonios Motakis (26):
  iommu/arm-smmu: change IOMMU_EXEC to IOMMU_NOEXEC
  iommu: add capability IOMMU_CAP_NOEXEC
  iommu/arm-smmu: add IOMMU_CAP_NOEXEC to the ARM SMMU driver
  vfio/iommu_type1: support for platform bus devices on ARM
  vfio: introduce the VFIO_DMA_MAP_FLAG_NOEXEC flag
  vfio/iommu_type1: implement the VFIO_DMA_MAP_FLAG_NOEXEC flag
  driver core: amba: add device binding path 'driver_override'
  driver core: amba: add documentation for binding path
    'driver_override'
  vfio/platform: initial skeleton of VFIO support for platform devices
  vfio: platform: probe to devices on the platform bus
  vfio: platform: add the VFIO PLATFORM module to Kconfig
  vfio: amba: VFIO support for AMBA devices
  vfio: amba: add the VFIO for AMBA devices module to Kconfig
  vfio/platform: return info for bound device
  vfio/platform: return info for device memory mapped IO regions
  vfio/platform: read and write support for the device fd
  vfio/platform: support MMAP of MMIO regions
  vfio/platform: return IRQ info
  vfio/platform: initial interrupts support code
  vfio/platform: trigger an interrupt via eventfd
  vfio/platform: support for maskable and automasked interrupts
  vfio: move eventfd support code for VFIO_PCI to a separate file
  vfio: add local lock in virqfd instead of depending on VFIO PCI
  vfio: pass an opaque pointer on virqfd initialization
  vfio: initialize the virqfd workqueue in VFIO generic code
  vfio/platform: implement IRQ masking/unmasking via an eventfd

 Documentation/ABI/testing/sysfs-bus-amba      |  20 ++
 drivers/amba/bus.c                            |  44 +++
 drivers/iommu/arm-smmu.c                      |  11 +-
 drivers/vfio/Kconfig                          |   3 +-
 drivers/vfio/Makefile                         |   5 +-
 drivers/vfio/pci/vfio_pci.c                   |   8 -
 drivers/vfio/pci/vfio_pci_intrs.c             | 234 +-------------
 drivers/vfio/pci/vfio_pci_private.h           |   3 -
 drivers/vfio/platform/Kconfig                 |  19 ++
 drivers/vfio/platform/Makefile                |   8 +
 drivers/vfio/platform/vfio_amba.c             | 108 +++++++
 drivers/vfio/platform/vfio_platform.c         |  96 ++++++
 drivers/vfio/platform/vfio_platform_common.c  | 432 ++++++++++++++++++++++++++
 drivers/vfio/platform/vfio_platform_irq.c     | 354 +++++++++++++++++++++
 drivers/vfio/platform/vfio_platform_private.h |  77 +++++
 drivers/vfio/vfio.c                           |   8 +
 drivers/vfio/vfio_iommu_type1.c               |  38 ++-
 drivers/vfio/virqfd.c                         | 215 +++++++++++++
 include/linux/amba/bus.h                      |   1 +
 include/linux/iommu.h                         |   3 +-
 include/linux/vfio.h                          |  27 ++
 include/uapi/linux/vfio.h                     |   4 +
 22 files changed, 1477 insertions(+), 241 deletions(-)
 create mode 100644 Documentation/ABI/testing/sysfs-bus-amba
 create mode 100644 drivers/vfio/platform/Kconfig
 create mode 100644 drivers/vfio/platform/Makefile
 create mode 100644 drivers/vfio/platform/vfio_amba.c
 create mode 100644 drivers/vfio/platform/vfio_platform.c
 create mode 100644 drivers/vfio/platform/vfio_platform_common.c
 create mode 100644 drivers/vfio/platform/vfio_platform_irq.c
 create mode 100644 drivers/vfio/platform/vfio_platform_private.h
 create mode 100644 drivers/vfio/virqfd.c

-- 
1.8.3.2

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

end of thread, other threads:[~2014-10-08 12:19 UTC | newest]

Thread overview: 104+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-09-23 14:45 [PATCHv7 00/26] VFIO support for platform and AMBA devices on ARM Antonios Motakis
2014-09-23 14:46 ` [PATCHv7 01/26] iommu/arm-smmu: change IOMMU_EXEC to IOMMU_NOEXEC Antonios Motakis
2014-09-23 14:46   ` Antonios Motakis
2014-09-23 14:46   ` Antonios Motakis
2014-09-23 14:58   ` Will Deacon
2014-09-23 14:58     ` Will Deacon
2014-09-23 14:58     ` Will Deacon
2014-09-23 22:14     ` Alex Williamson
2014-09-23 22:14       ` Alex Williamson
2014-09-23 22:14       ` Alex Williamson
2014-09-23 14:46 ` [PATCHv7 02/26] iommu: add capability IOMMU_CAP_NOEXEC Antonios Motakis
2014-09-23 14:46   ` Antonios Motakis
2014-09-26  9:48   ` Joerg Roedel
2014-09-26  9:48     ` Joerg Roedel
2014-09-26 15:00     ` Antonios Motakis
2014-09-26 15:00       ` Antonios Motakis
2014-09-23 14:46 ` [PATCHv7 03/26] iommu/arm-smmu: add IOMMU_CAP_NOEXEC to the ARM SMMU driver Antonios Motakis
2014-09-23 14:46   ` Antonios Motakis
2014-09-23 14:46   ` Antonios Motakis
2014-09-23 14:46 ` [PATCHv7 04/26] vfio/iommu_type1: support for platform bus devices on ARM Antonios Motakis
2014-09-23 14:46   ` Antonios Motakis
2014-09-23 14:46 ` [PATCHv7 05/26] vfio: introduce the VFIO_DMA_MAP_FLAG_NOEXEC flag Antonios Motakis
2014-09-23 14:46   ` Antonios Motakis
2014-09-23 22:21   ` Alex Williamson
2014-09-23 22:21     ` Alex Williamson
2014-09-23 22:30     ` Alex Williamson
2014-09-23 22:30       ` Alex Williamson
2014-09-26 15:45       ` Antonios Motakis
2014-09-26 15:45         ` Antonios Motakis
2014-09-23 14:46 ` [PATCHv7 06/26] vfio/iommu_type1: implement " Antonios Motakis
2014-09-23 14:46   ` Antonios Motakis
2014-09-23 22:40   ` Alex Williamson
2014-09-23 22:40     ` Alex Williamson
2014-09-26 15:39     ` Antonios Motakis
2014-09-26 15:39       ` Antonios Motakis
2014-09-26 20:27       ` Alex Williamson
2014-09-26 20:27         ` Alex Williamson
2014-09-29 10:38         ` Antonios Motakis
2014-09-29 10:38           ` Antonios Motakis
2014-09-23 14:46 ` [PATCHv7 07/26] driver core: amba: add device binding path 'driver_override' Antonios Motakis
2014-09-23 14:46   ` Antonios Motakis
2014-09-23 22:45   ` Alex Williamson
2014-09-23 22:45     ` Alex Williamson
2014-09-26 15:10     ` Antonios Motakis
2014-09-26 15:10       ` Antonios Motakis
2014-09-26 15:37   ` Russell King - ARM Linux
2014-09-29 10:14     ` Antonios Motakis
2014-09-29 10:14       ` Antonios Motakis
2014-10-08 12:18     ` Antonios Motakis
2014-10-08 12:18       ` Antonios Motakis
2014-09-23 14:46 ` [PATCHv7 08/26] driver core: amba: add documentation for " Antonios Motakis
2014-09-23 14:46   ` Antonios Motakis
2014-09-23 14:46 ` [PATCHv7 09/26] vfio/platform: initial skeleton of VFIO support for platform devices Antonios Motakis
2014-09-23 14:46   ` Antonios Motakis
2014-09-23 14:46 ` [PATCHv7 10/26] vfio: platform: probe to devices on the platform bus Antonios Motakis
2014-09-23 14:46   ` Antonios Motakis
2014-09-23 23:01   ` Alex Williamson
2014-09-23 23:01     ` Alex Williamson
2014-09-26 15:30     ` Antonios Motakis
2014-09-26 15:30       ` Antonios Motakis
2014-09-26 20:18       ` Alex Williamson
2014-09-26 20:18         ` Alex Williamson
2014-09-29 10:21         ` Antonios Motakis
2014-09-29 10:21           ` Antonios Motakis
2014-09-23 14:46 ` [PATCHv7 11/26] vfio: platform: add the VFIO PLATFORM module to Kconfig Antonios Motakis
2014-09-23 14:46   ` Antonios Motakis
2014-09-23 14:46 ` [PATCHv7 12/26] vfio: amba: VFIO support for AMBA devices Antonios Motakis
2014-09-23 14:46   ` Antonios Motakis
2014-09-23 14:46 ` [PATCHv7 13/26] vfio: amba: add the VFIO for AMBA devices module to Kconfig Antonios Motakis
2014-09-23 14:46   ` Antonios Motakis
2014-09-23 23:11   ` Alex Williamson
2014-09-23 23:11     ` Alex Williamson
2014-09-26 15:06     ` Antonios Motakis
2014-09-26 15:06       ` Antonios Motakis
2014-09-23 14:46 ` [PATCHv7 14/26] vfio/platform: return info for bound device Antonios Motakis
2014-09-23 14:46   ` Antonios Motakis
2014-09-23 14:46 ` [PATCHv7 15/26] vfio/platform: return info for device memory mapped IO regions Antonios Motakis
2014-09-23 14:46   ` Antonios Motakis
2014-09-23 14:46 ` [PATCHv7 16/26] vfio/platform: read and write support for the device fd Antonios Motakis
2014-09-23 14:46   ` Antonios Motakis
2014-09-23 14:46 ` [PATCHv7 17/26] vfio/platform: support MMAP of MMIO regions Antonios Motakis
2014-09-23 14:46   ` Antonios Motakis
2014-09-23 14:46 ` [PATCHv7 18/26] vfio/platform: return IRQ info Antonios Motakis
2014-09-23 14:46   ` Antonios Motakis
2014-09-23 14:46 ` [PATCHv7 19/26] vfio/platform: initial interrupts support code Antonios Motakis
2014-09-23 14:46   ` Antonios Motakis
2014-09-23 14:46 ` [PATCHv7 20/26] vfio/platform: trigger an interrupt via eventfd Antonios Motakis
2014-09-23 14:46   ` Antonios Motakis
2014-09-24 17:00   ` Alex Williamson
2014-09-24 17:00     ` Alex Williamson
2014-09-26 15:03     ` Antonios Motakis
2014-09-26 15:03       ` Antonios Motakis
2014-09-23 14:46 ` [PATCHv7 21/26] vfio/platform: support for maskable and automasked interrupts Antonios Motakis
2014-09-23 14:46   ` Antonios Motakis
2014-09-23 14:46 ` [PATCHv7 22/26] vfio: move eventfd support code for VFIO_PCI to a separate file Antonios Motakis
2014-09-23 14:46   ` Antonios Motakis
2014-09-23 14:46 ` [PATCHv7 23/26] vfio: add local lock in virqfd instead of depending on VFIO PCI Antonios Motakis
2014-09-23 14:46   ` Antonios Motakis
2014-09-23 14:46 ` [PATCHv7 24/26] vfio: pass an opaque pointer on virqfd initialization Antonios Motakis
2014-09-23 14:46   ` Antonios Motakis
2014-09-23 14:46 ` [PATCHv7 25/26] vfio: initialize the virqfd workqueue in VFIO generic code Antonios Motakis
2014-09-23 14:46   ` Antonios Motakis
2014-09-23 14:46 ` [PATCHv7 26/26] vfio/platform: implement IRQ masking/unmasking via an eventfd Antonios Motakis
2014-09-23 14:46   ` Antonios Motakis

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.