[PATCH v7 0/7] add support for CDX bus

Agarwal, Nikhil nikhil.agarwal at amd.com
Wed Feb 15 04:52:06 PST 2023


[AMD Official Use Only - General]

CDX bus driver series:

Tested-by: Nikhil Agarwal <nikhil.agarwal at amd.com>

On a vnc board for versal-net. Also, on QEMU simulation platform.

> -----Original Message-----
> From: Nipun Gupta <nipun.gupta at amd.com>
> Sent: Tuesday, January 31, 2023 2:11 PM
> To: robh+dt at kernel.org; krzysztof.kozlowski+dt at linaro.org;
> gregkh at linuxfoundation.org; rafael at kernel.org; eric.auger at redhat.com;
> alex.williamson at redhat.com; cohuck at redhat.com;
> song.bao.hua at hisilicon.com; mchehab+huawei at kernel.org; maz at kernel.org;
> f.fainelli at gmail.com; jeffrey.l.hugo at gmail.com; saravanak at google.com;
> Michael.Srba at seznam.cz; mani at kernel.org; yishaih at nvidia.com;
> jgg at ziepe.ca; jgg at nvidia.com; robin.murphy at arm.com; will at kernel.org;
> joro at 8bytes.org; masahiroy at kernel.org; ndesaulniers at google.com;
> rdunlap at infradead.org; linux-arm-kernel at lists.infradead.org; linux-
> kbuild at vger.kernel.org; linux-kernel at vger.kernel.org;
> devicetree at vger.kernel.org
> Cc: okaya at kernel.org; Anand, Harpreet <harpreet.anand at amd.com>;
> Agarwal, Nikhil <nikhil.agarwal at amd.com>; Simek, Michal
> <michal.simek at amd.com>; git (AMD-Xilinx) <git at amd.com>; Gupta, Nipun
> <Nipun.Gupta at amd.com>
> Subject: [PATCH v7 0/7] add support for CDX bus
> 
> Introduce AMD CDX bus, which provides a mechanism to discover/rescan CDX
> devices. The CDX devices are memory mapped on system bus for embedded
> CPUs.
> 
> CDX controller interacts with the firmware to query different CDX devices
> present in the Fabric and expose them to the Linux host on CDX bus.
> 
> This patch series:
> - Introduces the CDX bus and CDX devices.
> - Device tree binding for CDX controller
> - Support for CDX bus in arm-smmu-v3 driver
> - Add MCDI (Management CPU Driver Interface) as a protocol
>   for communication with RPU Firmware
> - Support RPMSg channel for Firmware communication
> 
> v6 patch series is at:
> https://lore.kernel.org/lkml/20230117134139.1298-4-
> nipun.gupta at amd.com/T/
> 
> Changes v6 -> v7
> - Fix compilation for x86 environment in case CDX bus is enabled
> - Fixed crash in reset if device is not bound to any device driver
> - Update sysfs with typo and other minor changes
> - Removed header file issue reported by make versioncheck
> 
> Changes v5 -> v6
> - updated compatible name in the CDX dt-binding
> - updated reset CDX device and removed redundant function
> - moved from drivers/bus/cdx to drivers/cdx
> - used xarray instead of controller list and ID
> - updated sysfs documentation with more details
> 
> Changes RFC v4 -> v5
> - Fixed device tree documentation
> - Add MCDI as a protocol and RPMsg as transport for communication
>   with RPU Firmware instead of using MCDI stubs.
> - MSI patches for CDX are not added in this series as it's
>   support is being revisited as per patch series:
>   https://lore.kernel.org/all/20221111133158.196269823@linutronix.de/
>   It will be added as separate patches.
> 
> Changes RFC v3 -> RFC v4:
>  - Separate CDX bus and CDX controller driver (Greg K-H)
>  - Added MSI interfacing to Firmware for writing MSI message
>    to firmware so it can be provided to the device.
>  - Fix MSI review comments - multiple cleanups (Mark Zynger)
>  - Fix the device tree yaml compilation (Rob Herring, Krzysztof)
>  - removed vfio-cdx from this series. It will be added after bus
>    support is complete (Jason)
> 
> Changes RFC v2 -> RFC v3:
> - Move CDX bus as a new bus type in kernel rather than
>   using the platform devices (Greg K-H, Marc Zynger)
> - Correspondingly update ARM SMMU v3
> - Add support for vfio-cdx driver
> - Updated device tree yaml with correct binding information
>   (Krzysztof Kozlowski)
> - remove 'compatible' sysfs platform patch which was required
>   for CDX devices exposed as platform devices
> 
> Changes RFC v1 -> RFC v2:
> - introduce CDX bus infrastructure
> - fixed code for making compatible visible for devices
>   having the 'compatible' property only (Greg K-H)
> - moved CDX-MSI domain as part of CDX bus infrastructure.
>   previously it was part of irqchip (Marc Zynger).
> - fixed few prints (Greg K-H)
> - support rescan and reset of CDX bus
> - add VFIO reset module for CDX bus based devices
> 
> Abhijit Gangurde (1):
>   cdx: add rpmsg communication channel for CDX
> 
> Nipun Gupta (6):
>   cdx: add the cdx bus driver
>   iommu/arm-smmu-v3: support ops registration for CDX bus
>   dt-bindings: bus: add CDX bus controller for versal net
>   cdx: add MCDI protocol interface for firmware interaction
>   cdx: add cdx controller
>   cdx: add device attributes
> 
>  Documentation/ABI/testing/sysfs-bus-cdx       |  56 ++
>  .../bindings/bus/xlnx,versal-net-cdx.yaml     |  68 ++
>  MAINTAINERS                                   |   8 +
>  drivers/Kconfig                               |   2 +
>  drivers/Makefile                              |   1 +
>  drivers/cdx/Kconfig                           |  19 +
>  drivers/cdx/Makefile                          |   8 +
>  drivers/cdx/cdx.c                             | 553 +++++++++++
>  drivers/cdx/cdx.h                             |  62 ++
>  drivers/cdx/controller/Kconfig                |  30 +
>  drivers/cdx/controller/Makefile               |   9 +
>  drivers/cdx/controller/bitfield.h             |  90 ++
>  drivers/cdx/controller/cdx_controller.c       | 230 +++++
>  drivers/cdx/controller/cdx_controller.h       |  30 +
>  drivers/cdx/controller/cdx_rpmsg.c            | 202 ++++
>  drivers/cdx/controller/mc_cdx_pcol.h          | 590 ++++++++++++
>  drivers/cdx/controller/mcdi.c                 | 911 ++++++++++++++++++
>  drivers/cdx/controller/mcdi.h                 | 247 +++++
>  drivers/cdx/controller/mcdi_functions.c       | 139 +++
>  drivers/cdx/controller/mcdi_functions.h       |  61 ++
>  drivers/iommu/iommu.c                         |   4 +
>  include/linux/cdx/cdx_bus.h                   | 174 ++++
>  include/linux/mod_devicetable.h               |  15 +
>  scripts/mod/devicetable-offsets.c             |   4 +
>  scripts/mod/file2alias.c                      |  12 +
>  25 files changed, 3525 insertions(+)
>  create mode 100644 Documentation/ABI/testing/sysfs-bus-cdx
>  create mode 100644 Documentation/devicetree/bindings/bus/xlnx,versal-
> net-cdx.yaml
>  create mode 100644 drivers/cdx/Kconfig
>  create mode 100644 drivers/cdx/Makefile  create mode 100644
> drivers/cdx/cdx.c  create mode 100644 drivers/cdx/cdx.h  create mode
> 100644 drivers/cdx/controller/Kconfig  create mode 100644
> drivers/cdx/controller/Makefile  create mode 100644
> drivers/cdx/controller/bitfield.h  create mode 100644
> drivers/cdx/controller/cdx_controller.c
>  create mode 100644 drivers/cdx/controller/cdx_controller.h
>  create mode 100644 drivers/cdx/controller/cdx_rpmsg.c
>  create mode 100644 drivers/cdx/controller/mc_cdx_pcol.h
>  create mode 100644 drivers/cdx/controller/mcdi.c  create mode 100644
> drivers/cdx/controller/mcdi.h  create mode 100644
> drivers/cdx/controller/mcdi_functions.c
>  create mode 100644 drivers/cdx/controller/mcdi_functions.h
>  create mode 100644 include/linux/cdx/cdx_bus.h
> 
> --
> 2.17.1



More information about the linux-arm-kernel mailing list