From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0053.outbound.protection.outlook.com [104.47.33.53]) by dpdk.org (Postfix) with ESMTP id EF3113238 for ; Tue, 17 Jan 2017 14:20:58 +0100 (CET) Received: from BN3PR0301CA0082.namprd03.prod.outlook.com (10.160.152.178) by DM5PR03MB2476.namprd03.prod.outlook.com (10.168.233.22) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.845.12; Tue, 17 Jan 2017 13:20:57 +0000 Received: from BN1BFFO11FD025.protection.gbl (2a01:111:f400:7c10::1:100) by BN3PR0301CA0082.outlook.office365.com (2a01:111:e400:401e::50) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.845.12 via Frontend Transport; Tue, 17 Jan 2017 13:20:58 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) 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.168.50 as permitted sender) receiver=protection.outlook.com; client-ip=192.88.168.50; helo=tx30smr01.am.freescale.net; Received: from tx30smr01.am.freescale.net (192.88.168.50) by BN1BFFO11FD025.mail.protection.outlook.com (10.58.144.88) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.803.8 via Frontend Transport; Tue, 17 Jan 2017 13:20:57 +0000 Received: from bf-netperf1.idc ([10.232.134.28]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v0HDJ8md021741; Tue, 17 Jan 2017 06:20:54 -0700 From: Hemant Agrawal To: CC: , , , , , , Hemant Agrawal Date: Wed, 18 Jan 2017 00:22:53 +0530 Message-ID: <1484679174-4174-33-git-send-email-hemant.agrawal@nxp.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1484679174-4174-1-git-send-email-hemant.agrawal@nxp.com> References: <1482988612-6638-1-git-send-email-shreyansh.jain@nxp.com> <1484679174-4174-1-git-send-email-hemant.agrawal@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131291328572994456; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(6009001)(336005)(7916002)(39450400003)(39840400002)(39380400002)(39860400002)(39400400002)(39410400002)(39850400002)(2980300002)(1109001)(1110001)(339900001)(199003)(189002)(86362001)(81166006)(8676002)(48376002)(81156014)(97736004)(50466002)(33646002)(105606002)(38730400001)(36756003)(54906002)(2906002)(356003)(8656002)(305945005)(77096006)(92566002)(4326007)(47776003)(2351001)(5660300001)(106466001)(85426001)(2950100002)(5003940100001)(50986999)(68736007)(189998001)(110136003)(104016004)(8936002)(76176999)(30001)(626004)(6916009)(50226002); DIR:OUT; SFP:1101; SCL:1; SRVR:DM5PR03MB2476; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD025; 1:ZVJcuA7t8aie1hqmF/tPmqCUcmFqGGstNwYYN3Qk5esbfGKsZrCl4XPqjwC1/o0QVwZGznalT3vdlQRwSALt4AAzPXUEWfFbR+gombaDrvTS2+zbEfGSIkDj/hTK09wYieHB/Q9WHYiLBQPgna19StxrklFpSKT2hkLs5WE2FW0t4GQvq+BlHORjVn7eM4indvrGXYGKf6UYv23SoGmlPFaE3wiPsZ5BBdJ+9b6uMeFEVSm2rSZdihqtxGYT9vVdGWQ8o11nK+d3QWtkzGp5466YrBn+hEaIE7vFpG/CTV9MbKf3xU3oog5gJlO42pcu/wygg3nx38BX0S2BIigKaRUNp7zwH5dUhx9ky8afQW+m9bx6NusBru92jPX5sgDa/oIgvGbOS87b9QSqV0nMZPHjfFQgslil8J/2P6YneooreuaD6moJu2F0sHlmOUNmpp507rbsIHwPMgeMVe9nM4kJ20Y3yHcL4IZG8DZHCa+x/CngVZavD84tdba3Mi39HMpKohVc53WfnFyaS2IUvYZvcejA1A2HDeBXxNSLjovbHmA+KeoZqGGFvrC08YLNE4saf02lg6+KEadmMAhC2dahp2ZsE8o5GGsjTZsvak+38XzLdX9G4vwY/ymOherIKGYnNkJKG+D459mBN0tsst7cmSUQrg7YNlunIoC54PQEB1TkCcxvVoudNyMzNcdBRHjVB6XxwCQzS3/QK255kYkecE5DPVbJOn/P/8JVliK7z8Lp9/p/0f23KsL1mZYF MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: bb2b49f1-c76d-4a7f-523d-08d43edbac23 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(22001);SRVR:DM5PR03MB2476; X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB2476; 3:SCn/T4dhmIj2a5HVSb1mPAVlNq7c7MYYe2X9YJR5bRxThzaLbnsTNll958GrWZBAr2xvK6aPywXvQXeFhpiEpG0QUoXd6viEi+OPeIFqL44k64tyH9q1gfaNZEgcaIEv1Ty4J4qp923hoUmb2byYUlJ9D2S/C9shueaxLiFmD2JWG3lflJ7PrFJPz0yZAY0rlC1vmGnJlnBryBHF/PY06bIW5T5M3RbN+vP+WbmM3PoMnLtZmieMVfAv2N3WN25jQIbITo702qKq1ufyTJprl2G+71khTt6ft12l/qU/cHepJO0Yca1Up0tQbqxAGRZ1ABKJSDVtC2Q7XEkYF7apppMD02GisuOzu7sWTJnkSqm9yG/he8mRPluzTG5FUavt X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB2476; 25:fC2LZx4+TgvQPeQZAGXWO8s7jS+zIgloYcIqSnQS1OKSJpX1kwbScIkQiME6k0m6pn/ffw6opPCGBhMqKtvSO3p8unANKiPp1eDIZ8+/4q+dof2SfERAmsNdOZpDfendnpwJKsf0ABUnYPPY6yOWuARhAhfrGZPeKx2S7cKL55/HmdP2PxQnot2XNeVIeHV7dHLstgdezTe5otQ+3MjKpjQjc66kl0KGcAACsg0YxbhbQXmraJj2BmJdlD4uK1vJzV2w2zCtXpneHN0CCJSQfHCyOtB//aRR/5koS5ExgjtQckowPA2Z/DCkCbMt1si3BKhe5//V0yIn9VL44hDdpfoTv70/atEFaqxyTcXSfFl1MtXMp04FykdLY/usFcgPOtrL1ynSx55jGoHsfM+msJ804pmv9WPBMTunuOWJXr+ZaIaw2PAVNGVCJMPj5emkVgj0N5kbOik6q9loPe7oFeMB/TXUD9GkxPjSBRnWcx3O8vnc2t53ghnYj4WUILYYydEjCjwidaWbo7PtGEItwgsjjKLpdA9vV2IvLFbXr+UyOkg+poXcCNJK1y4cOnquRNqYLSQDGLagnRv226VHDuKRI9x7eOrUt8oWfmH6723Qihgh6vuJmCO3gifLIJaVi8wSdVaPMXD/CVK+gPSz9abAyqoHgwJfC2pKfowaEXQO5ZN0iE6qBqxvaqVvs+uEls1dfoRLtENofrgtqJB0j3RcuGZbh9Jnm98PxG2DGQoAl7IAohAADOu0jNNBdxv+D89xE+QbDAF0sxPJJZUrLw== X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB2476; 31:clUku7aLZgZToLRaeLyTRnEhWsSd05gr9muSvHc8HCkkzxCswoZz4c5LWG9ZYpr4/2AzElCohOf/iNY+fhx6iyVM76kdDlZ0yggNAlezg/xHPCi0oHbAp0i6jrNifARLESnzIEoIinwSfgNHT27r31dP3+e+ZRIM3FK4hL8MguFsK48IN1RaY0aVmhO68XFy8dLOkEKRvI7JmOUkP9s9PIntqFfjSX68hg21NKe0BMcI/DXvjUXSh2YMp8t+qRaFPCfI/RzZek9l30zeswRXiPXO/pRSgp95M0J6Uboj2y8= 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)(5005006)(13023025)(13017025)(13015025)(13024025)(13018025)(10201501046)(3002001)(6055026)(6096035)(20161123565025)(20161123563025)(20161123556025)(20161123559025)(20161123561025); SRVR:DM5PR03MB2476; BCL:0; PCL:0; RULEID:(400006); SRVR:DM5PR03MB2476; X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB2476; 4:0jw3S1OLjexJdW7gZdehsk/PaxqACjY2eU7vi/muvP3zg3ySontWmjyanVpJb7Dmi938HSFA+xHOySQ24qQGvuVEqpVuikNh0WtGw8LW0y8+RLCajod/RCCysVzS7RXK2+xczbawu56RtFOYW859+CGu5I9D9w27UAnxWBe9kgEYAgmDBT9Ku2AGyA+BHXOdgqnB55clyEzfDei98DksmWHHOlKQGOW5aPYAzxfto48UAgUXWhiK5io1bS7DFoFbZZj/8koL+80qIj7cgTdVJxnvCpm3Oy0DwMQHg/i0+OsJum3Om7s/bHsXPvMzv3cnH/VIrPkK3LA7/WyYD7p17ZKYwGKZp7TMOE0Ue6L5EKDFKHk0FnQ8kBt2tpAVXLfns7eLBW0Bws9RJloBVE3coPTFWwqxp9hxNjKmsunwaOGTeq1FInu0yzVZwOwoaIVs0nYIiT9m8i69JGxDwj7jG/m2OBFn3D1/rWm+vKkOndSO7ojtJ78KlmkBPwyhhbCl9HrT4nrKooIUXvLjCL2d+kt90+DFJTfQ/lpxv3d2EhzOjOIiA/lBVdox672MzGs7ja6xrW0KRi+jKNyjGesnAaLSRhMt1BrdqK4dLV+4dJs4vFqvTKhjThuaoUrXXOqQijWXcGk9INYmt2m28Rb/h9oo1cBnPwXNzkDGLg4RJ1w6zhKae14LrNGAI09m7EHW98jEyGUQu4BaQHQp0Km5tfVqROEXN8wcLMazV4u03P2TIIIGgtD9g5MIWNF5jP6x X-Forefront-PRVS: 01901B3451 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM5PR03MB2476; 23:aO8cKcnopnEhZzpq9KOXZ2WOyxYzRjIVyp3a7g9Rl?= =?us-ascii?Q?oddPg433kK82Nn3fTbjYK8wRGGi6iLrkFdhkxuhFsJYRPYeUVnWDqYC5woo+?= =?us-ascii?Q?RWA6MNTRW5+bGUiaFWXNjCoqA0iInnswn63tdmJbYjFCJ7S04y5xoloVsHRZ?= =?us-ascii?Q?9TUgR6GLW+qWDmOXUvXFq6wqaXfiQNqeBC2Afgcmlm920U/lISctu9WsAFKk?= =?us-ascii?Q?+jCGcgNxQGBZmUjLOK6K6BLxcB/IBm70dZex6Er5GgRCP480nJJk5SMIZUxB?= =?us-ascii?Q?/BVQfG6iiOcnsRL04MgDCDhNitva11D7mAonkCFKopbOa3MT5JTCEWOtGNxu?= =?us-ascii?Q?93u3Q6Y7CjaLgL+As5fORIwvRV2T+/24YSM1Dj01AWN4ETslVzYY+w2c8eas?= =?us-ascii?Q?1PUhzqdCGGxtE9pmhImAVbL8RWnB+2t1tRaMzeRlQbxVNDfp5cPnLjaGglYZ?= =?us-ascii?Q?bJ5vNrDAL/77+5rHAlCJ88rnMNWM/AugbtZgQ849zM85qbg6iqqY6MFXCf4F?= =?us-ascii?Q?+qMyNpvLXSP4VXzdgstCnytqJcwU7GhsdXWGi2QFUdpS26f7N5mhRx+a+0nf?= =?us-ascii?Q?osBowz7LXllwTWhFCWvqzffpMn1GGvybKbEsFqKjvnvP6yzZtAKehUv68VcL?= =?us-ascii?Q?ndc+tJKQ7rz6J4q8U57Z6DEb9Ehm9CLH2N9Tr3WPFM9WwatLPABuGX3R7s4W?= =?us-ascii?Q?SYiqVHuc6Y0aABjCQ2Z2/tHN3U/LZZJuE+h5X0gDwK87L+3SnPZsEfW1SuL1?= =?us-ascii?Q?Joe6VCVUSsTqc8+VhFPSJDF2l/gnZOzD/q8Awb1CG86YaTe775FnURd33ZSP?= =?us-ascii?Q?pg5ppcEHvZU5Ew+5d9YXzzgq04f/z273whqiRfpFTdnDa8+LhEe6kb888ylY?= =?us-ascii?Q?J+mwnMnKddXfbv4qpO2/ceGkR8UhQR+/H0QinqxkiOiwzT7L2gkLb5rN3BV5?= =?us-ascii?Q?O/CVDUhyJcUqQRFn1Grgxp+infHFWjeTN1S5ZsVAhfvJ1j3YvKjgfpBIFBcK?= =?us-ascii?Q?NZKE1kALDMXOssOHlKZ7pPkoLYkI9a2ebAo3eq4Og5azHBLxEpzadNZYUUVp?= =?us-ascii?Q?K5HF1E2lxGEaL8U29/ots7BrtVp9aDPxIIG14AV57BuOC1YdrIkcDCyonx/i?= =?us-ascii?Q?edCo4/L2ix5+m+6jWYpAC+Cb4gWKrSZSQGuRO1nPBYI4ID5P6R0iWwu/t8un?= =?us-ascii?Q?MX513y3sO+7eN0Fsy3riPz5OSiOmLIvW9IzO6NAN2WQX9dRldoY+lfmhcya1?= =?us-ascii?Q?J4BR9y6MDqUpRw42sHAUle+5lZtc/o34LyPuKkyod7ms2ptOeK6tt+bzgvL5?= =?us-ascii?B?dz09?= X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB2476; 6:jZcu/LjZYluGIvBlvytlrUODOy/wGhMQoOgaAcS3BIpB3cJgSoeFdYXdqvLKW/RKnySduCRiFBBMsW4kY4ypEJsMaPrQm6R8z23fL0cF/cYbokcqjWK+g5sFrE1PruHlWFook1wzGvt0GKuU7wLLHB7IV634uVxw9vBJE076WbPFBY4+MbSW3W9YSs4PeP5FG2EpaO8D3Lb5rAcLfISRStGHkDwGA1gO6AAAmNh+v3Um2lu4fPxAFedKQvCc5JMbKEumYHUGXM4JCgx2VBF8HknKOy7AKtz9PR2AuISpj2vUBVXir6DvtJbmb2IAct24GUiBl6Iwqii+0DuvjTgyg/ee8PznkADOmCQ5jWZr7NZojzpfTD7ON5sSvvjIHvhynRGxohutcz+6QhtRK/mc6r1SI/AHFEfIzHli1MsefDdLdMzAwdJdUf+a4pt/koXl; 5:GcjN8ZEenHok1rNgFcK2BveU9l9A+dCsKZzQ0pS5OixNDrmETq6f03nUalqtjKYCAAY0DOOKPrVV/Z3nRuGXFYLXXeMr0DEhCVgQVUWFcaTg5a+s9yiO/R+6kzDeuWMvwEI81uyNPqUkEFPvFaiIW7a8FrB4ksC225EuEEjrGSbfRSX+Kx7JcDO3wsGbMnU8; 24:3fdSh9GvjIBJ1cq1K++Koqyntiut0Z5AaadH4mdm3tX0Qfi1cLvxRbbpzM2w+x5p7gbID84t3A/U7o5VgUJAq8CtEuzCe/eahptDkfMhG9s= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM5PR03MB2476; 7:ljYWiP9q7+vhCRkRIlYWnd1onPCYgKUrKafgiRGW9FB2o3sfa4hMBKWt3LgZeQss5CcDsN/lGrqWVZ2Sij9FrF57lK7HHiljXIpCdB6fI8GH7W2hafCvokZ7BnKZsQTqT5+FdNcgx7IP3EPGVgvq4zS9YXPZPr2kdJuwU2Vu4XruoDEUbJBnU9ATulLAvGRqgPbql8nJiEc7dwBn7LNWzQscdBg0NX5ik24GwZY7kUzFTCT1nSfFK23rxwnXj9/aQN8rMQfsj1lXlA4TXp2A4iGiKOL+3hK29c3Q3E8rMgd8AaoaCZdsZrAqwr4vmX5E/mFxdIQFOo3YBmnzamgbZY6QXxFvBu3pyomzW4L5aPjRS6xfZCfMuG71LiuDcYLcxNsH2W8tbDf7sLJwDuKTM6Ivtk7qIKicxXwCBSZjHuHzaP9aeJBKB6c5Padgz6NEaJ54mytR6CTCvIgDqIWVPQ== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Jan 2017 13:20:57.1122 (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.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM5PR03MB2476 Subject: [dpdk-dev] [PATCHv4 32/33] 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: , X-List-Received-Date: Tue, 17 Jan 2017 13:20:59 -0000 Signed-off-by: Hemant Agrawal --- drivers/bus/fslmc/fslmc_vfio.c | 96 ++++++++++++++++++++++++++ drivers/bus/fslmc/fslmc_vfio.h | 1 + drivers/bus/fslmc/rte_pmd_fslmcbus_version.map | 1 + drivers/net/dpaa2/dpaa2_ethdev.c | 2 + 4 files changed, 100 insertions(+) diff --git a/drivers/bus/fslmc/fslmc_vfio.c b/drivers/bus/fslmc/fslmc_vfio.c index 2bfd7fd..bea32b5 100644 --- a/drivers/bus/fslmc/fslmc_vfio.c +++ b/drivers/bus/fslmc/fslmc_vfio.c @@ -76,8 +76,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) { @@ -147,6 +149,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,71 @@ 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 80c6869..7d562d3 100644 --- a/drivers/bus/fslmc/fslmc_vfio.h +++ b/drivers/bus/fslmc/fslmc_vfio.h @@ -70,6 +70,7 @@ int vfio_dmamap_mem_region( int fslmc_vfio_setup_group(void); int fslmc_vfio_process_group(void); +int fslmc_vfio_dmamap(void); /* create dpio device */ int dpaa2_create_dpio_device(struct fslmc_vfio_device *vdev, diff --git a/drivers/bus/fslmc/rte_pmd_fslmcbus_version.map b/drivers/bus/fslmc/rte_pmd_fslmcbus_version.map index 6937ad0..17befc7 100644 --- a/drivers/bus/fslmc/rte_pmd_fslmcbus_version.map +++ b/drivers/bus/fslmc/rte_pmd_fslmcbus_version.map @@ -49,6 +49,7 @@ DPDK_17.02 { dpseci_open; dpseci_reset; dpseci_set_rx_queue; + fslmc_vfio_dmamap; mcp_ptr_list; per_lcore__dpaa2_io; rte_fslmc_driver_register; diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c index 2cf395f..183b5b1 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; } -- 1.9.1