From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM03-CO1-obe.outbound.protection.outlook.com (mail-co1nam03on0053.outbound.protection.outlook.com [104.47.40.53]) by dpdk.org (Postfix) with ESMTP id 0E57D4A59 for ; Sun, 4 Dec 2016 13:44:06 +0100 (CET) Received: from DM5PR03CA0018.namprd03.prod.outlook.com (10.175.104.28) by BY2PR0301MB0742.namprd03.prod.outlook.com (10.160.63.20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.747.13; Sun, 4 Dec 2016 12:44:05 +0000 Received: from BN1BFFO11FD045.protection.gbl (2a01:111:f400:7c10::1:130) by DM5PR03CA0018.outlook.office365.com (2603:10b6:3:118::28) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.761.9 via Frontend Transport; Sun, 4 Dec 2016 12:44:04 +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 BN1BFFO11FD045.mail.protection.outlook.com (10.58.145.0) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.734.4 via Frontend Transport; Sun, 4 Dec 2016 12:44:04 +0000 X-IncomingTopHeaderMarker: OriginalChecksum:; UpperCasedChecksum:; SizeAsReceived:729; Count:10 Received: from bf-netperf1.idc ([10.232.134.28]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id uB4ChXbD032240; Sun, 4 Dec 2016 05:44:01 -0700 From: Hemant Agrawal To: CC: , , , Hemant Agrawal Date: Sun, 4 Dec 2016 23:47:05 +0530 Message-ID: <1480875447-23680-11-git-send-email-hemant.agrawal@nxp.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1480875447-23680-1-git-send-email-hemant.agrawal@nxp.com> References: <1480875447-23680-1-git-send-email-hemant.agrawal@nxp.com> X-IncomingHeaderCount: 10 X-EOPAttributedMessage: 0 X-Matching-Connectors: 131253290444003967; (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)(7916002)(2980300002)(1109001)(1110001)(339900001)(336004)(199003)(189002)(5003940100001)(86362001)(50986999)(104016004)(575784001)(356003)(2906002)(8676002)(50226002)(47776003)(48376002)(81166006)(2351001)(305945005)(81156014)(7846002)(33646002)(105606002)(76176999)(110136003)(106466001)(2950100002)(4326007)(36756003)(39400400001)(8936002)(8666005)(626004)(189998001)(68736007)(77096006)(5660300001)(92566002)(50466002)(6916009)(39380400001)(97736004)(39410400001)(85426001)(39450400002)(38730400001)(7059030); DIR:OUT; SFP:1101; SCL:1; SRVR:BY2PR0301MB0742; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD045; 1:qdH61vOC6pMXs1bmmkoGXsgf5jHJ/tarRlyAl4wS+wofjwsl50pZ5hmuSXTDDa4D+XQW41U/lzJRY+HQMbJKfVn92JEZXO4yjJMdBv7gccGUL+bVAttxIOYRjY9ICsZ23AJ9QBMMsv/9L0PdpTiXUf9k5Yg+5PSe2dd4JNiL5sAU7sXqK74Uy48FFnZ4gMRnAHDcLSlJIjjHh8VfIwixZiidl0dbqihcp8ieD+ROUZc+KcyGHqIgzj4tTftI5v1OTXeNyFjOhEMHlQqPdsAGc4PtdZan850gbPKROrWFnEgysTWN6n8NwIfFqB9bXe08ZyGZ5pRAt73vXjFWqCCTLpOcy/rONZjHY99YGyzNay3BUXyKIH2Cm/AW5seQeL5P3rQhy9qS35xmtrKkQMlGHyJ96JH9wc1ylImWymBU+jj/xS7wTwDyx+4/VdHSWs2YfJuDX6wkXacxGabs6c8eUTDQVyg6BIyQS1gzXRiMYBcvqLVZZQIVaHtE9EwX+SY3xaXiKHl/EopZHC0mf/JWSykqUQWsER7WJERS55eXd5yHqL1UdhafBdYN707xH5JsaT/MbzNLyFrwDJM2cYqolkBmRMJicN5FWSHK4C5l44fVcwBMtmajLncyhuD+8F5+Vg+jyj9MF856f3+q53/gjoqt4PDoF6ONqkPllA1IaetgBKjQXCY0KTaAT8Rhxcx8VQH1TPbNxDlQnw9LUkvjrWZXIEyoVcvD8VbQ0IXh1qZr8Iv6bB0Uek8MYP/Of2HcXiIpfE4k9nTtQ2lYus2lbA== MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: 6aa095de-fc39-4b42-b920-08d41c433af8 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:BY2PR0301MB0742; X-Microsoft-Exchange-Diagnostics: 1; BY2PR0301MB0742; 3:X/oEtTwKfM8t3Z6UvvVSEeIIvVRcEcO2gCX8LGVzJqQFqTej4rBFH/HSr7DFJz5uhDl5cUnkqe3e8mPWzkAzF22Qf+CJqB4QZykowLCT5flOsvo296EKiuxp4bjtSH2N/PyDbDfpNsxpM9T8U1zrXWRgDpDk5oSldV2oH7acRGaGU6N18IsEHNWM2SqXJ2ANEndwPRoOVXAsMa79HyCEtLghK91qNert1VP/HE/VmrtQR42LJHZSoFOysjhHIp4sJWJ8KLKby5hRVJ0Qwl4Jq7b0wAc9IA2YThAGVaqMogoNn/2p72Oe+VZu4PYnFsS4p2OOJj1OBxTd9Tq2vR5/O0tHoiCVq4CfLoTyXHnT8UIxltIv4qNKX5JpYobrlRIK X-Microsoft-Exchange-Diagnostics: 1; BY2PR0301MB0742; 25:PboJFJbNhrx5ybT3lF3YPROTjiyJnGEMx5ucFDBOdmOBtagj2XRKIlWRIc/U7X8/M0mClttbvwNccu0R9Kf0wh5T6AaECa57gsiJtvQAH8yz9WynyGTZuYYptaAUZO22xFvzzBtn5Is7pOJsSrXmqaEHnjXVtXXbcHiWa9X/lk9zV31yg9gpWE8RG98nt7JWnohy+/OQcFCMGa408vOCuz5ZY8bNeY7EOK+JL1h6O+dcbtGVOX/TrhJ1RIkN0yugEdjCEEjxpCYx10MwyhXZicj95gkA8l+gPXjr0GTXSNz7mkEwV40/7pIgg6rs7K+v2SsKpHBXHioILyJG1tzd/EhrpJtvUjqt2fZ/Dr9IoBCR4Z2ol6tVr9+b986E9U6cwGcMUYN5PBc2S81Of0BgDYgAcT9ZF80lsHZs/2ubLffBWqRG332Uh5wqKln1LxhZzXrrW+3/MSXAVs2yVlsE3cvWKjCbw84FULX8brqVoG7EntR/sqwSS2vpOoO+ASFvcyWTxuKXsUAaQymNhoihSzuZt85tU9T/3Rj1eF4Id4R40Lu6D4Qrh2wG+j9cj6r9K4w7L8nKy5qCxL7HpqRxcORNa2rpkwp/OdQRrptpVgx92dLs3IpGsmtUxLmgr7+zj8hRHohttS04wmbfZgBA4Lduo9peDL74LGOneY/QsBVEdriTWGiWGH5d2Yif45fySKvUMBxifY2ZWrJgCA9cfuXazpagtb+MB0joN8E9sC7xkSNHOtHzKFSY10EHG5HlwglJEJVisSuhQZF6ifHS/A== X-Microsoft-Exchange-Diagnostics: 1; BY2PR0301MB0742; 31:qyGfLamQkh2KX81GsBjg0mwyUAG1D1BI9MLYnNREswkP7GCSglIYWjOE9+UFnsuETNXgRaTARiachMl9wSxjfrgUTTtaLjYc6nPdYfaI2Dp5p4quoVbu2UmLlAINjTTlWBR1XvfD+HDIrYnxEsYEnzHERgyRm/GHh8gAxh7uyOzaZs+Jbprnr8Vzz5ZqT1i7IVn7vDtU+um9FQeJkdNZ1+s/bVuVP+NmP95n+QK3IyL1JTwNcJ5C60vOpEG1HGkTMP9PMx+SNe52wTGGMMIhOQ== 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)(13017025)(13024025)(5005006)(13023025)(13015025)(13018025)(8121501046)(3002001)(10201501046)(6055026)(6096035)(20161123556025)(20161123559025)(20161123563025)(20161123565025)(20161123561025); SRVR:BY2PR0301MB0742; BCL:0; PCL:0; RULEID:(400006); SRVR:BY2PR0301MB0742; X-Microsoft-Exchange-Diagnostics: 1; BY2PR0301MB0742; 4:lRn0erPEuU2GpoRpSkKzXOFTMndBQ8DwN5NGFAFy0NjbCw3OwklkZiEXClH+SzR0LN5F3fJ46/t1CWKAJv2vS9Rxjkfkf/zOHjKd94CCVc6Qzyvuee1GzYSNYXlYanamTd0r8Bj2zQSsBXUh+aubY04Raf1M2V47itOWYxTdmkQerMTahW3eyc4YHKIC/QQl60My19ExAvPMYWYyRYr7I0T5fX3gm12dPVHEiXWoaiTFQMg3+trRXDxlDMojpvXq8nAf1hwnqfYmFdQJCY7LrfJfzWyR2LbyIDbAQCO331XQx61s8TCKs6MgdlnfyNL0g0CpwOLg1nwmyVNG2OFtE3HG58kQl+zP7IYp7N6juslsb3WmvqUX/7z1pyDVbyoaEmzpmeoUs2UnGIxrqt980cmaw47fOd1ANAT+px3V4QHYhhhKckFNaaesTI/1gMFN3sTVtdJnBbGl8sBsbXGfIkH0n38MpQzdkLT8lX8FhyYtAtG4xVe3RA2YnMK8rY9TrsphmBKvIp8Up5eTMkfRDbRQAMcNgEOo+qovOcPvXBHNZ4C4OxIXadzmXOien1uzcTCP4kFHO2xCw4fXNUnBPzeQU+cQL1tDeIIsBo2NCqTTOio1R+5KjRPYsvQuOi0YrjQN+JpnWhsTlbcrslbuYxeq3w2ZyhDiBeje6W45KNba6CRu6CFMCzAk3WYxvEWyjaANURG5SNQoV2oFce0DMETJwTVcF1alxdFXmSNZmVvbiEWtXEoC17ihU9S0F4me X-Forefront-PRVS: 014617085B X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BY2PR0301MB0742; 23:bllDvSkFvM0clr25LN9kHyG0nDatQA0fDklWTEa?= =?us-ascii?Q?ic+nePy1AuWl4Yq+rR8x34iHqQ33GjYOB+TPOMnS/X6FAIEfzju7+XET9C/h?= =?us-ascii?Q?5WE7PF0yA9GMCIh/E3he4QqLaYpTjTKYFyf5aYMa6SDIWxBlrwfUx6Wa+8OF?= =?us-ascii?Q?Zu9+wETzRX/2Q63ju3Q3pgJDbbMQvEW47mDowcQA5KPcjYLkS+Gc5nqFuc7Y?= =?us-ascii?Q?+53JECZoV3aACp6TN5svxn3VWAfx+tLqSWXznh1/mpKtTJRj2Y1sDr/67MTQ?= =?us-ascii?Q?9Xcy1Zjn/HVDeFK2ps/Ptt0ING4x5CBeuk4b9lfaOTJl4nRfbAI8/gLFF5eR?= =?us-ascii?Q?5MMQAfTYAHz1Ozxy2EEH/XO6Jxc2b/93xBcUzgftvTtTuE7TBuw3f6dd0wQp?= =?us-ascii?Q?UQ1TIsEZrkSHJnzsqxfSLKDCCQBkAFBHxSNvZizGEX4r5Mc5yckQ35WkgkOS?= =?us-ascii?Q?oawsVbQM+P2bdn1xZ9w/aaCh+ZJB8OwH0kdWOQqwZ2vJ9XzulKriA7Ch0ae+?= =?us-ascii?Q?CyDFAPKRz+BcFFGofpLxZWgVz2awTNhCkkFLuYOtPHqJE8w/5lzKAowR2FOW?= =?us-ascii?Q?iLlthQD74q3vAzNSK036SF3VQJzjRHFRYQqIYRrQaR3/hXPGAG6P+UwNCkcS?= =?us-ascii?Q?pJ0seVtNnklDVxbmQpXckIMCVAc00UtZo5ZgHd/P16yOk8NiYW+N59H/1O9Z?= =?us-ascii?Q?29gSS41H/5kqx4+LHZnRobQr1j7UjO/lrd1uoraBbQndG2UUb6Pe1D1Yi5SN?= =?us-ascii?Q?K5UK62i282zIxjLYwrBItuqlu+Ka3w9YJlRVcyn380naXWM86BadzDOQOGGc?= =?us-ascii?Q?oq65Kp5Tsublh+WDlOGUM6kWWFOuTTNaAOibvrGTmsE95TW3sqstF23a6hbH?= =?us-ascii?Q?hv9Fiw1ZpONasRAXaHDrTsv/h1Yeg5L+NAhJBJeem6yCjz+ac5GyGJfeGZy4?= =?us-ascii?Q?XDZ7fEUrew0LKlnKzvkzn9+qXVfapX64NygjlBPkM4NTHshFY/o75Vj9/32h?= =?us-ascii?Q?0UhKI1GDevB+XLWUZQoImnuDCWD4C8NTtZxVMVr2ED27XEiw8OCehGfkrto3?= =?us-ascii?Q?n7QPB75ZNIOSq5Hto3qdfIfyl+5zgGM9m4y9wuURsnVuykWNPbztAD0GISsH?= =?us-ascii?Q?pUVbdAVHLeN9t7rpu+RZ+//nEZ/6fUvxrwMpBvlEoa4uK+siO0xcZCPJ1TC0?= =?us-ascii?Q?bRUpIvg+rP3pg3FXlilKarMaq0fbFQ3E83KhQdy8FbQbeiNiO+T8p1R58Tg?= =?us-ascii?Q?=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; BY2PR0301MB0742; 6:Fsf4yKEcYPHEco5L9/SRiVkIR+ebTKowVheGGjevNhkDEMkt4Pwoav8svnJEuCcVzonfGIpvWTPVhFOety6Fbux3kochtyGbqz9JUYebA2NSGqfgID0ytm6Lat11I/vmLVGDr0G0HHZ4fla1iuz++IuRvaXKXJT78etCZv54V8DqH3WSdVeXLVbdZkYgw7LxzT93BW8hfmk+4hng41yDOcvQvPraiWz8bGbPN7Lj650Hl1qZXaIE1W+jsDCyx0xaXWrWVMYDqCIm+hnJNIOmmrt09xURNLo2j2g3Wgqk/HtmSRYV1Io7PSPzck0+HizhPQEaFMLNiu0HdU1IxnCNknAi5Yq2ujGCS9a8gHRu/cE6OBhDxOhc63sl2p9thu+P8KJTpgGReaaxzNC5p4Bz+AtjwZswB8zD2hJrYlZdnEgXPCxz7IjZU2Ed4MPOOMLr; 5:JIB2WTOKVBFKILf8fpJKmOqu7/RmaSOH8fNaCZZ0dd3jphHid/LkbnrLoTY97hvXc4PGufT5yu16840BjMSbQ+IVTZUw6SwLBgU6RegumsfzGwuRpBT/r8mk5B2w6yBSRfPl/Erpqcrx6z20OWDh5KIziie840PkbMbtgExykFSQ1kwIbZg21z/VsQeK1qFz; 24:95AaqLFaxMPWHfFTmkBiZXxG/kousZfKU16f5p90fEo0tDJesu6GmYBzg5A0vF6QwgyWsJJtj+pe7/qm8C4MrRnM/H6eOseeagome+RzQk4= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY2PR0301MB0742; 7:zzdeaIFV9KW4qJRLnsEderWCY6hynsBed4fr0+eO/ncXyP47vA62wJDjQHRaz3Cr8LG072iwzbNPlxqOTlgV/8XUwCNxEUI0C39GgiMMPKf2KRhQpEf/9sfAtpA6P5egn6YeOanFT7wuJ2YOV/YHIZjC01YWXjhp2swAMV4TxbaxNpyUeoqqP8N1dr6lwtUjXHq4eQAd4G00ri2iOB7rOFfyMpjLZQ0dt9X4A0dzXqnnTY+OKnv+FU/PTmfPHyktCbZ9BL/qOMLQeig9UdnqR+onYiwE1sXvWsKJGHS8a6iVYv/GFfVwqdabnarC8gfWRs1VThyFeYI0/BtNp3eghW+0J1k7p6LphOFM4sUyAcIit6vHtuYmxTWATU9TD3jvJ6kA4IzJJsymyNFjmx9SvlnTMo0xpQDNkxp14NAIm5jOmQkzx5MCN/zU7zFEhDryFJ476rLlqlbb7jN59DQEIA== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2016 12:44:04.1975 (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: BY2PR0301MB0742 Subject: [dpdk-dev] [PATCH 10/32] net/dpaa2: introducing dpaa2 bus driver for fsl-mc bus 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: Sun, 04 Dec 2016 12:44:06 -0000 The DPAA2 bus driver is a rte_bus driver which scans the fsl-mc bus. Signed-off-by: Hemant Agrawal --- drivers/net/Makefile | 2 +- drivers/net/dpaa2/Makefile | 60 ++++++++++++++ drivers/net/dpaa2/dpaa2_bus.c | 99 +++++++++++++++++++++++ drivers/net/dpaa2/rte_dpaa2.h | 121 ++++++++++++++++++++++++++++ drivers/net/dpaa2/rte_pmd_dpaa2_version.map | 4 + mk/rte.app.mk | 1 + 6 files changed, 286 insertions(+), 1 deletion(-) create mode 100644 drivers/net/dpaa2/Makefile create mode 100644 drivers/net/dpaa2/dpaa2_bus.c create mode 100644 drivers/net/dpaa2/rte_dpaa2.h create mode 100644 drivers/net/dpaa2/rte_pmd_dpaa2_version.map diff --git a/drivers/net/Makefile b/drivers/net/Makefile index bc93230..2bcf67b 100644 --- a/drivers/net/Makefile +++ b/drivers/net/Makefile @@ -55,7 +55,7 @@ DIRS-$(CONFIG_RTE_LIBRTE_THUNDERX_NICVF_PMD) += thunderx DIRS-$(CONFIG_RTE_LIBRTE_VIRTIO_PMD) += virtio DIRS-$(CONFIG_RTE_LIBRTE_VMXNET3_PMD) += vmxnet3 DIRS-$(CONFIG_RTE_LIBRTE_PMD_XENVIRT) += xenvirt - +DIRS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += dpaa2 ifeq ($(CONFIG_RTE_LIBRTE_VHOST),y) DIRS-$(CONFIG_RTE_LIBRTE_PMD_VHOST) += vhost endif # $(CONFIG_RTE_LIBRTE_VHOST) diff --git a/drivers/net/dpaa2/Makefile b/drivers/net/dpaa2/Makefile new file mode 100644 index 0000000..a99ce22 --- /dev/null +++ b/drivers/net/dpaa2/Makefile @@ -0,0 +1,60 @@ +# BSD LICENSE +# +# Copyright (c) 2016 NXP. All rights reserved. +# +# Redistribution and use in source and binary forms, with or without +# modification, are permitted provided that the following conditions +# are met: +# +# * Redistributions of source code must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# * Redistributions in binary form must reproduce the above copyright +# notice, this list of conditions and the following disclaimer in +# the documentation and/or other materials provided with the +# distribution. +# * Neither the name of NXP nor the names of its +# contributors may be used to endorse or promote products derived +# from this software without specific prior written permission. +# +# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +include $(RTE_SDK)/mk/rte.vars.mk + +# +# library name +# +LIB = librte_pmd_dpaa2.a + +CFLAGS += -O3 +CFLAGS += $(WERROR_FLAGS) + +CFLAGS += -I$(RTE_SDK)/drivers/net/dpaa2 +CFLAGS += -I$(RTE_SDK)/lib/librte_eal/common/ +CFLAGS += -I$(RTE_SDK)/lib/librte_eal/linuxapp/eal + +# versioning export map +EXPORT_MAP := rte_pmd_dpaa2_version.map + +# library version +LIBABIVER := 1 + + +# Interfaces with DPDK +SRCS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += dpaa2_bus.c + +# library dependencies +DEPDIRS-y += lib/librte_eal +DEPDIRS-y += drivers/common/dpaa/mc +DEPDIRS-y += drivers/common/dpaa/qbman + +include $(RTE_SDK)/mk/rte.lib.mk diff --git a/drivers/net/dpaa2/dpaa2_bus.c b/drivers/net/dpaa2/dpaa2_bus.c new file mode 100644 index 0000000..571066c --- /dev/null +++ b/drivers/net/dpaa2/dpaa2_bus.c @@ -0,0 +1,99 @@ +/*- + * BSD LICENSE + * + * Copyright (c) 2016 NXP. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of NXP nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#include +#include + +#include +#include +#include +#include +#include +#include +#include +#include + +#include "eal_filesystem.h" +#include "eal_private.h" + +void +rte_dpaa2_register(struct rte_dpaa2_driver *driver) +{ + struct rte_bus *bus; + + bus = rte_eal_get_bus("dpaa2"); + if (!bus) { + RTE_LOG(ERR, EAL, "DPAA2 bus not registered\n"); + return; + } + + rte_eal_bus_add_driver(bus, &driver->driver); +} + +void +rte_dpaa2_unregister(struct rte_dpaa2_driver *driver) +{ + struct rte_bus *bus; + + bus = driver->driver.bus; + if (!bus) { + RTE_LOG(ERR, EAL, "Unable to find bus for device\n"); + return; + } + + rte_eal_bus_remove_driver(&driver->driver); +} + +int rte_dpaa2_probe(struct rte_driver *driver __rte_unused, + struct rte_device *device __rte_unused) +{ + return 0; +} + +int rte_dpaa2_scan(struct rte_bus *bus_d __rte_unused) +{ + return 0; +} + +int rte_dpaa2_match(struct rte_driver *driver __rte_unused, + struct rte_device *device __rte_unused) +{ + return 0; +} + +struct rte_bus dpaa2_bus = { + .scan = rte_dpaa2_scan, + .match = rte_dpaa2_match, + .probe = rte_dpaa2_probe, +}; + +RTE_REGISTER_BUS(dpaa2, dpaa2_bus); diff --git a/drivers/net/dpaa2/rte_dpaa2.h b/drivers/net/dpaa2/rte_dpaa2.h new file mode 100644 index 0000000..b36eed8 --- /dev/null +++ b/drivers/net/dpaa2/rte_dpaa2.h @@ -0,0 +1,121 @@ +/*- + * BSD LICENSE + * + * Copyright (c) 2016 NXP. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in + * the documentation and/or other materials provided with the + * distribution. + * * Neither the name of NXP nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS + * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT + * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR + * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT + * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, + * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT + * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, + * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY + * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +#ifndef _RTE_DPAA2_H_ +#define _RTE_DPAA2_H_ + +/** + * @file + * + * RTE DPAA2 Interface + */ + +#ifdef __cplusplus +extern "C" { +#endif + +#include +#include +#include +#include +#include +#include +#include + +#include +#include +#include + + +struct rte_dpaa2_driver; +/** + * A structure describing a DPAA2 device. + */ +struct rte_dpaa2_device { + TAILQ_ENTRY(rte_dpaa2_device) next; /**< Next probed DPAA2 device. */ + struct rte_device device; /**< Inherit core device */ + uint16_t dev_type; /**< Device Type */ + uint16_t object_id; /**< DPAA2 Object ID */ + struct rte_intr_handle intr_handle; /**< Interrupt handle */ + struct rte_dpaa2_driver *driver; /**< Associated driver */ +}; + +/** + * A structure describing a DPAA2 driver. + */ +struct rte_dpaa2_driver { + TAILQ_ENTRY(rte_dpaa2_driver) next; /**< Next in list. */ + struct rte_driver driver; /**< Inherit core driver. */ + uint32_t drv_flags; /**< Flags contolling handling of device. */ +}; + +/** + * Register a DPAA2 driver. + * + * @param driver + * A pointer to a rte_dpaa2_driver structure describing the driver + * to be registered. + */ +void rte_dpaa2_register(struct rte_dpaa2_driver *driver); + +/** + * Unregister a DPAA2 driver. + * + * @param driver + * A pointer to a rte_dpaa2_driver structure describing the driver + * to be unregistered. + */ +void rte_dpaa2_unregister(struct rte_dpaa2_driver *driver); + +/** + * + */ +int rte_dpaa2_probe(struct rte_driver *driver, struct rte_device *device); +int rte_dpaa2_match(struct rte_driver *driver, struct rte_device *device); +int rte_dpaa2_scan(struct rte_bus *bus); + +/** Helper for DPAA2 device registration from driver (eth, crypto) instance */ +#define RTE_PMD_REGISTER_DPAA2(nm, dpaa2_drv) \ +RTE_INIT(dpaa2initfn_ ##nm); \ +static void dpaa2initfn_ ##nm(void) \ +{\ + (dpaa2_drv).driver.name = RTE_STR(nm);\ + rte_dpaa2_register(&dpaa2_drv); \ +} \ +RTE_PMD_EXPORT_NAME(nm, __COUNTER__) + + +#ifdef __cplusplus +} +#endif + +#endif /* _RTE_DPAA2_H_ */ diff --git a/drivers/net/dpaa2/rte_pmd_dpaa2_version.map b/drivers/net/dpaa2/rte_pmd_dpaa2_version.map new file mode 100644 index 0000000..31eca32 --- /dev/null +++ b/drivers/net/dpaa2/rte_pmd_dpaa2_version.map @@ -0,0 +1,4 @@ +DPDK_17.02 { + + local: *; +}; diff --git a/mk/rte.app.mk b/mk/rte.app.mk index f75f0e2..9e1c17c 100644 --- a/mk/rte.app.mk +++ b/mk/rte.app.mk @@ -101,6 +101,7 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_CFGFILE) += -lrte_cfgfile _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += -lrte_pmd_bond _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_XENVIRT) += -lrte_pmd_xenvirt -lxenstore +_LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += -lrte_pmd_dpaa2 -ldpaa2_mc -ldpaa2_qbman ifeq ($(CONFIG_RTE_BUILD_SHARED_LIB),n) # plugins (link only if static libraries) -- 1.9.1