From patchwork Wed Jan 18 01:21:32 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerin Jacob X-Patchwork-Id: 19676 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 65E18FA3E; Wed, 18 Jan 2017 02:23:53 +0100 (CET) Received: from NAM03-BY2-obe.outbound.protection.outlook.com (mail-by2nam03on0049.outbound.protection.outlook.com [104.47.42.49]) by dpdk.org (Postfix) with ESMTP id 49B02F95A for ; Wed, 18 Jan 2017 02:23:28 +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=FlVA94JaLGGdNPbRJ3VuALbCrqxud/3HPi/xNZASI+3Ty7RSoAt8ACF0d3NuMnCR9L4zTQpoc78gFELwqTqoKRNb/VM7tMCvw3rRRExjEh8BUkT0xvyLYgwijovw+SLnEHMUOmL11GUvZsdc+al0Bo0bftKZoPOOIBrTRkW/IL4= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jerin.Jacob@cavium.com; Received: from jerin.caveonetworks.com (111.93.218.67) by BY1PR0701MB1721.namprd07.prod.outlook.com (10.162.111.140) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.845.12; Wed, 18 Jan 2017 01:23:23 +0000 From: Jerin Jacob To: CC: , , , , , , Wenzhuo Lu , Jerin Jacob Date: Wed, 18 Jan 2017 06:51:32 +0530 Message-ID: <1484702502-25451-20-git-send-email-jerin.jacob@caviumnetworks.com> X-Mailer: git-send-email 1.9.3 In-Reply-To: <1484702502-25451-1-git-send-email-jerin.jacob@caviumnetworks.com> References: <1484637244-7548-1-git-send-email-jerin.jacob@caviumnetworks.com> <1484702502-25451-1-git-send-email-jerin.jacob@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [111.93.218.67] X-ClientProxiedBy: MA1PR01CA0115.INDPRD01.PROD.OUTLOOK.COM (10.174.56.159) To BY1PR0701MB1721.namprd07.prod.outlook.com (10.162.111.140) X-MS-Office365-Filtering-Correlation-Id: 68db7f77-df51-4a60-f261-08d43f409a29 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:BY1PR0701MB1721; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1721; 3:d53EblxXIADy5HsW+eIBeq+ij9yZlORihNPdlGeh5ZCZeiPSX32cpV9vR1B4RefmU6yQTx7D/rzK/PToQvSK8uow66Rf2Pg3Vhjv/tOcVltsvFtj00INF1/pn44DhA5yP3i3QiVewfxra6JDSy0jRMfRcAbX+PZ5qb1lTqN6OkeffwGKtuwT8kQvG722yFozzKosid3QkEvDwgYJkqo5WVLlZxKWa+OUgAQL4sFceOdMNmbyhD+hvudoOKJEl8KU8up+yXjMoQRvv3mTgfudWQ== X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1721; 25:2c2bDFS+69vkDgelcCkkc2doYjyOWpSWzdCvG4ovhDCbQr6eeBds0dGHrla5n9hdIdFbqIxod8CqUobDMsZh9617iZMkmjsEoN2RtylBqItGg3hvQgQRLlLzFOvOir3tAQDCjrGoRKsCTl7jqIZiNU5YZkBgyttqdJUVpeu95WS7G6c18CcvN1ZznGQ83OCzJITmDkIPS8YRovUyMpaowzzi9e5lGNBqBNSFwFCjl1zg/FDwhKHPHSyflNzbMysqVkNatBpKK8lDwmqU5ranZ/Of7vf6wIi451BE7cnXve60aKt/+/zPuDNzBmaWFoZSywOaEmikfTIT2yxwzyK3Nk4QbAoEcCphac//Wm2rXlVjXNZpWdJM3biaoXHYCpq5kkt0kYR8xdzERkR2lJYlma0N+EKwxGtBWV1VkPa8erzrTxX8NUg/evXGwY9MHxDXC/wYkQBsqz8MVunMtXKu3i5mm2xhjk0I8ez3QJd4iEpZehuRO+kyp1kP0tJ798faRjHpS4mYpEr0rwbNsq4i/OYLiOKM9jMQtewWJVBOwu1dDDHeJdlZ+i2egm7gy8e037RKssh+eRcV6s+gs23WETfW70xKEmc8jzP2/F55n3ZA2NIogDj76KqIs9NgsDDOhUTwGFAgk4qInKUuURm/v/bAoI0lYlSx2CAoYYROc2YjRDjvTazvERs0fAaSuwQu29Vepj0Isv+do1wWmV4UuFSsr9nDVZzzSIN5824TxyTpVoSC0pr/FVuURJg7KB1HHVi266IRm2npxGssSZu+6Q== X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1721; 31:CKo1mdZWcK2L/L0tOC6YzsgIkIcwOg0HijZE5MI31D9eQJSyH3Y41Glcoplv0j1EMWV6GRHygvTPaQEC/Fe9ouzN2gEjID/P3K3gMOKzz4kUflUWK01tM04bObbodB9rCpVm10u629dDmMUqMT6i7MO1qLQ+i+579Va9RpTLpXhvcvo07xsKESpnfsT8SCgdgldheU7yxI8K7WF+Fsh5cyBtdv0OezLPyzY3HIo6pKnJs8dTFtho3764Q/0sauQq; 20:RRdDYfNQMNQ+QXBwFZUtkvldh0wb32JLborPowVlHlqjpMpYiqeQvTpWNX5M9DUCUJOIWe5UlFTmN1mE35bBiLjasWPMH0/uGaOG7whgVle9b8O3DEUMvPldlPrTORj9BSIpFMD+l3XwerZ6tIAzywaC51qE385uDv8j3FDFh8cgLpwn2XcygkajjT4LcnUKYGXIY6P11hP3b40Xa0RwT/a9736PHLKDNOoRAhIHWIl0cA4H5o02dvdVJDnUvkpYVs7FKno7fnhT31Te5NDBGTPaPMZLSI+0wXiUfEfQ5XHmWOhn2jIfcMKpHXpJNg0oRZDsMBVyq8v2EFprLpuIb0q+6VYHN9dqwPtuZ2BcDz0dMUg/lJJdfgNWNWjsCgE7VCyqpglhK0deIFpdYbIa3l9IdDjCAxPURgM4uE6Q9j64Dw/MwKrtCTSXbDx/+IOzqkkFz0+RQwfXqeNa2Lz28mhtZJ2M8V9KE+1wOX9brjYXfLv3nRmTqjTdaIB3OS+p8VLuVy1F8gfDpuLkVoVurKX2FEDPJG3zG+89Fok/y1at8J0XpO7vVCRoINcQnCn46aIrbNkdn5p+81DpehwUCmHsc1YBN+cM5IpElO1+tm8= 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)(3002001)(10201501046)(6041248)(20161123560025)(20161123564025)(20161123555025)(20161123562025)(6072148); SRVR:BY1PR0701MB1721; BCL:0; PCL:0; RULEID:; SRVR:BY1PR0701MB1721; X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1721; 4:8DQEgxgYg4sB57DMuqjeQkUdjiFBMzFBmBeB+gpQv7ydh4/UA7N2aEKbVQ0OLT8iPA1ygLVZiXUVjsqROFHjP3/uqem8EiD+MB5hrUtBb02bC8jwulzZhGNF11CCo1IjXtVq2Y97vlXf0bDnv+zJ9t7fipNUC+hDBF+7B0v9LXScr0/KYi/QpZFWYEmItatv++mis9vjZeoxoQry1WUiOM+ZOFFs7GGhBR4rcIBmoxhEMazsjz3eCiEI5x2YGJvfFzuKoc30s6yiaa20cDJF/LSu5gzMMOc/kmMVMp/UWL5O8otOjiMu4kDSB5NxnuQSlBo0BBHRFEFoogxrAEWdFP1SB8MP4MWfcb1aoKSSaXGaSZoGfFhKBOtJDvexWtqH7NWJ6zxUvYvqPkngIyF0jf67lbmeazOarv5qXXkjPjka/zargBVXI2coXgzmlv2dBezh8xeqz/3OrMA4qzwi6F6Qaec3mjpOqNQU4eqVKPRDfBOjJYeg7t4tDtsCmxOakYoe4zjMS11cfbfyRowV2m5gJiBnOcwBbOB8tKFeYS/fQn34wWWDa7HyEFFIQ9FxN5IcVoQKtIH/MOIBE1GBxywtyNBW1Vz1Db4fEHioBN4dE+3E1Ii9QnEehJfKM9PNBERW0C/GKYSbG8Mm9Xat9w== X-Forefront-PRVS: 01917B1794 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(7916002)(39450400003)(199003)(189002)(4326007)(6506006)(50986999)(97736004)(47776003)(107886002)(25786008)(189998001)(54906002)(66066001)(92566002)(101416001)(38730400001)(81156014)(81166006)(6486002)(2906002)(42186005)(53936002)(50226002)(8676002)(2351001)(68736007)(305945005)(53416004)(3846002)(50466002)(6666003)(105586002)(33646002)(6116002)(4001430100002)(5660300001)(575784001)(6512007)(48376002)(69596002)(76176999)(42882006)(5003940100001)(5009440100003)(36756003)(7736002)(110136003)(6916009)(106356001)(2950100002)(7099028); DIR:OUT; SFP:1101; SCL:1; SRVR:BY1PR0701MB1721; H:jerin.caveonetworks.com; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX: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; BY1PR0701MB1721; 23:IGPpiyUZKtozw1BSNfCNgRzqxEBCEr45cikxalN?= MVi1boVHlvFjOEOOgHkIMwEwYcoES9PnU/FdR9cg2e6k+pm1ohzj48Qiv+PikNEY9hHBKYpb00O8J9bb0tMRLQ0Lps60Yd5G6ZZGkioVa9LTrhgwpV+HryqKUzhjxrmphyXBWVkJs/W/7toyu+mkFNl1yV6qn0OZUpuNrrOWBAHj2Si/UVXo+tfEVhW582f684LW/OsaChy92bmUFjzB4HezHRJM28K7RmlRYtOznlKU5zkyzG/7H+31BBNT4xR60G2jy56pMX+cCVjOF43pgZDaM6pdoSS81Vr2JUiFM1XG6+pbQaHMVrlhQT35bZ0mvDM+cDoNmATDlPeRx7aj7Ehzv705K6+21wMyX6fuQO/JhCoYIAI8i1qSk6r9+LB6tKs4uNbLnsIy5euq3MzmtMANkihStaSuwyuTXZX55fFLiDmrfkyuAwzP/rHOlq9Z8Rqn1c0xy+rFlxQoDCNWqntlZUNlXVOeqXIRlUFMH87mYgogM6ty4BfCcl6NH8F7RAQPUSNdnwttSLTWuS/Pn3/SmsjLLpQSOeQhVRTum/ZaD1UmEvNcx17UyGn/vxedo70/PS8IxXs+ESrtBIdWMQMdsFtdUQsCUeAsRbeID1ujDez3OkusvHVkq2VL/pWEbPMBfRuHsPMypUBazKIqoUgzI/5VXxxvi6ZHCc+QGNHqh25K6pnw/slTuV0PzQPb9AMJPWEohCY2pIApL4v2bIvlXuNE1BHMdle+EcbR1uoEuP/fsunwNcsdboOOtenoxzMX8GE/nASeZ7bnpFc1Ljeti10cQK1E4CNBG0aojWL0G5GlcEzvgYiUhpDaoMRHL/h+wrTNkK+oKZ4OlDHTBkg4fKRemYmjEzk1mstDtDXfs44PTu9ZMjVU6VmjtB/3exTfmYL4i9DuIGfysn7fUEhcivNTtERbm+Np/q02SQsfrbQcSDIjmixTHyb031jOgVhlOR2AUBXZguO5k0fEcFHEWV9ejeUH/1sinCDnb+415nV+WF+VNMg3DD0/nTbZDvdPacoEKHXU4J2+RBvCQeKUhrsigtC9dOdi3/MOF7IAsawmF48YTLLPLVJz5XBI3uYVVKgtKXSieAWRAeVQMkk53yC5h+zAXpsGCM77NP8HCkUWhdu72Qpa1vUJ03BwmeRoE7b/VnYMBt5wp+o2azwC2EKDFxbr49i1+nhV9VhMqnBk550moIa+9Elh1AVB9dd0MyHiBv3+cP+SP9cA8qeoPDnXx7/TzeaDlSAcN3+qRF43fmqUoHzHymLy2GHSGj04= X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1721; 6:+vGtyUbg1Uo9KKjrnx08xklFZksfA+MwrS3RL6MauxqI0fnKUonJIOFBe/fLH8e//4pcAXo9Skr5LGScgM4UPpmSpHmmzShV0N8AbUO8Uc4CopViYuec71LuVZM6LpRnK7pZ30OxuUrdgniC4EB8smwcRPEVEmvn0nqQ0ZbKHU7/RQmfmYXgUlicaLmERUMugnBkl2oUzie42HWAQw2ADyNM58FjUUUba66ayq27Z5Quw39HNJaWyHPR49mcjrEdyeqQh2mUIqTv/Y2WK5N48fuajy5jzMcFXSaeLTwysOqRxhDg3sHmDTlP0qActYodal2TMcC/wO/UMRNam1GDwTOPYIfVTs5DeR1CXyG5wvE9cbvi4rnSV0pxWjrJlylTnErGGoEkkz9/gaLObbscUaemn9fvgTBnbRMh8kk++Ag=; 5:mrbvJI4C2gBodLW9r2FVN4BqJ8A3XzCYo+ZMy0IZKrUcDKHjryjV8CIJi76LcYXYJMwUMYqNOThKkjqlgd29FFCt/y1FiwvyLlDKp6TsqlezXYXZcGPfEiynOLCTxbwS46lAMwl/uEiLI8HqLa6ERgiyheONd0BXEPnHRwCTKmI=; 24:nY8bpYwI/cba11FE92iRcTCDvPtDqzTIOL23wTO39AsisiAbJmwdEZC7zIxVxv11TUoUFTFxs8xZt8q4xFmtKiFAc9Ph+huzDQQP7GD9asA= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BY1PR0701MB1721; 7:tvgcYiJUUV4GL55KPPm2qMR7+EljLHqq7OOhCg3yjeCGKeIe26O7aGpJV47Zhwn/4JKTv6IYopAPl1IXL5lVfhR7MUG01FA2xzq21HibpcVLClUOMyUjb7QBZqLSn3uw1/vCeLBneDPEIks8BNl6HwU1keNHiVx/eNs0mBSKcpx3u5PH+jsYaPrx4PD9evoHLsgh3TtYQhCLJXmaD+qfMQLIFYzPAS5cg45ag033foGszMKQ5BuVUiv9GhFD6WlaQjN44XN8wYHFdpeDtTZ23KgYRPrUZ0OSmJ1gN6oUKRZ3MQzGLZkq22Kw98hp1dK4uIRWp+gnYEHB32zSzCf+rL/RESRfU0tJD9toedvJW9zy/bKkWpoNBRcIre2Sy0kbRqSy6TspNfeBNbdTm2/rsvS2t2XlzE1qem8am8YlgXKvTOpHf7B9rSVo1ni6Za3xOXLEF3KQiOJyHk4GPtXs3A== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 18 Jan 2017 01:23:23.2864 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY1PR0701MB1721 Subject: [dpdk-dev] [PATCH v5 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);