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, URIBL_BLOCKED,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 C0E87C282C7 for ; Tue, 29 Jan 2019 03:34:39 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.kernel.org (Postfix) with ESMTP id 782A5214DA for ; Tue, 29 Jan 2019 03:34:39 +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="ohpmsvP7" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726913AbfA2Dei (ORCPT ); Mon, 28 Jan 2019 22:34:38 -0500 Received: from mail-qt1-f193.google.com ([209.85.160.193]:34594 "EHLO mail-qt1-f193.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726765AbfA2Deh (ORCPT ); Mon, 28 Jan 2019 22:34:37 -0500 Received: by mail-qt1-f193.google.com with SMTP id r14so20905168qtp.1 for ; Mon, 28 Jan 2019 19:34:37 -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=nWImGju3e6+Xc8iappWlHaTjVJgKhptHujFt+oLWbI0=; b=ohpmsvP7Ce9iYLV8EtUjOuffvFR5DB9YXtUiPE1iDm8IUvGHUjziBm9/iZ97m95jH7 KEu/LygPH3uJuEUp6dYJQt00gh6xeeNHLMKSGvF9cSuva+BVvs8bknumCNAhJH1+bReZ tqp7jSLfmKN+l8iC2WPrHoZGIBf/kFG/lb/r0EI/IEG88ZWXiK8bj9s0ZHQ9Lhx8FDnA LHdol2aHnnd/lE43iADDRdl4HAuBU0V9vktXjIrFVWiDHewJnx2x7yiwXwW3wCSXt3hQ AiGnNS0JIC6mhan07qQPlwWfMZHP4hFI83yaezzG07HVXmSjy4ocdsqXNTqCNv7EK+4F U+Aw== 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=nWImGju3e6+Xc8iappWlHaTjVJgKhptHujFt+oLWbI0=; b=I6uHXrjj6jRXeT/nzAImhPXwU0sSBkgkykyvGpx+mVz5v7SqiH3/XX8127TQonZ3TL cXYApzjhwf7GpiUBreDL4HY87iAbVnYwvuza+CRYLrriN57uL3a6fdpSmEsoG452V1zs ikYlAEZnN1qGpSl7JyAGN6QF0Kqn6r1LXVrA+dlOCqOkfWbAmqMyUbLcGWOE0OLw7x5N ThtkpisB4ZgNAMv7u20tiuSrMn+st23/aSQByI6actW0bHmhUbgX7hut1m4Gib+z0v56 yHCr4Pyrvm5jbJWowkrtcNI5sglN2oWvfqR4yJmmFvbf3VRxvuL41QDdh8oz83hzwE1n 0gYw== X-Gm-Message-State: AJcUukcbHLV9IrHuEUbqg8fwRFyr9UPhSURY0MvEUqoVJTYx7CqlhPdx 90UDiMfXMmkuIoBMy50bJdGo/Q== X-Google-Smtp-Source: ALg8bN5mAybbUQkKM68ANgyPJdRHt+sMmI/g3LQoVI4B3F3dj4nTqG3OfsbU6Vk+dVPmQ+7DeJoP+Q== X-Received: by 2002:ac8:2f38:: with SMTP id j53mr23484163qta.87.1548732876702; Mon, 28 Jan 2019 19:34:36 -0800 (PST) Received: from jkicinski-Precision-T1700.netronome.com ([66.60.152.14]) by smtp.gmail.com with ESMTPSA id z18sm70505153qkz.96.2019.01.28.19.34.34 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Mon, 28 Jan 2019 19:34:36 -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 0/7] devlink: add device (driver) information API Date: Mon, 28 Jan 2019 19:34:13 -0800 Message-Id: <20190129033420.27235-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. 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