From patchwork Tue Dec 27 09:49:33 2016 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerin Jacob X-Patchwork-Id: 18589 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 9C7B1F974; Tue, 27 Dec 2016 10:52:51 +0100 (CET) Received: from NAM01-BN3-obe.outbound.protection.outlook.com (mail-bn3nam01on0064.outbound.protection.outlook.com [104.47.33.64]) by dpdk.org (Postfix) with ESMTP id 1F522F96D for ; Tue, 27 Dec 2016 10:52:46 +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=SSMB37QgESp0f47vkxHKo98dIPn2ph8HNe3wIhNrSsc=; b=UsHWp5fTaUPsr4wTO/eR3w++1wiaLclRvxFSBJmicKHgul8UifQnblfQEmdJ17VnH5DZHfzOgMdfWZrnG9vt+CedDwBFjgOm5y/ON9S8KVP/8cpp77SPMCdGWLtM0vIbb06NnLYq0TckazOGdG3272uf4OdEXIx7GtPTuStGENE= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Jerin.Jacob@cavium.com; Received: from localhost.localdomain.localdomain (202.83.56.97) by BLUPR0701MB1713.namprd07.prod.outlook.com (10.163.85.14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P384) id 15.1.803.11; Tue, 27 Dec 2016 09:52:42 +0000 From: Jerin Jacob To: CC: , , , , , , Jerin Jacob Date: Tue, 27 Dec 2016 15:19:33 +0530 Message-ID: <1482832175-27199-28-git-send-email-jerin.jacob@caviumnetworks.com> X-Mailer: git-send-email 2.5.5 In-Reply-To: <1482832175-27199-1-git-send-email-jerin.jacob@caviumnetworks.com> References: <1481680558-4003-1-git-send-email-jerin.jacob@caviumnetworks.com> <1482832175-27199-1-git-send-email-jerin.jacob@caviumnetworks.com> MIME-Version: 1.0 X-Originating-IP: [202.83.56.97] X-ClientProxiedBy: PN1PR01CA0001.INDPRD01.PROD.OUTLOOK.COM (10.164.137.8) To BLUPR0701MB1713.namprd07.prod.outlook.com (10.163.85.14) X-MS-Office365-Filtering-Correlation-Id: c88a9f40-bfc3-4da6-c2d8-08d42e3e1b7b X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:BLUPR0701MB1713; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1713; 3:csk3gxZ507TNRAClMuo5g9SL1MVWeKJ/7QSWpG+aLnJFbbZukLZDt2t+LC4pe42YAXjlnEzukaC2T8xOnMGFBi8thtcjEO8wQY5PRXx/06SOV3DwTcMdZkFX/y9b2HJCT5I1dlV5gSb0LxXyzcGgGwrE3UFCXz4sDReDAwWHjgskia5U45N7g+SEQ5Ai3W2M6ZCZO/QSVuLXHKEKOTHl2ZR341VsD5IAPSHlz21Rblq2H5madQyi9WldtIMJSzJwprNUMJrAk97Rtai6VOA/lQ==; 25:UVrekdW1jvVm5GhFlA71usc9cs5A1D6ub4GsxgZYaxHqR78g0r0B2b+baFg+Z/bnciuL2fF8uQF2rSGZwU0M/b6EHU+3W1vhHaP/sXBEIFNmnJpGSgRSDrr9e47Gz5q83pxPNsm2mpGlYf8IhlZTQS1wLiuK22QxGIGZd4sCD+JB0yolJV/Xm8dGhB5n0piujAXhestS8cUiBFGYAeTBxOQzjjpwJzQLT9DZXnWtDKIQ0PKELhjGOKMvvcevXoAIJvUAWLpwZ7fDnVw65nFVc58I+ffo8K+JpDNpj8gGVlVgss2Xp7C6reNFSzXfgCn39fFP6Q57YJ7COf3d3rTHuQ0i+QWymlp69rkhlyZli3JMn8Zj19hPLLqs6eQla4x2mnF6S5jCUX9Ga3fDBZh6EgJ+z3y8sel3g5amDiJRvA6+2DnIdlEsfaOu3LFYydTAAHrm7+4xyIBn5rIo0u/6QA== X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1713; 31:F6yzrZNeUhwN2CwB2h1CGJcqyY+/kOx8tN8KNTjt4ElGgz2OjhNbIiFH9GuQkexI0vFPjOjRBZVbafXsxnCtNG5q7PiIH56tcwppzfBn6dt8As1fwI7QYmc2WuaRGHs+NIxwfhMJ0tPmMpgoijE78GfJYbc83T4oGIkSBdBs0CVv7250X/jzNLFa6X8gWbr6qCZCFcHNnxYi79uVbRZaO1Ewl3zWZQnfVahYtGzhtowM+av1IN/gWv+i5EMaZEFBj7W39AqWMMbfRc+QAHZ2Cw==; 20:kheXvJSh1c1xKqw+SC1oAvyMMvcnu9jFMJWxH1q7fXQAw8MS5g+y5w95GdHlym5ImgsalNPp737TU4X5H0YAmXMoxTGtfNStQpSJ4UwQMVSYErRf6IqN24knealBkQgKdBl32qKdsWr/NYiaZ5IKzx5+nqQBde5nJ/BUT+J7PEnk9s5bJHQ0iPpZtTMBYB915rj8p648Hv1HN8uOrV2jAxm6G7ae0fpv+b8Pd2sCQVBv0j5mYbgX2HpYkBqll3G7jHeNe99A2BWUXMM6BUxOFMX8OnBCDnfb2b57qSgj9GcX/Xg7iGBHgSLRU57DveLhjuTpObFX90w7QVQPV5iAC89I8Q3KVeilSYSZcuGxFeewRqNV2me5Zl7D2QFxMjFJbvZilOcqc9fAAA0FwHFHhafxZUSfBWTIeu40M3Dc0nxgIxxgCUW/J1Bmxz0kBfxnK7DW+1XH8KqfRv+zyz2pmXftv2T1PPKqG5Cyoajt71ytrCd95tQUG1eMveAyk6T87L7qs8k/Unzjxej33EZ69EcDn1ayFMQFpchSCLRNZnGDlihQ9x4GA6l8GBrMZmcWEPmLn/5QUCU0yoZ+JyFcIy6dwfRkIbzIKHdeTzDb/ag= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(788757137089); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(6040375)(601004)(2401047)(8121501046)(5005006)(10201501046)(3002001)(6041248)(20161123555025)(20161123560025)(20161123558021)(20161123564025)(20161123562025)(6072148); SRVR:BLUPR0701MB1713; BCL:0; PCL:0; RULEID:; SRVR:BLUPR0701MB1713; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1713; 4:4HYThNtD7fjhGvj9L/2KDcZJdZQ+M2ASeN7L8PLOOPqot3MDznxynJc0+axFwrKIKxcegs0xUcwe/dFBnSrCPhwqdsfUB02by8UWv6k0THRjUK8O60KIfdZ5cbNI6YK4hNbLOJ1R9581Upfj26EeTlQzO5erEeHSr4fyDdMkHhH2lTwWRfhBGavTyUU7ISqlvWRc3hYIvvlrwLnoTPX0CJtvR3pxWAcQsyAgtH6Q1ahpJcuG8EIw4Dj1Ww4benqLCstP6aPC0gkk6vd48ae8kdDOQmEN8HonqtnpYp8iV5KF/j94f0KSlgjTjlN8Cn5KOUGq6Gg+sSKPLq2RgSrBb2bAiLh8SASXmm2mznhhKc9KrPWjy7KTTAG6Mx9FYQvvP3dk5iz/2es8q51+O2xgyzmyh9jxQWTFGH/biaYdUpL532TgHbwoFJESawsV0zHTmiYWc5OeNVuQHt5r91KoBIMknunIqiBDHpubCT9RqvFi3tmJ5UmO2e2bdSq/tjqaqsiC+RNwQftcxHqs/lqJ6EcZKewUO8hQjWDLccqjaLY9TDJvyIanX5MggScdSHleXn2mbcKRe7icFe3r3uu3UHo1uGzQOG6TmJ9wrtShXqHbaHgDnaH5pinvez4kBxFuGe6cUVnTa9AJ65aeCly6/g== X-Forefront-PRVS: 0169092318 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(4630300001)(6009001)(6069001)(7916002)(39450400003)(189002)(199003)(36756003)(68736007)(106356001)(97736004)(50226002)(5660300001)(6916009)(47776003)(42882006)(2950100002)(6666003)(189998001)(25786008)(105586002)(33646002)(107886002)(48376002)(38730400001)(7736002)(92566002)(6486002)(6506006)(6512006)(110136003)(50466002)(305945005)(2351001)(50986999)(76176999)(4001430100002)(3846002)(4326007)(6116002)(5003940100001)(42186005)(81156014)(81166006)(101416001)(8676002)(2906002)(66066001)(473944003); DIR:OUT; SFP:1101; SCL:1; SRVR:BLUPR0701MB1713; H:localhost.localdomain.localdomain; 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; BLUPR0701MB1713; 23:snCwB5r8B900TT6KpX1+891fpGLNPjmM1cZXXex?= 7OkSPHZdWPzk5dSJcybFx3wcr8gKCBbdD/LzfiFFaeOgoYB3Xrl1kxSclYRiR9t8E+dzIYFkNLauVGqS668KOdxym/tq/Z4TMDJkjCTIdFzocv1gsNKM3Ll69khCFaOKIattzCuMqW4C/tNT85yRQg9/7QGbEjEy/U1VTWKDdF4lqoNPGn4o3kj87+rNS6g4WIWKM9DKZzDIH7brEPOmA2Du9PBmWozx1C3RfivLeWynvIpzRmSPXynvSSwKNzG585MkzqSfZ341xvpVaUnLp9Mf2TpmAQWLYCQEKvD/IT9WQyCkzFHd9axcJTxJC14dLFbUZtdyYDgVo8B3cwZelzdEr8ttIcNS32bSYIFIqP8lsCI210czewyvXxBpb0KByJNScpJLYeptvxfsSgZPezmH+SVZ3+5x74ev5OLxlK53PeMOB/UqIDkhmKVR4rgKVpbMBG6wYRAedfQFY0bTSOqFm7YY8NG4nIu1icGvlCDbgWhBACfup+HcShGP9ePyAdWyy0Zop54mJexjmeqg26NMh1yxWmliCs5htT+MlPazMgZ6cFkoaVxocB3AemKHJiogErKIN2/TWcN0cHR5tSoeVUK8lrEE8YJCeSt5yPnxp0x3RLXYqNfhS87KCP0TIhUAE0V+zuD/vDqNxttQWkaTT/U3kvmIZkIk6xNUd7/Y4g00EP1fUqmiyw3Y56wwFTOmwdJFdNFOEzguu4Em1VPKzdcZqG45q2YThu8dilm0PwzXnVbGOxg9OahlSEviUebZxtrPU4lwErrCYvrqve7wRnoOOD9T5+eXGLDKog2JnKySBeyuM/6Sq2AKiOn2cnYZKN+z89V5HnWItFQdwU+mP88Sqv6bBTeSBYpauF7+BlVA0V/7bpQv+NXTGs5pLO86vBXvHoqtNVa3NE/L5hme9V4VdC0fAK+dUwp7gPMdB69C8fAeN+CeYb4RyyH4HMunFweTCeP1Ae0aamZvWto15x5VQfjMtsYqsTRR/Kx6omsY5YW5G81m2QIu6d8pwuKOsCcJNrTyKO6WZ45LlD/+FCmiz/Y73G9Ei5zyGViCkEreFeFnvSp1ywIT993ko4xZUnG0pU2DyKeIYxxpccce9/X2c015UvpPxdn9PEqxXNh446Regn64zKf4PrnlBA1E= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1713; 6:MEs9edG8rhVtao5kCexYB8oMhb+wXXTki0jDX11MYeiaGnnfbzUqoO/9HfC0w1LHtB+EXmk7fp5ekFBr0VB6mX2kSDSsHuECxk27yHp78TU36Ig1skFiBdSzoclcvmmo5/K8/v2vzoztZjJtFhlTTS1Hlz3fRRPfl4rSqG4W0Bi/McWXxDy1R6rEal2WTg0EdNh7ct0RTOFTb1tU4rUEJ4EHMIdJw5JMPkNRw/vgUwhYXLocF7Bgl8x9WfUoVb7hbcIh0ITsR7MZo9kWIWzdlqobYHuGEwNYttThd+FwgrZ54CSZPIRGVHdySIrcv5xa4N4DY8Wep+Rj+vR4BqYsVqdWEy4eMIAH4sH5XRxQnZiptyhCzgW9zQmZdVN+bhIQbcUJ7NZPneUsaGPelkwYlqCYqNEJ5cPb+zJIx3isaEw=; 5:UY0SPdB1dVBLjNXwNr4wobx41QsllQQDwAccdi5sm7lh3xzUfxWQEm0fo/J2B2fe9jX7Pkb8365qUIsNWNbAHkvM3wF+Fnu/UMgCvRbuLWUZhiE3VET1sxwrKutakcANHV9uPXZMSB+IZG4yDpptOQ==; 24:T6wkfvWTH0bAe/H2rM80zK7UhXM67VH1KpNhpX0jelKAEZqrnFFmi1UqApJwKN+ikk9o7YlBEwohFK+7myd7AjyQ5gR9k+izionzaKJnDes= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1713; 7:uyek03/u6qfNDKR/QFWoLMbx1s1PaZJQ5/T+oHj4u3tPVyTy22uqq9JK34DsQrhMMBerGyV0SmYxtRn6h/bHIvWW5OcP/llmaOxICNlUmkCDMcMyQOcIr+2zkDV8nSC5xIAqsQ/wIhSpNBxmxe8dTDqmjgzP56VzxPVgoBoSNaWHCamzQSYUrrZjz8l3aho1QZft2R5Ldightkt/MPuuCF2VP9IeGTU4700Gsj4isxvH0ak5CrOMwT43uePlTBRVpElRBBYW8RYtT6A5wW+pxk5Yr+UlUBs5vmP0n2ZeahTrrWAD5Lb739aqNcbqW3sGzJP6Fyi0zj2mVrXoF58ZcZ33mU/cFaVLyjgiByOOemka/w8Dorubg0Ctqs6AAWFDoiBbV/7ZDgtsJN5r1GAARRYd5p+dzGsJOiYtymCRPLiwB7vb0gcAx+m1+edDt2vPQE5J4MPJf6oeHvq3kGcJjA== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Dec 2016 09:52:42.3794 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0701MB1713 Subject: [dpdk-dev] [PATCH v2 27/29] net/thunderx: 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" 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. Signed-off-by: Jerin Jacob --- drivers/net/thunderx/base/nicvf_plat.h | 36 ++++------------------------------ 1 file changed, 4 insertions(+), 32 deletions(-) diff --git a/drivers/net/thunderx/base/nicvf_plat.h b/drivers/net/thunderx/base/nicvf_plat.h index 83c1844..3754e1b 100644 --- a/drivers/net/thunderx/base/nicvf_plat.h +++ b/drivers/net/thunderx/base/nicvf_plat.h @@ -69,31 +69,15 @@ #include #define NICVF_MAC_ADDR_SIZE ETHER_ADDR_LEN +#include +#define nicvf_addr_write(addr, val) rte_write64_relaxed((val), (void *)(addr)) +#define nicvf_addr_read(addr) rte_read64_relaxed((void *)(addr)) + /* ARM64 specific functions */ #if defined(RTE_ARCH_ARM64) #define nicvf_prefetch_store_keep(_ptr) ({\ asm volatile("prfm pstl1keep, %a0\n" : : "p" (_ptr)); }) -static inline void __attribute__((always_inline)) -nicvf_addr_write(uintptr_t addr, uint64_t val) -{ - asm volatile( - "str %x[val], [%x[addr]]" - : - : [val] "r" (val), [addr] "r" (addr)); -} - -static inline uint64_t __attribute__((always_inline)) -nicvf_addr_read(uintptr_t addr) -{ - uint64_t val; - - asm volatile( - "ldr %x[val], [%x[addr]]" - : [val] "=r" (val) - : [addr] "r" (addr)); - return val; -} #define NICVF_LOAD_PAIR(reg1, reg2, addr) ({ \ asm volatile( \ @@ -106,18 +90,6 @@ nicvf_addr_read(uintptr_t addr) #define nicvf_prefetch_store_keep(_ptr) do {} while (0) -static inline void __attribute__((always_inline)) -nicvf_addr_write(uintptr_t addr, uint64_t val) -{ - *(volatile uint64_t *)addr = val; -} - -static inline uint64_t __attribute__((always_inline)) -nicvf_addr_read(uintptr_t addr) -{ - return *(volatile uint64_t *)addr; -} - #define NICVF_LOAD_PAIR(reg1, reg2, addr) \ do { \ reg1 = nicvf_addr_read((uintptr_t)addr); \