From patchwork Sat Jun 17 17:24:23 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Salil Mehta X-Patchwork-Id: 105782 Delivered-To: patch@linaro.org Received: by 10.140.91.2 with SMTP id y2csp173153qgd; Sat, 17 Jun 2017 10:26:31 -0700 (PDT) X-Received: by 10.98.13.202 with SMTP id 71mr13837766pfn.12.1497720391609; Sat, 17 Jun 2017 10:26:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1497720391; cv=none; d=google.com; s=arc-20160816; b=LX+Ykc/1dN7FFfTIqk5xXsg65RaAtT7eBafhIM7xqy2AM+lgLn7p9yGEJIUibm3wHN c2mrxQL1OjZ2lDXxrTR3WKg3szCnI2hQrv62wXhTYhwLCAznXRz5zqaNehb1odhJIkh/ 3R5NY8FR0MGwtt1eQK2Wb8iz+70eZfLL4RnRYuJlVqAxGB+LTWatiFFVkTO1A6pWP+cU 7j0x9KxkzugAo0ncmsWj8OJNbkoM81+wmVUIwPc/B+MDsDtsMHxETgojYRttnPugZsoi bOdXjMXdlwl2anqM2TioKpPrGF9fjSFfYPBrv+uHbg7WAXfneT/+RHRMTgUx5B/xQSMA FA/A== 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=XaJ45IgZxsaKUlR2n6FBoba0jGy8KUm5RnU6OEw6qIk=; b=w6bFQVi+FDgK4Loa5AbNXaqrzdIXdLSFpCqpXOZ0e0S2cFw8zXTnw0cyAwg6xAlKD5 GDp8nVawXwq6ox/C8idk+xOHb2wFbnDa65dbZ8UryZhGA4iddaYYlmCfVtQWr0VSB5+e GUNVORzhxoVUxcBa8yNmvtVLZhJdlRZIhGqi+Sf7x8+yW5Tv1Q1rnLmc8JD7izFJvNZg KjOfLnVoIJUB5k9DVBCS7d5sP5qtfopbdT6jzAzLIbMgmzMwuCW4ruch/Tx2fE2TvBfL 9bhwSuSW0M1KApowoHmDOb1M39w3Xf3ckXKaJp6ttuIPmffOsJ7AqGRx7XSTJjGs4I1+ EnUA== 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 r14si5182180plj.556.2017.06.17.10.26.31; Sat, 17 Jun 2017 10:26:31 -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 S1752974AbdFQR0Y (ORCPT + 25 others); Sat, 17 Jun 2017 13:26:24 -0400 Received: from szxga03-in.huawei.com ([45.249.212.189]:7880 "EHLO szxga03-in.huawei.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752926AbdFQR0V (ORCPT ); Sat, 17 Jun 2017 13:26:21 -0400 Received: from 172.30.72.57 (EHLO DGGEML402-HUB.china.huawei.com) ([172.30.72.57]) by dggrg03-dlp.huawei.com (MOS 4.4.6-GA FastPath queued) with ESMTP id APO01050; Sun, 18 Jun 2017 01:25:22 +0800 (CST) Received: from S00293818-DELL1.china.huawei.com (10.203.181.160) by DGGEML402-HUB.china.huawei.com (10.3.17.38) with Microsoft SMTP Server id 14.3.301.0; Sun, 18 Jun 2017 01:25:11 +0800 From: Salil Mehta To: CC: , , , , , , , Subject: [PATCH V3 net-next 0/8] Hisilicon Network Subsystem 3 Ethernet Driver Date: Sat, 17 Jun 2017 18:24:23 +0100 Message-ID: <20170617172431.177044-1-salil.mehta@huawei.com> X-Mailer: git-send-email 2.8.3 MIME-Version: 1.0 X-Originating-IP: [10.203.181.160] X-CFilter-Loop: Reflected X-Mirapoint-Virus-RAPID-Raw: score=unknown(0), refid=str=0001.0A090202.59456602.0062, 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: 535f8697823fc3294928036216120b49 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] [RoCE Client] . . . [ Ethernet Client ] --------------------------------------------- | | | [ HNAE3 Framework (Register/unregister) ] | | | --------------------------------------------- | [ HNAE Device ] | | | [ 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. HNAE framework and hardware compatability layer 5. Scheduler and Shaper support in transmit function 6. MDIO support 7. kernel build supporrt, Makefiles, Kconfig etc. Change Log: 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 | 305 ++ drivers/net/ethernet/hisilicon/hns3/hnae3.h | 449 +++ .../net/ethernet/hisilicon/hns3/hns3pf/Makefile | 11 + .../net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.c | 347 ++ .../net/ethernet/hisilicon/hns3/hns3pf/hclge_cmd.h | 742 ++++ .../ethernet/hisilicon/hns3/hns3pf/hclge_main.c | 4246 ++++++++++++++++++++ .../ethernet/hisilicon/hns3/hns3pf/hclge_main.h | 493 +++ .../ethernet/hisilicon/hns3/hns3pf/hclge_mdio.c | 249 ++ .../net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.c | 1018 +++++ .../net/ethernet/hisilicon/hns3/hns3pf/hclge_tm.h | 108 + .../net/ethernet/hisilicon/hns3/hns3pf/hns3_enet.c | 2838 +++++++++++++ .../net/ethernet/hisilicon/hns3/hns3pf/hns3_enet.h | 585 +++ .../ethernet/hisilicon/hns3/hns3pf/hns3_ethtool.c | 878 ++++ 17 files changed, 12312 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