From: Antonios Motakis <a.motakis@virtualopensystems.com>
To: kvmarm@lists.cs.columbia.edu, alex.williamson@redhat.com
Cc: iommu@lists.linux-foundation.org,
linux-samsung-soc@vger.kernel.org, kvm@vger.kernel.org,
agraf@suse.de, B08248@freescale.com, tech@virtualopensystems.com,
Antonios Motakis <a.motakis@virtualopensystems.com>
Subject: [RFC PATCH v2 0/7] VFIO for device tree based platform devices (work in progress)
Date: Mon, 30 Sep 2013 17:28:36 +0200 [thread overview]
Message-ID: <1380554923-17818-1-git-send-email-a.motakis@virtualopensystems.com> (raw)
This is a preview of the base work, towards VFIO support on ARM platforms
with an IOMMU. It forms a base on to which to implement the functionality
necessary to enable using device tree devices on ARM (and other platforms
based on device trees) with VFIO.
This patch series has been subjected to limited testing on the Arndale board
(with the Exynos 5250 System MMU). More extensive testing will follow as more
features are implemented.
It depends on Cho KyongHo's patch series "iommu/exynos: Fixes and Enhancements
of System MMU driver with DT", applied on a Linux 3.10.1 kernel, and also my
own "iommu/exynos: add devices attached to the System MMU to an IOMMU group".
Those patches are required at least in order to test the proposed module on
Arndale.
The API used is identical to 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 complicated relationships with other devices on the
device tree are not taken into account at this stage.
The following IOCTLs have been found to be working on the Arndale with no
changes to VFIO:
- VFIO_GET_API_VERSION
- VFIO_CHECK_EXTENSION
The TYPE1 fix proposed here enables the following IOCTLs:
- VFIO_GROUP_GET_STATUS
- VFIO_GROUP_SET_CONTAINER
- VFIO_SET_IOMMU
- VFIO_IOMMU_GET_INFO
- VFIO_IOMMU_MAP_DMA
The VFIO platform driver proposed here implements the following:
- VFIO_GROUP_GET_DEVICE_FD
- VFIO_DEVICE_GET_INFO
- VFIO_DEVICE_GET_REGION_INFO
- VFIO_DEVICE_GET_IRQ_INFO
In addition, the VFIO platform driver implements the following through
the VFIO device file descriptor:
- MMAPing memory regions to the virtual address space of the VFIO user.
- Read / write of memory regions directly through the file descriptor.
What still needs to be done, includes:
- IRQs / IRQFD support.
- The API is not currently extended with device tree specific information.
- Proper binding of the VFIO_DT driver to devices; currently to test the
driver, one has to edit the device tree and add "vfio" to the
compatible property. However Linux does not support OF drivers that
can be dynamically bound to any device.
- More extensive testing with a functioning device doing DMA.
- QEMU / KVM support.
Antonios Motakis (7):
VFIO_IOMMU_TYPE1 workaround to build for platform devices
Initial skeleton of VFIO support for Device Tree based devices
Return info for device and its memory regions and interrupts
VFIO: DT: Support MMAP of MMIO regions
VFIO: DT: Read and write support for the device fd
VFIO: Update documentation for VFIO_IOMMU_TYPE1 driver
VFIO: VFIO_PLATFORM: Update documentation for platform specific
devices
Documentation/vfio.txt | 25 +++-
drivers/vfio/Kconfig | 13 +-
drivers/vfio/Makefile | 1 +
drivers/vfio/vfio_iommu_type1.c | 22 ++-
drivers/vfio/vfio_platform.c | 308 ++++++++++++++++++++++++++++++++++++++++
include/uapi/linux/vfio.h | 1 +
6 files changed, 361 insertions(+), 9 deletions(-)
create mode 100644 drivers/vfio/vfio_platform.c
--
1.8.1.2
next reply other threads:[~2013-09-30 15:28 UTC|newest]
Thread overview: 47+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-09-30 15:28 Antonios Motakis [this message]
[not found] ` <1380554923-17818-1-git-send-email-a.motakis-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org>
2013-09-30 15:28 ` [PATCH 1/7] VFIO_IOMMU_TYPE1 workaround to build for platform devices Antonios Motakis
[not found] ` <1380554923-17818-2-git-send-email-a.motakis-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org>
2013-09-30 17:39 ` Alex Williamson
[not found] ` <1380562782.2674.178.camel-85EaTFmN5p//9pzu0YdTqQ@public.gmane.org>
2013-10-01 9:36 ` Antonios Motakis
2013-10-01 19:21 ` Yoder Stuart-B08248
[not found] ` <9F6FE96B71CF29479FF1CDC8046E15036D37D9-TcFNo7jSaXOLgTCmFNXF2K4g8xLGJsHaLnY5E4hWTkheoWH0uzbU5w@public.gmane.org>
2013-10-02 11:13 ` Antonios Motakis
2013-10-02 12:55 ` Yoder Stuart-B08248
2013-10-29 15:57 ` Yoder Stuart-B08248
2013-10-02 12:14 ` Alexander Graf
[not found] ` <170DCB6D-6185-4C8A-977A-4DADF82DB274-l3A5Bk7waGM@public.gmane.org>
2013-10-29 1:17 ` Don Dutile
2013-09-30 15:28 ` [PATCH 2/7] Initial skeleton of VFIO support for Device Tree based devices Antonios Motakis
2013-09-30 15:37 ` Bhushan Bharat-R65777
[not found] ` <6A3DF150A5B70D4F9B66A25E3F7C888D0718A4AC-RL0Hj/+nBVCMXPU/2EZmt64g8xLGJsHaLnY5E4hWTkheoWH0uzbU5w@public.gmane.org>
2013-10-29 1:29 ` Don Dutile
[not found] ` <526F0F7F.1040509-H+wXaHxf7aLQT0dZR+AlfA@public.gmane.org>
2013-10-29 11:47 ` Alex Williamson
[not found] ` <1383047233.4097.124.camel-85EaTFmN5p//9pzu0YdTqQ@public.gmane.org>
2013-10-29 13:37 ` Bhushan Bharat-R65777
2013-10-29 17:13 ` Don Dutile
2013-10-29 21:58 ` Yoder Stuart-B08248
2013-10-29 13:07 ` Yoder Stuart-B08248
[not found] ` <1380554923-17818-3-git-send-email-a.motakis-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org>
2013-09-30 19:41 ` Alex Williamson
[not found] ` <1380570100.2674.207.camel-85EaTFmN5p//9pzu0YdTqQ@public.gmane.org>
2013-10-01 9:36 ` Antonios Motakis
2013-09-30 15:28 ` [PATCH 3/7] Return info for device and its memory regions and interrupts Antonios Motakis
[not found] ` <1380554923-17818-4-git-send-email-a.motakis-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org>
2013-09-30 15:49 ` Bhushan Bharat-R65777
[not found] ` <6A3DF150A5B70D4F9B66A25E3F7C888D0718A526-RL0Hj/+nBVCMXPU/2EZmt64g8xLGJsHaLnY5E4hWTkheoWH0uzbU5w@public.gmane.org>
2013-10-01 9:35 ` Antonios Motakis
2013-09-30 17:39 ` Alex Williamson
[not found] ` <1380562776.2674.177.camel-85EaTFmN5p//9pzu0YdTqQ@public.gmane.org>
2013-10-01 9:35 ` Antonios Motakis
2013-10-01 19:32 ` Yoder Stuart-B08248
[not found] ` <9F6FE96B71CF29479FF1CDC8046E15036D3803-TcFNo7jSaXOLgTCmFNXF2K4g8xLGJsHaLnY5E4hWTkheoWH0uzbU5w@public.gmane.org>
2013-10-01 19:41 ` Alex Williamson
2013-10-02 11:21 ` Antonios Motakis
2013-10-02 12:12 ` Alexander Graf
2013-10-02 13:03 ` Yoder Stuart-B08248
2013-10-02 13:14 ` Antonios Motakis
2013-11-07 20:38 ` Stuart Yoder
2013-09-30 15:28 ` [PATCH 4/7] VFIO: DT: Support MMAP of MMIO regions Antonios Motakis
2013-09-30 15:28 ` [PATCH 5/7] VFIO: DT: Read and write support for the device fd Antonios Motakis
2013-09-30 15:28 ` [PATCH 6/7] VFIO: Update documentation for VFIO_IOMMU_TYPE1 driver Antonios Motakis
[not found] ` <1380554923-17818-7-git-send-email-a.motakis-lrHrjnjw1UfHK3s98zE1ajGjJy/sRE9J@public.gmane.org>
2013-09-30 17:39 ` Alex Williamson
[not found] ` <1380562766.2674.176.camel-85EaTFmN5p//9pzu0YdTqQ@public.gmane.org>
2013-10-01 9:35 ` Antonios Motakis
2013-09-30 15:28 ` [PATCH 7/7] VFIO: VFIO_PLATFORM: Update documentation for platform specific devices Antonios Motakis
2013-09-30 17:42 ` [RFC PATCH v2 0/7] VFIO for device tree based platform devices (work in progress) Alex Williamson
2013-10-01 15:47 ` Christoffer Dall
2013-10-01 17:13 ` Antonios Motakis
2013-12-01 12:09 ` Kim Phillips
[not found] ` <20131201120954.1d6cec431a99a7ad5f34da18-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2013-12-02 13:55 ` Antonios Motakis
2013-12-02 13:56 ` Antonios Motakis
2013-12-02 16:08 ` Kim Phillips
[not found] ` <20131202160832.8f5ee84355086cdb14d6a431-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org>
2013-12-02 16:30 ` Antonios Motakis
2013-12-02 18:08 ` Kim Phillips
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1380554923-17818-1-git-send-email-a.motakis@virtualopensystems.com \
--to=a.motakis@virtualopensystems.com \
--cc=B08248@freescale.com \
--cc=agraf@suse.de \
--cc=alex.williamson@redhat.com \
--cc=iommu@lists.linux-foundation.org \
--cc=kvm@vger.kernel.org \
--cc=kvmarm@lists.cs.columbia.edu \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=tech@virtualopensystems.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).