From patchwork Sat Oct 31 10:19:17 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Prabhakar Kushwaha X-Patchwork-Id: 538627 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from theia.denx.de (theia.denx.de [85.214.87.163]) by ozlabs.org (Postfix) with ESMTP id 6FAE2140787 for ; Sat, 31 Oct 2015 21:19:41 +1100 (AEDT) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id F3EEDA74B5; Sat, 31 Oct 2015 11:19:37 +0100 (CET) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id fIearmyMQ6RM; Sat, 31 Oct 2015 11:19:37 +0100 (CET) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 51863A74A0; Sat, 31 Oct 2015 11:19:37 +0100 (CET) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 130C4A74A0 for ; Sat, 31 Oct 2015 11:19:35 +0100 (CET) Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Tb6LfEYIX_J0 for ; Sat, 31 Oct 2015 11:19:34 +0100 (CET) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested) Received: from na01-by2-obe.outbound.protection.outlook.com (mail-by2on0120.outbound.protection.outlook.com [207.46.100.120]) by theia.denx.de (Postfix) with ESMTPS id 12884A7493 for ; Sat, 31 Oct 2015 11:19:30 +0100 (CET) Received: from BLUPR03CA005.namprd03.prod.outlook.com (10.255.124.22) by DM2PR03MB510.namprd03.prod.outlook.com (10.141.87.15) with Microsoft SMTP Server (TLS) id 15.1.312.18; Sat, 31 Oct 2015 10:19:27 +0000 Received: from BN1BFFO11FD051.protection.gbl (10.255.124.4) by BLUPR03CA005.outlook.office365.com (10.255.124.22) with Microsoft SMTP Server (TLS) id 15.1.312.18 via Frontend Transport; Sat, 31 Oct 2015 10:19:26 +0000 Authentication-Results: spf=fail (sender IP is 192.88.168.50) smtp.mailfrom=freescale.com; freescale.mail.onmicrosoft.com; dkim=none (message not signed) header.d=none; freescale.mail.onmicrosoft.com; dmarc=none action=none header.from=freescale.com; Received-SPF: Fail (protection.outlook.com: domain of freescale.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 BN1BFFO11FD051.mail.protection.outlook.com (10.58.145.6) with Microsoft SMTP Server (TLS) id 15.1.318.9 via Frontend Transport; Sat, 31 Oct 2015 10:19:26 +0000 Received: from b32579-VirtualBox.ap.freescale.net (B32579-02.ap.freescale.net [10.232.40.252]) by tx30smr01.am.freescale.net (8.14.3/8.14.0) with ESMTP id t9VAJINt008691; Sat, 31 Oct 2015 03:19:24 -0700 From: Prabhakar Kushwaha To: Date: Sat, 31 Oct 2015 15:49:17 +0530 Message-ID: <1446286757-5824-1-git-send-email-prabhakar@freescale.com> X-Mailer: git-send-email 1.9.1 X-EOPAttributedMessage: 0 X-Microsoft-Exchange-Diagnostics: 1; BN1BFFO11FD051; 1:N7yfxxag2QihvsHy24HBJ9mKHx8zxwG0k6XrNI9yu8AxW2yjOOsyn0RpahghjOIME4zxQtlHblolyMWD+3QWwpyZRIAs2X6gtjVHl8jL/aaJkIlw5hPhJBEsZOZ2LcPqSYQsqhRnFU3wwwKTsR+3ef773v3KGaFe/YTHcxFTrOqB/4ywtBXpZzEBuftrfb72YAEP/4PVNluS/ZegoMg1CfryCY6LS4KW/QI6/MNLNMdW1tcyBTic4DBCiGsR1FjkCkJ4aegxx9r8EJIyptYESz5kTWv+hWDqjVLU37rJiG/w/aGYRNFGa3Whc5FSM4NpLrymB2ZlosvPRgGj6mKAZEv0xXuNXJM/3jNdsEycBC5bg7RJVXquzN2swqMwX7stgQXPZVHTezek3Xa4dpV0/g== X-Forefront-Antispam-Report: CIP:192.88.168.50; CTRY:US; IPV:NLI; EFV:NLI; SFV:NSPM; SFS:(10019020)(6009001)(2980300002)(1110001)(1109001)(339900001)(199003)(189002)(85426001)(33646002)(97736004)(50986999)(104016004)(47776003)(6806005)(36756003)(110136002)(5003940100001)(189998001)(81156007)(92566002)(5007970100001)(11100500001)(5008740100001)(5001960100002)(4001430100002)(107886002)(87936001)(229853001)(50226001)(48376002)(2351001)(105606002)(106466001)(50466002)(77096005)(450100001)(86362001)(19580395003)(19580405001); DIR:OUT; SFP:1102; SCL:1; SRVR:DM2PR03MB510; H:tx30smr01.am.freescale.net; FPR:; SPF:Fail; PTR:InfoDomainNonexistent; A:1; MX:1; LANG:en; MIME-Version: 1.0 X-Microsoft-Exchange-Diagnostics: 1; DM2PR03MB510; 2:VrgaCOeSFQ1cwi4EB6/O3iKPK9rEQbVacBtWe7Ws7g5MEN5iYxy4MOQF791McBOoCdse7ycY1AN2XDtLg6Px5RR7k2gsBTMSCjzJGauTLw8Cgq1b01mLohjXR/y6HexT9E90eDCB7jYd7W7mUkIypqEgKEoPEoh68h1KaBBBY5k=; 3:wn9ESjv/5xAnq1nEvCiYccPaZutDNNA8AZGoBsxszS3ROdvUpCpJTiWlh1HKpwRqo2ayZCoPZ8hwzekdIe1KpTuKuZPPSKb7n96yxCM3bzZ/uQ30s7ZbdHRGLGlJgQfV4l5L0mIpqoczHaTRUz/f2C3FQTBIT2ZBm8VTKdqHXzqVx1yjC6a5jLkSEq5N6crNF6wsjsqDzngv2UIVl/iz/UH8BT79bEAV7xkB2FQ6PQs=; 25:IoRrFlcB/7+j0/R6m2PU0vMg037l8H2DomJFyRkeSazFhy92c007aJ0WAgkb1n5ipq3wPkJUGU/5c1tquhzv+OBhw2W257vZyrezVHAdg3IeD1WRlkiWithu6XpUT2HodG4IeIvWC8WksFYzVUBc+Xmjz4lfJCl4r5t9epm6EIBhNi1QVpunDqHewUl8orFXKc1uvZghxm/NH3OmrN7tjvphHKNW0l2+haUeGbqSmNckT7VgkAQ7yj85nNW85SVMYW4cFpk7ffbry7HHfEZRFw== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DM2PR03MB510; X-Microsoft-Exchange-Diagnostics: 1; DM2PR03MB510; 20:I9DYjVqaoK2McbAlsGXczi5rxsgbsWq85nQ3WM8qyceYesQldhfokUCRpBDhVcCjZZPhsGBcqSQVFRQD9IngyrAUTcPh04PpSdG8dIWhs4T1SbVwqH3YggCWg4/HF7kKUAAFjqYlgO0YxPYQCSW4jii+cUtHOTyffYXVTO9N6/M5dZbHf9ByoRf/ZlU5xiyd17WAuWfyQ9PbpZgWW2cFL6uNRiMTmMFU9SBdhsZUALRKu/E47INTxkv2yDhs+zYq+N6qhQYQ+km1F7d4ODtXP5AN+ofUfAnqNLaqMeBcbTSuORhiGZatYZbS1CzV/sqE0bqrG6WgCo4cy9ywA13Y5BgLVKuJqT/b+mC7jClsNkk=; 4:kTwaLh0gniBEKcq/SkGFmiy4UpqCu/y3cEJykobSRkDyBrgdln/txQNoQA19jlgIkPkjc813td9V2FYg/7EYPRJ6LE8XUCz6Nj9TeHrdqYDjNRZrFzJ/zqz6KQIqh3LwQQ4630spm7fXl2Mu6XIXiZuaIl/c/c143XZwwiaiRqA3ud7mc+FFx5Se2w9nekPKViu5oCjVrNwU5GTDbfb//Q+7LSJtpbJ9r38ICcoTGwYfn2CtWf63odwUGAmfo+ej2oyjPfWjG0B5wBGie+/AbkWxUQh07QyXX75onfeBv9y9IMtzLzkqHJBKAkJqEaKB6fTZ5P032BBnKOXv3CYNzoq6yeJbMOYRjL0HORVNYpKCravI77aWm4YV0WdMUZW9 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(101931422205132); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(601004)(2401047)(8121501046)(5005006)(520078)(10201501046)(3002001); SRVR:DM2PR03MB510; BCL:0; PCL:0; RULEID:; SRVR:DM2PR03MB510; X-Forefront-PRVS: 07467C4D33 X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DM2PR03MB510; 23:iTT5tNFDc+jUenylYNZDVfFuxBH7Dt1TAeOhkojk5I?= =?us-ascii?Q?5TrwykiNzy1bNy4zHLQlHMG9ckCHS0NV/bRHbMyWZIRC10QOT2Cg88pmHHZ5?= =?us-ascii?Q?bX+bMLcn6XmbJgSxsunfQkGw81/PcNtM+lp4O0uzpsSiQv9CICrAVZMfG/xg?= =?us-ascii?Q?mijfl/QlxnGtUt3HCAte/gcND24grCG9uNoNpmE/l2neAzeLmgSxGsrxQDLS?= =?us-ascii?Q?6G6r9qe6n1BS2YkeuYJ2zE6jcCCWb1Mj37AE/EhNPht2WD4Oet/k1cKIEcn9?= =?us-ascii?Q?E8Uu2l8S5tZAFyrwSQwgpEKK0p0OKD8looakrUiceTXkdisxbhu+wf5pCZ8S?= =?us-ascii?Q?cJQr+57p1ytZL77dgDFRS11kIIPduvq6RAFYSKNw8laJtdAFAUE7uxdd4iie?= =?us-ascii?Q?SZoR1aEGIg2bRC9BBS6z4xVkPxM4f4OQJc/XuLEQNEZUIYhmO21TN2in24e5?= =?us-ascii?Q?TPdYR/ApEClwoXW3L1AdX/JyhJRI2qAtVk1tXhmyqAYThMtqBbihbTS6jIu0?= =?us-ascii?Q?nLgNeqkQov5XkKYLR3xzQsRu8jGPjM8BHYx9U/7ivH9U6O35rTVLh2EgsOsL?= =?us-ascii?Q?YEk7gVZJSNY5Qbowtf91N3+ldF2A/br9y7rLGAzPvpLdeKJQYd8P5R02DmWs?= =?us-ascii?Q?lnKZ30FPOPg3cgupkS4WnpA95yxoKQdxyuqQSIjN97HvEfcsvv6avJDMZAx6?= =?us-ascii?Q?SZytBE4vnc+nVjV72TWCD+2zy6hH1I2CEsDm5U/gcIZ2V2hfv1JkN14YBvQr?= =?us-ascii?Q?0RMsrHGW/dCCuM7xEqFNlDgMbryz3ToyUYFvDWiQRHFYwf+toKG6ykgH1qxL?= =?us-ascii?Q?TMofm5kPXkG77tyHtfZMGT524xoIiM8rcJRB4fSly4qPi6xnL24viAVX6m+i?= =?us-ascii?Q?Xl/aB3sWAi4uSbx+DeLi7qzrDuim1DvrewApBOs5zA2M9HA3vktlToA68ifY?= =?us-ascii?Q?dWQ6nOBMtRhkfULSzUtL2wPgjaV+ptWyN4alFiMgV0mcvik491XYZy1U9QHs?= =?us-ascii?Q?+UgV0M6FCd5zLZVURpd72kbEshyo+m13EBiVeFZBFraDLFfjfgTATUT2vzlf?= =?us-ascii?Q?e4d3L2+de9tVFI6ktn4jbZHq+S?= X-Microsoft-Exchange-Diagnostics: 1; DM2PR03MB510; 5:phfKXnkgLXMKiWv+oEQE59HZ9lNQw97nNzeyLDVm6DtUhfmmUQj5R7y3EntMcpqueDZy8t/6whorsTV9VTC7QNjhHf6yGSv9LzHUu1gRxtxzcmKO22G5WFkPR6aMjfvVtD3srz2PT3uFUQLGUltPmQ==; 24:nGpBIOcctOj5BewUHwqyW7YID6oI8tW9uM0yFTVDp1JhZlDEGkXiSoIJKNX6WKt5L5elnlfqg5Qxm5A+H1nmnrP+L9Ky72YTE1SBYop1+vI=; 20:xY8+/daHlAPsmONjgok1BsO19BZ2oKxTqb7/DxIwmlZJleHyyW2VW0c9Fwr7LXgsSMJfki7Po4Z8grrrm+qnRQ== X-OriginatorOrg: freescale.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 31 Oct 2015 10:19:26.4482 (UTC) X-MS-Exchange-CrossTenant-Id: 710a03f5-10f6-4d38-9ff4-a80b81da590d X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=710a03f5-10f6-4d38-9ff4-a80b81da590d; Ip=[192.88.168.50]; Helo=[tx30smr01.am.freescale.net] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM2PR03MB510 Cc: Bogdan Hamciuc , yorksun@freescale.com Subject: [U-Boot] [PATCH 3/3] driver: net: ldpaa: Fix Rx buffer alignment X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.15 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" MC 0.7.1.2 enforces HW errata ERR009354: "Packets may be corrupted in several combinations of buffer size and frame offsets. Workaround: Use buffers that are of size that is a multiple of 256, and frame offset that is a multiple of 256" Updating the DPNI Eth driver to comply with the restriction. Signed-off-by: Bogdan Hamciuc Signed-off-by: Prabhakar Kushwaha --- drivers/net/ldpaa_eth/ldpaa_eth.c | 11 ++++++++--- drivers/net/ldpaa_eth/ldpaa_eth.h | 6 +++--- 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/drivers/net/ldpaa_eth/ldpaa_eth.c b/drivers/net/ldpaa_eth/ldpaa_eth.c index e2c3bdc..7b61c3e 100644 --- a/drivers/net/ldpaa_eth/ldpaa_eth.c +++ b/drivers/net/ldpaa_eth/ldpaa_eth.c @@ -488,7 +488,7 @@ static int ldpaa_bp_add_7(uint16_t bpid) struct qbman_release_desc rd; for (i = 0; i < 7; i++) { - addr = memalign(L1_CACHE_BYTES, LDPAA_ETH_RX_BUFFER_SIZE); + addr = memalign(LDPAA_ETH_BUF_ALIGN, LDPAA_ETH_RX_BUFFER_SIZE); if (!addr) { printf("addr allocation failed\n"); goto err_alloc; @@ -673,10 +673,13 @@ static int ldpaa_dpni_setup(struct ldpaa_eth_priv *priv) /* Configure our buffers' layout */ dflt_dpni->buf_layout.options = DPNI_BUF_LAYOUT_OPT_PARSER_RESULT | DPNI_BUF_LAYOUT_OPT_FRAME_STATUS | - DPNI_BUF_LAYOUT_OPT_PRIVATE_DATA_SIZE; + DPNI_BUF_LAYOUT_OPT_PRIVATE_DATA_SIZE | + DPNI_BUF_LAYOUT_OPT_DATA_ALIGN; dflt_dpni->buf_layout.pass_parser_result = true; dflt_dpni->buf_layout.pass_frame_status = true; dflt_dpni->buf_layout.private_data_size = LDPAA_ETH_SWA_SIZE; + /* HW erratum mandates data alignment in multiples of 256 */ + dflt_dpni->buf_layout.data_align = LDPAA_ETH_BUF_ALIGN; /* ...rx, ... */ err = dpni_set_rx_buffer_layout(dflt_mc_io, MC_CMD_NO_FLAGS, dflt_dpni->dpni_handle, @@ -687,7 +690,9 @@ static int ldpaa_dpni_setup(struct ldpaa_eth_priv *priv) } /* ... tx, ... */ - dflt_dpni->buf_layout.options &= ~DPNI_BUF_LAYOUT_OPT_PARSER_RESULT; + /* remove Rx-only options */ + dflt_dpni->buf_layout.options &= ~(DPNI_BUF_LAYOUT_OPT_DATA_ALIGN | + DPNI_BUF_LAYOUT_OPT_PARSER_RESULT); err = dpni_set_tx_buffer_layout(dflt_mc_io, MC_CMD_NO_FLAGS, dflt_dpni->dpni_handle, &dflt_dpni->buf_layout); diff --git a/drivers/net/ldpaa_eth/ldpaa_eth.h b/drivers/net/ldpaa_eth/ldpaa_eth.h index b86a695..af41b27 100644 --- a/drivers/net/ldpaa_eth/ldpaa_eth.h +++ b/drivers/net/ldpaa_eth/ldpaa_eth.h @@ -28,10 +28,10 @@ enum ldpaa_eth_type { #define LDPAA_ETH_REFILL_THRESH (LDPAA_ETH_NUM_BUFS/2) #define LDPAA_ETH_RX_BUFFER_SIZE 2048 -/* Hardware requires alignment for ingress/egress buffer addresses - * and ingress buffer lengths. +/* Hardware requires alignment for buffer address and length: 256-byte + * for ingress, 64-byte for egress. Using 256 for both. */ -#define LDPAA_ETH_BUF_ALIGN 64 +#define LDPAA_ETH_BUF_ALIGN 256 /* So far we're only accomodating a skb backpointer in the frame's * software annotation, but the hardware options are either 0 or 64.