From patchwork Thu Dec 22 23:24:28 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Tomasz Duszynski X-Patchwork-Id: 121293 Return-Path: X-Original-To: patchwork@inbox.dpdk.org Delivered-To: patchwork@inbox.dpdk.org Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id C45C8A0093; Fri, 23 Dec 2022 00:24:48 +0100 (CET) Received: from mails.dpdk.org (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id 6035D410D4; Fri, 23 Dec 2022 00:24:48 +0100 (CET) Received: from mx0b-0016f401.pphosted.com (mx0b-0016f401.pphosted.com [67.231.156.173]) by mails.dpdk.org (Postfix) with ESMTP id A50F040685 for ; Fri, 23 Dec 2022 00:24:46 +0100 (CET) Received: from pps.filterd (m0045851.ppops.net [127.0.0.1]) by mx0b-0016f401.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 2BMH1F0q028064; Thu, 22 Dec 2022 15:24:45 -0800 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=marvell.com; h=from : to : cc : subject : date : message-id : mime-version : content-transfer-encoding : content-type; s=pfpt0220; bh=fhXBgGiOSjx71sDQNUr+/qJlj53dJR5VcHV4/n6GgrQ=; b=fsq4ka810iaTctRSI0YIHJYWJVoW5r4C1PoxVInEN4jBL/z3IhkaB5NmA258W4HlNmUZ jNknYsfTum3KxuO3UTBPmn9iJCUquDureo83VpBxkWzoowvPUXl+kTpTzbMpS+zmLU6a 7C9GOi0DsIpEMDeiu2lcO7zGXp5vDBFXJncIGix8I/5anFsV2PB4wdfkXfoj/hu3BSzH TA2SDCA/KWhMaCTAUxeZAzXnNSR72d1bFNkQYcXCREt/Vbp+2Uju3yinq2YKvPESPOeZ z8L9UJm3VSOqD/7BT04M5GugKQPuSubuXqgVHQsZFY4fYyKWUf2+H6/z1AqSiSHpGDvZ Iw== Received: from dc5-exch02.marvell.com ([199.233.59.182]) by mx0b-0016f401.pphosted.com (PPS) with ESMTPS id 3mhe5runw5-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-SHA384 bits=256 verify=NOT); Thu, 22 Dec 2022 15:24:45 -0800 Received: from DC5-EXCH01.marvell.com (10.69.176.38) by DC5-EXCH02.marvell.com (10.69.176.39) with Microsoft SMTP Server (TLS) id 15.0.1497.42; Thu, 22 Dec 2022 15:24:43 -0800 Received: from maili.marvell.com (10.69.176.80) by DC5-EXCH01.marvell.com (10.69.176.38) with Microsoft SMTP Server id 15.0.1497.42 via Frontend Transport; Thu, 22 Dec 2022 15:24:43 -0800 Received: from localhost.localdomain (unknown [10.28.34.39]) by maili.marvell.com (Postfix) with ESMTP id C2C443F7052; Thu, 22 Dec 2022 15:24:41 -0800 (PST) From: Tomasz Duszynski To: CC: , , Tomasz Duszynski Subject: [RFC PATCH 0/7] support vfio platform PMD Date: Fri, 23 Dec 2022 00:24:28 +0100 Message-ID: <20221222232436.643514-1-tduszynski@marvell.com> X-Mailer: git-send-email 2.25.1 MIME-Version: 1.0 X-Proofpoint-GUID: wPo0snSb638T_afdtWZ7AnQinrIYVNhq X-Proofpoint-ORIG-GUID: wPo0snSb638T_afdtWZ7AnQinrIYVNhq X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.923,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-12-22_10,2022-12-22_03,2022-06-22_01 X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org This series aims to add support for managing vfio platform devices from userspace application conveniently i.e without going through the configuration required by vfio and opencoding everything. Instead convenience helpers are provided. vfio platform devices, from the kernel standpoint, are ones that do not have built-in discovery capabilities and are behind an IOMMU. This PMD is backed by both vfio-platform and vfio kernel drivers and ideally should give access to all vfio capabilities. As of now, access to memory maps and DMA are supported. PMD requires platform bus support [1]. [1] https://lore.kernel.org/dpdk-dev/20221222000106.270619-1-tduszynski@marvell.com/ Tomasz Duszynski (7): lib: add helper to read strings from sysfs files raw/vfio_platform: add driver skeleton raw/vfio_platform: add platform probe and remove raw/vfio_platform: support rawdev close raw/vfio_platform: support rawdev configure raw/vfio_platform: support rawdev device info raw/vfio_platform: support DMA map/unmap app/test/test_eal_fs.c | 108 ++++- doc/guides/rawdevs/index.rst | 1 + doc/guides/rawdevs/vfio_platform.rst | 24 + drivers/raw/meson.build | 1 + drivers/raw/vfio_platform/meson.build | 16 + .../raw/vfio_platform/rte_pmd_vfio_platform.h | 129 +++++ drivers/raw/vfio_platform/version.map | 12 + drivers/raw/vfio_platform/vfio_platform.c | 449 ++++++++++++++++++ drivers/raw/vfio_platform/vfio_platform.h | 35 ++ lib/eal/common/eal_filesystem.h | 6 + lib/eal/unix/eal_filesystem.c | 24 +- lib/eal/version.map | 3 + 12 files changed, 790 insertions(+), 18 deletions(-) create mode 100644 doc/guides/rawdevs/vfio_platform.rst create mode 100644 drivers/raw/vfio_platform/meson.build create mode 100644 drivers/raw/vfio_platform/rte_pmd_vfio_platform.h create mode 100644 drivers/raw/vfio_platform/version.map create mode 100644 drivers/raw/vfio_platform/vfio_platform.c create mode 100644 drivers/raw/vfio_platform/vfio_platform.h --- 2.25.1