From patchwork Thu Jan 12 09:17:13 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jerin Jacob X-Patchwork-Id: 19227 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 61121F928; Thu, 12 Jan 2017 10:19:44 +0100 (CET) Received: from NAM01-SN1-obe.outbound.protection.outlook.com (mail-sn1nam01on0076.outbound.protection.outlook.com [104.47.32.76]) by dpdk.org (Postfix) with ESMTP id 1DB9BF926 for ; Thu, 12 Jan 2017 10:19:42 +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=j1UrY+cVfryQ4Iphx69yuwhdIWUzJHDLMLyeZOYeIsA=; b=U43Dy512z7aqfD6wp5+Jl9Psel3e6joGlVyF0vYytRjvGWhMQGCbwjPC8NlVAEYJaG3TjcmpSDUSPq80Jsvo8VrPUKhRoBdoZRiuH1Zr0oOijQRYlMkEHU3Zdhl7y7rE+vhvPgW85MAlwx6b+9amwVbixTXjAXyEEB4ZtbVZpHI= 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:35 +0000 From: Jerin Jacob To: CC: , , , , , , Stephen Hurd , Ajit Khaparde , Jerin Jacob Date: Thu, 12 Jan 2017 14:47:13 +0530 Message-ID: <1484212646-10338-17-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: 3ed4a407-4fd1-49b1-41fd-08d43acc2320 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(22001); SRVR:BLUPR0701MB1714; X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 3:QvOoa6k4tSXRoinh9bMTLm9mBoXWahXWcdQJCpJeUifQuLEtiudPWY8jCoQxkCayFsSOglT6dM9uha7fmA8sx3m7s8qgaZ8D6SzxzHqW1uCV+ow02h2EMSfrWzOIjX6OAdSlasHNG8pqtzyo85EW9IvROsnEHM5730kjPdEZCi4a11d+OmN6UcI2kBBAYV42/Pw91FAiCk6Ji5n67Y/ZLy5XLD83H3JWLMdc7PxygZH0zj0VzO8WScX0Q4pESOP3ojIkMHroH6tsd/ADnMSuig==; 25:xQKVAm1pcl/lhGmbVFhS/Ae5F3K4U/J1jebYvOpfFujPuJHcrdLkA6fDTy3ZXIRN47AsOg+Slk1ITcEpqlCtEIfe1PTQbXFPBHMUzoPDZr62bUh9u+UsDGJjUmBXrR3FWcXfTFVF5FXSAtImJD0omQip6pdBA8sLCI2BYuA+xlA3islhKwR5boQJAFWfFJDs+B3W9UVTwh982/MyAUPHrwJ5aJ3J9DrU+rOCm9geV2/8sj23JcDTRo1QDVMuBud7gqYvWjefr+FTRwzhvyFcdaGjYlW6FdV85luojZchUxVf2CCyYh11Y+H8pFV+5LXnjK0qByqa/fc8IeOnVpzlTqvKd61rRdE5d/n9s58gUCRGhcowXIUeWBCOziq14F6db4i69c8YH0xCQYZ1Es8iF5JLoAzC364OrbVn3LB8tpDzzk0LZsi6IUcn1vQBSRUbCBqXYLe+5A9KbaZjCOw1TA== X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 31:27IwHIMkaOMVI5wpUinc1xWr9RfPqv4JxnaFQRaHqetG661KxcbdyGPqEVEuQG1Ida67RJItwVyb9MlItXul032ckwnRPlhmeohPnYQmJnlLyS3F/uos4xxg6rO8lDjPjnmcGgIVZlojqpUk5p3FHiSB32Wy+PN41ruTMN9b0wzm4u0fUZS5Ji1UurLDRKq1xhxOzeLKQk7kwTogQVIZ+DRPBT3o5m+MequIMYDqTHnGlqdk16mPtSSd+L48rgBi; 20:lCeyEOk0uLlQzUsdUIPyMs6kU2X4UbU2dU5lMomcJ5YsC+jubxEG31IKArAAoxGhtspcywqDWj7ukg2VOR0boQcNfpE9mKAMBHVOxsV4xtTDl7l0DHx739SZ+vFc3apxcWm9oqqhcdrBeBlKGCgUxS+8+zRTgyd7m87XDCldXExaSJKrxP0BUcy8Y5H2bbfLbaLn7mHunEbC59fwSDl9MaOCEBB2TqGW17e2NlW9tq4lTW/0rz7TDStWRPfPfof9kVtFS6ImPVVRbo4ZgBaAC/6Hot8vtnjwFoiOz37IawewEDaaovfamlwDtHCu0bEDuCa+TjOa/bJL3ay/VUYAu0uj5rr1yv3OK6aal08TTGHwxS6yTLEMFkmrKcMPe8MU9zxyGG1IeRsFoygCDQPmge+ibOqmHwSUpXCBrm/uqIAK3bA+SDgUolJZMI3HpEFbynUGp23VnRqNmmEQXxAo/EJFC6+fo1xpv+6y5b4TeTQLQXunwmiFiP6QJVErDaZ73J26wgAuZwgpuLNBi4IP7H4ZmoJE6rLRxuXp8U7lBJ3Pz+xiHtHjiW34GnlThSxXFwJPJ6zqQtOJgtPoq29WUypd0BSF5UonnoVlMCCXT7g= 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)(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:xgt3PtN+03a8Rd//9QAcWXI51dWFZa8u0C2HdAV4dGiA5Xj/kENYg0pV04hbRfIWc86+OHCtLdvure54tyB/mvVQ0cBtrq2aeAggi+dymjUzpwC5Desffke1IVevkXQoEgoFrVar89FzxSMEys+TP3IdtE2dhJsNRdqtPfol4bJ2MAw8cO75lKyvCl7IsZnn2cCX6f5O0HX+S5OFnijz9Dcc4eQ8MfB0U9OB2oecT3wYyRBUtuEYOL+I1OMHk9j+recw9moGZglMUo/OSu3Xc2FYYa+SoWtnt2he6LDEmR2fEtmjVyoWdxkdllrmDWfYL61JBjMNg3cIkajWhWu8ET3eOg2tr79PFkf5zGnxpD3RJ9e/OWMhTjfjziFtwjDhKMlNE6KobydfRW8Vyl1JWY021HjZ9I/uyEoLHJcxnQqtEkk+xnSQZTaAZDrlAJ68wZj2B9+y7yiAZf0NYkuu/gxZatwVEMMfu1TsKNbAbI1wXohxk1Hwcg/lGloS5kACQRvAm9D/E0fDOnuQyGaogsClQ0re+stC+FiKcVlMbj99/lmBV8oji7QEsqN1KE2JY3Wb2/FDqL51yP/01dKQeij4F4dkGomGq1FWH/poMMo= 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)(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:Z3yh+iBoX5/Z0BEO/EMNsC6cm/fm7woLV71E/oS?= 29HFydkQNd2fGr3f6nhtf8ptMStxA13X33iMy2LRGctL+ZiLUydQj5IY5vXjGC4ErOAs6MuyYngulW279j/jVwUghE8O6byOWoqShjShLMTDG7VbE14EMlFBEn66rDVhrn3onL1ucnYOUxxBk3XN/S7C5cvB4TkFMWaAon/FNOGeBGTwmUwDhtHeEgMNuLVTIHfE0ul2w01oNgfpWQyg5blqqmA2LSudno09c6QA9qwkwobupIfrAdwXiNBtHee/6VVidgoVkotKBtpypebkgm6EQJqHq1CYGubpf51l/0AcdAz/5eSACEjb8bQP1uQSGs8KZtyQB6Sz6n8EpBMsucAraY//FBzg61fWfMsk2Civ4xKVxe2HPC6Uqe+Rpu1XB/7OdSd6UgbeLDc+c/bkY7lReYZjp57j7ePlOfnoi6zHKLV/D2ymhek/VsVnwdOf+NxRmXoKqtTtUFEJyuqXm65k1SpPk3IYOiXiThxbUXsuh8Yr72zgxDSzqSsubpgpHQKijg/DI0i0lxRnXc1VJrBpRQMryRo3UVUKQlb4f6Dgtvdcs+geVNVH6FHF5z3CMVOPzUnyQJf4bMEZRaFEIKtEaMHhW3URc0u8wqCYrWnGMhwbruf1mfbyuwwZE4ygHdCAwhYjq8nQkXDP6mFNRv328ypqpkilXg5VROivGsrKS/nHnioSxCWTVLKMM49M5PgpkmJjm+1HwiiEVI2n0megAnmz8BwYYd94683iCNptxZhBjs4sMEogVFfOUzxtx5Oywm9/3UU/mO7SDg+trjX8YPR2bGN57hPQkoEui+f41ErpSdn9o4vHSmv/O7340BsRA59oZoFWqi0Ss0RO84Wrs7NICOMPZfFcI9EJGjyYt/XJRwP3KJ/kpKYQjMU6RGWEP0+IsCokX98Ay7nIuykn4DufYOw64zwmV7kICMPsMIU/V3M/iX4uzvOPbSCgxfI8JDzpy6Mf3s2+xKnM8J/7WRiB4LmRlcF8Ky21jVHUhbasdlgjUbdC+0KZxHy2vZLgksO8dKGmiQJOZlQPVIVZ4Jz5ChzKs+pjy9/owH/jV3X9UCAQd+gTvRPg8+xf0L0hzuegvOccDGqIrL1INAveCgvxzCF/C5uNqxiZtB0npOeCI7uBilKTUAYH3MPuplVFVup+2SCDfmgOf6u09mwLwBrerD5NmYiHmkbq20XJzvfHbRdckTqC36vNPE0qgAJm3yGofET4O0bTqK1qsYTLVAtGOEBzX7G92T44HzngRO5ctONiVbgUX/H1lUhTK7I0= X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 6:1JfPaUgISritf9ylJrbYhmnxPX2xfKmZ6cs8JT0dukMh71WiYy3nT+QTtVXUQf0581W4D8AbLqdnnuE0E97L+Br0tcpMP58TBdArdWOuER5T+aOOQdLbuC/ysow/B4/3Ij0PR80QyIdiYlyVoBX9lDHJW96wCx/861MC/LVPJIXHQlIs7AChkGjUEkRT11w34ajSG/e0LhuuV8o6kMT2x7msY7Ytb/ykvd63oFMaYnAVuVh0v+/Dc/v4tmt94tF2n9uuq/ByRtZJDQTqq5KPuCGpXfkw7l1Mb9Dn8TjZfU9kcWfdtUEomf0vnXenrLQaokaneCKBTzNgN/2WYoLOHOS9xOzNfPiDmB6sUPKzHjXiS3dk243Ul9XZVOHXIpnvQv4YjawmpRC7j9B5tLhJlj8Lst9TjWRhdkXKWvDt6xs=; 5:ATwMe8a3N57LVKaPm6zFztKZ6+vblaX7DdlHKaqEUbwUconp61ULYSRVTwAnluYOF5ujLe+kQEiwDbZcckeT7N7GlLIw9pc1iishcXJ9zjB2ZiPLOfAxLL7pl+F2IEjpF5SgqZz7w38xm+I/JKeanA==; 24:csGtKXEy4go3sDrJ+GKKOpVszRse9zGpdZbrtiOevMrzE50j5d9cNdCln1LnBtI++UejrkQ2z65e5dZ0ph+y9YtRyVgUPEQc3ElD3Szdr44= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-Microsoft-Exchange-Diagnostics: 1; BLUPR0701MB1714; 7:mHzCJZyoLrEr7GOjXDuK7U/FjAePLhUEYXMi1OPwGhW6z5tFMC49Cbf/4vQx1eG3dGOOs5ilKEg2dQoN7YYZZjRL4aJJt4Uu7JG9nlVpplWvO1aOc0YQEmaX2yYKoAU0e+1hH+KTVVsm1cb/X7Tt3eFAmVAGn5BDFMtsrF/duH3bB+w1usOyZNqC2Sf23sbPs+TXpYjuv4ajYwDjzBaTTNb1E8wxVYL3js/ypWMMV5I6d9MuXqDEoPuwRDnUvyu1Y1GAEM4ppxHVemr28fQH+qvApr79wEG8iVuC8de3pAbre5ZO8osw/HECMWWydybh+DMIhEZu63+7Rdd06geHpOKZmCAODypPrdNHyrt5vzdWRDzmLnYABGmx5Qi6y3+rj/aqOp4l3XDrsk822vtIMD284ObUhydFomTOXffMOKwb0BA0ECESiCrDiisPpXFDKHBUMwEjA7QR/jX6GdRuVw== X-OriginatorOrg: caviumnetworks.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 12 Jan 2017 09:19:35.6592 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: BLUPR0701MB1714 Subject: [dpdk-dev] [PATCH v3 16/29] net/bnxt: 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: Stephen Hurd CC: Ajit Khaparde Signed-off-by: Santosh Shukla Signed-off-by: Jerin Jacob --- drivers/net/bnxt/bnxt_cpr.h | 13 ++++++++----- drivers/net/bnxt/bnxt_hwrm.c | 7 +++++-- drivers/net/bnxt/bnxt_txr.h | 6 +++--- 3 files changed, 16 insertions(+), 10 deletions(-) diff --git a/drivers/net/bnxt/bnxt_cpr.h b/drivers/net/bnxt/bnxt_cpr.h index f9f2adb..83e5376 100644 --- a/drivers/net/bnxt/bnxt_cpr.h +++ b/drivers/net/bnxt/bnxt_cpr.h @@ -34,6 +34,8 @@ #ifndef _BNXT_CPR_H_ #define _BNXT_CPR_H_ +#include + #define CMP_VALID(cmp, raw_cons, ring) \ (!!(((struct cmpl_base *)(cmp))->info3_v & CMPL_BASE_V) == \ !((raw_cons) & ((ring)->ring_size))) @@ -50,13 +52,14 @@ #define DB_CP_FLAGS (DB_KEY_CP | DB_IDX_VALID | DB_IRQ_DIS) #define B_CP_DB_REARM(cpr, raw_cons) \ - (*(uint32_t *)((cpr)->cp_doorbell) = (DB_CP_REARM_FLAGS | \ - RING_CMP(cpr->cp_ring_struct, raw_cons))) + rte_write32((DB_CP_REARM_FLAGS | \ + RING_CMP(((cpr)->cp_ring_struct), raw_cons)), \ + ((cpr)->cp_doorbell)) #define B_CP_DIS_DB(cpr, raw_cons) \ - rte_smp_wmb(); \ - (*(uint32_t *)((cpr)->cp_doorbell) = (DB_CP_FLAGS | \ - RING_CMP(cpr->cp_ring_struct, raw_cons))) + rte_write32((DB_CP_FLAGS | \ + RING_CMP(((cpr)->cp_ring_struct), raw_cons)), \ + ((cpr)->cp_doorbell)) struct bnxt_ring; struct bnxt_cp_ring_info { diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c index 07e7124..c182152 100644 --- a/drivers/net/bnxt/bnxt_hwrm.c +++ b/drivers/net/bnxt/bnxt_hwrm.c @@ -50,6 +50,8 @@ #include "bnxt_vnic.h" #include "hsi_struct_def_dpdk.h" +#include + #define HWRM_CMD_TIMEOUT 2000 /* @@ -72,7 +74,7 @@ static int bnxt_hwrm_send_message_locked(struct bnxt *bp, void *msg, /* Write request msg to hwrm channel */ for (i = 0; i < msg_len; i += 4) { bar = (uint8_t *)bp->bar0 + i; - *(volatile uint32_t *)bar = *data; + rte_write32(*data, bar); data++; } @@ -80,11 +82,12 @@ static int bnxt_hwrm_send_message_locked(struct bnxt *bp, void *msg, for (; i < bp->max_req_len; i += 4) { bar = (uint8_t *)bp->bar0 + i; *(volatile uint32_t *)bar = 0; + rte_write32(0, bar); } /* Ring channel doorbell */ bar = (uint8_t *)bp->bar0 + 0x100; - *(volatile uint32_t *)bar = 1; + rte_write32(1, bar); /* Poll for the valid bit */ for (i = 0; i < HWRM_CMD_TIMEOUT; i++) { diff --git a/drivers/net/bnxt/bnxt_txr.h b/drivers/net/bnxt/bnxt_txr.h index 4c16101..5b09711 100644 --- a/drivers/net/bnxt/bnxt_txr.h +++ b/drivers/net/bnxt/bnxt_txr.h @@ -34,12 +34,12 @@ #ifndef _BNXT_TXR_H_ #define _BNXT_TXR_H_ +#include + #define MAX_TX_RINGS 16 #define BNXT_TX_PUSH_THRESH 92 -#define B_TX_DB(db, prod) \ - rte_smp_wmb(); \ - (*(uint32_t *)db = (DB_KEY_TX | prod)) +#define B_TX_DB(db, prod) rte_write32((DB_KEY_TX | (prod)), db) struct bnxt_tx_ring_info { uint16_t tx_prod;