From patchwork Tue Mar 26 13:46:25 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ido Schimmel X-Patchwork-Id: 1065599 X-Patchwork-Delegate: davem@davemloft.net Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=mellanox.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=Mellanox.com header.i=@Mellanox.com header.b="aWSyfF9G"; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 44TC8z5tLGz9sSX for ; Wed, 27 Mar 2019 00:46:43 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731586AbfCZNqm (ORCPT ); Tue, 26 Mar 2019 09:46:42 -0400 Received: from mail-eopbgr30053.outbound.protection.outlook.com ([40.107.3.53]:3586 "EHLO EUR03-AM5-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1726266AbfCZNqm (ORCPT ); Tue, 26 Mar 2019 09:46:42 -0400 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=Mellanox.com; s=selector1; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=ArJH8TnHbKf4Dz6sTQgesEsBuVZx7DfMjS7uvf8fPtc=; b=aWSyfF9GOn1FSwkiqhVlQBKBy2m6ZeO+aMaefLOfQ4+K3eNwu+amfg8ixxRMOaewACacMLEusrKRIIt3O1d6de43LFIGXKe8rJTC/FxKmv1pcTiV5daErgYqJB4LzisP4g1NuocmwAUBPl1t8nUXYwaplx8knxabowx3nIhIaAg= Received: from AM0PR05MB6100.eurprd05.prod.outlook.com (20.178.119.209) by AM0PR05MB6035.eurprd05.prod.outlook.com (20.178.118.146) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.1730.18; Tue, 26 Mar 2019 13:46:25 +0000 Received: from AM0PR05MB6100.eurprd05.prod.outlook.com ([fe80::85ee:723:721e:51f9]) by AM0PR05MB6100.eurprd05.prod.outlook.com ([fe80::85ee:723:721e:51f9%4]) with mapi id 15.20.1730.019; Tue, 26 Mar 2019 13:46:25 +0000 From: Ido Schimmel To: "netdev@vger.kernel.org" CC: "davem@davemloft.net" , Jiri Pirko , Shalom Toledo , mlxsw , Ido Schimmel Subject: [PATCH net-next 1/2] mlxsw: reg: Add MGIR register Thread-Topic: [PATCH net-next 1/2] mlxsw: reg: Add MGIR register Thread-Index: AQHU49pOuDrTczmQHUqXAPXD7zMDzw== Date: Tue, 26 Mar 2019 13:46:25 +0000 Message-ID: <20190326134535.3826-2-idosch@mellanox.com> References: <20190326134535.3826-1-idosch@mellanox.com> In-Reply-To: <20190326134535.3826-1-idosch@mellanox.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: x-clientproxiedby: LO2P265CA0357.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:d::33) To AM0PR05MB6100.eurprd05.prod.outlook.com (2603:10a6:208:12e::17) x-ms-exchange-messagesentrepresentingtype: 1 x-mailer: git-send-email 2.20.1 x-originating-ip: [193.47.165.251] x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 1d15beaa-4960-4200-0a02-08d6b1f170b4 x-ms-office365-filtering-ht: Tenant x-microsoft-antispam: BCL:0; PCL:0; RULEID:(2390118)(7020095)(4652040)(8989299)(4534185)(4627221)(201703031133081)(201702281549075)(8990200)(5600127)(711020)(4605104)(4618075)(2017052603328)(7153060)(7193020); SRVR:AM0PR05MB6035; x-ms-traffictypediagnostic: AM0PR05MB6035: authentication-results: spf=none (sender IP is ) smtp.mailfrom=idosch@mellanox.com; x-microsoft-antispam-prvs: x-forefront-prvs: 09888BC01D x-forefront-antispam-report: SFV:NSPM; SFS:(10009020)(39860400002)(376002)(366004)(396003)(136003)(346002)(199004)(189003)(53936002)(6512007)(102836004)(6916009)(8676002)(476003)(486006)(446003)(25786009)(105586002)(50226002)(2616005)(36756003)(52116002)(186003)(106356001)(86362001)(6116002)(8936002)(99286004)(2351001)(3846002)(4326008)(76176011)(7736002)(68736007)(11346002)(316002)(2501003)(5660300002)(14454004)(1076003)(107886003)(6506007)(54906003)(478600001)(81166006)(1730700003)(6436002)(6486002)(66066001)(2906002)(71190400001)(256004)(26005)(14444005)(71200400001)(81156014)(97736004)(386003)(305945005)(5640700003); DIR:OUT; SFP:1101; SCL:1; SRVR:AM0PR05MB6035; H:AM0PR05MB6100.eurprd05.prod.outlook.com; FPR:; SPF:None; LANG:en; PTR:InfoNoRecords; A:1; MX:1; received-spf: None (protection.outlook.com: mellanox.com does not designate permitted sender hosts) x-ms-exchange-senderadcheck: 1 x-microsoft-antispam-message-info: 998/mlbLObitGv+b9Ra9w99Raq4LLWpLDEzkbixjE9+AFN8AFxuMTofxlSeoOr+HGuecQ56oeMDCjyBJVxsAPSzU777n1YjrHHkGOmHuHh6MGTEM8LN16MeStavVlmoNadDcZdPgfKYNbaXGFFkN++iWj3LsEiMtGp545iAL2+X3QSAXC5pxG5YV49kOs99jjT6lLOXaeBMgo2Qmu5zBBWk++RPC2CebedYHgCVhDYq4Karpjxo6gXkIOExNbqfIlI3hKOxWYOcrwHaQfRsSOXnMfl/Tkbvr5HuWie6D9RIS1SDb5RivLsw03ajofwkVTOVBjRLrZQbYdx3QUFaJQ6ZcMiMFiLsN3jXIysETZD2eVYzQ2lOwlg07tCRd9PIGGjXEuUxYpB0KHhSRxRCxjx31jCZBX3dY9baexIkQyrc= MIME-Version: 1.0 X-OriginatorOrg: Mellanox.com X-MS-Exchange-CrossTenant-Network-Message-Id: 1d15beaa-4960-4200-0a02-08d6b1f170b4 X-MS-Exchange-CrossTenant-originalarrivaltime: 26 Mar 2019 13:46:25.8507 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: a652971c-7d2e-4d9b-a6a4-d149256f461b X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-Transport-CrossTenantHeadersStamped: AM0PR05MB6035 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org From: Shalom Toledo Add MGIR register. MGIR, Management General Information Register, allows software to query the hardware and firmware general information. Signed-off-by: Shalom Toledo Acked-by: Jiri Pirko Signed-off-by: Ido Schimmel --- drivers/net/ethernet/mellanox/mlxsw/reg.h | 55 +++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/drivers/net/ethernet/mellanox/mlxsw/reg.h b/drivers/net/ethernet/mellanox/mlxsw/reg.h index eb4c5e8964cd..e1ee7f4994db 100644 --- a/drivers/net/ethernet/mellanox/mlxsw/reg.h +++ b/drivers/net/ethernet/mellanox/mlxsw/reg.h @@ -8534,6 +8534,60 @@ static inline void mlxsw_reg_mpar_pack(char *payload, u8 local_port, mlxsw_reg_mpar_pa_id_set(payload, pa_id); } +/* MGIR - Management General Information Register + * ---------------------------------------------- + * MGIR register allows software to query the hardware and firmware general + * information. + */ +#define MLXSW_REG_MGIR_ID 0x9020 +#define MLXSW_REG_MGIR_LEN 0x9C + +MLXSW_REG_DEFINE(mgir, MLXSW_REG_MGIR_ID, MLXSW_REG_MGIR_LEN); + +/* reg_mgir_hw_info_device_hw_revision + * Access: RO + */ +MLXSW_ITEM32(reg, mgir, hw_info_device_hw_revision, 0x0, 16, 16); + +#define MLXSW_REG_MGIR_FW_INFO_PSID_SIZE 16 + +/* reg_mgir_fw_info_psid + * PSID (ASCII string). + * Access: RO + */ +MLXSW_ITEM_BUF(reg, mgir, fw_info_psid, 0x30, MLXSW_REG_MGIR_FW_INFO_PSID_SIZE); + +/* reg_mgir_fw_info_extended_major + * Access: RO + */ +MLXSW_ITEM32(reg, mgir, fw_info_extended_major, 0x44, 0, 32); + +/* reg_mgir_fw_info_extended_minor + * Access: RO + */ +MLXSW_ITEM32(reg, mgir, fw_info_extended_minor, 0x48, 0, 32); + +/* reg_mgir_fw_info_extended_sub_minor + * Access: RO + */ +MLXSW_ITEM32(reg, mgir, fw_info_extended_sub_minor, 0x4C, 0, 32); + +static inline void mlxsw_reg_mgir_pack(char *payload) +{ + MLXSW_REG_ZERO(mgir, payload); +} + +static inline void +mlxsw_reg_mgir_unpack(char *payload, u32 *hw_rev, char *fw_info_psid, + u32 *fw_major, u32 *fw_minor, u32 *fw_sub_minor) +{ + *hw_rev = mlxsw_reg_mgir_hw_info_device_hw_revision_get(payload); + mlxsw_reg_mgir_fw_info_psid_memcpy_from(payload, fw_info_psid); + *fw_major = mlxsw_reg_mgir_fw_info_extended_major_get(payload); + *fw_minor = mlxsw_reg_mgir_fw_info_extended_minor_get(payload); + *fw_sub_minor = mlxsw_reg_mgir_fw_info_extended_sub_minor_get(payload); +} + /* MRSR - Management Reset and Shutdown Register * --------------------------------------------- * MRSR register is used to reset or shutdown the switch or @@ -9958,6 +10012,7 @@ static const struct mlxsw_reg_info *mlxsw_reg_infos[] = { MLXSW_REG(mcia), MLXSW_REG(mpat), MLXSW_REG(mpar), + MLXSW_REG(mgir), MLXSW_REG(mrsr), MLXSW_REG(mlcr), MLXSW_REG(mpsc),