AMD Working On Xilinx CDX Bus Support For The Linux Kernel
I haven't been able to find much existing information on "Xilinx CDX" though FPGAs aren't one of my main areas of interest or focus on Phoronix, but this would appear to be a new innovation in the AMD-Xilinx space especially with there being no existing Linux kernel support for the CDX bus. CDX is summed up in the request for comments (RFC) patch series as:
Devices in FPGA can be added/modified dynamically on run-time. These devices are exposed on system bus to embedded CPUs.
Xilinx CDX bus, caters to the requirement for dynamically discovered FPGA devices. These devices are added as platform devices where fwnode is created using 'software nodes' in Linux framework.
- Intrduces the CDX bus controller and platform device creation for the devices on the CDX bus.
- Add rescan and reset support for the CDX buses as well as reset of the devices on the CDX bus.
- VFIO platform reset support for CDX bus.
- creates a sysfs entry to expose the compatible string for platform devices.
Please NOTE: This is a RFC change which does not yet support the CDX bus firmware interface as it is under development, and this series aims to get an early feedback from the community. There are TODO items mentioned in the patches which needs to be updated for complete bus support.
So right now this CDX bus is intended for the dynamic addition/removal of FPGA devices exposed to the embedded Arm CPU cores. Though CDX may also play an important role with future AMD processors expected to introduce onboard Xilinx accelerators, so we could see the CDX bus potentially used there too. There is talk that as soon as next year AMD could be potentially integrating Xilinx "AI engines" onto AMD CPUs and other accelerators also likely to be introduced in the future, thanks to AMD's acquisition of Xilinx that closed earlier in the year.
This patch series is where the CDX bus support is laid out and the AMD/Xilinx engineers currently seeking feedback on the software implementation before it ultimately works its way to the mainline kernel tree.