From patchwork Fri Mar 17 13:08:31 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Hemant Agrawal X-Patchwork-Id: 21869 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 5B828CF90; Fri, 17 Mar 2017 14:28:20 +0100 (CET) Received: from NAM01-BY2-obe.outbound.protection.outlook.com (mail-by2nam01on0079.outbound.protection.outlook.com [104.47.34.79]) by dpdk.org (Postfix) with ESMTP id 9890FCF9E for ; Fri, 17 Mar 2017 14:09:24 +0100 (CET) Received: from BLUPR0301CA0041.namprd03.prod.outlook.com (10.162.113.179) by BLUPR0301MB1956.namprd03.prod.outlook.com (10.164.21.26) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.977.11; Fri, 17 Mar 2017 13:09:22 +0000 Received: from BN1BFFO11OLC001.protection.gbl (2a01:111:f400:7c10::1:131) by BLUPR0301CA0041.outlook.office365.com (2a01:111:e400:5259::51) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256_P256) id 15.1.977.11 via Frontend Transport; Fri, 17 Mar 2017 13:09:22 +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; 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 BN1BFFO11OLC001.mail.protection.outlook.com (10.58.145.12) with Microsoft SMTP Server (version=TLS1_0, cipher=TLS_RSA_WITH_AES_256_CBC_SHA) id 15.1.977.7 via Frontend Transport; Fri, 17 Mar 2017 13:09:22 +0000 Received: from bf-netperf1.idc ([10.232.134.28]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id v2HD8peV021077; Fri, 17 Mar 2017 06:09:19 -0700 From: Hemant Agrawal To: CC: , , , , , Date: Fri, 17 Mar 2017 18:38:31 +0530 Message-ID: <1489756124-10805-10-git-send-email-hemant.agrawal@nxp.com> X-Mailer: git-send-email 1.9.1 In-Reply-To: <1489756124-10805-1-git-send-email-hemant.agrawal@nxp.com> References: <1488545223-25739-1-git-send-email-hemant.agrawal@nxp.com> <1489756124-10805-1-git-send-email-hemant.agrawal@nxp.com> X-EOPAttributedMessage: 0 X-Matching-Connectors: 131342297629180459; (91ab9b29-cfa4-454e-5278-08d120cd25b8); () X-Forefront-Antispam-Report: CIP:192.88.168.50; IPV:NLI; CTRY:US; EFV:NLI; SFV:NSPM; SFS:(10009020)(979002)(6009001)(336005)(39410400002)(39400400002)(39380400002)(39450400003)(39840400002)(39860400002)(39850400002)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(9170700003)(76176999)(8936002)(5660300001)(81156014)(2950100002)(50986999)(38730400002)(8676002)(48376002)(81166006)(5890100001)(6916009)(36756003)(54906002)(6666003)(105606002)(305945005)(356003)(2906002)(50466002)(85426001)(50226002)(189998001)(2351001)(104016004)(4326008)(53936002)(110136004)(86362001)(33646002)(8656002)(47776003)(77096006)(106466001)(5003940100001)(969003)(989001)(999001)(1009001)(1019001); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0301MB1956; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; MLV:ovrnspm; A:1; MX:1; PTR:InfoDomainNonexistent; LANG:en; X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11OLC001; 1:IH28M+CszXXWGsbJOrbpjtnB8MObt62aqZKB59FVuT74ukAreDS2vM+SL7ZP/ZNbW1YM4J8GDaF5x1EMA+dTi2itAUkE0MpyrrG4Hm1BLF519o/ZKwBx+wt7miIIdIAs8NCRV/D5eAbVzzTPKtjYgVTQRvRLQZfLBaVP7AO1Z0sVqcn8O8WTtkOFaBKcyQay8/vO+NrAKfyU2vZE630HWSVZijgSoYHaq5njKC1wY4LgrKtLCal+BTRv99IOtmhXmWYC7ef8jbL61zzp+eIvhFJmf3NvRHrriOkRFqXH8UwnF8hjZ34E7JAeOf5W4yMcK+ZQfG3OQHP8nDpsBwbYht6NCXH8VItofd6toa0Y83UOuYmnN0K3XURHrqtdNrvvRU4kP3QmDkzmf607O08eoCx/19ziqNNdhJCgHB10ykk1t5MeYcR6lnxChMVdnxUOz9Yp8+DKwntHh0Y0uHiFJYBZVABRdFFjVyt1PACDBa2tvJPszvNV/HJMd/ALHu19S4IyTvgnh+YzAskM685KgxhFMXAVj8f18lDGTf+BbuCcU42qRowwlMVUuip7KL0L9+NHLX3MpsFiwY1ybtm7PRQzRAm2AW5HaaY6ebImGRAhI5M1vwm+TaNWyGSqVeKCgr07Aw7fMt0xk0ltnGzGvA== MIME-Version: 1.0 X-MS-Office365-Filtering-Correlation-Id: edf558d6-5b0d-4df2-60cc-08d46d36d4a0 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:BLUPR0301MB1956; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0301MB1956; 3:4ssljKe32A+o8WDR0Hk309eZ67Q32cjtIFjI+dOWHd3FmDusmEk4JNagtzcL3f7hQ5MUQ1xdmR2SlJP/E6u2rz831vSkPSBxfU1+oCFpwCAu79mnP7m0znTE1iw506AItL0i6e59AtgRkBXfjh7TRdPKbFC/7PrJ/Y7gpqUxaKPex4SMSkeehCwJw22Frj/fe3ZEDmYUfC9CVlhcxbT/7Ruh1f/hCtxSOtYMHScYf9pIrUIcDggrHn2+wTNc3R+mgrX+3zh5Mzbsi8x+kgWAVFYm054wIebpKZDeHCZPqKM+6/S4w/kXMaL5eq6CsjRJSdTlQfuVEIBo2QHAdzq1LAALcSI/meFNl4sBFraaaqSA3yltTdXw8L72g0X1N4M7; 25:Sfdy/1EG58Bqo/WIKkxUsTKGuNDzf9HLlgUZgc1dXm2BMYDBkF3HfxHoSQr2KqYX48wFkv7Laay0v1DZgOSwEtJgRibWP+smY4cyXkMTodSQvD/1sVCk2zfEfXftJynWIz0UCpbTsNl7Lqtqu2hK0emV/SU+4IR8skTsAszOEPnx6HodiQbe8YukDBDq4sj1p4gk+xCbdNtNQeO4UnzSzajQQRmy93KGJwfWvjDAqxwVIWfhbu0HttX9IFJEZgwI9vwsCap59L07m5jZu5oCbt7oPsy+5lTEeZ/VAQwfLvzhOldPnJxn6BLLU2p1RMZZp7VvhgEwU9kSlcdHxjQl4h+ozed6KkbEl6vAV4DtNS2qMBYXRcpa/Q4aHVUIC6yUda+s2Le/b/60s9+EMWeOl3b44ZzW8qqqLF1xGRqXDYHnn8Jo/qlN/j992NqTYuu71NmK/neds6TmDfH+OayK4A== X-Microsoft-Exchange-Diagnostics: 1; BLUPR0301MB1956; 31:aKfFEmbJPTYVMnkjjTA/lpGrHo7Yf8hJR/g2K+DmxhBAwe+fTs41dqQ/SU9pB+c2qkE23+GDlz9xm+wJ0C4TAh8ae4S4IBcv+g70CzlXUs7V9JV806Vj1OwiD4249jYqgr/FcBrOhif3acYoMA8vhVdIuFh2Uf+iE0Has2i0pMDJwkF1V6GFjkTku578OU0a9iaNPvqNu5rs80DeLJDA3PCt1n/6F+x3a5bEQlALEOm2CAHfxaTYWf/3QD7h7VCwuM34rju7ylfkiKixJRa5BNSyy3wyXpeZDhzm7aXT9bw= 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)(13024025)(13017025)(13015025)(5005006)(13018025)(8121501046)(13023025)(10201501046)(3002001)(6055026)(6096035)(20161123565025)(20161123556025)(20161123559025)(20161123563025)(20161123561025); SRVR:BLUPR0301MB1956; BCL:0; PCL:0; RULEID:(400006); SRVR:BLUPR0301MB1956; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0301MB1956; 4:hfbqZODqBSc5GPZ8Y6jO/22s37oVTjSrF5dO4w34rmy9tqmoFDwCRawIG7R79dhifHXlt4X11o3j5oI4xVP6PzxC/1j5XgYKLQRP2qVEHkOrWIl94vfmg2ps8XRWME+J8viJsLb1d9EE/wul//5wgeJL7N94OgCxPpRjwDhLwkca7n/Gk/SPd01htxllOkUdP7Ig9/rqHymEc9LIDGqhiPnnG1VjyGxhzgcktpD+eN2R8ZXoBkTUUNsOWTmsRK6TjRBR3Rz11WUvSH4gD54PyJKxV+kGbyaFDhkupY1BLKsf/WblW7BU49Yh7BC1EbC5C7qf6rDv7XRQat07U9OEjko9cBq63x8SwKvF6znNDmp/evNpi0DHwR4RlE6+Q5AqxSp6LAAYHICe1+SmZ+y4ACbzAt2JdLtML6UBAi1f9lRMdBgt6sBPAoOGT+KOrAxd5ZhgSjLf7uz3+zyXSURBqeKXYbBj7pzuj4+p2jzXw0RxYZtof1jN1HTju1kWV+6U8C/t89DK95wXTlKk5vDGZn06sByi6jpNNycz9HAl6K/k0cHnksQKyhPX/E30eQbRmKSu7Xrjwj6wNcl41Nj4A6l4z8fmdznmTNq7Pok3zZBDI77CcuBYOhHPf6uyCWGQpuV0SRTWxkMX6ItMsQCdBOZkLwSMk9fNSHedf1sxNbeYgHP6KtvaWgyQPVrNL8Q2lBH9LqA3bB8yE+gcE5TMtspiY2nnD3YCEcDrF+C7sTJNjb5j1NgYvmYWT8b73VsP5nx0ASp2+/Vp+657sF1oEw== X-Forefront-PRVS: 0249EFCB0B X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR0301MB1956; 23:mcS/kLSN6WHADTtRL3Wyl5s+5aL4VmI30bLXykJ?= mXGTJr+P/gXf8by2l+qz5Lk48b+UMi9y1hD+6vuv7eFecoMDun5XtYDFzcdVcAs0jSjGrSZeVxcKYEq+QhrzZwfJaHa66Etp/+6aukvsqzGlwzji87Xykx9iDACo2m+r8nfiWqAPkBbcC7MrhZVthhJT0f8EQLFLYS8bnIqmZWcnisqKvAFC2H7zSbja+d8qwf5xvW4+mv+kVyvrwnBvWEf76lXXbJhiyijz5tfLZtoLxTHEA9lDuX4H62jRM0yP1Wy1Ad59RUKGcKybvLEHWtHjf4AUtjba1MqEzLXe3gPwfE7oy8eU9VofU8iOSeCdZupvqwL58We7BZh3ulOBY/H7dC/FuJ4bkM6/OMhvkigeA1e9AVIaZQ/8z8uFF6UHL9AfZ/RoVC3OHnB9T+1Y1ZUaD0H0tV39XdNGlpbI/yDGaS5eFdEdIKbDPPr3TCX31GD0coG0Qd4845BDjMa4lPUtD6+WiLtfsmtlPiG8V3eNij6cXIQgeDltx4uFb6UF+TpJMBbDomRsS56pj4EtI/AA0lMp0g1dSM8Kc4WwV8rmzG1tN0UVAOreBQ+II9rhi/MJU9B3E04ymIvT/yFegXw6CxXKyQCYD1rToYSic40TLkPcyXiSqcbiik0N24dcGLE5lW4A+jjapxCDWZYH1KsMbuIqvtpE0ZqlsChdUF8cdC1LXB7XCgvXHDEb7fY/D1JepPJ1gHYt14qaqzvcMzRyd1D6pyyGil1D2ZZ4SnJGoIgdqlJ6lUBhKdbEtqODmBKKS4K7svFAHshKI7et7uHWoui5mYtBBAc9BdteBAPwZEWTFBcgHxRHeU2xLGWBtpHNTeaKRLA0tymgQWU8A++A7arXlNeECl9upchSJ7crz7Meh5jJH+bdKtciFV3/3Vn2Hdi9Dxal0eVt+j7WJpc24+9KCooeW6TWyBDkQB2/tKh2lHGO9VDVSh39mVznWiUoDHGK2VYCPmS5c1XEgT0MiD2ZVAYqK1k7egelqpTfK4wjv9a/+G6+4m12ousfmdVmQz8L+tCMHCYJFUaPFhU1g2dAz0N5HhQet0mrn9T9fPwpsduws654mFjSb5xZsAUyxjuUAzLA5EZXJ351/bfURn3/B4djSPLanAUYTrEYUuS21eEDCyzxK4MY6LoQrIJSpn267DNvwoLuBXVVsweF4dsNVoKpgtfCThpZvqpdP9o1KB+vHDG7IGGa2/ZkyTexgTLsx7yJCnzirCmff/33PYGTPmbA/kmfCwf0JDeDWzKUBzH6SxjSVCpjzkWmdh/uh4+023loLCvuk45LHRpOapbLXTqb9TEn+YPILMG5odg== X-Microsoft-Exchange-Diagnostics: 1; BLUPR0301MB1956; 6:1LeMB/IDbQttr4q/wPMZDClJDkBtDW+LFKXyLABGJnLtpXUM/uKP49LhXXYiZps7ZKzfPRx5pA4PJB7bWHS5zK0zONUDFaO+QAlcmaFL3/Lc1n7pzXjQ4diojcPuNlSytM/hQCdnKKYo86gQFfoHnZlcf7lywfAs2eETQ0COOLGJok9ETgIS/6BPZQmoN+CaPCkI2e4ISZTUn97atdEwu7g9DY/Iik9dTGly6A6VIUiqXehb1DJPc8njjiumTVWEOgYlorGz3DsKKyst/iX5pokBoOqIgX+lj6mrUOo/ogRy/CN6PY/XU4/smSr2nj4IpnvW3ncLELrC7b9JpICY251vP2wUYdhHw2HXeInKXkZceAneJeFnMwA5+T/zHfQ4t7mp8skwTRWsw1gvtXTTjjLko4LDG5Rn4k7HqFTuugw=; 5:wrhAsRjs0yl0OwsZQ347eoP3UcOVjBYX3lgBjDDkRrabrxTb0hZ2loZU/LKvi4e9bEENw8o+YwQkpMFl9FOkdVVzQ+XB74YZPl3l4cSXQhftZhe02zSxW9hjI79vXjqll5ozYxnwL9GkZHVtwSlBzznCY2EqQ+sFlNYa2ACT1wu4T8buWrrC5e2kgs9cJduy; 24:y/4iahTpG8esaen87O7/jHKJM2F+3UAzRFqOAfoCNETPhM8j2FDfuLTjv3nEsE9e5NtXd33uyviBUM0MGEHDo1wFNluUtvmYMnJ+HRD6OvE= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BLUPR0301MB1956; 7:K9ONFVj+qNc8Pnee2EZT+rd9b/xuLDOunmFCEikZ56fY0t0YZKo/kh+lUQLSKouwML6DjDnwDabRT6CPxN36yY1ROAbHo0E/ZoJVg9owtR9HyROAWr2x4b2TWHnCSd11gpivjgtUpAwc++dA7IULiOqkm+Rvk3OgDcBWwofr5152jXNbZEbREeYg6AiYQO14SWqzNyqXn8s3HiRZP40l1imj7TEnCUj5y2Qs+zbYpV2do40OrlpkSoEBFL/8+g9mtq24SpFprWQI/Nk+gwsmUMj487sKGAFIvuqVWER302pmIErr31/jjO1MY2lLWvUKvq9N4YruxErH0JNhcqSHlQ== X-MS-Exchange-CrossTenant-OriginalArrivalTime: 17 Mar 2017 13:09:22.7152 (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: BLUPR0301MB1956 Subject: [dpdk-dev] [PATCH v9 09/22] 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: , Errors-To: dev-bounces@dpdk.org Sender: "dev" This patch configures a MC-DPNI based DPAA2 PMD network port with a DPBP based buffer pool. Signed-off-by: Hemant Agrawal --- drivers/net/dpaa2/Makefile | 4 +++ drivers/net/dpaa2/base/dpaa2_hw_dpni.c | 57 +++++++++++++++++++++++++++++++ drivers/net/dpaa2/dpaa2_ethdev.c | 62 ++++++++++++++++++++++++++++++++++ drivers/net/dpaa2/dpaa2_ethdev.h | 6 ++++ 4 files changed, 129 insertions(+) diff --git a/drivers/net/dpaa2/Makefile b/drivers/net/dpaa2/Makefile index b5f3ebb..e7862f1 100644 --- a/drivers/net/dpaa2/Makefile +++ b/drivers/net/dpaa2/Makefile @@ -51,6 +51,7 @@ CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/qbman/include CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/mc CFLAGS += -I$(RTE_SDK)/drivers/bus/fslmc/portal +CFLAGS += -I$(RTE_SDK)/drivers/mempool/dpaa2 CFLAGS += -I$(RTE_SDK)/lib/librte_eal/linuxapp/eal # versioning export map @@ -65,8 +66,11 @@ SRCS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += mc/dpni.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) += drivers/bus/fslmc +DEPDIRS-$(CONFIG_RTE_LIBRTE_DPAA2_PMD) += drivers/mempool/dpaa2 LDLIBS += -lrte_bus_fslmc +LDLIBS += -lrte_mempool_dpaa2 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 47a8788..60e984b 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" @@ -63,6 +64,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; @@ -187,6 +190,7 @@ struct dpni_queue cfg; uint8_t options = 0; uint8_t flow_id; + uint32_t bpid; int ret; PMD_INIT_FUNC_TRACE(); @@ -194,6 +198,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, + rte_dpaa2_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. */ @@ -388,7 +399,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(); @@ -475,6 +488,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 = rte_dpaa2_pmd.driver.name; 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; /**