From patchwork Thu Jan 12 09:17:16 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerin Jacob X-Patchwork-Id: 19230 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 2A235F921; Thu, 12 Jan 2017 10:20:02 +0100 (CET) Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0073.outbound.protection.outlook.com [104.47.42.73]) by dpdk.org (Postfix) with ESMTP id 8E76FF921 for ; Thu, 12 Jan 2017 10:20:00 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=CAVIUMNETWORKS.onmicrosoft.com; s=selector1-cavium-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=V7IpGDMO71s72SA/IytFG+lYoWpAEhPkM67pGa9fpm0=; b=GZzvUOikuhYUNMC2Z7L/i6VfqnG9MUDD4B+znRNIKEfhLaBoK2O2yeWJI36jDyNklwiUdV2gfxko9v7+hc34QCigY2xAC3/zFIuMutusVe6327r5oN37lVAy0tl/1CYFlUz7Rz9YDnAITX2jMY+u8wk6kgwbXErhIhSLrTAaHYA= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jerin.Jacob@cavium.com; Received: from localhost.caveonetworks.com (111.93.218.67) by BLUPR0701MB1714.namprd07.prod.outlook.com (10.163.85.140) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.845.12; Thu, 12 Jan 2017 09:19:54 +0000 From: Jerin Jacob To: CC: , , , , , , Wenzhuo Lu , Jerin Jacob Date: Thu, 12 Jan 2017 14:47:16 +0530 Message-ID: <1484212646-10338-20-git-send-email-jerin.jacob@caviumnetworks.com> X-Mailer: git-send-email 2.5.5 In-Reply-To: <1484212646-10338-1-git-send-email-jerin.jacob@caviumnetworks.com> References: <1482832175-27199-1-git-send-email-jerin.jacob@caviumnetworks.com> <1484212646-10338-1-git-send-email-jerin.jacob@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: BY2PR06CA0007.namprd06.prod.outlook.com (10.166.106.145) To BLUPR0701MB1714.namprd07.prod.outlook.com (10.163.85.140) X-MS-Office365-Filtering-Correlation-Id: 79d7d507-616e-48ed-64e9-08d43acc2e45 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:BLUPR0701MB1714; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 3:Nq5uNxR4e3yzmEXCiIWw9KCyA6sjBEo9qPqM/oOh2gRHQQe1J/TdHP9K21JkjojD1m/B1hCoNCzQnTLDEgYXi7Vyz0UsGGHC0EzkL4XvFGrJtEryMl3kWGAm24i/xZR4+Sal9bv6wn0L4w1b4FJ1yvbOm/Czg9vSkYpmip1OprYhlSDx6+SwlsYXVTnzx94QbTDPO9ACHdHoIxVOG06oaT+I89Ye+vcCxMiWBQWHf4kGua8E8h9sPC447IyS7p+J6SlEtA6b6IalFYcHl6HaYA== X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 25:VB/O6QY7YB7JEdqDIggxJvojqqKqqmGjRnEtzwY0jl4wwdjSSZQMPYKKeyRXT6yLcoBNlh9zJwHOCL1wj0zKDiHA3KDaH3pL9uizUCTN6+RstxHXfhZ9nKvpS0wXeEaFRero1S+pukUYZIzvDEWKAZjKjkrFGFgqJD38hzfGV+J4GKwYKZeGrQc4YXtyWzZ5gwt+8epIdQBSrU/0KGA8U+OnrIXFX3Tg2xexdn25O26I0LhcCCmJ4u+bgfhoa4mWRmu1Vfym9g6GAYrwxvA2vHLgWJq2WFwY/lCzQwQXmmy9fCygqcpzFHErOQkSiNu0ON92ppCIg4v6/w+0lB8CI+/IFZI2HAMxqPbHkWUyk6U4aKsSfU8ixnC7/NCgh317wU9VT3Vu/XAHro29ubp6YpV0mAIPwXESio2oTYMZpFdGOB6hH7fymKlXU6kahQTznsHx7T9x4AgpM6nFj2GLZvG4Oft+1xtm+/8lXnJb8MbQCY4yzgTKYnV8TbtvjzVEd85/e7macfHiKXF2c3R7LwiJNWGzyhb+WEzAfcHS3JVpkyyKAvH7KFC2ZMvZALSeoBmpj0D9LiZbTO+nIO9ueyLNGL4W9vj6HnhhzIhMYefa+QRf4lfnCGIe0nwqDZ+/U/n6/6WEx/7kfvg+pHNGnhu70IGekAaqN/WPNMBOxm9vPpFOyNRSLTzlukA20lZw8AQhaUjizQ9w9BBiBsyAyS/Ghz0GZE18ej+kIZxkSncsd0NGB0HvsCWC/CuPhDRdaMkSodzQrFm417rl32FQygTSqY9NRlycD9cMa1EvJZo= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 31:X6dBkS14q3CFjAKHTgmjKVAvDiFxo6eSh5Ug/BTQqOWBg2Z+dINJo0th5Ahcr31j1w+3cEdgiX2rnULvVJrOToc79R+iNVucCYQDLADbanrz3fida00v+WguvPYYgAt6ngoCfwTKITak9TsTcQtMDDrtgPNVoVcKaFLQtRHVuZq7wI3knluRV6gUa2SBDj1gJgOb1hpaM52v0sG0mWTSyIkybyPYMqt+Tv7zxbqlkAW5+PaJWcg1lN9fcCYk4VaW; 20:46LikLcex7IwWjl+5UQpREcvoyNY1mEODY9H+5vjwjXiEVxiouh6jzoTOonD0zXJr8CHFeVtJERwjDtRpgFAEtZvJBwpKXkEoG8mQsKnEE+9t08N7xPD6jAK9wTVVtWM3qlA034uKmmwFBocanAlqRTg6DEAj0arj7QDEnttkQjN3cuDq9gQhsMtp2cjKcPHdOzWBswV9mm8WI6nWE90lvQSlt716Q4hnLvqBlm+PQCzlKWPVVxQjl8EPb/DDTjhsPjy92ns/Jd3i2ugOtMUJi1LRICoYtf/Tgj0yPhiTWFyZRb98JPxWaqTjRtqKCEOH3gYr7xohhI72rc5jyJs5lzl7JERnJLaXyMI33PDTmSBLw6Kkf1OkJL+QBxztIw+PdyvWgfev24PTcs9aFe8aAqdydXoQj8xt6M3zTF7GFnF52WaCbyNrQLz8Hm0ITjZA6Z4lhuofaapcBCQa04TAFf/bTwNho01mj6Y1iEWTudZyrxGYPiFXAT0TybuOBithI4Vb82WlbT4TyckiR5op5o4EkqeNZ1Nw0FKC1kXsPP1ksi1+uDuu3c+BfuIBb7Doez+LYSmUfPnMPH4p8+GUt3y5ZLHxxcck6/bltcQzj8= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(788757137089)(228905959029699); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(5005006)(8121501046)(10201501046)(3002001)(6041248)(20161123555025)(20161123562025)(20161123560025)(20161123564025)(6072148); SRVR:BLUPR0701MB1714; BCL:0; PCL:0; RULEID:; SRVR:BLUPR0701MB1714; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 4:ZyOHVkpQ8KKducraZWhf6GOvbvxwycbDUfUNZpvpufx/IrV/fh+zkh8pHqGDvl8j+P+YxAiMi2lrclxQcsIWCMVKDmhjNPPSgQaoTZGgBmBcCxsaOWy8Va889BVy6ut3np2ifm/jRY+keOQdgF9MblU2U0eqQDvsc26Pz0hKT6oBTSoDH+DYvZP5RqlJuX9PkeDHRVIbEBsbgfCXybBNGWoKjvUsoufleRnHbOVn9i+lgWTZf7Wv+uuoR1Srn8fNId/oqxauIAhs8v3e+mUuTyAU+BZjf7Wri+oOROBarao1tAMyrjqUNi6EavDVVR+V5HBpL8m2UHzNMSj/+qfit4waNJyzFqAkPKHPqBpG4ANoBeJSfmAd/yg2HViH3eaCPk+vpRtR0WJaYdCCIBxxl45SITdgpi0yZOJF3pzXNU0FrvOwnDfmjn2y6htAeKHFNvyZJjPsyqv1yjQfhMqgjnoUPEteJCgLLYf4aHNRam8NbQ2okCOFJNxu7SQte1UpuJWa6xvN9aeVILxu1PPCv8HpkH/j7VM4R89VVZEWZD3Ptvb+yZB2KmRVZ4ChG6by7sT2rRd3e2ouWRGsO9yarpAxS6Hr3hXAREwOs4gN5imMiqdpa+rnkHIxp1hDDZhk4gMv0bHidvIBVFlA5v5vYw== X-Forefront-PRVS: 018577E36E X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(6069001)(7916002)(39450400003)(189002)(199003)(2950100002)(53416004)(76506005)(92566002)(105586002)(69596002)(2351001)(42186005)(68736007)(106356001)(42882006)(6916009)(305945005)(2906002)(7736002)(50466002)(48376002)(36756003)(5660300001)(110136003)(575784001)(4326007)(97736004)(107886002)(189998001)(50226002)(6666003)(6506006)(38730400001)(101416001)(54906002)(33646002)(5009440100003)(4001430100002)(6486002)(66066001)(5003940100001)(6116002)(3846002)(47776003)(25786008)(81166006)(6512007)(81156014)(76176999)(50986999)(8676002)(7099028); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0701MB1714; H:localhost.caveonetworks.com; FPR:; SPF:None; PTR:InfoNoRecords; MX:1; A:1; LANG:en; Received-SPF: None (protection.outlook.com: cavium.com does not designate permitted sender hosts) X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; BLUPR0701MB1714; 23:0LZXHVDwppCB5/TuXe4NWlpMPoQol/7P/0Vbray?= ISqEK2qHkF27hzWZsHgE42wC4xgzMkeLYdaMT7Qf8avNDmvgD3Igk+P5QDiVZBw4SF9fjt1A0TWdx7RMdoYP+srGGZI2Tj+k//1j2I6LpPD0W6nATV9nnxITdDOpQWN4UCEOPnja5iiZpi9qlZtCOoVjHQXl7iRPf4kuHnBFi9yM0hyJmtrJoc+Dbj10S59tbu9hcs/+IdpsXHcv2SppC+miTaIaUR3n2/7bYw1XNscHx6VmEnRYsmOrZW2EZGifm4qx2Ch9wLyOBam7OPlc/rRdDGRSjaIgSH7xaydtgEbCxDswJVbEWyqfmawMDKA15xebyst7n3YeorOQZZhG+G5jz6L1WIRoyEwCiCiQQ+7FfVXOlcxAhJDM/Fd6a/utSuIgfkifFijoldS3JFYoOdm0o/bkBVg/EERBxl/QFSoF3RoNGeuQpwP7Be3BahOsOom/X8ofWLjjFS19NjsW25SQg3jxVn96oD/lLutypzdPoIDtzHWKngqxyPWR39yKRdLR6zEYtrUYEF4J2Qi4tpvIlbBaL1Mhcx+XleKq+FThwDaMNFK1CInYZGQhQfsbtVYhae16MClJFxeA/5wYYSZZf/w8BR2Dv6TTbHYmJ2zzIJt/JOAQti1wMjERwIfs4QQsNpxQVYAf9EUaFGZCUEi9MnxAcAZXlZnUjYnttYJRUIxs+ZyJqT1DsxHyaoiUqgmwi4VbREAQrcP5qXIedIMf0JM2R+JKu9YJFz72vqfqgPsgfa6aChQDTwhbBdbDlFNREAOpBQBRDGG3dtugacyGEnpuzg2nEmu/t1aSrsmkqnjQKgvrBRfaY0jh6VuyHsY0FQdMQ/vPFhjWOumQIvlq3KC3Rg9qkjKfpHvGCZVB4y0726+avSYal8zqJkislPbCqWGnNyOlcgR2QUE0WTJFiqu9bYwbcNhT6l1X939RWtVuwNIRWPeEkATXsw++bBKWnfOrz7wco1lZpJiI3yQFyJh/TBFHUbSQorB+vsrovKGCxxTlvb+omkjD7PypqJTtaCaZnCinAW9d8CNXPc/07AApou8jRao4g4E1QA6/VGSvPbcjnRfa78du+P91MubkzTo/CK5GPsRvVHrMVFNVWOzOKFGGvyXRqmE2Q7tXx9vExhIq2jUmKaqWQtIpkisIqBM07Bygb7fAYW626XYlO1uwZu76lPBSoTjlhdUEFdy2ANNaPrcqfTxlsUV250bpo/fWBm23Lp8/mQaYpJF3G0sJRed8Zm3J9tacuCIb4A9VORw3dxOgZD0sOH58dtco7v5G39CUmi6ZYzU4YyEqI X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 6:s/C+HuStjXbrG3aFxhQRtiy3KJohwdCw00AsmiF42bm/MFWsVCCg0K/PEwTFrgU1p1IY7vrKvpb2M6f1Kxapda7YiQU39a0b83CW5NCLNWI0U3eoezivSBbwLz4J+GL0oDL9+dJF2YBzbJW+uOaUTNu+MDj9iAxnlp+8O7Fp/Q5JaiS7KYC97yVqvsFDRah0eLDPZoG8RbbAXJUOwKwiOiD/Gc22yIECIbkyn/4mEze1jT3n1lbwZO/WYI0uqJ/w572ErgIScgfvH3+bqOpMUMxhMaUD/wVyBajW7bgYt+jzqEsXmxdYKV+QsVTwAvw4cEDo9MZmQ1PjkBeJtHl9Lv7bkh6Pvz4+8KRtlHyhUQ5ZDbB3ejetpv5NcSOhkLbY1wEQeJYmRiiMDNMF0VWI6/Eb5jzdzWZOtobRo5vW2ok=; 5:Go4hGi9meMGSxNYJCAcFrPwwgu/BeX/kfvyOSR5WkUHDAvISQwwrE0BJHHVht8VtdQb+lcsdxDdGZshGD7Zewd68tbGs7r1ZZVC4ZwEzyX3jx1q4P0Ier8gq9KnwauGZCxG1UfQlSNKFaJcAXx++Nw==; 24:jhPe+zYB6EWDE+Y43p7cPv9goqK9Y+MVlrEGeFs5lwXgt2Np7dl1MAiSJRKeG6apEDkX0BQWXlujzUhJc3ezUx1mUHeSUzPniKnB+Tw6POI= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 7:Kp771htuW219jTYo+Wk26aUykoM9eAC+0xJVsEt6hq9ddEDP/pkjH8X/xMGWSe5h6oNaEHzcsNUyRBNohVoQGAR6K620xqPqSyh/VbxidSPQFOHbBX9SGt4n5PbHWvt1tRhUIysq/KFBuxGPEbco2I6dBBWi8gXHnPxW98kopLsehDvNxCxtI+bQ4azoMNmr6vmVw1eyluKOEFXZkspMNL5R8RirmPGcDL0jsGA8k7scryTwJGe+N6oGRCxmY4s1U/BGKWlvTSKNkEZlPDACZ1wFn+mN6UY51l02a5d3x67swTze8Qt1NyO5MTsC8sErHAdQuG2uilRvd/JfGV9uTwfRdDV1DaQAyKyU1+cfQZc6ZHXnGEragACUz1og8J1sNKx0OD0H3BtDIQMJDaaK6dckcsygyBljl60tXGIYUyy0Sj0njQJ5oSvxe5wo9CCeeoLU7OjXw8+aSAhW8rJnfA== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jan 2017 09:19:54.6709 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0701MB1714 Subject: [dpdk-dev] [PATCH v3 19/29] net/e1000: use eal I/O device memory read/write API 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" From: Santosh Shukla Replace the raw I/O device memory read/write access with eal abstraction for I/O device memory read/write access to fix portability issues across different architectures. CC: Wenzhuo Lu Signed-off-by: Santosh Shukla Signed-off-by: Jerin Jacob --- drivers/net/e1000/base/e1000_osdep.h | 18 ++++++++++-------- drivers/net/e1000/em_rxtx.c | 2 +- drivers/net/e1000/igb_rxtx.c | 2 +- 3 files changed, 12 insertions(+), 10 deletions(-) diff --git a/drivers/net/e1000/base/e1000_osdep.h b/drivers/net/e1000/base/e1000_osdep.h index 47a1948..b886804 100644 --- a/drivers/net/e1000/base/e1000_osdep.h +++ b/drivers/net/e1000/base/e1000_osdep.h @@ -44,6 +44,7 @@ #include #include #include +#include #include "../e1000_logs.h" @@ -94,17 +95,18 @@ typedef int bool; #define E1000_WRITE_FLUSH(a) E1000_READ_REG(a, E1000_STATUS) -#define E1000_PCI_REG(reg) (*((volatile uint32_t *)(reg))) +#define E1000_PCI_REG(reg) rte_read32(reg) -#define E1000_PCI_REG16(reg) (*((volatile uint16_t *)(reg))) +#define E1000_PCI_REG16(reg) rte_read16(reg) -#define E1000_PCI_REG_WRITE(reg, value) do { \ - E1000_PCI_REG((reg)) = (rte_cpu_to_le_32(value)); \ -} while (0) +#define E1000_PCI_REG_WRITE(reg, value) \ + rte_write32((rte_cpu_to_le_32(value)), reg) -#define E1000_PCI_REG_WRITE16(reg, value) do { \ - E1000_PCI_REG16((reg)) = (rte_cpu_to_le_16(value)); \ -} while (0) +#define E1000_PCI_REG_WRITE_RELAXED(reg, value) \ + rte_write32_relaxed((rte_cpu_to_le_32(value)), reg) + +#define E1000_PCI_REG_WRITE16(reg, value) \ + rte_write16((rte_cpu_to_le_16(value)), reg) #define E1000_PCI_REG_ADDR(hw, reg) \ ((volatile uint32_t *)((char *)(hw)->hw_addr + (reg))) diff --git a/drivers/net/e1000/em_rxtx.c b/drivers/net/e1000/em_rxtx.c index 7e271ad..d099d6a 100644 --- a/drivers/net/e1000/em_rxtx.c +++ b/drivers/net/e1000/em_rxtx.c @@ -619,7 +619,7 @@ eth_em_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, PMD_TX_LOG(DEBUG, "port_id=%u queue_id=%u tx_tail=%u nb_tx=%u", (unsigned) txq->port_id, (unsigned) txq->queue_id, (unsigned) tx_id, (unsigned) nb_tx); - E1000_PCI_REG_WRITE(txq->tdt_reg_addr, tx_id); + E1000_PCI_REG_WRITE_RELAXED(txq->tdt_reg_addr, tx_id); txq->tx_tail = tx_id; return nb_tx; diff --git a/drivers/net/e1000/igb_rxtx.c b/drivers/net/e1000/igb_rxtx.c index 5d0d3cd..45f3f24 100644 --- a/drivers/net/e1000/igb_rxtx.c +++ b/drivers/net/e1000/igb_rxtx.c @@ -609,7 +609,7 @@ eth_igb_xmit_pkts(void *tx_queue, struct rte_mbuf **tx_pkts, /* * Set the Transmit Descriptor Tail (TDT). */ - E1000_PCI_REG_WRITE(txq->tdt_reg_addr, tx_id); + E1000_PCI_REG_WRITE_RELAXED(txq->tdt_reg_addr, tx_id); PMD_TX_LOG(DEBUG, "port_id=%u queue_id=%u tx_tail=%u nb_tx=%u", (unsigned) txq->port_id, (unsigned) txq->queue_id, (unsigned) tx_id, (unsigned) nb_tx);