lkml.org 
[lkml]   [2021]   [Dec]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[PATCH V3 XRT Alveo Infrastructure 0/8] XRT Alveo driver infrastructure overview
Date
Hello,

This V3 of patch series is the infrastruture of previous submitted XRT
driver patch set for Xilinx Alveo PCIe accelerator cards.
https://lore.kernel.org/lkml/20210802160521.331031-1-lizhi.hou@xilinx.com/

The patch series includes Documentation/xrt.rst which describes Alveo
platform, XRT driver architecture and deployment model in more detail.

The Alveo PCIe device uses Device Tree blob to describe its HW subsystems.
Each device tree node respresents a hardware endpoint and each endpoint
is an hardware unit which requires a driver for it. XRT driver
infrastructure unflattens device tree blob and overlay the device nodes
to system device tree. of/unittest.c, pci/hotplug/pnv_php.c and other
linux kernel code are referenced for usage of OF functions.

XRT driver infrastructure implements xrt_device and xrt_driver for Alveo
endpoints. An xrt_bus_type is also implemented to bind xrt driver to
xrt device.

This patch series uses a builtin test device tree blob which contains only
one endpoint as a input. The XRT driver creates a pseudo group xrt_device
for the input device tree blob. And a group xrt_driver is implemented to
discover and create xrt_device for the endpoint contained in the blob.
--
Changes since v2:
- reversed the change of of_fdt_unflatten_tree()
- unified default of_root creation with unittest code

Changes since v1:
- fixed 'make dt_binding_check' errors.

Lizhi Hou (8):
Documentation: fpga: Add a document describing XRT Alveo driver
infrastructure
Documentation: devicetree: bindings: add xrt group binding
of: create empty of root
fpga: xrt: xrt-lib initialization
fpga: xrt: xrt bus and device
fpga: xrt: lib-xrt xroot APIs
fpga: xrt: xrt group device driver
fpga: xrt: management physical function driver

.../bindings/xrt/xlnx,xrt-group.yaml | 57 ++
Documentation/fpga/index.rst | 1 +
Documentation/fpga/xrt.rst | 510 ++++++++++++++++++
MAINTAINERS | 10 +
drivers/fpga/Kconfig | 3 +
drivers/fpga/Makefile | 4 +
drivers/fpga/xrt/Kconfig | 7 +
drivers/fpga/xrt/include/xroot.h | 30 ++
drivers/fpga/xrt/lib/Kconfig | 16 +
drivers/fpga/xrt/lib/Makefile | 18 +
drivers/fpga/xrt/lib/group.c | 94 ++++
drivers/fpga/xrt/lib/lib-drv.c | 249 +++++++++
drivers/fpga/xrt/lib/lib-drv.h | 28 +
drivers/fpga/xrt/lib/xroot.c | 223 ++++++++
drivers/fpga/xrt/lib/xrt-bus.dts | 13 +
drivers/fpga/xrt/mgmt/Kconfig | 14 +
drivers/fpga/xrt/mgmt/Makefile | 16 +
drivers/fpga/xrt/mgmt/dt-test.dts | 11 +
drivers/fpga/xrt/mgmt/dt-test.h | 15 +
drivers/fpga/xrt/mgmt/xmgmt-drv.c | 167 ++++++
drivers/of/Makefile | 5 +
drivers/of/fdt.c | 61 +++
drivers/of/fdt_default.dts | 5 +
drivers/of/of_private.h | 15 +
drivers/of/unittest.c | 70 +--
include/linux/xrt/xdevice.h | 128 +++++
26 files changed, 1703 insertions(+), 67 deletions(-)
create mode 100644 Documentation/devicetree/bindings/xrt/xlnx,xrt-group.yaml
create mode 100644 Documentation/fpga/xrt.rst
create mode 100644 drivers/fpga/xrt/Kconfig
create mode 100644 drivers/fpga/xrt/include/xroot.h
create mode 100644 drivers/fpga/xrt/lib/Kconfig
create mode 100644 drivers/fpga/xrt/lib/Makefile
create mode 100644 drivers/fpga/xrt/lib/group.c
create mode 100644 drivers/fpga/xrt/lib/lib-drv.c
create mode 100644 drivers/fpga/xrt/lib/lib-drv.h
create mode 100644 drivers/fpga/xrt/lib/xroot.c
create mode 100644 drivers/fpga/xrt/lib/xrt-bus.dts
create mode 100644 drivers/fpga/xrt/mgmt/Kconfig
create mode 100644 drivers/fpga/xrt/mgmt/Makefile
create mode 100644 drivers/fpga/xrt/mgmt/dt-test.dts
create mode 100644 drivers/fpga/xrt/mgmt/dt-test.h
create mode 100644 drivers/fpga/xrt/mgmt/xmgmt-drv.c
create mode 100644 drivers/of/fdt_default.dts
create mode 100644 include/linux/xrt/xdevice.h

--
2.27.0

\
 
 \ /
  Last update: 2021-12-04 01:40    [W:0.056 / U:3.816 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site