From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-SN1-obe.outbound.protection.outlook.com (mail-sn1nam02on0063.outbound.protection.outlook.com [104.47.36.63]) by dpdk.org (Postfix) with ESMTP id 94E50591E for ; Wed, 15 Feb 2017 20:06:26 +0100 (CET) Received: from DM2PR03CA0036.namprd03.prod.outlook.com (10.141.96.35) by DM2PR0301MB0733.namprd03.prod.outlook.com (10.160.97.141) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.888.16; Wed, 15 Feb 2017 19:06:25 +0000 Received: from BN1BFFO11FD028.protection.gbl (2a01:111:f400:7c10::1:168) by DM2PR03CA0036.outlook.office365.com (2a01:111:e400:2428::35) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.888.16 via Frontend Transport; Wed, 15 Feb 2017 19:06:24 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=nxp.com; caviumnetworks.com; dkim=none (message not signed) header.d=none;caviumnetworks.com; dmarc=fail action=none header.from=nxp.com;caviumnetworks.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 BN1BFFO11FD028.mail.protection.outlook.com (10.58.144.91) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.904.16 via Frontend Transport; Wed, 15 Feb 2017 19:06:24 +0000 Received: from bf-netperf1.idc ([10.232.134.28]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v1FJ5fLh020023; Wed, 15 Feb 2017 12:06:21 -0700 From: Hemant Agrawal To: CC: , , , , , Date: Thu, 16 Feb 2017 06:09:12 +0530 Message-ID: <1487205586-6785-14-git-send-email-hemant.agrawal@nxp.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1487205586-6785-1-git-send-email-hemant.agrawal@nxp.com> References: <1485172803-17288-1-git-send-email-hemant.agrawal@nxp.com> <1487205586-6785-1-git-send-email-hemant.agrawal@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131316591850261745; (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)(39380400002)(39840400002)(39450400003)(39850400002)(39410400002)(39400400002)(39860400002)(2980300002)(1109001)(1110001)(339900001)(199003)(189002)(6916009)(2950100002)(77096006)(6666003)(626004)(47776003)(575784001)(5660300001)(86362001)(106466001)(48376002)(4326007)(389900002)(50466002)(2906002)(54906002)(8656002)(38730400002)(110136004)(2351001)(105606002)(8936002)(33646002)(92566002)(50226002)(81156014)(81166006)(356003)(104016004)(8676002)(36756003)(68736007)(50986999)(53936002)(76176999)(97736004)(5003940100001)(189998001)(85426001)(305945005); DIR:OUT; SFP:1101; SCL:1; SRVR:DM2PR0301MB0733; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD028; 1:l8TmptW1S1cPew6BiJKoB5N6bxuduH/72mMxeon0Q9pf9MUYuotOc95+Og1U/vto1NPYfolUAb8lQf3ThsrB7T+vKVYKYg0wduCWYUJA2aiNNi3hfk9doJMy3+dg3ggO3/RExBJA8bWzK+wTfN5KXLhCLI6BaJ7/mQvuU/9qtIS5NaauBNCXbq6eHuHNPaKKSQ4CW1zvsPusgT86pcxW17Te/XJjcoIlFMP82bxLnsjkjXF9gzBUOooLLvL0eaUdGfNEs0g/xjkstsCP5u3TBbRBP2tLqJWIJITpmpgooKI7V9W5YlFcJ4r+AiVbStUDe87m4bIunKh2/7PJ4he8+NkPNL/XEVzE7KRAZkKR9TSqxNqrgnAhwsvOHWKu7td2MbD5oa29ISmPrTLFX4wOXjMtSy4P28cYbc2g5cupfph8GhMOc0WorYHfOLjFpLrVa6WjQy+4tSttr0ZPDlmwVLNYsa72dwxl3XvzBGwWpTDMt4ELni8uDLsSf+3LlHXLHd5735FkgmOzRiafQSXsYMs5z6zY0b3gb6zLtF7ZmdVBw4xxPYllwCFEC+rF1VU++JHw1OzP5QS7mJRV7dP8Gj98xDTu+dSzRXwAwLuHUMnTdRBGdaeB/fxCucjmIfw5s00W5FW1DjH1fsyJeNJmRw== MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: 4ef48df7-8a43-4765-8cf1-08d455d5bcd0 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:DM2PR0301MB0733; X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB0733; 3:hQgfjEkNodGquhk9aeQq/RkA9rhfLAqSxOq8QIVbbHGTboBwqnABlNQFC92Kc8jwWpkxXUEdievbJPaD95uWnsoqk95nuZmUdwCQqfuGXJM99W+jy6zMStcNV3j1RM488p99kQxrvvHYJJOWAfpYlLS0ozCclMCmSMQ0jixwT/hMI61GmH4aDULkGSMKrdtBovaxA19M2TV0JdZ6wxxGmWLjb+5y2pQMppQByHmqk5rnwGK5j325ziYLDODislT3Xb14LV8pWAhhwv509satEHGZsC7HE6PSMBjATpEx0V7wmNy9rkB+lQEjS6HEQtU5SwYAonTxsfghbycbgKR/VGrXzYqoWTNgJ1cxdrpvV8fQyQdctioUjtIBzj2aqMai; 25:iIUhhAQikYOo3zqr5gZ6DbNup3fF97UcVRf4vD9GB6B98GkiVXKkZZe3KDE33s+ejk/YzetDiBY6++wk6zVbOgwkN9AhezD1X+BJMe27vMOXYLi1UXAB0SB7uCqJNtHAGkP9jINf2YTi0GXo1Y4r35WVbqTBiydj3wfne/bNQNBajUL43qEEtHC0CB6wInYfaua84RL+FARdD7p9ObkyrYNYyF2Jc3Q7MiSdSMIw0AeQGkW5h7zzKLgPMpFwyZeG1X6HxjLiqTaSpW3ENmXvoEtOzEISoUfzQ0dGPQvvW6aC7Fa5AakfOu2pmz9uQcmfCt+tJ+nDYtTZTPDZAMqAK2KKrM6U13ivpmAInZ/4Gy9HNpB8TscQBXu4pQ4PubUGW4ty+udGkyRWh5GIzdhYYxmV89ivKeqm6vGeUzmS6HhArEjgLh+XWcbddLShvgJiWXL3+jOrDYag4x/4KFxhng== X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB0733; 31:LB5umiJbf1L56A2MBeNuvoJ4Xp8vIXL9ncSKN1r4wXGaUeBhu7uUtAfsPppwx0nJS2EubEjs4xfQG5oHMJv3xtj/aGGDCl6jb1sRxp9I92FUPXG7ZjrvC37d9WQonDuqZh8XkStKufRHiJrD6Hb4u4dI1z7zUn3dWm6RYFW4qTQazklgeXlB6mmvpnl8Vwr4w8ow3iLp90oG5QGaVj1R+PMpgEMU/gCmtHbBnSl6J+2hKzraZ6rfGZIuqfy3vI5Y2CTv/vkLpaHFM/X95HydiFmwCalvXwi6aNYELA+3s5A= 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)(5005006)(13015025)(8121501046)(13017025)(13023025)(13018025)(13024025)(3002001)(10201501046)(6055026)(6096035)(20161123565025)(20161123556025)(20161123561025)(20161123559025)(20161123563025); SRVR:DM2PR0301MB0733; BCL:0; PCL:0; RULEID:(400006); SRVR:DM2PR0301MB0733; X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB0733; 4:uGr1UMF8D3P0BLRtmeLwY2tWJFlSybKPbGQM4gVWPmVft2Gta6Q3ZIGzIAsgNB/9ALVi4pY+8ZAP5nbKE2R0n9UR6FvTchGvDk5uy7cMPZdaYkJ8COgvUW+oINsVBTiY/u9ngMWCzL4gXLEDBKNqmNKNBpiaKAhgYPzPzsjZDRayZVsJsM4wkgE6gHz8NUVvPTdQ2k/LtahGacq2uMzA+UsHp6coMKdTs4oIznwH5jQ3uHR2ItDFvil9dl8OL8aF9VHfGqmqKyfWW7aAzMfddWWuxFss7wCRgjRhOk/JWnZ2q0taJA9TwJtk7BywMBlkGw7Y1w/GUEl94GKSkFKdYdsAeg7/xMgQbLrNfPji+O76xQtqIDpnJjw66tLigSaDl9/Z30byA8aED/raB6u/vxsEX+RGl7lwLfuUik/SgviwCNWaxUxTDph4uhhrq1wr9DEah25j7C2Z0LYtHIekpu0N+5020cRImREGqWacwKVNUISdI6tKtGflK934uFlxspDb153RQBy7ysc2RMeQfcZWkqERHHv5QSVAWQEK5Jj/86SuITGYHXMQ+inI3eA9Wq4ETNAalP/S7JdlpqrxGA61wsIEzyQLkyS0Fvk9oudlpFuZbANJIBibazX88MPF25IR3abHlRbDJN/MOqdVbCJISMgT/Z6+y0mi3B5lIVmZNs0Tzo/+dtDR2y2GJtZbIn49wNlMUvghSTghPoEF9JLWXc9ACsQvduR2IMJovcxaccbqjidLXh14fmotHMR3 X-Forefront-PRVS: 021975AE46 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR0301MB0733; 23:n3abnut/lhT8d7av1w7jG29WxZGJl+LLb2WiL7v?= =?us-ascii?Q?UG4iILl+2i+MsZzzceX/OHMe/7b9EWiQhVxdbsYqkEWwo5dM4TTx7WXskdum?= =?us-ascii?Q?1TBg8yAgvYuDZVJ0bi3u3kwfwUFaJDkvTvioSnOH/1FMP+0EzUsnlIAHKVS7?= =?us-ascii?Q?iq9Xqs+CO/QtOgZWMMgTsx4MV0tPqLsZDPVA7sjJokKuOCGT9o9yuhXPSNkc?= =?us-ascii?Q?CX2B9rIPEXz5braz0F6eehggMDtyuRbg4ygG0LdcbvUEY97G+Qdpnt4xHh1a?= =?us-ascii?Q?PxfInlCghR4Jz5t3k1uiJpwyxpzUzWINwILRrWwXkZJAimcRE67ATQ9ECKg1?= =?us-ascii?Q?yDnKWGza9JJcF7b+sWLAOSTUua2h6RWnUmHgGcvHhVwGM1cYOX1pNH4QqjMQ?= =?us-ascii?Q?SbfgOFULejsH05psLmXs8S9hdghENFkX3RCJEfZtpgyW3zTGjfG3m6AZb2vx?= =?us-ascii?Q?pcNF88MDEOd6LtkV66pv0hBHkq1ZwSEwCrf06vQgoP2BDL2JYqGXe3DW0As7?= =?us-ascii?Q?KruU/RbG1JdD7uGB939saKgcM1LW2hAspSP0FD/U8KHnkX7Nsrvb7ur6yKMS?= =?us-ascii?Q?ARELI2pBhMGmsPgelRX75X4QX9KKbdiPHUYdCnTt4olVb/SZdIsSWMvx/bGp?= =?us-ascii?Q?a3jGUkrJ2dOmDfILH266T3pnr0VnD+87+WkqH20o34WdYrJcpu6FDmKC7bnZ?= =?us-ascii?Q?i7Cbi3ld1aLf1nStY9vJ39iOy2d4hFeCKspuPtw8ttbC3s9eYIuD8NZV/94J?= =?us-ascii?Q?0hpyvbcSTiI3pTSw5vpFlJTKdCyM4Bk8hfQq+QChE0l6DGocoeSLnLc2E7V8?= =?us-ascii?Q?ADOk+o+gNpj2ADRjWW5d0X7ixPLVSo3OJrVT8ju9sX0Sqs7MLHvHQkinDR9C?= =?us-ascii?Q?s824s3ui1LQR4mufJpSDtv/KG/MDamWB92qRCBRwPIIhOkFDvewyIom3ipZI?= =?us-ascii?Q?hG4fUvjr6aijlVGDgVtoZ2N3Bh/D7VesjnIiyOl7hNWlYGfozw6n6BB9vKue?= =?us-ascii?Q?bps9ekNCIFx88p+iTOEtYh2gb7JZ9IkDlLrSLzi/D2I2uNbtbEpNBXCNrn0k?= =?us-ascii?Q?urb0Q8qmaseItVFvb9A4ZYAqbsqmOlu5uQP2kMvaF/2ZjpqiHta44vgZi0JC?= =?us-ascii?Q?5n7MnKJ8Te4qRD1DIOwuvdrUWgKJy7X7U4yGk842IlBvfNSY9T6T6kGrpDsC?= =?us-ascii?Q?B0e9AQKAUFcZHr/WnhHOOUFM+PuWe3QOo37Q2xV0b0b7aTBv36xsxclp7AoB?= =?us-ascii?Q?Re4EnqUTDOAQbGtCYKIuouEQTJYLvQEDXio8GqvETmzRkQd3fgSy5SzUgBvn?= =?us-ascii?Q?kLMnNMs6F++PG5PPNDqm3oxhdKoxS1L032GYemDNvCU+NworL/gegNdDSrTy?= =?us-ascii?Q?ph4QlgQ=3D=3D?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB0733; 6:HL8lRniY/IGBsAHhtoOyCAjjbRksLj3VRSNeKyGhb1eCzniT7hCdcR5VTps2YwS59hg6Vozmv0xlXxTHbrrai8YKqsSQ/Rg+YuusNKnPXuPpMfzESUuIrHNqqRFaCyJ5uLVhyOnWXD5wWdXUhSEFOFe9vDrvDLfAAQWM2Y5CHupsa9eRc3rkBfykOaAjnPUvVcQYHVrj9C8prj1z5i5PXAMLdi8+DLeiQsX1zqSTas6b8c8ZBSBJyFF48xV9dheh2mOZ5P/sLoMJkgpETNqALHieVcQbXKhl3hPWeX4qTo/Noe08XpKKWb44Tj9zPtYGVUN+zATLuO2U2UKcqcf8qtKCvaIFlcLIrNKrAA45bBwiXmO/QkXQJVaqT6rd31/2cc2DvIv/cZ3CVQgeImsWu8XzLIPKixyNhsYKaesSarg=; 5:Kgusjgbh7HiSFnNZqoGg8/6baQLtWTKcC3LMzCx4BV9E5h7DQ7WOKtoaeWhkFDmzqQke4imOSN19I2K1u/8+H+P+dVvSCcvH42uepn+MycfvBLKILOZBiXEu5K7d+N7BFUZQXbST6F5ZhOri+7drOROxGqTPD++SwgUkJOEFyNIdjHutUP5ENwZahnFBswq0; 24:t5WBFqQZFJ+Awxm+p2GRnqZaVgB3+aeCFt772NKP9guWNoRlpt+MCU1oR6q0ko17GF14z3rBu7BOEbesAchfWXUaS3VXue28OCytQ502/uA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; DM2PR0301MB0733; 7:KNTPJAeAzIilAy8tg2g3kAPtU7QdQ/HRTIaaMT95wu/BotjEo1c16iViB2Q/5BRiMXkBQNmfNTZKZ3zegXKtlt2ZYxgLkrdHBABGrDkdk/Dl3W3oYh2o2SjtGfCtYUU/W6IEh680lFsDl0MnVRPOrfS9r3YXWWn8ldTfcxNxVZ2JWCOstK4Sux4Yy4jBeBreT6cojREUkTCRk/nSAnouac8bVzvXs6f/Io3n1C68ptqNU2sBQIwuBvEpgQh+nMe2aIDOcw1u1QPvkw18G+cEQIEQOigqSdXaV/1tonwcO9yIM+4TDyDWPiyyMiQ+V0dIJ2Mi88wyw3GKD3GLuXin2A== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Feb 2017 19:06:24.6673 (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: DM2PR0301MB0733 Subject: [dpdk-dev] [PATCHv7 13/47] net/dpaa2: introducing NXP DPAA2 PMD driver 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: Wed, 15 Feb 2017 19:06:27 -0000 add support for fsl-mc bus based dpaa2 pmd driver. Signed-off-by: Hemant Agrawal --- MAINTAINERS | 1 + config/common_base | 5 + config/defconfig_arm64-dpaa2-linuxapp-gcc | 5 + drivers/bus/Makefile | 2 + drivers/bus/fslmc/Makefile | 4 + drivers/common/Makefile | 4 + drivers/common/dpaa2/Makefile | 4 + drivers/common/dpaa2/qbman/Makefile | 4 + drivers/net/Makefile | 2 +- drivers/net/dpaa2/Makefile | 61 ++++++++++++ drivers/net/dpaa2/dpaa2_ethdev.c | 142 ++++++++++++++++++++++++++++ drivers/net/dpaa2/dpaa2_ethdev.h | 44 +++++++++ drivers/net/dpaa2/rte_pmd_dpaa2_version.map | 4 + mk/rte.app.mk | 3 + 14 files changed, 284 insertions(+), 1 deletion(-) create mode 100644 drivers/net/dpaa2/Makefile create mode 100644 drivers/net/dpaa2/dpaa2_ethdev.c create mode 100644 drivers/net/dpaa2/dpaa2_ethdev.h create mode 100644 drivers/net/dpaa2/rte_pmd_dpaa2_version.map diff --git a/MAINTAINERS b/MAINTAINERS index c151546..539f5f3 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -360,6 +360,7 @@ NXP dpaa2 M: Hemant Agrawal F: drivers/bus/fslmc/ F: drivers/common/dpaa2/ +F: drivers/net/dpaa2/ QLogic bnx2x M: Harish Patil diff --git a/config/common_base b/config/common_base index d162228..11760a4 100644 --- a/config/common_base +++ b/config/common_base @@ -292,6 +292,11 @@ CONFIG_RTE_LIBRTE_THUNDERX_NICVF_DEBUG_MBOX=n CONFIG_RTE_LIBRTE_FSLMC_BUS=n # +# Compile burst-oriented NXP DPAA2 PMD driver +# +CONFIG_RTE_LIBRTE_DPAA2_PMD=n + +# # Compile burst-oriented VIRTIO PMD driver # CONFIG_RTE_LIBRTE_VIRTIO_PMD=y diff --git a/config/defconfig_arm64-dpaa2-linuxapp-gcc b/config/defconfig_arm64-dpaa2-linuxapp-gcc index 365ae5a..e63ff56 100644 --- a/config/defconfig_arm64-dpaa2-linuxapp-gcc +++ b/config/defconfig_arm64-dpaa2-linuxapp-gcc @@ -46,3 +46,8 @@ CONFIG_RTE_MAX_NUMA_NODES=1 # Compile NXP DPAA2 FSL-MC Bus # CONFIG_RTE_LIBRTE_FSLMC_BUS=y + +# +# Compile burst-oriented NXP DPAA2 PMD driver +# +CONFIG_RTE_LIBRTE_DPAA2_PMD=y diff --git a/drivers/bus/Makefile b/drivers/bus/Makefile index 60e9764..8f7864b 100644 --- a/drivers/bus/Makefile +++ b/drivers/bus/Makefile @@ -31,6 +31,8 @@ include $(RTE_SDK)/mk/rte.vars.mk +CONFIG_RTE_LIBRTE_FSLMC_BUS = $(CONFIG_RTE_LIBRTE_DPAA2_PMD) + DIRS-$(CONFIG_RTE_LIBRTE_FSLMC_BUS) += fslmc include $(RTE_SDK)/mk/rte.subdir.mk diff --git a/drivers/bus/fslmc/Makefile b/drivers/bus/fslmc/Makefile index 7cccc0e..ce799da 100644 --- a/drivers/bus/fslmc/Makefile +++ b/drivers/bus/fslmc/Makefile @@ -35,6 +35,10 @@ include $(RTE_SDK)/mk/rte.vars.mk # LIB = librte_bus_fslmc.a +ifeq ($(CONFIG_RTE_LIBRTE_DPAA2_PMD),y) +CONFIG_RTE_LIBRTE_FSLMC_BUS = $(CONFIG_RTE_LIBRTE_DPAA2_PMD) +endif + CFLAGS += -O3 CFLAGS += $(WERROR_FLAGS) CFLAGS += "-Wno-strict-aliasing" diff --git a/drivers/common/Makefile b/drivers/common/Makefile index cba1134..b52931c 100644 --- a/drivers/common/Makefile +++ b/drivers/common/Makefile @@ -31,6 +31,10 @@ include $(RTE_SDK)/mk/rte.vars.mk +ifeq ($(CONFIG_RTE_LIBRTE_DPAA2_PMD),y) +CONFIG_RTE_LIBRTE_DPAA2_COMMON = $(CONFIG_RTE_LIBRTE_DPAA2_PMD) +endif + ifeq ($(CONFIG_RTE_LIBRTE_FSLMC_BUS),y) CONFIG_RTE_LIBRTE_DPAA2_COMMON = $(CONFIG_RTE_LIBRTE_FSLMC_BUS) endif diff --git a/drivers/common/dpaa2/Makefile b/drivers/common/dpaa2/Makefile index 9681729..87f08bb 100644 --- a/drivers/common/dpaa2/Makefile +++ b/drivers/common/dpaa2/Makefile @@ -31,6 +31,10 @@ include $(RTE_SDK)/mk/rte.vars.mk +ifeq ($(CONFIG_RTE_LIBRTE_DPAA2_PMD),y) +CONFIG_RTE_LIBRTE_DPAA2_COMMON = $(CONFIG_RTE_LIBRTE_DPAA2_PMD) +endif + ifeq ($(CONFIG_RTE_LIBRTE_FSLMC_BUS),y) CONFIG_RTE_LIBRTE_DPAA2_COMMON = $(CONFIG_RTE_LIBRTE_FSLMC_BUS) endif diff --git a/drivers/common/dpaa2/qbman/Makefile b/drivers/common/dpaa2/qbman/Makefile index 7ac1ba7..18bca6b 100644 --- a/drivers/common/dpaa2/qbman/Makefile +++ b/drivers/common/dpaa2/qbman/Makefile @@ -36,6 +36,10 @@ include $(RTE_SDK)/mk/rte.vars.mk # LIB = librte_common_dpaa2_qbman.a +ifeq ($(CONFIG_RTE_LIBRTE_DPAA2_PMD),y) +CONFIG_RTE_LIBRTE_DPAA2_COMMON = $(CONFIG_RTE_LIBRTE_DPAA2_PMD) +endif + ifeq ($(CONFIG_RTE_LIBRTE_FSLMC_BUS),y) CONFIG_RTE_LIBRTE_DPAA2_COMMON = $(CONFIG_RTE_LIBRTE_FSLMC_BUS) endif diff --git a/drivers/net/Makefile b/drivers/net/Makefile index 40fc333..c2f64ce 100644 --- a/drivers/net/Makefile +++ b/drivers/net/Makefile @@ -35,6 +35,7 @@ DIRS-$(CONFIG_RTE_LIBRTE_PMD_AF_PACKET) += af_packet DIRS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += bnx2x DIRS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += bonding DIRS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD) += cxgbe +DIRS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += dpaa2 DIRS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += e1000 DIRS-$(CONFIG_RTE_LIBRTE_ENA_PMD) += ena DIRS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += enic @@ -57,7 +58,6 @@ 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 - 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..c6a2764 --- /dev/null +++ b/drivers/net/dpaa2/Makefile @@ -0,0 +1,61 @@ +# BSD LICENSE +# +# Copyright (c) 2016 Freescale Semiconductor, Inc. All rights reserved. +# 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 Freescale Semiconductor, Inc 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)/drivers/bus/fslmc +CFLAGS += -I$(RTE_SDK)/drivers/common/dpaa2/qbman/include +CFLAGS += -I$(RTE_SDK)/lib/librte_eal/linuxapp/eal + +# versioning export map +EXPORT_MAP := rte_pmd_dpaa2_version.map + +# library version +LIBABIVER := 1 + +SRCS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += dpaa2_ethdev.c + +# library dependencies +DEPDIRS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += lib/librte_eal lib/librte_ether +DEPDIRS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += drivers/bus/fslmc + +LDLIBS += -lrte_bus_fslmc + +include $(RTE_SDK)/mk/rte.lib.mk diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c new file mode 100644 index 0000000..bdef362 --- /dev/null +++ b/drivers/net/dpaa2/dpaa2_ethdev.c @@ -0,0 +1,142 @@ +/*- + * BSD LICENSE + * + * Copyright (c) 2015-2016 Freescale Semiconductor, Inc. All rights reserved. + * 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 Freescale Semiconductor, Inc 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 +#include + +#include +#include "dpaa2_ethdev.h" + +static struct rte_dpaa2_driver rte_dpaa2_pmd; + +static int +dpaa2_dev_init(struct rte_eth_dev *eth_dev) +{ + /* For secondary processes, the primary has done all the work */ + if (rte_eal_process_type() != RTE_PROC_PRIMARY) + return 0; + + eth_dev->data->drv_name = rte_dpaa2_pmd.driver.name; + + return 0; +} + +static int +dpaa2_dev_uninit(struct rte_eth_dev *eth_dev __rte_unused) +{ + if (rte_eal_process_type() != RTE_PROC_PRIMARY) + return -EPERM; + + return 0; +} + +static int +rte_dpaa2_probe(struct rte_dpaa2_driver *dpaa2_drv, + struct rte_dpaa2_device *dpaa2_dev) +{ + struct eth_driver *eth_drv; + struct rte_eth_dev *eth_dev; + char ethdev_name[RTE_ETH_NAME_MAX_LEN]; + + int diag; + + eth_drv = (struct eth_driver *)dpaa2_drv; + + sprintf(ethdev_name, "dpni-%d", dpaa2_dev->object_id); + + eth_dev = rte_eth_dev_allocate(ethdev_name); + if (eth_dev == NULL) + return -ENOMEM; + + if (rte_eal_process_type() == RTE_PROC_PRIMARY) { + eth_dev->data->dev_private = rte_zmalloc( + "ethdev private structure", + sizeof(struct dpaa2_dev_priv), + RTE_CACHE_LINE_SIZE); + if (eth_dev->data->dev_private == NULL) { + RTE_LOG(CRIT, PMD, "Cannot allocate memzone for" + " private port data\n"); + rte_eth_dev_release_port(eth_dev); + return -ENOMEM; + } + } + eth_dev->device = &dpaa2_dev->device; + dpaa2_dev->eth_dev = eth_dev; + eth_dev->driver = eth_drv; + eth_dev->data->rx_mbuf_alloc_failed = 0; + + /* Invoke PMD device initialization function */ + diag = dpaa2_dev_init(eth_dev); + if (diag == 0) + return 0; + + if (rte_eal_process_type() == RTE_PROC_PRIMARY) + rte_free(eth_dev->data->dev_private); + rte_eth_dev_release_port(eth_dev); + return diag; +} + +static int +rte_dpaa2_remove(struct rte_dpaa2_device *dpaa2_dev) +{ + struct rte_eth_dev *eth_dev; + + eth_dev = dpaa2_dev->eth_dev; + dpaa2_dev_uninit(eth_dev); + + if (rte_eal_process_type() == RTE_PROC_PRIMARY) + rte_free(eth_dev->data->dev_private); + rte_eth_dev_release_port(eth_dev); + + return 0; +} + +static struct rte_dpaa2_driver rte_dpaa2_pmd = { + .drv_type = DPAA2_MC_DPNI_DEVID, + .probe = rte_dpaa2_probe, + .remove = rte_dpaa2_remove, +}; + + +RTE_PMD_REGISTER_DPAA2(net_dpaa2, rte_dpaa2_pmd); diff --git a/drivers/net/dpaa2/dpaa2_ethdev.h b/drivers/net/dpaa2/dpaa2_ethdev.h new file mode 100644 index 0000000..5778780 --- /dev/null +++ b/drivers/net/dpaa2/dpaa2_ethdev.h @@ -0,0 +1,44 @@ +/*- + * BSD LICENSE + * + * Copyright (c) 2015-2016 Freescale Semiconductor, Inc. All rights reserved. + * 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 Freescale Semiconductor, Inc 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 _DPAA2_ETHDEV_H +#define _DPAA2_ETHDEV_H + +struct dpaa2_dev_priv { + void *hw; + int32_t hw_id; + uint16_t token; + + uint8_t flags; /*dpaa2 config flags */ +}; +#endif /* _DPAA2_ETHDEV_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 92f3635..c327ade 100644 --- a/mk/rte.app.mk +++ b/mk/rte.app.mk @@ -108,6 +108,9 @@ _LDLIBS-$(CONFIG_RTE_LIBRTE_BNX2X_PMD) += -lrte_pmd_bnx2x -lz _LDLIBS-$(CONFIG_RTE_LIBRTE_BNXT_PMD) += -lrte_pmd_bnxt _LDLIBS-$(CONFIG_RTE_LIBRTE_PMD_BOND) += -lrte_pmd_bond _LDLIBS-$(CONFIG_RTE_LIBRTE_CXGBE_PMD) += -lrte_pmd_cxgbe +_LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += -lrte_pmd_dpaa2 +_LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += -lrte_common_dpaa2_qbman +_LDLIBS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += -lrte_bus_fslmc _LDLIBS-$(CONFIG_RTE_LIBRTE_E1000_PMD) += -lrte_pmd_e1000 _LDLIBS-$(CONFIG_RTE_LIBRTE_ENA_PMD) += -lrte_pmd_ena _LDLIBS-$(CONFIG_RTE_LIBRTE_ENIC_PMD) += -lrte_pmd_enic -- 1.9.1