Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S933618AbdC3MNL (ORCPT ); Thu, 30 Mar 2017 08:13:11 -0400 Received: from mga07.intel.com ([134.134.136.100]:35752 "EHLO mga07.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932663AbdC3MNJ (ORCPT ); Thu, 30 Mar 2017 08:13:09 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.36,246,1486454400"; d="scan'208";a="840017418" From: Wu Hao To: atull@kernel.org, moritz.fischer@ettus.com, linux-fpga@vger.kernel.org, linux-kernel@vger.kernel.org Cc: luwei.kang@intel.com, yi.z.zhang@intel.com, hao.wu@intel.com Subject: [PATCH 00/16] Intel FPGA Device Drivers Date: Thu, 30 Mar 2017 20:08:00 +0800 Message-Id: <1490875696-15145-1-git-send-email-hao.wu@intel.com> X-Mailer: git-send-email 2.7.4 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 4820 Lines: 106 Hi All, Here is a patch-series adding drivers for Intel FPGA devices. The Intel FPGA driver provides interfaces for userspace applications to configure, enumerate, open, and access FPGA accelerators on platforms equipped with Intel(R) FPGA solutions and enables system level management functions such as FPGA partial reconfiguration, power management and virtualization. This patch series only adds the basic functions for FPGA accelerators and partial reconfiguration. Patches for more functions, e.g power management and virtualization, will be submitted after this series gets reviewed. Patch 1: add a document for Intel FPGA driver overview, including the HW architecture, driver organization, device enumeration, virtualization and opens. Patch 2: introduce a fpga-dev class. It's used in below Intel FPGA PCIe device driver, to represent a FPGA device on the system, and all actual feature devices should be registered as child nodes of this container fpga-dev device. Patch 3-7: implement Intel FPGA PCIe device driver. It walks through the 'Device Feature List' in the PCI Bar, creates the container fpga-dev as parent and platform devices as children for the feature devices it found. Patch 8-11: implement Intel FPGA Management Engine (FME) driver. It's a platform driver matching with the FME platform device created by above PCIe driver. Sysfs and device file ioctls are exposed as user interfaces to allow partial reconfiguration to Accelerated Function Units (AFUs) from user space applications. Patch 12-16: implement Intel FPGA Accelerated Function Unit (AFU) driver. It's a platform driver matching with AFU platform device created by above PCIe driver. It provides user interfaces to expose the AFU MMIO region, map/unmap dma buffer, and control the port which AFU connects to. Kang Luwei (3): fpga: intel: add FPGA Management Engine driver basic framework fpga: intel: fme: add header sub feature support fpga: intel: fme: add partial reconfiguration sub feature support Wu Hao (8): docs: fpga: add a document for Intel FPGA driver overview fpga: add FPGA device framework fpga: intel: pcie: adds fpga_for_each_port callback for fme device fpga: intel: fme: add FPGA_GET_API_VERSION/CHECK_EXTENSION ioctls support fpga: intel: add FPGA Accelerated Function Unit driver basic framework fpga: intel: afu: add header sub feature support fpga: intel: afu add FPGA_GET_API_VERSION/CHECK_EXTENSION ioctls support fpga: intel: afu: add FPGA_PORT_DMA_MAP/UNMAP ioctls support Xiao Guangrong (4): fpga: intel: pcie: parse feature list and create platform device for features. fpga: intel: pcie: add chardev support for feature devices fpga: intel: add feature device infrastructure fpga: intel: afu: add user afu sub feature support Zhang Yi (1): fpga: intel: add FPGA PCIe device driver Documentation/fpga/intel-fpga.txt | 259 +++++++++ Documentation/ioctl/ioctl-number.txt | 1 + drivers/fpga/Kconfig | 8 + drivers/fpga/Makefile | 6 + drivers/fpga/fpga-dev.c | 120 ++++ drivers/fpga/intel/Kconfig | 44 ++ drivers/fpga/intel/LICENSE.BSD | 24 + drivers/fpga/intel/Makefile | 7 + drivers/fpga/intel/afu-dma-region.c | 373 +++++++++++++ drivers/fpga/intel/afu-main.c | 471 ++++++++++++++++ drivers/fpga/intel/afu-region.c | 129 +++++ drivers/fpga/intel/afu.h | 72 +++ drivers/fpga/intel/feature-dev.c | 281 ++++++++++ drivers/fpga/intel/feature-dev.h | 499 +++++++++++++++++ drivers/fpga/intel/fme-main.c | 267 +++++++++ drivers/fpga/intel/fme-pr.c | 400 ++++++++++++++ drivers/fpga/intel/fme.h | 32 ++ drivers/fpga/intel/pcie.c | 1006 ++++++++++++++++++++++++++++++++++ include/linux/fpga/fpga-dev.h | 34 ++ include/uapi/linux/intel-fpga.h | 194 +++++++ 20 files changed, 4227 insertions(+) create mode 100644 Documentation/fpga/intel-fpga.txt create mode 100644 drivers/fpga/fpga-dev.c create mode 100644 drivers/fpga/intel/Kconfig create mode 100644 drivers/fpga/intel/LICENSE.BSD create mode 100644 drivers/fpga/intel/Makefile create mode 100644 drivers/fpga/intel/afu-dma-region.c create mode 100644 drivers/fpga/intel/afu-main.c create mode 100644 drivers/fpga/intel/afu-region.c create mode 100644 drivers/fpga/intel/afu.h create mode 100644 drivers/fpga/intel/feature-dev.c create mode 100644 drivers/fpga/intel/feature-dev.h create mode 100644 drivers/fpga/intel/fme-main.c create mode 100644 drivers/fpga/intel/fme-pr.c create mode 100644 drivers/fpga/intel/fme.h create mode 100644 drivers/fpga/intel/pcie.c create mode 100644 include/linux/fpga/fpga-dev.h create mode 100644 include/uapi/linux/intel-fpga.h -- 2.7.4