[PATCH 0/7] add support for CDX bus

From: Nipun Gupta
Date: Tue Jan 17 2023 - 08:42:02 EST


Introduces 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

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.

RFC changes with stubs were submitted at:
https://lore.kernel.org/linux-arm-kernel/20221014044049.2557085-1-nipun.gupta@xxxxxxx/

Abhijit Gangurde (1):
bus/cdx: add rpmsg communication channel for CDX

Nipun Gupta (6):
bus/cdx: add the cdx bus driver
iommu/arm-smmu-v3: support ops registration for CDX bus
dt-bindings: bus: add CDX bus controller device tree bindings
bus/cdx: add MCDI protocol interface for firmware interaction
bus/cdx: add cdx controller
bus/cdx: add device attributes

Documentation/ABI/testing/sysfs-bus-cdx | 46 +
.../bindings/bus/xlnx,cdxbus-controller.yaml | 68 ++
MAINTAINERS | 8 +
drivers/bus/Kconfig | 1 +
drivers/bus/Makefile | 2 +
drivers/bus/cdx/Kconfig | 16 +
drivers/bus/cdx/Makefile | 8 +
drivers/bus/cdx/cdx.c | 577 +++++++++++
drivers/bus/cdx/cdx.h | 62 ++
drivers/bus/cdx/controller/Kconfig | 30 +
drivers/bus/cdx/controller/Makefile | 9 +
drivers/bus/cdx/controller/bitfield.h | 88 ++
drivers/bus/cdx/controller/cdx_controller.c | 282 ++++++
drivers/bus/cdx/controller/cdx_controller.h | 30 +
drivers/bus/cdx/controller/cdx_rpmsg.c | 222 +++++
drivers/bus/cdx/controller/mc_cdx_pcol.h | 707 ++++++++++++++
drivers/bus/cdx/controller/mcdi.c | 918 ++++++++++++++++++
drivers/bus/cdx/controller/mcdi.h | 259 +++++
drivers/bus/cdx/controller/mcdi_functions.c | 139 +++
drivers/bus/cdx/controller/mcdi_functions.h | 61 ++
drivers/iommu/iommu.c | 4 +
include/linux/cdx/cdx_bus.h | 176 ++++
include/linux/mod_devicetable.h | 15 +
scripts/mod/devicetable-offsets.c | 4 +
scripts/mod/file2alias.c | 12 +
25 files changed, 3744 insertions(+)
create mode 100644 Documentation/ABI/testing/sysfs-bus-cdx
create mode 100644 Documentation/devicetree/bindings/bus/xlnx,cdxbus-controller.yaml
create mode 100644 drivers/bus/cdx/Kconfig
create mode 100644 drivers/bus/cdx/Makefile
create mode 100644 drivers/bus/cdx/cdx.c
create mode 100644 drivers/bus/cdx/cdx.h
create mode 100644 drivers/bus/cdx/controller/Kconfig
create mode 100644 drivers/bus/cdx/controller/Makefile
create mode 100644 drivers/bus/cdx/controller/bitfield.h
create mode 100644 drivers/bus/cdx/controller/cdx_controller.c
create mode 100644 drivers/bus/cdx/controller/cdx_controller.h
create mode 100644 drivers/bus/cdx/controller/cdx_rpmsg.c
create mode 100644 drivers/bus/cdx/controller/mc_cdx_pcol.h
create mode 100644 drivers/bus/cdx/controller/mcdi.c
create mode 100644 drivers/bus/cdx/controller/mcdi.h
create mode 100644 drivers/bus/cdx/controller/mcdi_functions.c
create mode 100644 drivers/bus/cdx/controller/mcdi_functions.h
create mode 100644 include/linux/cdx/cdx_bus.h

--
2.17.1