From patchwork Mon Apr 29 08:20:21 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Igor Russkikh X-Patchwork-Id: 53137 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 B69691B3A4; Mon, 29 Apr 2019 10:20:40 +0200 (CEST) Received: from NAM04-BN3-obe.outbound.protection.outlook.com (mail-eopbgr680081.outbound.protection.outlook.com [40.107.68.81]) by dpdk.org (Postfix) with ESMTP id B27A51B273; Mon, 29 Apr 2019 10:20:22 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=AQUANTIA1COM.onmicrosoft.com; s=selector1-aquantia-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=cbuRQgMqMo57CFzkELeh9zOt5zK5OccZobt3I4yUd78=; b=rXBz6lDnziQNJjOecuh3ghE/WIdpiIX4sBBH21HinB7M8o13aY1p4P5olL+ukzCmtNm/oQuFRCFzYO3vrcT4uLYGU/v4DtDqs3PiVzLhMLIPCMFeGjKwkaJVQk/tRNy/nfSUbt53syAqDZZAWkozBdzFBOKIONHLUFYoCJ97StE= Received: from DM6PR11MB3625.namprd11.prod.outlook.com (20.178.230.149) by DM6PR11MB2841.namprd11.prod.outlook.com (20.176.100.32) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1835.13; Mon, 29 Apr 2019 08:20:21 +0000 Received: from DM6PR11MB3625.namprd11.prod.outlook.com ([fe80::f035:2c20:5a61:7653]) by DM6PR11MB3625.namprd11.prod.outlook.com ([fe80::f035:2c20:5a61:7653%3]) with mapi id 15.20.1835.010; Mon, 29 Apr 2019 08:20:21 +0000 From: Igor Russkikh To: "dev@dpdk.org" CC: Pavel Belous , Igor Russkikh , "stable@dpdk.org" Thread-Topic: [PATCH 07/11] net/atlantic: bad logic with offsets talking with firmware Thread-Index: AQHU/mRjziGBtbIgZk69qR8VDf9LjQ== Date: Mon, 29 Apr 2019 08:20:21 +0000 Message-ID: <64f16386ccec77553d782d82164b3ffc2e5e3b48.1556525874.git.igor.russkikh@aquantia.com> References: In-Reply-To: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: HE1P190CA0016.EURP190.PROD.OUTLOOK.COM (2603:10a6:3:bc::26) To DM6PR11MB3625.namprd11.prod.outlook.com (2603:10b6:5:13a::21) authentication-results: spf=none (sender IP is ) smtp.mailfrom=Igor.Russkikh@aquantia.com; x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.17.1 x-originating-ip: [95.79.108.179] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: d629cb2b-c9a9-4e82-f96d-08d6cc7b8578 x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600141)(711020)(4605104)(2017052603328)(7193020); SRVR:DM6PR11MB2841; x-ms-traffictypediagnostic: DM6PR11MB2841: x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:741; x-forefront-prvs: 0022134A87 x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(366004)(376002)(396003)(136003)(39840400004)(346002)(199004)(189003)(44832011)(99286004)(186003)(118296001)(478600001)(71200400001)(53936002)(6506007)(71190400001)(446003)(5660300002)(2351001)(14454004)(486006)(66556008)(73956011)(66946007)(64756008)(66476007)(66446008)(386003)(52116002)(316002)(11346002)(2616005)(7736002)(476003)(72206003)(54906003)(305945005)(81166006)(1730700003)(2501003)(36756003)(76176011)(81156014)(6486002)(3846002)(66066001)(102836004)(6916009)(97736004)(8936002)(450100002)(86362001)(6116002)(6436002)(26005)(256004)(8676002)(50226002)(2906002)(25786009)(5640700003)(6512007)(68736007)(4326008); DIR:OUT; SFP:1101; SCL:1; SRVR:DM6PR11MB2841; H:DM6PR11MB3625.namprd11.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: aquantia.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: MmwQPg3SF59kdcyB0muKEHKBu9das2xnsUprjb/EeMxoXKdQVg/tzTXlmfv4UQzTblf2dUlySQh7AZxbVML4tgVMo15agg1t+2tzVHzm2eJtbdNLfNoQmJjrOY+oXrLHc5T2qsSVZ+oaIXtGviIRvdl4+GNKi3zbHb9iOeKC6Ux3q7FmQzFR5WSiR8QWsgHXoKiswhIF364c1iTEBr8BmogzazvSqeMtlKEqJEPoBDfiq7Iuprm3n28PuvNZcNsZ1BdvzM5wf6kIlRkVs1Z04nBBb/oR+I/hW4MrrLOxUOYTSM+PLineJRrnYU94BuM9ghs6yS3uzkZ58Sae6KVlsDfbbTgackxTaJ3iC23dF8O1z/P9fXI4CwYB2kI9Owtr/D11+zG+zp6pYunTHJ5I6R6bDEm/fNVU95zrSZJZRbA= MIME-Version: 1.0 X-OriginatorOrg: aquantia.com X-MS-Exchange-CrossTenant-Network-Message-Id: d629cb2b-c9a9-4e82-f96d-08d6cc7b8578 X-MS-Exchange-CrossTenant-originalarrivaltime: 29 Apr 2019 08:20:21.5568 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 83e2e134-991c-4ede-8ced-34d47e38e6b1 X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: DM6PR11MB2841 Subject: [dpdk-dev] [PATCH 07/11] net/atlantic: bad logic with offsets talking with firmware 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: Pavel Belous eeprom write accesses start using non zero configuration memory accesses. This revealed an issue where firmware interface was actually always did the uploads starting with zero offset Fixes: 86d36773bd42 ("net/atlantic: implement firmware operations") cc: stable@dpdk.org Signed-off-by: Igor Russkikh Signed-off-by: Pavel Belous --- drivers/net/atlantic/hw_atl/hw_atl_utils.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/drivers/net/atlantic/hw_atl/hw_atl_utils.c b/drivers/net/atlantic/hw_atl/hw_atl_utils.c index 1910bd4c94a2..b399ae392dbd 100644 --- a/drivers/net/atlantic/hw_atl/hw_atl_utils.c +++ b/drivers/net/atlantic/hw_atl/hw_atl_utils.c @@ -332,12 +332,13 @@ int hw_atl_utils_fw_upload_dwords(struct aq_hw_s *self, u32 a, u32 *p, goto err_exit; } if (IS_CHIP_FEATURE(REVISION_B1)) { - u32 offset = 0; + u32 mbox_offset = (a - self->rpc_addr) / sizeof(u32); + u32 data_offset = 0; - for (; offset < cnt; ++offset) { - aq_hw_write_reg(self, 0x328, p[offset]); + for (; data_offset < cnt; ++mbox_offset, ++data_offset) { + aq_hw_write_reg(self, 0x328, p[data_offset]); aq_hw_write_reg(self, 0x32C, - (0x80000000 | (0xFFFF & (offset * 4)))); + (0x80000000 | (0xFFFF & (mbox_offset * 4)))); hw_atl_mcp_up_force_intr_set(self, 1); /* 1000 times by 10us = 10ms */ AQ_HW_WAIT_FOR((aq_hw_read_reg(self,