From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-3.0 required=3.0 tests=DKIMWL_WL_MED,DKIM_SIGNED, DKIM_VALID,HEADER_FROM_DIFFERENT_DOMAINS,MAILING_LIST_MULTI,SPF_PASS, USER_AGENT_GIT autolearn=ham autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id 039D9C282D7 for ; Wed, 30 Jan 2019 19:05:30 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id C548D20989 for ; Wed, 30 Jan 2019 19:05:29 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (2048-bit key) header.d=netronome-com.20150623.gappssmtp.com header.i=@netronome-com.20150623.gappssmtp.com header.b="JKxDLZ1/" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1733219AbfA3TF2 (ORCPT ); Wed, 30 Jan 2019 14:05:28 -0500 Received: from mail-qt1-f196.google.com ([209.85.160.196]:41679 "EHLO mail-qt1-f196.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727760AbfA3TF2 (ORCPT ); Wed, 30 Jan 2019 14:05:28 -0500 Received: by mail-qt1-f196.google.com with SMTP id l12so737801qtf.8 for ; Wed, 30 Jan 2019 11:05:27 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=netronome-com.20150623.gappssmtp.com; s=20150623; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=IEvofFkc2ZJoAujTGCy8dKauSDFsG9M95JoqcKnbUE4=; b=JKxDLZ1/bMtNFtfVpB5EFfwkiPjU1eXiU18J16OE//TnHUssGoYJ3/tRovIIP0ZDhv aq9U38g/lx194nDtHvh2RzCOzwVGOrx8FTtVgANfkkDYTBbs4kFWCwISasj8Ew5sCO+D xhs+DWQQnX97mGnvGLmkkibJkBxDHXaRqIUbXosteNmjLIMmCRrhZg0+U+c9HX/OQFGL yjXI4HUXxu+RrrdkDVKkIFC8KgC3scgAYDXKdYPCJrB8dIb6M3jxWpGizORPbqcUIHrE V81O3xcrjHZDu39MbEyLogUt/HtoTKy3vRTYWx6qGMKca1Fc0IS1Ji+rHdRXIR/dNfqW Utpw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=IEvofFkc2ZJoAujTGCy8dKauSDFsG9M95JoqcKnbUE4=; b=KfUOKj8rIzOWhVQpo701K1hlodwN17VlS1jUR6UMjOmFEqjDF+v6/uu1jTGYoDCPWj JbQCY3kqfAZtNoWy8F583XbyHq9tUIAPUSOAuy/kVJBH1IauBcSK2GuVRApTrew7SWEI 4xMCOg9eQcIinAc+m++ThhLvU8MnCysekDf+jVB1bvGvrfcISdOU+ttgghemnKn5PhQS gNGDkBgmnCnBuGcok9g6DxKuIb9onrrUO6z17vsXeced8aVaVDUqfIfaT0LnqWhX4+yZ b4sa1QOAmskRDB0fQoeAMvhhXTiwihJ5qsLgz4JraC7x6ZUI5mPvK1z60SppE5lx2/vM /eyg== X-Gm-Message-State: AJcUukdQjLnOOJmbMtBNg0FqpGztOjrSGLbiVYUexfYwhqvr4heQ3BLO IQBypfTIG0C6CncVjXOoBI7+WA== X-Google-Smtp-Source: ALg8bN4NKpSjg1mrEEdmK0FIx0W51WXZB1y1aadz9f/PhdWh7YQTJrtce9jjxbZUFWEdcZEjmcm+Hw== X-Received: by 2002:a0c:a9da:: with SMTP id c26mr28976854qvb.140.1548875126932; Wed, 30 Jan 2019 11:05:26 -0800 (PST) Received: from jkicinski-Precision-T1700.netronome.com ([66.60.152.14]) by smtp.gmail.com with ESMTPSA id d14sm1929604qkl.64.2019.01.30.11.05.24 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Wed, 30 Jan 2019 11:05:26 -0800 (PST) From: Jakub Kicinski To: davem@davemloft.net Cc: netdev@vger.kernel.org, oss-drivers@netronome.com, jiri@resnulli.us, andrew@lunn.ch, f.fainelli@gmail.com, mkubecek@suse.cz, eugenem@fb.com, jonathan.lemon@gmail.com, Jakub Kicinski Subject: [PATCH net-next v2 0/7] devlink: add device (driver) information API Date: Wed, 30 Jan 2019 11:05:06 -0800 Message-Id: <20190130190513.25718-1-jakub.kicinski@netronome.com> X-Mailer: git-send-email 2.19.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Hi! fw_version field in ethtool -i does not suit modern needs with 31 characters being quite limiting on more complex systems. There is also no distinction between the running and flashed versions of the firmware. Since the driver information pertains to the entire device, rather than a particular netdev, it seems wise to move it do devlink, at the same time fixing the aforementioned issues. The new API allows exposing the device serial number and versions of the components of the card - both hardware, firmware (running and flashed). Driver authors can choose descriptive identifiers for the version fields. A few version identifiers which seemed relevant for most devices have been added to the global devlink header. Example: $ devlink dev info pci/0000:05:00.0 pci/0000:05:00.0: driver nfp serial_number 16240145 versions: fixed: board.id AMDA0099-0001 board.rev 07 board.vendor SMA board.model carbon running: fw.mgmt: 010156.010156.010156 fw.cpld: 0x44 fw.app: sriov-2.1.16 stored: fw.mgmt: 010158.010158.010158 fw.cpld: 0x44 fw.app: sriov-2.1.20 Last patch also includes a compat code for ethtool. If driver reports no fw_version via the traditional ethtool API, ethtool can call into devlink and try to cram as many versions as possible into the 31 characters. v2: - rebase. this non-RFC, v3 some would say: - add three more versions in the NFP patches; - add last patch (ethool compat) - Andrew & Michal. RFCv2: - use one driver op; - allow longer serial number; - wrap the skb into an opaque request struct; - add some common identifier into the devlink header. Jakub Kicinski (7): devlink: add device information API devlink: add version reporting to devlink info API nfp: devlink: report driver name and serial number nfp: devlink: report fixed versions nfp: nsp: add support for versions command nfp: devlink: report the running and flashed versions ethtool: add compat for devlink info .../net/ethernet/netronome/nfp/nfp_devlink.c | 145 +++++++++++++ .../ethernet/netronome/nfp/nfpcore/nfp_nsp.c | 61 ++++++ .../ethernet/netronome/nfp/nfpcore/nfp_nsp.h | 20 ++ include/net/devlink.h | 59 +++++ include/uapi/linux/devlink.h | 10 + net/core/devlink.c | 204 ++++++++++++++++++ net/core/ethtool.c | 7 + 7 files changed, 506 insertions(+) -- 2.19.2