From: Pierre Morel <pmorel@linux.ibm.com>
To: sebott@linux.vnet.ibm.com
Cc: gerald.schaefer@de.ibm.com, pasic@linux.vnet.ibm.com,
borntraeger@de.ibm.com, walling@linux.ibm.com,
linux-s390@vger.kernel.org, iommu@lists.linux-foundation.org,
joro@8bytes.org, linux-kernel@vger.kernel.org,
alex.williamson@redhat.com, kvm@vger.kernel.org,
schwidefsky@de.ibm.com, heiko.carstens@de.ibm.com,
robin.murphy@arm.com
Subject: [PATCH v2 2/4] vfio: vfio_iommu_type1: Define VFIO_IOMMU_INFO_CAPABILITIES
Date: Fri, 17 May 2019 18:16:48 +0200 [thread overview]
Message-ID: <1558109810-18683-3-git-send-email-pmorel@linux.ibm.com> (raw)
In-Reply-To: <1558109810-18683-1-git-send-email-pmorel@linux.ibm.com>
We add a capabilities functionality to VFIO_IOMMU_GET_INFO.
This will allow the VFIO_IOMMU_GET_INFO ioctl to retrieve IOMMU
specific information.
we define a new flag VFIO_IOMMU_INFO_CAPABILITIES in the
vfio_iommu_type1_info structure and two Z-PCI specific
capabilities:
VFIO_IOMMU_INFO_CAP_QFN: to query Z-PCI function information
VFIO_IOMMU_INFO_CAP_QGRP: to query for Z-PCI group information
and we define the associated information structures.
Signed-off-by: Pierre Morel <pmorel@linux.ibm.com>
---
include/uapi/linux/vfio.h | 67 +++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 67 insertions(+)
diff --git a/include/uapi/linux/vfio.h b/include/uapi/linux/vfio.h
index 8f10748..aed0e72 100644
--- a/include/uapi/linux/vfio.h
+++ b/include/uapi/linux/vfio.h
@@ -715,6 +715,73 @@ struct vfio_iommu_type1_info {
__u32 flags;
#define VFIO_IOMMU_INFO_PGSIZES (1 << 0) /* supported page sizes info */
__u64 iova_pgsizes; /* Bitmap of supported page sizes */
+#define VFIO_IOMMU_INFO_CAPABILITIES (1 << 1) /* support capabilities info */
+ __u64 cap_offset; /* Offset within info struct of first cap */
+};
+
+/*
+ * The VFIO IOMMU INFO PCI function capability allows to retrieve
+ * Z-PCI function specific data needed by the VFIO user to provide
+ * them to the guest function's driver.
+ *
+ * The structures below define version 1 of this capability.
+ */
+#define VFIO_IOMMU_INFO_CAP_QFN 1
+
+struct vfio_iommu_pci_function {
+ __u32 ignored;
+ __u32 format; /* Structure format */
+ __u64 reserved1;
+ __u16 vfn; /* Virtual function number */
+ __u8 u; /* utility string presence */
+ __u8 gid; /* Function group */
+ __u32 fid; /* Function identifier */
+ __u8 bar_size[6]; /* Bar size */
+ __u16 pchid; /* Physical channel ID */
+ __u32 bar[6]; /* PCI Bar address */
+ __u64 reserved2;
+ __u64 sdma; /* Start available DMA */
+ __u64 edma; /* End available DMA */
+ __u32 reserved3[11];
+ __u32 uid; /* User's identifier */
+ __u8 util_str[64]; /* Adapter specific utility string */
+};
+
+struct vfio_iommu_type1_info_pcifn {
+ struct vfio_info_cap_header header;
+ struct vfio_iommu_pci_function response;
+};
+
+/*
+ * The VFIO IOMMU INFO PCI function group capability allows to retrieve
+ * information, specific to a group of Z-PCI functions, needed by
+ * the VFIO user to provide them to the guest function's driver.
+ *
+ * The structures below define version 1 of this capability.
+ */
+#define VFIO_IOMMU_INFO_CAP_QGRP 2
+
+struct vfio_iommu_pci_function_group {
+ __u32 ignored;
+ __u32 format; /* Structure format */
+ __u64 reserved1;
+ __u16 noi; /* Maximum number of interruptions */
+ __u8 version; /* Version */
+ __u8 flags; /* Flags */
+#define VFIO_IOMMU_ZPCI_REFRESH 0x01
+#define VFIO_IOMMU_ZPCI_FRAME 0x02
+ __u16 maxstbl; /* Maximum store-block length */
+ __u16 mui; /* Measurement block update interval */
+ __u64 reserved3;
+ __u64 dasm; /* DMA Address space mask */
+ __u64 msia; /* MSI Address */
+ __u64 reserved4;
+ __u64 reserved5;
+};
+
+struct vfio_iommu_type1_info_pcifg {
+ struct vfio_info_cap_header header;
+ struct vfio_iommu_pci_function_group response;
};
#define VFIO_IOMMU_GET_INFO _IO(VFIO_TYPE, VFIO_BASE + 12)
--
2.7.4
next prev parent reply other threads:[~2019-05-17 16:17 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-05-17 16:16 [PATCH v2 0/4] Retrieving zPCI specific info with VFIO Pierre Morel
2019-05-17 16:16 ` [PATCH v2 1/4] s390: pci: Exporting access to CLP PCI function and PCI group Pierre Morel
2019-05-17 16:16 ` Pierre Morel [this message]
2019-05-17 16:16 ` [PATCH v2 3/4] s390: iommu: Adding get attributes for s390_iommu Pierre Morel
2019-05-17 16:16 ` [PATCH v2 4/4] vfio: vfio_iommu_type1: implement VFIO_IOMMU_INFO_CAPABILITIES Pierre Morel
2019-05-17 16:41 ` Alex Williamson
2019-05-17 18:04 ` Pierre Morel
2019-05-20 11:19 ` Pierre Morel
2019-05-20 14:27 ` Cornelia Huck
2019-05-20 16:31 ` Pierre Morel
2019-05-20 18:23 ` Alex Williamson
2019-05-21 9:14 ` Pierre Morel
2019-05-21 11:11 ` Cornelia Huck
2019-05-21 12:46 ` Pierre Morel
2019-05-21 14:59 ` Alex Williamson
2019-05-21 15:33 ` Pierre Morel
2019-05-20 3:02 ` kbuild test robot
2019-05-20 3:02 ` [RFC PATCH] vfio: vfio_iommu_type1: vfio_iommu_type1_caps() can be static kbuild test robot
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=1558109810-18683-3-git-send-email-pmorel@linux.ibm.com \
--to=pmorel@linux.ibm.com \
--cc=alex.williamson@redhat.com \
--cc=borntraeger@de.ibm.com \
--cc=gerald.schaefer@de.ibm.com \
--cc=heiko.carstens@de.ibm.com \
--cc=iommu@lists.linux-foundation.org \
--cc=joro@8bytes.org \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-s390@vger.kernel.org \
--cc=pasic@linux.vnet.ibm.com \
--cc=robin.murphy@arm.com \
--cc=schwidefsky@de.ibm.com \
--cc=sebott@linux.vnet.ibm.com \
--cc=walling@linux.ibm.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).