From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from EUR01-HE1-obe.outbound.protection.outlook.com (mail-he1eur01on0057.outbound.protection.outlook.com [104.47.0.57]) by dpdk.org (Postfix) with ESMTP id C9C274C9F for ; Tue, 27 Feb 2018 18:27:36 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version; bh=R3kl7+RrA6nHHRVWDDkrvpFcgPguwq4jMgmI6xgwWQo=; b=ZcHn6t5Vibn+evLES4KQRFl0kVNjRJfB5Nud5NAhOHizm1fzJl4yhEaxkjjEI9U5oOFTpe16t5zUBTsp+P4l4MFs0Rjz8g9xvztOg6eRrJfgLU2nzVFPx4JJsPu4csnQd7zzZbQxnnBeyXaVp0Kw8yo/3xTsfLLH52TgXEwTBOw= Received: from bf-netperf1.ap.freescale.net (14.142.187.166) by DB4PR04MB0768.eurprd04.prod.outlook.com (2a01:111:e400:984d::21) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.527.15; Tue, 27 Feb 2018 17:27:34 +0000 From: Hemant Agrawal To: dev@dpdk.org, bruce.richardson@intel.com Cc: thomas@monjalon.net, shreyansh.jain@nxp.com Date: Tue, 27 Feb 2018 22:55:49 +0530 Message-Id: <1519752352-15442-5-git-send-email-hemant.agrawal@nxp.com> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1519752352-15442-1-git-send-email-hemant.agrawal@nxp.com> References: <1519752352-15442-1-git-send-email-hemant.agrawal@nxp.com> MIME-Version: 1.0 Content-Type: text/plain X-Originating-IP: [14.142.187.166] X-ClientProxiedBy: BM1PR0101CA0017.INDPRD01.PROD.OUTLOOK.COM (2603:1096:b00:18::27) To DB4PR04MB0768.eurprd04.prod.outlook.com (2a01:111:e400:984d::21) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 0217bab5-0dd8-4f34-cb3b-08d57e076434 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(7020095)(4652020)(48565401081)(5600026)(4604075)(4534165)(7168020)(4627221)(201703031133081)(201702281549075)(2017052603307)(7153060)(7193020); SRVR:DB4PR04MB0768; X-Microsoft-Exchange-Diagnostics: 1; DB4PR04MB0768; 3:aHt8EbJPSx4AEoTYnXcD40biMaNSF4xAF1JnoLiI/yOkKjaLj4jvOBeUP1vG8aGsRZmSGAtZqCC/fKimRQUiYXiqLAftfEC3NjYYJ4DXiFCmegnQbFecCqt+tuk6ujkbht7qTBUb+QZZAvgCEasZOa1Yw5Bosm4Jfsq4M/Dd9pJcRqDGB4sqGe31fkoHJAJF5VfDv7z8f0aWLS9xxfwwqBSeddG3ruJcv32RfAOa1cdrYXIqAjpet9aef14nxtUX; 25:vX5Hf8axvXHFNhpFV3iH2xNcY1dNGOes+aRKcl8KA9vIq33NSrGSOGQIlDGHOUDJ0p53olIV4ix88N6Q/4Om6k/xKtBsjdkjPnNWzCYDaoqAxay/0XZm8rBe1iXSp2/eX1R6RY+StX361Arb+tM2J70Z2pNyF75/Wpe+hBa9YHS8Ff2xOjA9jABMUdXiG6P/IHk/oIu++JpQQwILdTEfdaVQ1loA2YYt+4YcXLneBeRPmenf7/CcYaJF4Ij733cuu57zeqA92PzN9vqKGj3AGXJdpPEI691DcWBZ0CZ7gX/JzSZa3fnjIk1efpTsillYief9WOPRpYHlBRz1xj2SyA==; 31:3tR/L7NJ650EqixxfxCpYmoxt1iQf9yuW/MMF8vrUDkeG1L9klvQ4wOiyShs/hOJ49elB2L+JtfKPivWRdwD92UeEQ2ANi80uR+Wj7MLYdMAH09gp30ql26Zzrcgi8JgCh7rRFfQcsdPVP+vzMVNGy4XIv8VJKDpmNItcIa/ciSSBDiOku6sx18rjM2aSClOmwt177esGvq408rICuzKLcWk3X5JT/xlMKsWqA0Kesk= X-MS-TrafficTypeDiagnostic: DB4PR04MB0768: X-Microsoft-Exchange-Diagnostics: 1; DB4PR04MB0768; 20:5jjFVVK9a9HzlOGsbv7Tf5VF0DaJXSwz8v603IFSKRiWiSEVGrATxg1aT03c6mDwMFJWGo6Q38yvHrBhhjz3hiqyVdMhqaHQ6Tf31xMl22djlj9l+MdfFcT99uvGp+5iaDwfPFgBmAQNWJQF8qYp8yTgiVZLSNuVAA7e+ThqQTUg3kKBoSl5Dlv4wP1+k3NpuKHQ+NedpkEaedyc33HN2L27kvI6RCqzovK84FJ1SjYDgvUmUaS7dNPonHQCFslo5Cz83g1OTp8kg8F6Nn7a4rfW/7CLRvyz6rgb8IA/yBxulBBLAx2nIIR8asQV8dft6w/7am2R99HR6yDP45R8r9uBE3hNmhcNTqRODzUT4QJ4MFmj50VbnMowN34Q1jdyLuB/0fM7X0K467w7hWF3JXbFIZ5Ty+77NJK/T1BjO6HP5F3dWbzskXR6F4mPvj0EhLmXHXFhzNt/BYvU9HaGb5jO1+SVYeCCiEW07bwvpHB11zbzH1CZlFrA+zpfUPV8; 4:eHBM8+AMu/or4gP3LYlM1LNze8YEAha38wvDIDsb7Q7UCpJnutdupW3kR7U95u970+cjg+U/rf9yAPVirEMTVrZriy4yrDwNZuUvOnzPTIxEmoII9QzrJkfjafOJtR/wUJJD+CoxpCoYexARjXsWX0yDf2fb42JKFX/VbxTftyJ2E0PBCgh2AyuGhb2PUO1CkwfgS0bcYzE1YWFk5smQQKc2TUNpBxk22xrBEKGddCEltJxHOc7TNldgTUOyo14P1vqw5dxPqD7Fa4RuwjujVoRj2CyDNX1Z0VjUDQT5mYYlQzVStegDr+JXZ8X7Oqp1 X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:(185117386973197); X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(8211001083)(6040501)(2401047)(8121501046)(5005006)(3002001)(3231220)(944501198)(52105095)(93006095)(93001095)(10201501046)(6055026)(6041288)(20161123562045)(20161123558120)(201703131423095)(201702281528075)(20161123555045)(201703061421075)(201703061406153)(20161123564045)(20161123560045)(6072148)(201708071742011); SRVR:DB4PR04MB0768; BCL:0; PCL:0; RULEID:; SRVR:DB4PR04MB0768; X-Forefront-PRVS: 05961EBAFC X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(366004)(396003)(376002)(39860400002)(39380400002)(346002)(199004)(189003)(26005)(316002)(68736007)(105586002)(16586007)(6512007)(36756003)(66066001)(2906002)(47776003)(386003)(6346003)(4326008)(53936002)(6486002)(8676002)(55236004)(8936002)(97736004)(81156014)(76176011)(3846002)(5009440100003)(7736002)(5660300001)(6116002)(25786009)(50226002)(6506007)(305945005)(478600001)(81166006)(51416003)(52116002)(6666003)(106356001)(86362001)(2950100002)(16526019)(48376002)(50466002)(186003)(110426004)(473944003); DIR:OUT; SFP:1101; SCL:1; SRVR:DB4PR04MB0768; H:bf-netperf1.ap.freescale.net; FPR:; SPF:None; PTR:InfoNoRecords; A:1; MX:1; LANG:en; Received-SPF: None (protection.outlook.com: nxp.com does not designate permitted sender hosts) Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=hemant.agrawal@nxp.com; X-Microsoft-Exchange-Diagnostics: =?us-ascii?Q?1; DB4PR04MB0768; 23:6sIOvAgBVD8/ZtyCaNBzBzCxQ8bldNqssXJRDKh2F?= =?us-ascii?Q?iukDlVWoWYyrV6CTNXr+Dag+AFBO/o+Pj8wpDUmEpxTJG/q3t44+qzRRY0aw?= =?us-ascii?Q?ThV34nfemO4elR3r02UeztkQqh6AM04jyk9Q+1U8BRUMPrgCqwshFYi8X1Mb?= =?us-ascii?Q?93yK7aBYA4lthJEv94UYR2asGWWoMW9lsi8cySpNlR6sI6Pn0mordUxH8HLj?= =?us-ascii?Q?cogIxx7Jik5gyj13Gixr1fgDHjlxItIzXhTkhD2VuedAap3baiXnfzobFlAH?= =?us-ascii?Q?CLGppoNgLpMD/CpnTy5AckAVwySSBY+YHvHq6c34O+sYWXgkcZRgmspb8V0H?= =?us-ascii?Q?PErS5CuHeQmmRT++dAy/dsetyhSjbPxyFijnmKFbF4dOdAqewbgsPwfeHsPm?= =?us-ascii?Q?7PhLJ6YcvIid2EfKYOp28nQVKurOF7SLibAvKvsGWMYss0OZomiCJkKH0Ain?= =?us-ascii?Q?Axr5x1hsVBKZ1Xz3YjO+RSfRzOmuDEeZKjO8wAb5VZPBEZ6XgOYdUxWplXQ4?= =?us-ascii?Q?529OLiHRxiqKCLmxQXaNfaQ3C8PttPd1z7MnOsElfReAS6hWEkTaxWUr1YiI?= =?us-ascii?Q?W2mZbFFLHGjrjd+P20Y/X4CfpgVx7RyfauWj+LlXl9NksMZknuDc4Ge7rRRe?= =?us-ascii?Q?DFXyzDPdxH6jvvCERkr3sNGi1KjRuKImwzTnI1+aob7SPVIroQrCFWzvM3R8?= =?us-ascii?Q?pDBTrnbSRJPf/hQGr0U61SVxixC49mxtu62FHUYT4Qqjjh1fy9WbK2H1N4JI?= =?us-ascii?Q?P1X+hNbMhubAUxl1geiHaoKFuFLiC9e+WlNkOnN71vP7s/Ohy1cz4VBSHI8x?= =?us-ascii?Q?Gpl1sO5W8vHjTmOIpP1b6g1G8T0J9LA9gnGDfw2XTY+lBT0ok6ymdus9CypK?= =?us-ascii?Q?gEg50G2GxmLdU9WQg2BdwFA5NiHSKm+TiiW1kMnJfFFyYpOJYuQT1dxnzk62?= =?us-ascii?Q?HVr9NfoifywsxyRPLTfRkO+qPQqRXyGPcUAZm3r5QuO2c7G6aFBfW2wdxRmd?= =?us-ascii?Q?cm74RKXvgxKSsFneC387GGQ5pJOQcZ5EUK6hN9nsOfF0KerXyBpfgoYTUzyL?= =?us-ascii?Q?eQaRPp17S7B+odO+h74ElY7lutOrUAaV8Oy0cT2iarDISIlDVDqsNVwChPxE?= =?us-ascii?Q?3dFqIEmWqVP9hcOFfwfdjwbXlzSD0e1UsGay4iD7q0QqIRTzfeNvU6t5fBRp?= =?us-ascii?Q?D0tL8i4yvqcaCno0tTBA41GqRXYKbhEnbUA?= X-Microsoft-Exchange-Diagnostics: 1; DB4PR04MB0768; 6:0LF4K9oBBFvV/mJey9i4bvhTNzKKvHD2nj3ojBG3x2gYJms1JvXJrvbuaakqxM4OyqcK22z1XaYzy3q/tQbnuVtORDUjT1EOrkw1Lr21K/NOQGG4yIOe2qj3sOY/XdGCx1pc4Jk1IUWfpiw5OhKvprdTR3F2/b5BPfUxPVtt6OM/IVsR8HGMfLMlY51gg/J5e5l0ijqYyQkpJMhlbLNvFfeAmWkqb8bIqq3RjVhbH0F795pZWuJcfOVWx7JRNYZxHJ3Rm8sUnrTa9ArAkV4RvErAHpN/0MLfjqP9Sys+63FKsYT/kKfL78qK9qkeMMwkQ4uLVJbRLd+TDnK6wfHOXv8VLSn9AQEK2LXHaj97zco=; 5:2ZLfqotmX/nfOqHhVmsLecjYL7LupNjFHgGspW/0VGA4QUlN7MoabUaoHWqyYIyaKBB7638+hv7KY/+H/Y/HAEXQRQu8z7Z1kWH3nn1Vgd8iWUEjxD1lvLxG3svu2MZntLYTY3iHZQmO5THl5TgGYz+T2vNJFHiAN18S2xdMAjA=; 24:UACUZO4xhpE7YUlpfHomtlOhWyYVuyBHr9S0jaJqE1utiOUgH2SAo7IPAl951iX5l5iHX3YPkTHxSXRSFUhz5DHLQCLJFCpyCswFdR5Yg5E=; 7:0/khj4gV6d0VZS+BfF0/O/+RGezwj8LU1OZvAbFtEDGdYn46lFQPnvPUA1zUFwtrRUCKnz/4kx4X3V9lXuWwuHdSxkzyLip4TLKVcG/1908YQ03X/F5Nfw4Ogp3k9AzS6VDWomcQOLXf64upkthbl93KZw4yYfbIgoYEhC+n8faIXWGE2vhLoWoq+xIcmK761LUdcr2ROL8nb7Giw0I/wxv8hWJokLFJojVevFhxI0SsscPdpExvZ6sQL3x5QNPm SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 27 Feb 2018 17:27:34.5095 (UTC) X-MS-Exchange-CrossTenant-Network-Message-Id: 0217bab5-0dd8-4f34-cb3b-08d57e076434 X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB4PR04MB0768 Subject: [dpdk-dev] [PATCH 4/7] bus/fslmc: add 32 bit functional support for ARM 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: , X-List-Received-Date: Tue, 27 Feb 2018 17:27:37 -0000 This patch adds the functional logic to make the dpaa2 drivers work on 32bit machine. Signed-off-by: Hemant Agrawal --- drivers/bus/fslmc/qbman/qbman_sys.h | 30 ++++++++++++++++++++++++++++-- drivers/bus/fslmc/qbman/qbman_sys_decl.h | 9 +++++++++ 2 files changed, 37 insertions(+), 2 deletions(-) diff --git a/drivers/bus/fslmc/qbman/qbman_sys.h b/drivers/bus/fslmc/qbman/qbman_sys.h index 846788e..0b460c4 100644 --- a/drivers/bus/fslmc/qbman/qbman_sys.h +++ b/drivers/bus/fslmc/qbman/qbman_sys.h @@ -20,6 +20,9 @@ #include "qbman_sys_decl.h" +#define CENA_WRITE_ENABLE 0 +#define CINH_WRITE_ENABLE 1 + /* Debugging assists */ static inline void __hexdump(unsigned long start, unsigned long end, unsigned long p, size_t sz, const unsigned char *c) @@ -178,7 +181,11 @@ static inline void *qbman_cena_write_start_wo_shadow(struct qbman_swp_sys *s, s->addr_cena, s->idx, offset); #endif QBMAN_BUG_ON(offset & 63); +#ifdef RTE_ARCH_64 return (s->addr_cena + offset); +#else + return (s->addr_cinh + offset); +#endif } static inline void qbman_cena_write_complete(struct qbman_swp_sys *s, @@ -191,11 +198,19 @@ static inline void qbman_cena_write_complete(struct qbman_swp_sys *s, s->addr_cena, s->idx, offset, shadow); hexdump(cmd, 64); #endif +#ifdef RTE_ARCH_64 for (loop = 15; loop >= 1; loop--) __raw_writel(shadow[loop], s->addr_cena + offset + loop * 4); lwsync(); __raw_writel(shadow[0], s->addr_cena + offset); +#else + for (loop = 15; loop >= 1; loop--) + __raw_writel(shadow[loop], s->addr_cinh + + offset + loop * 4); + lwsync(); + __raw_writel(shadow[0], s->addr_cinh + offset); +#endif dcbf(s->addr_cena + offset); } @@ -224,9 +239,15 @@ static inline void *qbman_cena_read(struct qbman_swp_sys *s, uint32_t offset) s->addr_cena, s->idx, offset, shadow); #endif +#ifdef RTE_ARCH_64 for (loop = 0; loop < 16; loop++) shadow[loop] = __raw_readl(s->addr_cena + offset + loop * 4); +#else + for (loop = 0; loop < 16; loop++) + shadow[loop] = __raw_readl(s->addr_cinh + offset + + loop * 4); +#endif #ifdef QBMAN_CENA_TRACE hexdump(shadow, 64); #endif @@ -313,6 +334,11 @@ static inline int qbman_swp_sys_init(struct qbman_swp_sys *s, uint8_t dqrr_size) { uint32_t reg; +#ifndef RTE_ARCH_64 + uint8_t wn = CENA_WRITE_ENABLE; +#else + uint8_t wn = CINH_WRITE_ENABLE; +#endif s->addr_cena = d->cena_bar; s->addr_cinh = d->cinh_bar; @@ -333,10 +359,10 @@ static inline int qbman_swp_sys_init(struct qbman_swp_sys *s, QBMAN_BUG_ON(reg); #endif if (s->eqcr_mode == qman_eqcr_vb_array) - reg = qbman_set_swp_cfg(dqrr_size, 0, 0, 3, 2, 3, 1, 1, 1, 1, + reg = qbman_set_swp_cfg(dqrr_size, wn, 0, 3, 2, 3, 1, 1, 1, 1, 1, 1); else - reg = qbman_set_swp_cfg(dqrr_size, 0, 1, 3, 2, 2, 1, 1, 1, 1, + reg = qbman_set_swp_cfg(dqrr_size, wn, 2, 3, 2, 2, 1, 1, 1, 1, 1, 1); qbman_cinh_write(s, QBMAN_CINH_SWP_CFG, reg); reg = qbman_cinh_read(s, QBMAN_CINH_SWP_CFG); diff --git a/drivers/bus/fslmc/qbman/qbman_sys_decl.h b/drivers/bus/fslmc/qbman/qbman_sys_decl.h index f82bb18..5640b04 100644 --- a/drivers/bus/fslmc/qbman/qbman_sys_decl.h +++ b/drivers/bus/fslmc/qbman/qbman_sys_decl.h @@ -15,6 +15,7 @@ /****************/ /* arch assists */ /****************/ +#if defined(RTE_ARCH_ARM64) #define dcbz(p) { asm volatile("dc zva, %0" : : "r" (p) : "memory"); } #define lwsync() { asm volatile("dmb st" : : : "memory"); } #define dcbf(p) { asm volatile("dc cvac, %0" : : "r"(p) : "memory"); } @@ -28,3 +29,11 @@ static inline void prefetch_for_store(void *p) { asm volatile("prfm pstl1keep, [%0, #0]" : : "r" (p)); } +#elif defined(RTE_ARCH_ARM) +#define dcbz(p) memset(p, 0, 64) +#define lwsync() { asm volatile("dmb st" : : : "memory"); } +#define dcbf(p) RTE_SET_USED(p) +#define dccivac(p) RTE_SET_USED(p) +#define prefetch_for_load(p) { asm volatile ("pld [%0]" : : "r" (p)); } +#define prefetch_for_store(p) { asm volatile ("pld [%0]" : : "r" (p)); } +#endif -- 2.7.4