Hello, This V1 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@xxxxxxxxxx/ 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 v1: - fixed 'make dt_binding_check' errors. Lizhi Hou (9): Documentation: fpga: Add a document describing XRT Alveo driver infrastructure Documentation: devicetree: bindings: add xrt group binding of: handle fdt buffer alignment inside unflatten function 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 | 210 ++++++++ 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 | 13 + drivers/fpga/xrt/mgmt/dt-test.h | 15 + drivers/fpga/xrt/mgmt/xmgmt-drv.c | 166 ++++++ drivers/of/Makefile | 2 +- drivers/of/fdt.c | 37 +- drivers/of/fdt_default.dts | 5 + drivers/of/of_private.h | 5 + include/linux/xrt/xdevice.h | 128 +++++ 25 files changed, 1649 insertions(+), 2 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