From patchwork Fri Jul 28 22:26:44 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Salil Mehta X-Patchwork-Id: 108909 Delivered-To: patch@linaro.org Received: by 10.140.101.44 with SMTP id t41csp925143qge; Fri, 28 Jul 2017 15:27:50 -0700 (PDT) X-Received: by 10.84.129.193 with SMTP id b59mr9147453plb.299.1501280870174; Fri, 28 Jul 2017 15:27:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1501280870; cv=none; d=google.com; s=arc-20160816; b=JVcNnmpfK8x3teepFC9UOYFKttYz/jpPL2oQrid117KgHdhl8nplIvWE6mdm8XH39c l728EixGtczTbNjPrLAdlWoXhC6vhh/FN9qJhYBuV4a7hFn2nlBXcvCAniHNSivQ4PTR r0BUMe63LOna4yWWtdef69Ehko9kU3BMumOxmkWdD5CPKX/WiwvypfY56T/o94jcsTu9 JoSzSQuinrpXSwDy7Mhhu1kBPV2siOUygFutooNvz5e+I/1VNy4EFz6h0AC+cESf011s r2tZyzeMpYTSNMtysEgyR5DcWEElUfw/Tht3Wdm8cXIksj/xxMsISMi/+53Br7eob6xr xhqQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:message-id:date:subject:cc :to:from:arc-authentication-results; bh=vnoi+Nhfhb6lgYUhpUiFC7EjG53UAlJhEOMnPBdaCZU=; b=hYXyNQ587XBqgtfPd1HA4rQzE/+GTpiXr2B3Uw2erE4d/LEvYKHknzp/blLIsOtxzd yDACCQnZoHP8W/FYMTLTzz0Q7pE9ED/V15Xmp6pv/1wtqMqntsleDKxaEibX7T5rYTez MAVTYEZDIj4H1wnv9YFQXruzu1FXiqjSdOmlgXtD9PdTwPgdPIE5fBSICHDRHhqsDR63 LDT4rfa0s1LV/90CzfLPXn1w2LF4h9fEEitnK33KbdLtr/GRvY463+fwr2ek/lAgZcoL P15I3TcGKsbL7uWOC/mcs6RG5artLF7SGSk40kk/zA7RhiLPyEct8ZDktDTTW/Q00sd6 Av5Q== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id g2si11223553plj.541.2017.07.28.15.27.49; Fri, 28 Jul 2017 15:27:50 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753015AbdG1W1p (ORCPT + 26 others); Fri, 28 Jul 2017 18:27:45 -0400 Received: from szxga03-in.huawei.com ([45.249.212.189]:9872 "EHLO szxga03-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752764AbdG1W1n (ORCPT ); Fri, 28 Jul 2017 18:27:43 -0400 Received: from 172.30.72.57 (EHLO dggeml406-hub.china.huawei.com) ([172.30.72.57]) by dggrg03-dlp.huawei.com (MOS 4.4.6-GA FastPath queued) with ESMTP id ASI67131; Sat, 29 Jul 2017 06:27:38 +0800 (CST) Received: from S00293818-DELL1.china.huawei.com (10.203.181.161) by dggeml406-hub.china.huawei.com (10.3.17.50) with Microsoft SMTP Server id 14.3.301.0; Sat, 29 Jul 2017 06:27:28 +0800 From: Salil Mehta To: CC: , , , , , , , , Subject: [PATCH V5 net-next 0/8] Hisilicon Network Subsystem 3 Ethernet Driver Date: Fri, 28 Jul 2017 23:26:44 +0100 Message-ID: <20170728222652.118448-1-salil.mehta@huawei.com> X-Mailer: git-send-email 2.8.3 MIME-Version: 1.0 X-Originating-IP: [10.203.181.161] X-CFilter-Loop: Reflected X-Mirapoint-Virus-RAPID-Raw: score=unknown(0), refid=str=0001.0A020201.597BBA5B.00C3, ss=1, re=0.000, recu=0.000, reip=0.000, cl=1, cld=1, fgs=0, ip=0.0.0.0, so=2014-11-16 11:51:01, dmn=2013-03-21 17:37:32 X-Mirapoint-Loop-Id: 7a1e3ab81e4cdd4bd577839b5cdee2fd Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch-set contains the support of the HNS3 (Hisilicon Network Subsystem 3) Ethernet driver for hip08 family of SoCs and future upcoming SoCs. Hisilicon's new hip08 SoCs have integrated ethernet based on PCI Express and hence there was a need of new driver over the previous HNS driver which is already part of the Linux mainline. This new driver is NOT backward compatible with HNS. This current driver is meant to control the Physical Function and there would soon be a support of a separate driver for Virtual Function once this base PF driver has been accepted. Also, this driver is the ongoing development work and HNS3 Ethernet driver would be incrementally enhanced with more new features. High Level Architecture: [ Ethtool ] ^ | | | [Ethernet Client] [ODP/UIO Client] . . . [ RoCE Client ] | | [ HNAE Device ] | | | --------------------------------------------- | | | [ HNAE3 Framework (Register/unregister) ] | | | --------------------------------------------- | | | [ HCLGE Layer] | ________________|_________________ | | | | | [ MDIO ] [ Scheduler/Shaper ] [ Debugfs* ] | | | | | |________________|_________________| | | | [ IMP command Interface ] | --------------------------------------------- | HIP08 H A R D W A R E * Current patch-set broadly adds the support of the following PF functionality: 1. Basic Rx and Tx functionality 2. TSO support 3. Ethtool support 4. * Debugfs support -> this patch for now has been taken off. 5. HNAE framework and hardware compatability layer 6. Scheduler and Shaper support in transmit function 7. MDIO support Change Log: V4->V5: Addressed below concerns: * Florian Fanelli: Miscellaneous comments on ethtool & enet layer * Stephen Hamminger: comment of Netdev stats in ethool layer * Leon Romanvosky: Comments on Driver Version String, naming & Kconfig * Rochard Cochran: Redundant function prototype V3->V4: Addressed below comments: * Andrew Lunn: Various comments on MDIO, ethtool, ENET driver etc, * Stephen Hemminger: change access and updation to 64 but statistics * Bo You: some spelling mistakes and checkpatch.pl errors. V2->V3: Addressed comments * Yuval Mintz: Removal of redundant userprio-to-tc code * Stephen Hemminger: Ethtool & interuupt enable * Andrew Lunn: On C45/C22 PHy support, HNAE, ethtool * Florian Fainelli: C45/C22 and phy_connect/attach * Intel kbuild errors V1->V2: Addressed some comments by kbuild, Yuval MIntz, Andrew Lunn & Florian Fainelli in the following patches: * Add support of HNS3 Ethernet Driver for hip08 SoC * Add MDIO support to HNS3 Ethernet driver for hip08 SoC * Add support of debugfs interface to HNS3 driver Salil Mehta (8): net: hns3: Add support of HNS3 Ethernet Driver for hip08 SoC net: hns3: Add support of the HNAE3 framework net: hns3: Add HNS3 IMP(Integrated Mgmt Proc) Cmd Interface Support net: hns3: Add HNS3 Acceleration Engine & Compatibility Layer Support net: hns3: Add support of TX Scheduler & Shaper to HNS3 driver net: hns3: Add MDIO support to HNS3 Ethernet driver for hip08 SoC net: hns3: Add Ethtool support to HNS3 driver net: hns3: Add HNS3 driver to kernel build framework & MAINTAINERS MAINTAINERS | 8 + drivers/net/ethernet/hisilicon/Kconfig | 27 + drivers/net/ethernet/hisilicon/Makefile | 1 + drivers/net/ethernet/hisilicon/hns3/Makefile | 7 + drivers/net/ethernet/hisilicon/hns3/hnae3.c | 319 ++ drivers/net/ethernet/hisilicon/hns3/hnae3.h | 444 ++ .../net/ethernet/hisilicon/hns3/hns3pf/Makefile | 11 + .../net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.c | 365 ++ .../net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h | 741 ++++ .../ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 4266 ++++++++++++++++++++ .../ethernet/hisilicon/hns3/hns3pf/hclge_main.h | 530 +++ .../ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c | 209 + .../net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c | 1015 +++++ .../net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.h | 106 + .../net/ethernet/hisilicon/hns3/hns3pf/hns3_enet.c | 2838 +++++++++++++ .../net/ethernet/hisilicon/hns3/hns3pf/hns3_enet.h | 595 +++ .../ethernet/hisilicon/hns3/hns3pf/hns3_ethtool.c | 487 +++ 17 files changed, 11969 insertions(+) create mode 100644 drivers/net/ethernet/hisilicon/hns3/Makefile create mode 100644 drivers/net/ethernet/hisilicon/hns3/hnae3.c create mode 100644 drivers/net/ethernet/hisilicon/hns3/hnae3.h create mode 100644 drivers/net/ethernet/hisilicon/hns3/hns3pf/Makefile create mode 100644 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.c create mode 100644 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h create mode 100644 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.c create mode 100644 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_main.h create mode 100644 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c create mode 100644 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c create mode 100644 drivers/net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.h create mode 100644 drivers/net/ethernet/hisilicon/hns3/hns3pf/hns3_enet.c create mode 100644 drivers/net/ethernet/hisilicon/hns3/hns3pf/hns3_enet.h create mode 100644 drivers/net/ethernet/hisilicon/hns3/hns3pf/hns3_ethtool.c -- 2.7.4