From patchwork Tue Sep 19 01:29:49 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Mody, Rasesh" X-Patchwork-Id: 28884 X-Patchwork-Delegate: ferruh.yigit@amd.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id CA5291B1B4; Tue, 19 Sep 2017 03:31:26 +0200 (CEST) Received: from NAM02-CY1-obe.outbound.protection.outlook.com (mail-cys01nam02on0061.outbound.protection.outlook.com [104.47.37.61]) by dpdk.org (Postfix) with ESMTP id 67DF11B027 for ; Tue, 19 Sep 2017 03:31:15 +0200 (CEST) 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=90uW4reIEicfawa2Q8QjyvF+YmSPBZ01l1deeoKvAos=; b=fFw4LoU1nRrYybsRNoAxGXveDv6QavoYKwNIKQ5FR/Rzugi8UeOGobuEgRbw2el3gtBE2OdhJOSqbIOsrE43FQsXIpaRCxIOibB99ZXSuDytQZmCwspkT8doX/GZqeqVYQV5fNr93rOD+vSyUR6VAHQ50IyPfATJ08eVWcUecFA= Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=Rasesh.Mody@cavium.com; Received: from cavium.com (198.186.0.2) by SN4PR0701MB3838.namprd07.prod.outlook.com (2603:10b6:803:4f::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384_P256) id 15.20.56.11; Tue, 19 Sep 2017 01:31:13 +0000 From: Rasesh Mody To: dev@dpdk.org, ferruh.yigit@intel.com Cc: Rasesh Mody , Dept-EngDPDKDev@cavium.com Date: Mon, 18 Sep 2017 18:29:49 -0700 Message-Id: <1505784633-1171-10-git-send-email-rasesh.mody@cavium.com> X-Mailer: git-send-email 1.7.10.3 In-Reply-To: <1505784633-1171-1-git-send-email-rasesh.mody@cavium.com> References: <1505784633-1171-1-git-send-email-rasesh.mody@cavium.com> MIME-Version: 1.0 X-Originating-IP: [198.186.0.2] X-ClientProxiedBy: SN4PR0501CA0015.namprd05.prod.outlook.com (2603:10b6:803:40::28) To SN4PR0701MB3838.namprd07.prod.outlook.com (2603:10b6:803:4f::13) X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 5e4ba97b-6a26-4ae9-2f6a-08d4fefe1da2 X-Microsoft-Antispam: UriScan:; BCL:0; PCL:0; RULEID:(300000500095)(300135000095)(300000501095)(300135300095)(22001)(300000502095)(300135100095)(2017030254152)(300000503095)(300135400095)(2017052603199)(201703131423075)(201703031133081)(201702281549075)(300000504095)(300135200095)(300000505095)(300135600095)(300000506095)(300135500095); SRVR:SN4PR0701MB3838; X-Microsoft-Exchange-Diagnostics: 1; SN4PR0701MB3838; 3:5kK8LIHwGlfw6nQTtzZRIOcAyFY3C00CEj/4a+EvMigJaou9qTOF/u8rS9/tRc1s2oge2Xn09ZjSxBW0rzhUwtv134hOeAp0szK7YfsrVTkKaS2nqfbjCQIf5OAgYvJe/2fsb2pWVaTx68XRu9tGLiwRiDBBqJrFOVkor4V0MxqojHuRlS3rzVWAYZNIz8C2ivkFpC0+RT28QNOShKaKoXsk8Rgklwg7S5vZgBlGAU/q71SWKdKfidm1Cw5viSws; 25:6s0nmkUzsTvQIjgX8/dI1bdouEAYL/ejZn63LsQj7GpEPkClKXsHZsfdSrH7t0qwUexrZDA/xLM254+PcU66JqEUdJYUTv+3a1IAODfLSQ4VIfn6CbHJralefhHMKEAjZTcU+mORwSXFEIgT6ycVFSAe76Uik0/g/Of90bbGW4Q3E/5roWx2sRy/cL8mXmNz9WV7got5rn8UTRK2fS/cjV6fG/Ui9H6mxBCUsMP/LeaXBufiGDdJR1jBdLea5uF4v7GtEVELZlzJj7JIoO0whaHS1qc3plFcdeM5DRiNOi2c1wpuh9k6LmM88YXyT51a9Ir/bjMxxfCdrvOm1FmUdg==; 31:V9RRyOhuJueI+AvXLhQWesVpnaxjoYm+V+OkQwxtefxs5L4YHlgT94+RVj9NsJHFccNkf3FLO0ZIXDdhr2kRiyUhQnauTkbqkiujrVjyh3mgs1duHXnyqWS1WJCLngf1Bvv1I40NSQ384Ax2GD2EvTPv5uArV5M4sPKBvPs7/lwqUXQi1qNlwZSfSgulgDCDbQFMgZ0wDh9bSwKIOHusrVDL/veosGYUOVozlKtU+d4= X-MS-TrafficTypeDiagnostic: SN4PR0701MB3838: X-Microsoft-Exchange-Diagnostics: 1; SN4PR0701MB3838; 20:lqJ7N+d4XIqpYobf3/Zus7jzPSw+y1coDjzHnNaTJbay0gCuvmqUHi+ybaxXkBs4MwidcF5E62CNv6ectzrmlbVDdmiGyhefC4ptKbyYiL81D/u7KTlpZkCW87aUnmua9EaBENz6/8Xs2Q8ziCAI/NTh1MZNwKVzBsWSlDVCA/rmt49o3JiEp1adYGS31iHULZjrYPFfMx8HZ/VOqHnpTiHlrBWiVN+i8omE/ij6kP7icabOYAh43tE3nLOlIkFRgzb2LcF992ZPIVxhUakh7I9+Q3C/dvEY5rz4pppi9HJygm+Bb3L7D3Ecd9GE9RdPf+qgw4UGhLz9vthFb/FsmvEU+DWCBmBKfLZ4PrcmdzLivFQ3PNxsUkYhMFDIWqGgFCLyMNgUu/X2TcvEPPE/U9agB22tFiRXZEppSaYm4wIjxYangB6MdnBtWkye9GsyQQfJQWv/UTW5tmeuWScAUuMRRNCttCS6KWK+/xhcWncbfHHtaT87hSD6aHGGVo/L; 4:fTzUDWOJoTmNvVK1sLywLfOt8z3IiICB7n6oK2xpW9imdwU8ratjXprSLcHJUzBnbEDAeCcWvuCQ9sioEqT9bZlMOnbzVJ3o2j2bgXTimm453vCYhFjbtnDTXv0ZFGocwPcVBJWtPsOjlFjZg7nxHMerzemKysBjZJ6M2eE8cudJKa3Lt/x5RpEe+p6hMDXf4OAwWgkwsU95a4R9KeIfqytv6RSrrkiMqF8fQBK/TB8QEPnS3fbD9C8BDXcTgsPD X-Exchange-Antispam-Report-Test: UriScan:; X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-CFA-Test: BCL:0; PCL:0; RULEID:(100000700101)(100105000095)(100000701101)(100105300095)(100000702101)(100105100095)(6040450)(2401047)(5005006)(8121501046)(100000703101)(100105400095)(10201501046)(93006095)(93001095)(3002001)(6041248)(20161123555025)(20161123562025)(20161123558100)(20161123560025)(20161123564025)(201703131423075)(201702281528075)(201703061421075)(201703061406153)(6072148)(201708071742011)(100000704101)(100105200095)(100000705101)(100105500095); SRVR:SN4PR0701MB3838; BCL:0; PCL:0; RULEID:(100000800101)(100110000095)(100000801101)(100110300095)(100000802101)(100110100095)(100000803101)(100110400095)(100000804101)(100110200095)(100000805101)(100110500095); SRVR:SN4PR0701MB3838; X-Forefront-PRVS: 04359FAD81 X-Forefront-Antispam-Report: SFV:NSPM; SFS:(10009020)(6009001)(376002)(346002)(199003)(189002)(48376002)(33646002)(68736007)(316002)(21086003)(16526017)(16586007)(72206003)(36756003)(575784001)(478600001)(97736004)(86362001)(66066001)(25786009)(69596002)(47776003)(50986999)(81166006)(8936002)(50226002)(8676002)(5660300001)(7736002)(53936002)(305945005)(81156014)(55016002)(50466002)(76176999)(6116002)(3846002)(2950100002)(101416001)(4326008)(4720700003)(2906002)(107886003)(6666003)(189998001)(106356001)(5003940100001)(105586002); DIR:OUT; SFP:1101; SCL:1; SRVR:SN4PR0701MB3838; H:cavium.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; SN4PR0701MB3838; 23:gclKigdSf9WINhLWbKEz3Uzm5rT6MW4VjBtJ5Fn?= MOyKyiTXi/WTnmWmKP2ZtvUltPjZtNeLRUCM2Sa0J9LXRvfsnSeTvSzH8vkWhC+OlPRmg1AODPvMKy8dYRxsp2RwQgksA9ossiM1ZBFElS+ApPW910r4rYJz2IF2qL/XPV8A2UR9eQtbPLiUSNOwn4xYlljMga9qrEaWtUJeFKCJFgJJIKHuOMy4QAq/n6uyRoqZsEIqZV4THdr+WdwH65ZDXJ5I00kBazUL4h0q6R7Hn+IiVChdavO/3fuKhiFtUBqW4WGJUWt0aD0OAvCAKtT/Qi5Q8grY6xCECHiQygTHroTdB+IUTKI+i8Y9UPCsHw0WrutiNCS60d565VeOL9nBYrED1+gGeGzKKb22ix2muqBtIHVoigLvGxmGRl3IjNWtXZK+u/K8j6QGWqjTGkFuZ6lVIigczm/UuKFoIL+KR7hFTm4bvHrs9wEHiPK6i1BJJM7UmwLQ71Jz4Posa5W19QvPYnfwJuof7kztjFpMK3xhJ6jXyzMF9rJmQ+LqfCe660i8M6KT/D7dZH2q0nkDvb+mi6m6sEbjCkQ7E+mzu0SD2mDxAVZ5TnIQE5zQIknYyJwURXm0DgNkEb6jSQ1cgiwOMPzynQBhixpGkDK+nprqy34L7dj0Pa/kMoA7NfQXbMAdL0YShUfFeTCFOAAIJnnOxAwOIcIvRfnKu0qZBacjKZNjKSTmPhd0GQZFyxWhUOSpuEVek59LVSRfeOblJjvHGHoE4HldNTlDBJyxC3Aig7hZfboWF/ub6UDYMiXX11jPiNoid2wBwKNeDBYUTlX8OLwRPGlrg5BEBTTYSwA4ZPWYg5IUrHyU3Yy/8cMSZ2sxfB/YMTiFCGMn2eC6eP4DVukvEC25TNyQ4qZlKUnAXY7i48jxHLeQJJ0x98nIFj0Q2h8PVfgup+YMfC9e523AkNQhu8j54rqMJJMntyRAI6eS38VD22rGg9nsfRv+047xy9Gx2+gVRjCriMwayzrxBeCxZCSaw6gE+gAQ3CbU+b0qB8MP992Jcmjpn5i0RiNqTUwW6bGSs7nBNz8jdHAT4CaFzO63NlbOGNnSZd/4JYob20+ibkB5N+SNkJzMURUM7JQ5wlMHVoI5psiE6 X-Microsoft-Exchange-Diagnostics: 1; SN4PR0701MB3838; 6:fksWQqXMo1DDF0GoiMgPo0p5mlxZ39KlPj7e49LL65MTD8iVYeNXCxeDdOGwXQRFn8TnxKzNs3hi93pxVWeQEKqfso1nBgfnXo7TT+sHU6v3hp2SJKw6MXrrImZAVn8CWfcGBsrvMeY26uEhz6Px43NruDzpF8C3PpE5QkkoBGoFbpnQLgqhkAEna5kUv4Z9Ds1mxJrYSlysokZ6s0lkfLkWz0egPnkUqsUeOQ911DbZkReQdiqucIqvFj8PgHfKcAgxaBIdDrounPePGqI76rgPGWjEoFO6JFxK8T+GXmbQofEK1A2evBuzrCxomg881gADBzIRODsAa+yVdfUhhQ==; 5:7asu6hwr03oSBpUnlsPrR8M54oHslIqv8upvIuKcU//tds/32ra95c/3xrxC2jjDp/NymVb93DxznfP+G074MJQu8gwiemzd/HEF2IdC22FVGF7OIbiECy7hCSb6oyzK/CVTJBI7V+BDclvc9Qd3ig==; 24:Kz0IrtKb0deRvTGZG/sN/A2009eWWzatJ9CqQjnBe+XWmL49kMmcNJPI2TDz0t09YVrE2YPa5kkkMUQ48rNxv/2bj0iXQ1CZT6q8elyXJU8=; 7:AABpsOz5noFAvL7lJByN0hr4uN7iBJ7I4zfi1joFiK7kqNHu3trRfMh6eZoRwIDKcnK9WDezz0R5x1nZ/DR3CNqDDLiWSHXycnvPsa8s08LZGEa0/9NDjziMyamAyFzq08HCyHZDoou/R5ohqhXNhTWAr0xv4eNRTSRbTmvn0EmeJztXfcbQ4vPxmIdh21Wc5CsBWAQswGy66Wyt1yve+q+cYxJdcATuKGeYAaR/Bso= SpamDiagnosticOutput: 1:99 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: cavium.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 19 Sep 2017 01:31:13.5742 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 711e4ccf-2e9b-4bcf-a551-4094005b6194 X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN4PR0701MB3838 Subject: [dpdk-dev] [PATCH 09/53] net/qede/base: restrict cache line size register padding 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" Add a restriction on the pad to cache line size register. Signed-off-by: Rasesh Mody --- drivers/net/qede/base/bcm_osal.h | 1 + drivers/net/qede/base/ecore_dev.c | 60 +++++++++++++++++++++++++++++++++++++ drivers/net/qede/base/reg_addr.h | 3 ++ 3 files changed, 64 insertions(+) diff --git a/drivers/net/qede/base/bcm_osal.h b/drivers/net/qede/base/bcm_osal.h index 6148982..bd07724 100644 --- a/drivers/net/qede/base/bcm_osal.h +++ b/drivers/net/qede/base/bcm_osal.h @@ -414,6 +414,7 @@ void qede_hw_err_notify(struct ecore_hwfn *p_hwfn, #define OSAL_REG_ADDR(_p_hwfn, _offset) \ (void *)((u8 *)(uintptr_t)(_p_hwfn->regview) + (_offset)) #define OSAL_PAGE_SIZE 4096 +#define OSAL_CACHE_LINE_SIZE RTE_CACHE_LINE_SIZE #define OSAL_IOMEM volatile #define OSAL_UNLIKELY(x) __builtin_expect(!!(x), 0) #define OSAL_MIN_T(type, __min1, __min2) \ diff --git a/drivers/net/qede/base/ecore_dev.c b/drivers/net/qede/base/ecore_dev.c index 40b544b..73949e8 100644 --- a/drivers/net/qede/base/ecore_dev.c +++ b/drivers/net/qede/base/ecore_dev.c @@ -1258,6 +1258,61 @@ static void ecore_init_cau_rt_data(struct ecore_dev *p_dev) } } +static void ecore_init_cache_line_size(struct ecore_hwfn *p_hwfn, + struct ecore_ptt *p_ptt) +{ + u32 val, wr_mbs, cache_line_size; + + val = ecore_rd(p_hwfn, p_ptt, PSWRQ2_REG_WR_MBS0); + switch (val) { + case 0: + wr_mbs = 128; + break; + case 1: + wr_mbs = 256; + break; + case 2: + wr_mbs = 512; + break; + default: + DP_INFO(p_hwfn, + "Unexpected value of PSWRQ2_REG_WR_MBS0 [0x%x]. Avoid configuring PGLUE_B_REG_CACHE_LINE_SIZE.\n", + val); + return; + } + + cache_line_size = OSAL_MIN_T(u32, OSAL_CACHE_LINE_SIZE, wr_mbs); + switch (cache_line_size) { + case 32: + val = 0; + break; + case 64: + val = 1; + break; + case 128: + val = 2; + break; + case 256: + val = 3; + break; + default: + DP_INFO(p_hwfn, + "Unexpected value of cache line size [0x%x]. Avoid configuring PGLUE_B_REG_CACHE_LINE_SIZE.\n", + cache_line_size); + } + + if (wr_mbs < OSAL_CACHE_LINE_SIZE) + DP_INFO(p_hwfn, + "The cache line size for padding is suboptimal for performance [OS cache line size 0x%x, wr mbs 0x%x]\n", + OSAL_CACHE_LINE_SIZE, wr_mbs); + + STORE_RT_REG(p_hwfn, PGLUE_REG_B_CACHE_LINE_SIZE_RT_OFFSET, val); + if (val > 0) { + STORE_RT_REG(p_hwfn, PSWRQ2_REG_DRAM_ALIGN_WR_RT_OFFSET, val); + STORE_RT_REG(p_hwfn, PSWRQ2_REG_DRAM_ALIGN_RD_RT_OFFSET, val); + } +} + static enum _ecore_status_t ecore_hw_init_common(struct ecore_hwfn *p_hwfn, struct ecore_ptt *p_ptt, int hw_mode) @@ -1298,6 +1353,8 @@ static enum _ecore_status_t ecore_hw_init_common(struct ecore_hwfn *p_hwfn, ecore_cxt_hw_init_common(p_hwfn); + ecore_init_cache_line_size(p_hwfn, p_ptt); + rc = ecore_init_run(p_hwfn, p_ptt, PHASE_ENGINE, ANY_PHASE_ID, hw_mode); if (rc != ECORE_SUCCESS) return rc; @@ -1686,6 +1743,9 @@ static enum _ecore_status_t ecore_hw_init_port(struct ecore_hwfn *p_hwfn, hw_mode); if (rc != ECORE_SUCCESS) return rc; + + ecore_wr(p_hwfn, p_ptt, PGLUE_B_REG_MASTER_WRITE_PAD_ENABLE, 0); + #ifndef ASIC_ONLY if (CHIP_REV_IS_ASIC(p_hwfn->p_dev)) return ECORE_SUCCESS; diff --git a/drivers/net/qede/base/reg_addr.h b/drivers/net/qede/base/reg_addr.h index 6028654..116fe78 100644 --- a/drivers/net/qede/base/reg_addr.h +++ b/drivers/net/qede/base/reg_addr.h @@ -1205,3 +1205,6 @@ #define NIG_REG_LLH_FUNC_FILTER_EN_BB_K2 0x501a80UL #define NIG_REG_LLH_FUNC_FILTER_MODE_BB_K2 0x501ac0UL #define NIG_REG_LLH_FUNC_FILTER_PROTOCOL_TYPE_BB_K2 0x501b00UL + +#define PSWRQ2_REG_WR_MBS0 0x240400UL +#define PGLUE_B_REG_MASTER_WRITE_PAD_ENABLE 0x2aae30UL