From patchwork Thu Mar 15 23:47:47 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Anirudh Venkataramanan X-Patchwork-Id: 886521 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@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=none (p=none dis=none) header.from=intel.com Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 402QJR5WKfz9sVZ for ; Fri, 16 Mar 2018 10:48:07 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933297AbeCOXsE (ORCPT ); Thu, 15 Mar 2018 19:48:04 -0400 Received: from mga05.intel.com ([192.55.52.43]:47739 "EHLO mga05.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932943AbeCOXsC (ORCPT ); Thu, 15 Mar 2018 19:48:02 -0400 X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from fmsmga004.fm.intel.com ([10.253.24.48]) by fmsmga105.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 15 Mar 2018 16:48:02 -0700 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.48,313,1517904000"; d="scan'208";a="37836776" Received: from shasta.jf.intel.com ([10.166.241.32]) by fmsmga004.fm.intel.com with ESMTP; 15 Mar 2018 16:48:02 -0700 From: Anirudh Venkataramanan To: intel-wired-lan@lists.osuosl.org Cc: netdev@vger.kernel.org Subject: [PATCH v2 00/15] Add ice driver Date: Thu, 15 Mar 2018 16:47:47 -0700 Message-Id: <20180315234802.31336-1-anirudh.venkataramanan@intel.com> X-Mailer: git-send-email 2.14.3 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This patch series adds the ice driver, which will support the Intel(R) E800 Series of network devices. This is the first phase in the release of this driver where we implement basic transmit and receive. The idea behind the multi-phase release is to aid in code review as well as testing. Subsequent phases will implement advanced features (like SR-IOV, tunnelling, flow director, QoS, etc.) that build upon the previous phase(s). Each phase will be submitted as a patch series. I cc'd netdev for review since this is a new driver, even though this is targeted to go through Jeff Kirsher's Intel Wired LAN git tree(s). v2: Addressed community feedback patch #3 : Removed register write based on Shannon's comments patch #4 : Change retries value based on Shannon's comments patch #6 : Remove reference to "lump" as Shannon suggested patch #7 : Add define for magic number as Shannon suggested patch #12: Reworked based on multiple comments (Jakub, Stephen, et al.) Anirudh Venkataramanan (15): ice: Add basic driver framework for Intel(R) E800 Series ice: Add support for control queues ice: Start hardware initialization ice: Get switch config, scheduler config and device capabilities ice: Get MAC/PHY/link info and scheduler topology ice: Initialize PF and setup miscellaneous interrupt ice: Add support for VSI allocation and deallocation ice: Add support for switch filter programming ice: Configure VSIs for Tx/Rx ice: Implement transmit and NAPI support ice: Add support for VLANs and offloads ice: Add stats and ethtool support ice: Update Tx scheduler tree for VSI multi-Tx queue support ice: Support link events, reset and rebuild ice: Implement filter sync, NDO operations and bump version Documentation/networking/ice.txt | 39 + MAINTAINERS | 1 + drivers/net/ethernet/intel/Kconfig | 14 + drivers/net/ethernet/intel/Makefile | 1 + drivers/net/ethernet/intel/ice/Makefile | 34 + drivers/net/ethernet/intel/ice/ice.h | 326 ++ drivers/net/ethernet/intel/ice/ice_adminq_cmd.h | 1366 ++++++ drivers/net/ethernet/intel/ice/ice_common.c | 2247 +++++++++ drivers/net/ethernet/intel/ice/ice_common.h | 100 + drivers/net/ethernet/intel/ice/ice_controlq.c | 1080 +++++ drivers/net/ethernet/intel/ice/ice_controlq.h | 108 + drivers/net/ethernet/intel/ice/ice_devids.h | 33 + drivers/net/ethernet/intel/ice/ice_ethtool.c | 954 ++++ drivers/net/ethernet/intel/ice/ice_hw_autogen.h | 280 ++ drivers/net/ethernet/intel/ice/ice_lan_tx_rx.h | 487 ++ drivers/net/ethernet/intel/ice/ice_main.c | 5509 +++++++++++++++++++++++ drivers/net/ethernet/intel/ice/ice_nvm.c | 250 + drivers/net/ethernet/intel/ice/ice_osdep.h | 87 + drivers/net/ethernet/intel/ice/ice_sched.c | 1673 +++++++ drivers/net/ethernet/intel/ice/ice_sched.h | 57 + drivers/net/ethernet/intel/ice/ice_status.h | 46 + drivers/net/ethernet/intel/ice/ice_switch.c | 1897 ++++++++ drivers/net/ethernet/intel/ice/ice_switch.h | 175 + drivers/net/ethernet/intel/ice/ice_txrx.c | 1796 ++++++++ drivers/net/ethernet/intel/ice/ice_txrx.h | 206 + drivers/net/ethernet/intel/ice/ice_type.h | 408 ++ 26 files changed, 19174 insertions(+) create mode 100644 Documentation/networking/ice.txt create mode 100644 drivers/net/ethernet/intel/ice/Makefile create mode 100644 drivers/net/ethernet/intel/ice/ice.h create mode 100644 drivers/net/ethernet/intel/ice/ice_adminq_cmd.h create mode 100644 drivers/net/ethernet/intel/ice/ice_common.c create mode 100644 drivers/net/ethernet/intel/ice/ice_common.h create mode 100644 drivers/net/ethernet/intel/ice/ice_controlq.c create mode 100644 drivers/net/ethernet/intel/ice/ice_controlq.h create mode 100644 drivers/net/ethernet/intel/ice/ice_devids.h create mode 100644 drivers/net/ethernet/intel/ice/ice_ethtool.c create mode 100644 drivers/net/ethernet/intel/ice/ice_hw_autogen.h create mode 100644 drivers/net/ethernet/intel/ice/ice_lan_tx_rx.h create mode 100644 drivers/net/ethernet/intel/ice/ice_main.c create mode 100644 drivers/net/ethernet/intel/ice/ice_nvm.c create mode 100644 drivers/net/ethernet/intel/ice/ice_osdep.h create mode 100644 drivers/net/ethernet/intel/ice/ice_sched.c create mode 100644 drivers/net/ethernet/intel/ice/ice_sched.h create mode 100644 drivers/net/ethernet/intel/ice/ice_status.h create mode 100644 drivers/net/ethernet/intel/ice/ice_switch.c create mode 100644 drivers/net/ethernet/intel/ice/ice_switch.h create mode 100644 drivers/net/ethernet/intel/ice/ice_txrx.c create mode 100644 drivers/net/ethernet/intel/ice/ice_txrx.h create mode 100644 drivers/net/ethernet/intel/ice/ice_type.h