[AMD Official Use Only - General] CDX bus driver series: Tested-by: Nikhil Agarwal <nikhil.agarwal@xxxxxxx> On a vnc board for versal-net. Also, on QEMU simulation platform. > -----Original Message----- > From: Nipun Gupta <nipun.gupta@xxxxxxx> > Sent: Tuesday, January 31, 2023 2:11 PM > To: robh+dt@xxxxxxxxxx; krzysztof.kozlowski+dt@xxxxxxxxxx; > gregkh@xxxxxxxxxxxxxxxxxxx; rafael@xxxxxxxxxx; eric.auger@xxxxxxxxxx; > alex.williamson@xxxxxxxxxx; cohuck@xxxxxxxxxx; > song.bao.hua@xxxxxxxxxxxxx; mchehab+huawei@xxxxxxxxxx; maz@xxxxxxxxxx; > f.fainelli@xxxxxxxxx; jeffrey.l.hugo@xxxxxxxxx; saravanak@xxxxxxxxxx; > Michael.Srba@xxxxxxxxx; mani@xxxxxxxxxx; yishaih@xxxxxxxxxx; > jgg@xxxxxxxx; jgg@xxxxxxxxxx; robin.murphy@xxxxxxx; will@xxxxxxxxxx; > joro@xxxxxxxxxx; masahiroy@xxxxxxxxxx; ndesaulniers@xxxxxxxxxx; > rdunlap@xxxxxxxxxxxxx; linux-arm-kernel@xxxxxxxxxxxxxxxxxxx; linux- > kbuild@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; > devicetree@xxxxxxxxxxxxxxx > Cc: okaya@xxxxxxxxxx; Anand, Harpreet <harpreet.anand@xxxxxxx>; > Agarwal, Nikhil <nikhil.agarwal@xxxxxxx>; Simek, Michal > <michal.simek@xxxxxxx>; git (AMD-Xilinx) <git@xxxxxxx>; Gupta, Nipun > <Nipun.Gupta@xxxxxxx> > 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@xxxxxxx/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@xxxxxxxxxxxxx/ > 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