From patchwork Mon Dec 19 20:54:12 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hemant Agrawal X-Patchwork-Id: 18188 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id BA58DFAD5; Mon, 19 Dec 2016 16:23:07 +0100 (CET) Received: from NAM02-BL2-obe.outbound.protection.outlook.com (mail-bl2nam02on0074.outbound.protection.outlook.com [104.47.38.74]) by dpdk.org (Postfix) with ESMTP id A3B20FA3E for ; Mon, 19 Dec 2016 16:22:31 +0100 (CET) Received: from BN6PR03CA0021.namprd03.prod.outlook.com (10.168.230.159) by BN1PR0301MB0737.namprd03.prod.outlook.com (10.160.78.144) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.789.14; Mon, 19 Dec 2016 15:22:30 +0000 Received: from BY2FFO11FD035.protection.gbl (2a01:111:f400:7c0c::192) by BN6PR03CA0021.outlook.office365.com (2603:10b6:404:23::31) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.789.14 via Frontend Transport; Mon, 19 Dec 2016 15:22:30 +0000 Authentication-Results: spf=fail (sender IP is 192.88.158.2) smtp.mailfrom=nxp.com; nxp.com; dkim=none (message not signed) header.d=none; nxp.com; dmarc=fail action=none header.from=nxp.com; nxp.com; dkim=none (message not signed) header.d=none; Received-SPF: Fail (protection.outlook.com: domain of nxp.com does not designate 192.88.158.2 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.158.2; helo=az84smr01.freescale.net; Received: from az84smr01.freescale.net (192.88.158.2) by BY2FFO11FD035.mail.protection.outlook.com (10.1.14.220) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.789.10 via Frontend Transport; Mon, 19 Dec 2016 15:22:26 +0000 Received: from bf-netperf1.idc ([10.232.134.28]) by az84smr01.freescale.net (8.14.3/8.14.0) with ESMTP id uBJFKMhw029110; Mon, 19 Dec 2016 08:22:22 -0700 From: Hemant Agrawal To: CC: , , , , , , Hemant Agrawal Date: Tue, 20 Dec 2016 02:24:12 +0530 Message-ID: <1482180853-18823-34-git-send-email-hemant.agrawal@nxp.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1482180853-18823-1-git-send-email-hemant.agrawal@nxp.com> References: <1480875447-23680-1-git-send-email-hemant.agrawal@nxp.com> <1482180853-18823-1-git-send-email-hemant.agrawal@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131266345494111938; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.158.2; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(336005)(7916002)(39410400002)(39860400002)(39380400002)(39840400002)(39850400002)(39400400002)(39450400003)(2980300002)(1109001)(1110001)(339900001)(199003)(189002)(33646002)(36756003)(2906002)(77096006)(104016004)(68736007)(4326007)(85426001)(38730400001)(47776003)(356003)(8666005)(189998001)(81166006)(50466002)(8676002)(97736004)(6666003)(2950100002)(81156014)(76176999)(50986999)(305945005)(110136003)(48376002)(50226002)(5003940100001)(86362001)(5660300001)(2351001)(626004)(6916009)(92566002)(69596002)(105606002)(8936002)(106466001)(7059030); DIR:OUT; SFP:1101; SCL:1; SRVR:BN1PR0301MB0737; H:az84smr01.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BY2FFO11FD035; 1:G70reMqe36BO0ICybLpj1w6llKtaWwEgQFVlTeFJs/1Yl5kf0zBdwgV+Mw73T/r0EYT4ISW35e910DESBlzwkq9SkUc26GKcpOE6bl3kYoVeecINNbtjPZu4POLrqoKMDL2SmhtYC5vdQDRVeuC/xffjgJG+H4W2oZ5lKq2z96gm4vPMxIcIFWOjEA0aK/Io0Rl1yWKVbIZeBg4Ry0Gm3aMMLrBAY3ZKQmTe/VALWVQNPaLvBBpeGOC6PK/EnC6E3xMjkwJVP3GZhMAYwyP6zqLIW4w0sKzow/KHxyx4y+w2Q/SE30qHqwcKLV58K+BFFvnW4w3/8SBwp/BZsj6lPCJt0w2JdhkN1WXXjxAbd2NbD0bryww9311yfEdw+TMmiXuV020DyLPTn88NucukpVa+7fZCIoSOX5SVFcDD8hOvvNz2sdFc0BZ6e3Oo6omEMQAGaQ0GpR1k5SPALDLa1I1XBWujborUxnETjavcrMnSEmkhWLgfDrS+8DmihYaoGoOhM1mrhHel5TPTMQGRi+AlBdxa1o5K+a1iN8ft+LX4pNwEbPhg1ttgjVABjO6HSltDasL0aDCs199cloLVTeLsu7A8u9hhuPgtRrcpqZOaAUJPuPu4kUVGT485WKx1k9PSaMAabs3sbbe4aXmc4a0+ZGeilgIkTTBsH5knq2ZNoPlupiF7wcx1f30YRhfIsAteLOw4uoaXxc7clpGbm/0/7Y8o9HEwoQTFGtICIVkbO6YRznYxfC4igPRBMX1+tTX3brJyvseqUBEEb0kxAw== MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: 1969ec50-cf76-4d9f-8561-08d42822d898 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:BN1PR0301MB0737; X-Microsoft-Exchange-Diagnostics: 1; BN1PR0301MB0737; 3:AH4yXrsyKvNCh0bN2Cp9Gw5qkPBgB6x2BuHZUYcEGBEhoG0EvIglCJ/gtHS38IxfCljEiJ8hsboj20uJaBJmfRYwPdfc4TW3u3cDRLCahbZjj+GNuUsUdKVGqpT07YtbFCFyi724UljDPnB0+XzAh1al8IZvt+y2ewAvP3mrhw9QBQZ99kbpwzAGJJjbEsvFAXE2McWj2ibA9iaxXQQ1u++iEyjlo65tj+H95FsZ42T2cOYYbqTHGRj0KdRzW+2iogH8F/bkXnUGWEPmM3tRAomba2s1lPCsxrz34rF1jar5e5Dkr2V/hJNVeE6V7hZC5TR4A/TH+1SKDEnG9Hf4t1Yzz25BqeoWA+r9De/JAPsOtuSFXcpLl+Sjop/bE13F X-Microsoft-Exchange-Diagnostics: 1; BN1PR0301MB0737; 25:xrj5lRDm4dJ5I7pv6BZOyf6xXFB5TtRJpkYBKccf7C8E+4pjGNVNhpwZG6MbxyNIBHLLZ7JBB8R0jz3unVPhLDX+bOrYduGwtkM+DgqghWb9ZsLrvNtUIqwPZEWcOSJsy497mfXGzSm/3nMv+gXhs+arosLglq6GX71Ks+m+ReYkHLIbEJwCyfaych2835OQz9nmYMicG5eCUOREOAjnJ6GbF9wGb4PZNwNFSv8eHnclXqO6cjXAUYjNh2ZntK9AaADnREj/yANgMIX7Xmp4ia0JU3eyTCeFxXAGjtW77LzL/HKxwroli4VQkRe4Z/Hatrf3eeiKoEHZFf+gRTRoiIQH1+vN6ItdeGMUF3z8Hq80lJw8AUud+oh9Rhm6NcncngmcAqmlI3jZjZCtFiOF/WR9+LbtvIQnJzpqY3n0TbTTPc0qgyphXihnFo8i7FEq1CiZVwbeknbj8t829Knd+V7hgXK9WWAXNFcI8b0dU595Me9Xafi/Z+vS/8TayVOyjzxCobdg3qG3ZuIVhehYoDHRzBxuEKYb3iYqexnzDy8yduqnY9xo7o0o8pkRJu4r7G3Wi8POIrYzcMsndtshh5Tzo24cw1hPELATq/GVdBSa8QsOJ441x2qmHbEFSIJzWZP0fPh/tJSwgPPcbrmGQ5OifD2UkoOrRPQhZHjxd1txH6k94o4okBESHJfUd0S/H8y6Qa1azQfiNzNXL1AkTysw+PTW+7+fexuOETGhACmC4NfZVyqvVUTdLz0BoEA2+kgLcpSUzSjSEQFqKDkNVA== X-Microsoft-Exchange-Diagnostics: 1; BN1PR0301MB0737; 31:IGjMSY2ZKDhXYXpcsibcxnuXd0Eo8z+0hs0FjfpK55qnFc8pzINkwmP1saprxzn5SWPQerFZ+U26ClTdNlc2UB9aCAcyo/WQOGZYobuWYN/MFsI9TVUkFm79SwalLePdNNI5dgyHq+WZG5ZG7pURQeuLOTj55oCGuCgVXVTKM2kN+d/CS7Q3QnE27L4yhyEtuQnZhJqTaKgEmHUYaMv3ip0XE4mbm7/55Nar0SyQ1v+6nsLVBkz/JXMFlSqu7hbd/4cb2ax1r6iL+Dl6rGJYxA== X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095060)(601004)(2401047)(8121501046)(13018025)(13015025)(5005006)(13024025)(13023025)(13017025)(3002001)(10201501046)(6055026)(6096035)(20161123561025)(20161123559025)(20161123565025)(20161123556025)(20161123563025); SRVR:BN1PR0301MB0737; BCL:0; PCL:0; RULEID:(400006); SRVR:BN1PR0301MB0737; X-Microsoft-Exchange-Diagnostics: 1; BN1PR0301MB0737; 4:lJcdd77D5jBiLKAWfixQWQxw1RX1cZG8iIL3L3o6OSYw8vSiNYIvRDSonrGA4E94uou0BLah+gHUMyaAK5tpKRZMHIGNOK/9De8zvayT0pHJZu57DSKWX/qsbSmBbldrGk4rnC/GgPvO6B5IdhGeZX1pJuuZEky1mFjcYyT86Xx3DCZPWUUBU0d73+QcJo/3vakKZZU+3X2r4eMtwLa9T2zHKXd5ePM/2gA3LWSnLkJon3I9VHK4kuADgEgFEzb2HfjWBLSME3f2udpeaKdzKmYBH/zc1UrLO9UlFnEbdVeLHJGRRW6QO20G7XzW/KL79kIvFV8GWvWvSgUR1FsIvWKqEj5wEB9vjzGHrtbRXZ7HB7BNwZ05dsZDQLo6SBHGtqh45lDlqy4E86WfhD0J2jygfO2FMxk6E+h4c6jn+JzcsnTPzV4o1KqjuEz43tEECWEaFnnpqap42awVt1WtMoY+kglWWGTt8oCh/F9rM8+4CX84uPIF5Gk+q38C0El/pUkE7cLx9GjAaWCwKTCBtkxaG7lp2v/w+0EyptobPh1F4b/43qmlFimtkkvpSejZ8gIUf5D1ARF42R37FiTaRBUDRt+4EOMQcovPVYho33DxFunsjqCcN1U1lieN0O4J09YTQLGW5ry8d5AhaDMkSOvPZxZqG6sPec3gQhWaYvNekuQQVceYdnhb7kPUgeakgNY2DpSGdfWMMguvomeCuCjlNNj0TPahlRJ/BCWS6k7kfpqa1EybEgHvV7eV4TwW X-Forefront-PRVS: 01613DFDC8 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BN1PR0301MB0737; 23:qcNDXTllQ5IgMxQjkjAOgq9tkQckRsFdqX1MtGf?= +nN0WiawFOp511B315w1812MIO17D+gwkl1Iz/p23LaY/O1M9LdJXcyzP/9+qgli44dKVk3FmZHLmGyNhTyk1ttJafOtYMczzvRN90pIrpY2Tgfc93t55024q38x1dOafHVA4/pMGr3zWSvIEAngSYshtSp1yNOS7hmEM4jDqFp0/Liwyn/j70WTBE4nU/JV6D0MFCpfyD8OfgYe8kMRAOo/iLjP5trG3nRJTEnQat/l8PObgluk3+jvQhVbIK+NH5aaGWkay6upWOyeANIiSLqnCLdxBFpy6Zl/UxXLoyJ0LhZE0gjAwcG89NOSrKJZl7gErVqd1I3Twe6oAy15EXCZGEecxQ1yvWodQIJHzUQK0BMirDgSAFiD49pqN2ioRtYr4cuSp3G0XJdyp+v1e0XpK4oDxFNSKC5MYHw4YCJZRLfo5INlsZxKePYBfZx0yv9VnGtiYU8XYX/f5ssDSVIDI9VR/cdlSFJBiWLx+lpa46j4ZJcSfZ/upvxHDf7lIbW6ltcPXVXHMr/16rFP0eoeZL69+W8c0i2Qo9YiX33Rbvtqzif6QPrJ7hg+oHjdD+A2ndrXrHSYjtRuonUfhCB0doz2sVvg7eCC8W7v2rv9KuufTpv9PdTl0AsTIR8+2Hnj6+2HyqGjwtYOBQnEIj9C269P93t5K6Om8pKkxC1Sk0mFYwM1gTZpVpL7m1/e22C3Hxng97YXWP78BYAjqXRNMJ1ClavLNzQwNdtCKD+SesmFspbvDRrOHYRHH4q4rWZhXktPtOM5VmlP0Q3bVI617eMBFGqklTrWax9+S+1l0wiNCwPint3F4oka6PEqU/x2Qq92degCR9S6Q+H30r3KhnlryZyDMmeXxS5EIc2FmUXpEA4cTPYp8Mczcr8hxKERinbYhasel3VM/y+kG86kEphJa0Y9jmN6k5ock3/fk0gNG13WrMz4csq0BPLuRZhj6c6KVv2hF7ii4slhqOcPwjhDr0it1Cu9RSjGcH2NjXfKFnnqko/vwIei1fHlCnv9arH4IKPfetlRkjss2SEOpnUH8BoAQKu7xRxsmwO9VFu+JFUNeQ7Q+yKb+HKncisdfDOG2I6ZfVRj/cg6oG3rFR9WkEIC0nvIqxW3gRTDeef7FdU/lJ6vTmWNdX2bAQw0XE7qYf70DtVY4yg4dR05sHsUng7NKLMe7JaItoxnPrkZZ2WdYlqYjymElvEKiR/ItJsDVW4/ZJ3SXqGZKHOmJrROw5FnuE8kKfPpEd20kC/mvR2q9KhtOc+C+72Ma5GQ= X-Microsoft-Exchange-Diagnostics: 1; BN1PR0301MB0737; 6:KKc0quaJoD9A0PvpEwHQHP4BhpwvfnPD4uPLPmdbsHM5Rios6daoCdGlA/u+j215nsMwHc96ToVhVtuNU/EcPrWDAnBLKQ5Wmiin9E/Ox/4SiBX8HK6hR0oOy7OVKWc18bYZUVqryjSWxSQfNcnjcB665vbWbmu+0nGEkzJDqrjdN7t+mV+9+csHO7rruxJL8qbHFv536kWxIuyW1F70cu4YY256eFr/gqxf4aXtLU3CRXIsJwQ7UNEF+00xkMVjw7r1oj24F0iVee1zhGB25IynVgqxRLnn7bNMkeq2N7UBC6rlKD6DMowJr7McNKQvg+qsZxIL8zuBhjVDWvKeAHhRWjcs15n5eO+aJ4U3V2XQ85MEMckdzOEhnUs+qlcZR5H/ou3KvrJ1V7VTn06C+rx7IARjIH/BxEyoj/H1uL/C0OfzTtxxbFPPACRtntxO; 5:Ac0Wz0Sq/5ZXzX6zmoJXKaKgRjDuXhmi5GhP1kxrWM5V5PvsOHIk/YCzhxqsXF2QhnYnVrlWW5MnpibfHjZRME9A6esmx3Gmbu5L8TI6yGId/ibgw9KzuKD5qpr3HjBBzwW6Y96KpYmmpyFxXHqCffc8xE81bOKYvYtt2Ai6yDTyc4LmNrs02pVUAzDG5NOF; 24:QDYUD0LtWS+D1+p4ogLC5Q/zt/vd0GNBHWBgOXONV7t/vOKO0KA7AzpAbX3Ef9KD0zHnc7ycodsgxsHytUDVCVGHUZsbr1uMNfjtlTePX3g= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BN1PR0301MB0737; 7:FMwnJBeNTDi+DIfx5tlkVdnbehjookZ5yQQbNJx2DkN5vnS4WTq4CTTLuoza+7x4oWUnVXkxMI/7Y7tLqjKkcpax63uP/IWwtGyBo24pPVKwVieU7YQt4Q3qqwVDu+wWPHiYD39e0DqA2q36zVMgh5OOCQxdUGLnRW1TlAx4Tj42nHq0wFrTV8nz87VLm94kUMJqJycIJEDP7nUANGH5A6xAjX7nMNv+mQx0jhuqQp32PG3gK+Ags0rI+o0yCqrkS9kAYH/QPwewgTuG5BSEUTtH0sRDl+QLovOHbLOWb2wRDtRJlcOC2WdFzzx1fDA9hrkksoOnfBFZiBEKRfxK3WE3fgagUp/g08tizTuGjimBTzWGQXyTftRScq6+gxPj7I7UtnMnCZCXL3P6cLi3M76jjk2r4nJiqtgxBb8eTphPwwrRx9vh6T6XxKMSGYJG2Vl2ghGIoyEL2pzN1XHqPg== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Dec 2016 15:22:26.4471 (UTC) X-MS-Exchange-CrossTenant-Id: 5afe0b00-7697-4969-b663-5eab37d5f47e X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=5afe0b00-7697-4969-b663-5eab37d5f47e; Ip=[192.88.158.2]; Helo=[az84smr01.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN1PR0301MB0737 Subject: [dpdk-dev] [PATCHv2 33/34] bus/fslmc: add support for dmamap to ARM SMMU X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" Signed-off-by: Hemant Agrawal --- drivers/bus/fslmc/fslmc_vfio.c | 97 ++++++++++++++++++++++++++++++++++++++++ drivers/bus/fslmc/fslmc_vfio.h | 1 + drivers/net/dpaa2/dpaa2_ethdev.c | 2 + 3 files changed, 100 insertions(+) diff --git a/drivers/bus/fslmc/fslmc_vfio.c b/drivers/bus/fslmc/fslmc_vfio.c index 8d6a3eb..44cf3d1 100644 --- a/drivers/bus/fslmc/fslmc_vfio.c +++ b/drivers/bus/fslmc/fslmc_vfio.c @@ -77,8 +77,10 @@ static struct fslmc_vfio_group vfio_groups[VFIO_MAX_GRP]; static struct fslmc_vfio_container vfio_containers[VFIO_MAX_CONTAINERS]; static int container_device_fd; +static uint32_t *msi_intr_vaddr; void *(*mcp_ptr_list); static uint32_t mcp_id; +static int is_dma_done; static int vfio_connect_container(struct fslmc_vfio_group *vfio_group) { @@ -148,6 +150,35 @@ static int vfio_connect_container(struct fslmc_vfio_group *vfio_group) return 0; } +static int vfio_map_irq_region(struct fslmc_vfio_group *group) +{ + int ret; + unsigned long *vaddr = NULL; + struct vfio_iommu_type1_dma_map map = { + .argsz = sizeof(map), + .flags = VFIO_DMA_MAP_FLAG_READ | VFIO_DMA_MAP_FLAG_WRITE, + .vaddr = 0x6030000, + .iova = 0x6030000, + .size = 0x1000, + }; + + vaddr = (unsigned long *)mmap(NULL, 0x1000, PROT_WRITE | + PROT_READ, MAP_SHARED, container_device_fd, 0x6030000); + if (vaddr == MAP_FAILED) { + FSLMC_VFIO_LOG(ERR, "Unable to map region (errno = %d)", errno); + return -errno; + } + + msi_intr_vaddr = (uint32_t *)((char *)(vaddr) + 64); + map.vaddr = (unsigned long)vaddr; + ret = ioctl(group->container->fd, VFIO_IOMMU_MAP_DMA, &map); + if (ret == 0) + return 0; + + FSLMC_VFIO_LOG(ERR, "VFIO_IOMMU_MAP_DMA fails (errno = %d)", errno); + return -errno; +} + int vfio_dmamap_mem_region(uint64_t vaddr, uint64_t iova, uint64_t size) @@ -170,6 +201,72 @@ int vfio_dmamap_mem_region(uint64_t vaddr, } return 0; } + +int fslmc_vfio_dmamap(void) +{ + int ret; + struct fslmc_vfio_group *group; + struct vfio_iommu_type1_dma_map dma_map = { + .argsz = sizeof(struct vfio_iommu_type1_dma_map), + .flags = VFIO_DMA_MAP_FLAG_READ | VFIO_DMA_MAP_FLAG_WRITE, + }; + + int i; + const struct rte_memseg *memseg; + + if (is_dma_done) + return 0; + is_dma_done = 1; + + for (i = 0; i < RTE_MAX_MEMSEG; i++) { + memseg = rte_eal_get_physmem_layout(); + if (memseg == NULL) { + FSLMC_VFIO_LOG(ERR, "Cannot get physical layout."); + return -ENODEV; + } + + if (memseg[i].addr == NULL && memseg[i].len == 0) + break; + + dma_map.size = memseg[i].len; + dma_map.vaddr = memseg[i].addr_64; +#ifdef RTE_LIBRTE_DPAA2_USE_PHYS_IOVA + dma_map.iova = memseg[i].phys_addr; +#else + dma_map.iova = dma_map.vaddr; +#endif + + /* SET DMA MAP for IOMMU */ + group = &vfio_groups[0]; + + if (!group->container) { + FSLMC_VFIO_LOG(ERR, "Container is not connected "); + return -1; + } + + FSLMC_VFIO_LOG(DEBUG, "-->Initial SHM Virtual ADDR %llX", + dma_map.vaddr); + FSLMC_VFIO_LOG(DEBUG, "-----> DMA size 0x%llX\n", dma_map.size); + ret = ioctl(group->container->fd, VFIO_IOMMU_MAP_DMA, + &dma_map); + if (ret) { + FSLMC_VFIO_LOG(ERR, "VFIO_IOMMU_MAP_DMA API" + "(errno = %d)", errno); + return ret; + } + FSLMC_VFIO_LOG(DEBUG, "-----> dma_map.vaddr = 0x%llX", + dma_map.vaddr); + } + + /* TODO - This is a W.A. as VFIO currently does not add the mapping of + * the interrupt region to SMMU. This should be removed once the + * support is added in the Kernel. + */ + vfio_map_irq_region(group); + + return 0; +} + static int64_t vfio_map_mcp_obj(struct fslmc_vfio_group *group, char *mcp_obj) { int64_t v_addr = (int64_t)MAP_FAILED; diff --git a/drivers/bus/fslmc/fslmc_vfio.h b/drivers/bus/fslmc/fslmc_vfio.h index c5a42fe..83a7c68 100644 --- a/drivers/bus/fslmc/fslmc_vfio.h +++ b/drivers/bus/fslmc/fslmc_vfio.h @@ -70,5 +70,6 @@ int vfio_dmamap_mem_region( int fslmc_vfio_setup_group(void); int fslmc_vfio_process_group(struct rte_bus *bus); +int fslmc_vfio_dmamap(void); #endif /* _FSLMC_VFIO_H_ */ diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c index d1456d5..3a90e7c 100644 --- a/drivers/net/dpaa2/dpaa2_ethdev.c +++ b/drivers/net/dpaa2/dpaa2_ethdev.c @@ -911,6 +911,8 @@ void dpaa2_dev_stats_reset(struct rte_eth_dev *dev) eth_dev->rx_pkt_burst = dpaa2_dev_rx; eth_dev->tx_pkt_burst = dpaa2_dev_tx; + fslmc_vfio_dmamap(); + return 0; }