[PATCH 0/7] add support for CDX bus

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux&nblp;USB Development]     [Linux Media]     [Video for Linux]     [Linux Audio Users]     [Yosemite Secrets]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux