From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM02-CY1-obe.outbound.protection.outlook.com (mail-cys01nam02on0073.outbound.protection.outlook.com [104.47.37.73]) by dpdk.org (Postfix) with ESMTP id ECB03F963 for ; Thu, 19 Jan 2017 14:25:26 +0100 (CET) Received: from BLUPR0301CA0040.namprd03.prod.outlook.com (10.162.113.178) by CY1PR0301MB1580.namprd03.prod.outlook.com (10.162.166.18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.845.12; Thu, 19 Jan 2017 13:25:25 +0000 Received: from BN1BFFO11FD020.protection.gbl (2a01:111:f400:7c10::1:174) by BLUPR0301CA0040.outlook.office365.com (2a01:111:e400:5259::50) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.860.13 via Frontend Transport; Thu, 19 Jan 2017 13:25:24 +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 BN1BFFO11FD020.mail.protection.outlook.com (10.58.144.83) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.803.8 via Frontend Transport; Thu, 19 Jan 2017 13:25:23 +0000 Received: from bf-netperf1.idc ([10.232.134.28]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v0JDO4ex015351; Thu, 19 Jan 2017 06:25:20 -0700 From: Hemant Agrawal To: CC: , , , , , , Hemant Agrawal Date: Thu, 19 Jan 2017 18:53:48 +0530 Message-ID: <1484832240-2048-24-git-send-email-hemant.agrawal@nxp.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1484832240-2048-1-git-send-email-hemant.agrawal@nxp.com> References: <1484679174-4174-1-git-send-email-hemant.agrawal@nxp.com> <1484832240-2048-1-git-send-email-hemant.agrawal@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131293059239852360; (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)(39850400002)(39450400003)(39860400002)(39410400002)(39400400002)(39380400002)(39840400002)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(6666003)(85426001)(33646002)(53936002)(626004)(356003)(105606002)(305945005)(6916009)(2950100002)(47776003)(97736004)(106466001)(5003940100001)(36756003)(5660300001)(104016004)(2906002)(4326007)(86362001)(5890100001)(77096006)(81156014)(81166006)(50986999)(8676002)(8936002)(76176999)(50226002)(50466002)(54906002)(8656002)(48376002)(2351001)(189998001)(92566002)(110136003)(38730400001)(68736007); DIR:OUT; SFP:1101; SCL:1; SRVR:CY1PR0301MB1580; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD020; 1:HIa3drMDtlP6ki2BcamBickus5kc4QiAi3MWql5YSEFe9qeT1zX0z/NiJstSxdl/21c3kiVTtCL4aORmHF08Wga1LJTy+uhakOMXm7Zr3DawlkkctMYtIlMxfFLpq/i8tcjCIZUwNo67BZ2aj5d9UbFkFn7y3N6+RBXIkdavd0SSlkZCaZV8As5Zgzu8lZANRo2whzcBVjpESVZV1vIqRFBDEXWHUTZSvHX/go3roYDNUj+fa1IOZCZicp4ab/WSwuoeehL/hgVlZUL69fVQ0BNvdzuf5Cn7B31NgIGTp1aI33XDXSQVQUnD6pffx5nkMmn4r5++mtcybkAvch7V0k6MDUDDjYg1aRW/yWjBX7x8PxefxKYJb441Fxl3e8IhCw/hppSUWiOdwzd+V4DvSLO66gY5NztsAqFmeJKW1dv6D9QDNc/U1Hv3HbAeQekn2WMSwZlF+BVmmzVG2gq9IDrO4I9JlxI+ELc7gKWjqtJR5NoOzfwXADMciWUd6WWaniHKWfutX1zp9IhpTfP50vBk5Zky79d8FpplZzh+NoKe0+Yrl/YWvL66vfKpbEfWRkaWAQP+Jqtd4umnzqmGrJvVvh66SGgfkqA9LQvUwuIn9y45Gv5HJ0QS6dMeIHhvqILd89UQjWlL1HQLkrauHs+KAdZsHkr7RGItCeoVaPTYi466FUC/w5/Fwa5xFYr6f8UuEdq4668nJlb96YklDMAdza4Tz+xvmXcAqm1afnwU/VOjbPBm3jVeFJIJtleR MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: 4949b1aa-ecee-456d-2e70-08d4406e9fdb X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:CY1PR0301MB1580; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB1580; 3:bwwK+PZHUNtVhDFXribIl3XHNzBAZE8bKxmKJ882xOpQ2Jifna9dxHpc561CPbEZuVUKUVVloJsWwhp28r5voCVo7luqTETwQGWlZEX0FoY0mqmGsLyglf/Nfn3JG4M6LA5Y0PEembLcsbpptQG37dlh/3T69VB3mXIkV7oWLamO+ioRVYsGOn504ynoOkqj3zHXhJ/H/9r6uzmUmnCaaWHh+fBPNzyaexB3qZR2mzi+9aWXqmX0OS7g7PhObT90ECWC4JwQRL003L9K3YrZP8gaF+i7irMwWOy7+hI0SeZbPc/cuZ5HOZwTl1LPMVblfTtmEGZIFy/1h3/Sjnbu0LxjilPhV8AJ9J9Exoamr3/HtcsOT4Z3KVRj5dxs2zK3 X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB1580; 25:OUmatHIM1JqEB54P3DL8gIwQ9MnNzZjO31fQMtUo0RQJTYenRMtMCmtwKPsK+Qojq7MOBxrFLm5epBSigmgLEvYQt2ShlDv/YUuuAoJIVfTLL15uuVdU8ELRjbtUCogWd6X5D9m6hLlVW9zDuM0ICNpOV3/D3Ke9VdoC55YrOoyDut8xLexmdMYY5z8wV8LomOzTIKq/Brw/00NyD+o3h2LY6DXSUjY04XVAAHgb3NGzQ/lepTk3+XYHMACTp75O+vN19xQvZRWw7tBgA/Huo2ty/gdQujF/6RcizPI1JttgGYOCbbbnb8JJotSA5oDephTCmZIYykqkO3oJQxEtWanCO29bA4NSNXZq1/vQNEKEmNV+Q3wPjvXXolzjXCjDxhMyuDMp/5tmDaVlrwanlAwjvtT2h6DUPaxuya//ThTrrrLLOLapF4TbTyVQ1idXnwJbCXkoolvH/J09OyP4IPL5Yh94PzErz4m+mvZFL5ulrnSdAEAihP+OZtCVYHZTdeJTDNH/ulDFbbJLMG/xvBzxCEmGWKSHXQyBMvuKtxMA4WMRDbGX7awoPApTP65e12eHEi5WhR6eygNn/RLRp4lrfE091sKn6cBU4Hgy20PJTwq77Kcacr1Z8ia3ceNycJ9jbKiUCaXQihYkMOSw0vUhtJqFZ2H3xNbeVzi4kHSmDg559A53tYziHan+N8HQuFH1qmFP8sc2wlCTUTHkJb+ym6Be8++tXYy2DGGRn7ogmZX0niqqAG5rbjJ1fsin5TqjC0LwCS4yIBATOQKfwuY1IjhlIhdRdFQXSZdtJwYJRDij+isQ5SchyQI7SP4d X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB1580; 31:db5oLiNw2XyZn6znQ5W29qVrjfnZjSbka4Kc2NCEQasUTdcrzn/REgN9iXEDWtP9gHG1BXjxErRYfuHZO0b9Np3RfC+z4BFwqgql02hFCCTB+GfEQjw2bT8ihsixS7C5mcg9KxdQapdeTT27icBldfg46XNC4PmNwz88ecBVUNOe+qJY2+eWKPjAdBSS4LE2P8ZHvYBLbKgCumB2/8cWsgcEp/BUIGs9N8K3iqIenJ1aP85PoywgST82tll7qVUc7c3bvvaZIPwAADfntsa60xVOzdTIlf+E+KffDvXTMpU= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197)(275809806118684); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6095060)(601004)(2401047)(13023025)(13017025)(13015025)(13024025)(13018025)(5005006)(8121501046)(3002001)(10201501046)(6055026)(6096035)(20161123561025)(20161123559025)(20161123556025)(20161123563025)(20161123565025); SRVR:CY1PR0301MB1580; BCL:0; PCL:0; RULEID:(400006); SRVR:CY1PR0301MB1580; X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB1580; 4:DnBxme4i1UDqp2XPoo4rtNo+K4pTusIMPGu+zrC2dtmuln83ELwGZK3a1sZ2pZYN3SCrf9PeJhANFc/L7nTm8argvLF+31F/89iOOyFV8GroFBpy2TjUUF5V0tSByRru4waNa0nYhXa0uHWrGve6dbRr5DdSoyLmdsGOzyNv/zh3wqhz+UZMe1aLThwvyhdjEsfhEYMgrkTyIV6h5YY/+/wTFVB+NsFwvfQgQAy8KKi0w8YVucwvYQ+oq2bMSEy0GehcX+bYuW20LN6dZJp6t0rB2yvmLOCl/HqQ9KW6v4dZzDEU9jVebdr1dFPR6/Cpt+xMbajWWre9XXPhYjy5sRJhkBrqGovcOTfRZMXmkOo6b+NcfV0jcTM4PCJn5GwfvfDtUqmYRy6YLnrHEcYplvUU0XsZRqg9OSm4SQqaqvqI+1mikqhGBQghb8axyoNBT9eWoouK8fAMI5fmNl5Bb5f4+6KJe2X0olsiamv5zIUzbIbmrzfZtggtX69TtUGqIQqtnmSeGVm6aWeFMz7a+L9CQozYoVb97PCixCvCN6yKHOIyhs/q3aAKdDzArB3NW1PKltfPH3i2SGjGHaXF27/lC2RM4l67xD7c25IoxcgLTFkXAz/UJkPwnioeml2NQ6URPjpSRedxzaqQnUakBFbbzeOSjXft7pV0neuNcEXHNEgl8Z5VSd2KfnJVA8EXzkWiB43N+J3ENsxx9YLtWi1fh8CFQzdgF9B6+KNGcMK9vVjKmmKpieY8BBnzvxoKTmDOfJv3VuV/VyFXeRxS3Q== X-Forefront-PRVS: 0192E812EC X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; CY1PR0301MB1580; 23:NeAwow2KrkeHE0a6rmc+zUqVBzL7MrAiiVqJlgA?= =?us-ascii?Q?0T0GA8Xob00JdrjLpcjEvNHbbRQ9tZTfIvnMiRv64zseRoNGUYqdOTmNy8VI?= =?us-ascii?Q?Wl5H3WvQ1+78sUwairNpnqIeav8fJFYgBU9VIQ6V61SX4XqYZIuelyF9Kjs2?= =?us-ascii?Q?8yWwIT6HZ1qzOTFxnD0/TDWgM5cXmdtWeaKuDvTm1EDAYP7Q51z6HllOCzKF?= =?us-ascii?Q?firWVV/XodpOjMGrfg/7/ktstVQtsQlUpiROGHUxriYiFjI8N3LMxPVNPYB8?= =?us-ascii?Q?n8Ecp2iWcupTmOluSSe5HdNNlG1UJKZ4vDWycKBEKq9JHDXSsDYcr/Ma2kzu?= =?us-ascii?Q?OxcJYPX80HlOlV/T/B+HxuOJeGMaqk2ZO7qxAR3T0Bxx29+O9NGLHoeE+yNf?= =?us-ascii?Q?D6KOVtdJkxYnAeQvtZb93QLLAm0LcP5OKtcVevPi+hMu/HyIT4E9HDoLjlCd?= =?us-ascii?Q?Y8uKNlc+0YIC7ofoXisRy6wRI0SBJNVCNItsY3jkkll5lBOTPXoaS0+IVU88?= =?us-ascii?Q?7vdHIrwyOBh4y/tSXygtTjTxV56ARZaRRvzwEbsQcrRLsKgZhgD4TGgEHMp1?= =?us-ascii?Q?WK839P+5+WowxHH3gIaeblu6lYeuO/9XX1hNfJSXbjLpaYQgoHZCE41HhCrT?= =?us-ascii?Q?f4lir74bT8axDOUB94IAYHAOpHN1yvoO7UFWQyhCmwHVGOmnJXmGfIeIHoHK?= =?us-ascii?Q?HOWa8qbg9yX9/xYEGEp4aoJYEfh+1MEz5B99zy1CY1X1wTPphqUD2y3/9EV/?= =?us-ascii?Q?wiamEt5BE0lK2bTm1T3PXHDZjKc52P9YgI4dXCc2OZV9ReBjw9pQLTG/kQ9j?= =?us-ascii?Q?OKhSkxd/hEDBqhr5Qlgye2h5NUCotzsufhK0tjivyNd/tiK0aeJBZuxLB48A?= =?us-ascii?Q?xnFT2bymgUXd66CsJZnyOKUZ7OChGQ20Rz3o6qxHNUWXlIfsXXUCApakhZdY?= =?us-ascii?Q?nXkXCIb2cjp1QchwxYcW+kw7q8hDHquPeVEqeCbT4Ks+YmVg//qJ1mD5r6K5?= =?us-ascii?Q?xkTpXRvtQkZxOBv16v06B4rPsw0Nta+p42OVSy1Z+q4vKXDmuA4WnKo2rgYQ?= =?us-ascii?Q?DBa4CwtKB8RB+ODT07OQe5Vy3Ro0LxkRxnOKj1YM7Rum5q1Jv45ge1PS17jy?= =?us-ascii?Q?GOCnciZrPpL89Kpf3bCnErCyn6bvFwYotu3qTKxBkKPw5ImYP5WWr67VFgBu?= =?us-ascii?Q?kSwjoDYiLzVBRSVbD5efS6jkiCvJXCnjWT5uQ3eC1AWWadcAkrIkRFievR3g?= =?us-ascii?Q?7vVIp1SIjRmEeRoJIJBbZP6OkOv48OQyDfY6H7mMmgWFWwWLXgafDBRLvcEY?= =?us-ascii?Q?T4/of5J3nJdPetQkqaWW5deNTAoSMh8rwW2AVeWG83XkE?= X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB1580; 6:/CkLJMO3Vdq/KTQGMoYQjL/3oR2Ywtou1Fa4SwVJX+hJUeSU4MqJfGDUl/1LjT+RCgWyNOLWe1zkF4SEq8L3bP9kO/9D/k5VTf9yZRWipIX82OacoN+I9RMTr+SimQYruartEFS/i6EmKsMPiy872z7dP7vareI8SOQOucwVfywxRWU/usMqJs3Gcu41Bmr+DA6huomoLUtMQZ92GEVxStlvttqTAd0L3PD0MvlwthO+jG5txJCzRJUIp+eo/hU1QQNRO9w58qqRQmAzUh0Y9XEfFpKTE5WeNsr1UQGm1LiCVHNn5ei8klMUo3qAmk5x+yejF9+G0L9PXbRqLJaAv+b3b+yu0CBQvi9w2GzBDdFmG+xY/VrTUQpSJEPaG512wuWAZA/hHnVxpPoOeMLjJbqW9YZ1LxFqIrrWuHJBLmAvDclpEvrml/uu7AmzsQl0; 5:ZalhJWrd+TFRmIdumOe4CGHN9RPAruV5BmPNoV/ZEYtm3NZSagYtlp2L/LL0twFsY46x4V9EJY4IacifBE1MG8MwACDFpK4KStTlj7kVr7Z7NxthYBHJC1mdd6WYgoKjzKKOdWQ65Qz9dk328jepLXwah3lHLp5/9qm3PRAyMjITIAmSfsDowA48jFCFSHsk; 24:FpIXH/CwIBhOVmbtc2VfG2eXA7mcQgMue+GAz5lKAB0iBq/h/FR8X4QCX1FaDJgClSYTjRJ/8lqAn5Z7Qiho3NzETShjWi171tjU+RunfrU= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; CY1PR0301MB1580; 7:YsVHR6iiUv7OxDbO9ZPpl5anMc9JjBNHiYcu3Qj2kWUU+7tBuPOPMHLMlpboUuhqiZrHdBW+d/DmnZjNDY4F4FaulSKMjkjxmA+KocVC5ZBj3gEe9HieYKtg45WKQACQND76rMSk2BS9jxcron89g5T3n4V4zgudj8i5VAgg7tGcH5Z244w+5sBakJWeHfw1p8NnlWGh1r2mgV0pINZKqy+LHh8ihLcQA4TqitNSCG0AdyGB3m0HQU77Fig8H8bHLgni6hjW1SsR1j9dDigzHYXO0EskKLCCQYp74FUQqTVfRDlPvM5PrYFDYSb4K40NHxBfzeK+9WKNZ8xiSJrf8H6Khxgd5yXHSg5z3MzLzKnGZ8+ZswWH0pVXnnxnh41w9Zl7Rz/9VjxGgcTHATzr1qLVoCf4ly69lflhg9iWG70fofOzaqjbbS+ogEShNWwY55bz4ZmqnX8VNJtjWXDb6g== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Jan 2017 13:25:23.6888 (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: CY1PR0301MB1580 Subject: [dpdk-dev] [PATCHv5 21/33] net/dpaa2: attach the buffer pool to dpni 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: Thu, 19 Jan 2017 13:25:27 -0000 This patch configures a MC-DPNI based DPAA2 PMD network port with a DPBP based buffer pool. Signed-off-by: Hemant Agrawal --- drivers/bus/fslmc/portal/dpaa2_hw_pvt.h | 10 ++++++ drivers/net/dpaa2/Makefile | 3 ++ drivers/net/dpaa2/base/dpaa2_hw_dpni.c | 57 ++++++++++++++++++++++++++++++ drivers/net/dpaa2/dpaa2_ethdev.c | 62 +++++++++++++++++++++++++++++++++ drivers/net/dpaa2/dpaa2_ethdev.h | 6 ++++ 5 files changed, 138 insertions(+) diff --git a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h index 660537d..b4f243b 100644 --- a/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h +++ b/drivers/bus/fslmc/portal/dpaa2_hw_pvt.h @@ -50,6 +50,16 @@ #define DPAA2_MBUF_MAX_ACQ_REL 7 #define MAX_BPID 256 +#define DPAA2_MBUF_HW_ANNOTATION 64 +#define DPAA2_FD_PTA_SIZE 64 + +#if (DPAA2_MBUF_HW_ANNOTATION + DPAA2_FD_PTA_SIZE) > RTE_PKTMBUF_HEADROOM +#error "Annotation requirement is more than RTE_PKTMBUF_HEADROOM" +#endif + +/* we will re-use the HEADROOM for annotation in RX */ +#define DPAA2_HW_BUF_RESERVE 0 +#define DPAA2_PACKET_LAYOUT_ALIGN 64 /*changing from 256 */ struct dpaa2_dpio_dev { TAILQ_ENTRY(dpaa2_dpio_dev) next; diff --git a/drivers/net/dpaa2/Makefile b/drivers/net/dpaa2/Makefile index 657ee2a..ca51402 100644 --- a/drivers/net/dpaa2/Makefile +++ b/drivers/net/dpaa2/Makefile @@ -49,6 +49,7 @@ CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/mc CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/portal CFLAGS += -I$(RTE_SDK)/drivers/common/dpaa2/qbman/include +CFLAGS += -I$(RTE_SDK)/drivers/pool/dpaa2 CFLAGS += -I$(RTE_SDK)/lib/librte_eal/linuxapp/eal # versioning export map @@ -62,7 +63,9 @@ 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) += lib/librte_mempool lib/librte_mbuf DEPDIRS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += lib/librte_pmd_dpaa2_qbman DEPDIRS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += lib/librte_pmd_fslmcbus +DEPDIRS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += lib/librte_pmd_dpaa2_pool include $(RTE_SDK)/mk/rte.lib.mk diff --git a/drivers/net/dpaa2/base/dpaa2_hw_dpni.c b/drivers/net/dpaa2/base/dpaa2_hw_dpni.c index c95c083..08f53b3 100644 --- a/drivers/net/dpaa2/base/dpaa2_hw_dpni.c +++ b/drivers/net/dpaa2/base/dpaa2_hw_dpni.c @@ -46,6 +46,7 @@ #include #include +#include #include "../dpaa2_ethdev.h" @@ -285,3 +286,59 @@ int dpaa2_remove_flow_dist( } kg_cfg->num_extracts = i; } + +int +dpaa2_attach_bp_list(struct dpaa2_dev_priv *priv, + void *blist) +{ + /* Function to attach a DPNI with a buffer pool list. Buffer pool list + * handle is passed in blist. + */ + int32_t retcode; + struct fsl_mc_io *dpni = priv->hw; + struct dpni_pools_cfg bpool_cfg; + struct dpaa2_bp_list *bp_list = (struct dpaa2_bp_list *)blist; + struct dpni_buffer_layout layout; + int tot_size; + + /* ... rx buffer layout . + * Check alignment for buffer layouts first + */ + + /* ... rx buffer layout ... */ + tot_size = DPAA2_HW_BUF_RESERVE + RTE_PKTMBUF_HEADROOM; + tot_size = RTE_ALIGN_CEIL(tot_size, + DPAA2_PACKET_LAYOUT_ALIGN); + + memset(&layout, 0, sizeof(struct dpni_buffer_layout)); + layout.options = DPNI_BUF_LAYOUT_OPT_DATA_HEAD_ROOM; + + layout.data_head_room = + tot_size - DPAA2_FD_PTA_SIZE - DPAA2_MBUF_HW_ANNOTATION; + retcode = dpni_set_buffer_layout(dpni, CMD_PRI_LOW, priv->token, + DPNI_QUEUE_RX, &layout); + if (retcode) { + PMD_INIT_LOG(ERR, "Err(%d) in setting rx buffer layout\n", + retcode); + return retcode; + } + + /*Attach buffer pool to the network interface as described by the user*/ + bpool_cfg.num_dpbp = 1; + bpool_cfg.pools[0].dpbp_id = bp_list->buf_pool.dpbp_node->dpbp_id; + bpool_cfg.pools[0].backup_pool = 0; + bpool_cfg.pools[0].buffer_size = + RTE_ALIGN_CEIL(bp_list->buf_pool.size, + 256 /*DPAA2_PACKET_LAYOUT_ALIGN*/); + + retcode = dpni_set_pools(dpni, CMD_PRI_LOW, priv->token, &bpool_cfg); + if (retcode != 0) { + PMD_INIT_LOG(ERR, "Error in attaching the buffer pool list" + " bpid = %d Error code = %d\n", + bpool_cfg.pools[0].dpbp_id, retcode); + return retcode; + } + + priv->bp_list = bp_list; + return 0; +} diff --git a/drivers/net/dpaa2/dpaa2_ethdev.c b/drivers/net/dpaa2/dpaa2_ethdev.c index 54f4498..6bd18bc 100644 --- a/drivers/net/dpaa2/dpaa2_ethdev.c +++ b/drivers/net/dpaa2/dpaa2_ethdev.c @@ -48,6 +48,7 @@ #include #include #include +#include #include "dpaa2_ethdev.h" @@ -64,6 +65,8 @@ dev_info->if_index = priv->hw_id; dev_info->max_mac_addrs = priv->max_mac_filters; + dev_info->max_rx_pktlen = DPAA2_MAX_RX_PKT_LEN; + dev_info->min_rx_bufsize = DPAA2_MIN_RX_BUF_SIZE; dev_info->max_rx_queues = (uint16_t)priv->nb_rx_queues; dev_info->max_tx_queues = (uint16_t)priv->nb_tx_queues; @@ -188,6 +191,7 @@ struct dpni_queue cfg; uint8_t options = 0; uint8_t flow_id; + uint32_t bpid; int ret; PMD_INIT_FUNC_TRACE(); @@ -195,6 +199,13 @@ PMD_INIT_LOG(DEBUG, "dev =%p, queue =%d, pool = %p, conf =%p", dev, rx_queue_id, mb_pool, rx_conf); + if (!priv->bp_list || priv->bp_list->mp != mb_pool) { + bpid = mempool_to_bpid(mb_pool); + ret = dpaa2_attach_bp_list(priv, + bpid_info[bpid].bp_list); + if (ret) + return ret; + } dpaa2_q = (struct dpaa2_queue *)priv->rx_vq[rx_queue_id]; dpaa2_q->mb_pool = mb_pool; /**< mbuf pool to populate RX ring. */ @@ -389,7 +400,9 @@ struct fsl_mc_io *dpni_dev; struct dpni_attr attr; struct dpaa2_dev_priv *priv = eth_dev->data->dev_private; + struct dpni_buffer_layout layout; int i, ret, hw_id; + int tot_size; PMD_INIT_FUNC_TRACE(); @@ -478,6 +491,55 @@ return -ret; } + /* ... rx buffer layout ... */ + tot_size = DPAA2_HW_BUF_RESERVE + RTE_PKTMBUF_HEADROOM; + tot_size = RTE_ALIGN_CEIL(tot_size, + DPAA2_PACKET_LAYOUT_ALIGN); + + memset(&layout, 0, sizeof(struct dpni_buffer_layout)); + layout.options = DPNI_BUF_LAYOUT_OPT_FRAME_STATUS | + DPNI_BUF_LAYOUT_OPT_PARSER_RESULT | + DPNI_BUF_LAYOUT_OPT_DATA_HEAD_ROOM | + DPNI_BUF_LAYOUT_OPT_PRIVATE_DATA_SIZE; + + layout.pass_frame_status = 1; + layout.data_head_room = tot_size + - DPAA2_FD_PTA_SIZE - DPAA2_MBUF_HW_ANNOTATION; + layout.private_data_size = DPAA2_FD_PTA_SIZE; + layout.pass_parser_result = 1; + PMD_INIT_LOG(DEBUG, "Tot_size = %d, head room = %d, private = %d", + tot_size, layout.data_head_room, layout.private_data_size); + ret = dpni_set_buffer_layout(dpni_dev, CMD_PRI_LOW, priv->token, + DPNI_QUEUE_RX, &layout); + if (ret) { + PMD_INIT_LOG(ERR, "Err(%d) in setting rx buffer layout", ret); + return -1; + } + + /* ... tx buffer layout ... */ + memset(&layout, 0, sizeof(struct dpni_buffer_layout)); + layout.options = DPNI_BUF_LAYOUT_OPT_FRAME_STATUS; + layout.pass_frame_status = 1; + ret = dpni_set_buffer_layout(dpni_dev, CMD_PRI_LOW, priv->token, + DPNI_QUEUE_TX, &layout); + if (ret) { + PMD_INIT_LOG(ERR, "Error (%d) in setting tx buffer" + " layout", ret); + return -1; + } + + /* ... tx-conf and error buffer layout ... */ + memset(&layout, 0, sizeof(struct dpni_buffer_layout)); + layout.options = DPNI_BUF_LAYOUT_OPT_FRAME_STATUS; + layout.pass_frame_status = 1; + ret = dpni_set_buffer_layout(dpni_dev, CMD_PRI_LOW, priv->token, + DPNI_QUEUE_TX_CONFIRM, &layout); + if (ret) { + PMD_INIT_LOG(ERR, "Error (%d) in setting tx-conf buffer" + " layout", ret); + return -1; + } + eth_dev->dev_ops = &dpaa2_ethdev_ops; eth_dev->data->drv_name = drivername; diff --git a/drivers/net/dpaa2/dpaa2_ethdev.h b/drivers/net/dpaa2/dpaa2_ethdev.h index 2d13137..a56b525 100644 --- a/drivers/net/dpaa2/dpaa2_ethdev.h +++ b/drivers/net/dpaa2/dpaa2_ethdev.h @@ -37,6 +37,9 @@ #include #include +#define DPAA2_MIN_RX_BUF_SIZE 512 +#define DPAA2_MAX_RX_PKT_LEN 10240 /*WRIOP support*/ + #define MAX_TCS DPNI_MAX_TC #define MAX_RX_QUEUES 16 #define MAX_TX_QUEUES 16 @@ -57,6 +60,7 @@ struct dpaa2_dev_priv { void *rx_vq[MAX_RX_QUEUES]; void *tx_vq[MAX_TX_QUEUES]; + struct dpaa2_bp_list *bp_list; /**