/linux-6.14.4/drivers/cdx/controller/ |
D | cdx_controller.c | 3 * CDX host controller driver for AMD versal-net platform. 11 #include <linux/cdx/cdx_bus.h> 15 #include "../cdx.h" 19 static unsigned int cdx_mcdi_rpc_timeout(struct cdx_mcdi *cdx, unsigned int cmd) in cdx_mcdi_rpc_timeout() argument 24 static void cdx_mcdi_request(struct cdx_mcdi *cdx, in cdx_mcdi_request() argument 28 if (cdx_rpmsg_send(cdx, hdr, hdr_len, sdu, sdu_len)) in cdx_mcdi_request() 29 dev_err(&cdx->rpdev->dev, "Failed to send rpmsg data\n"); in cdx_mcdi_request() 37 static int cdx_bus_enable(struct cdx_controller *cdx, u8 bus_num) in cdx_bus_enable() argument 39 return cdx_mcdi_bus_enable(cdx->priv, bus_num); in cdx_bus_enable() 42 static int cdx_bus_disable(struct cdx_controller *cdx, u8 bus_num) in cdx_bus_disable() argument [all …]
|
D | mcdi_functions.h | 3 * Header file for MCDI FW interaction for CDX bus. 12 #include "../cdx.h" 17 * @cdx: pointer to MCDI interface. 22 int cdx_mcdi_get_num_buses(struct cdx_mcdi *cdx); 27 * @cdx: pointer to MCDI interface. 32 int cdx_mcdi_get_num_devs(struct cdx_mcdi *cdx, int bus_num); 37 * @cdx: pointer to MCDI interface. 46 int cdx_mcdi_get_dev_config(struct cdx_mcdi *cdx, 51 * cdx_mcdi_bus_enable - Enable CDX bus represented by bus_num 52 * @cdx: pointer to MCDI interface. [all …]
|
D | mcdi.c | 30 static void cdx_mcdi_cancel_cmd(struct cdx_mcdi *cdx, struct cdx_mcdi_cmd *cmd); 31 static void cdx_mcdi_wait_for_cleanup(struct cdx_mcdi *cdx); 32 static int cdx_mcdi_rpc_async_internal(struct cdx_mcdi *cdx, 48 static void cdx_mcdi_mode_fail(struct cdx_mcdi *cdx, struct list_head *cleanup_list); 49 static void _cdx_mcdi_display_error(struct cdx_mcdi *cdx, unsigned int cmd, 94 static unsigned long cdx_mcdi_rpc_timeout(struct cdx_mcdi *cdx, unsigned int cmd) in cdx_mcdi_rpc_timeout() argument 96 if (!cdx->mcdi_ops->mcdi_rpc_timeout) in cdx_mcdi_rpc_timeout() 99 return cdx->mcdi_ops->mcdi_rpc_timeout(cdx, cmd); in cdx_mcdi_rpc_timeout() 102 int cdx_mcdi_init(struct cdx_mcdi *cdx) in cdx_mcdi_init() argument 107 cdx->mcdi = kzalloc(sizeof(*cdx->mcdi), GFP_KERNEL); in cdx_mcdi_init() [all …]
|
D | mcdi_functions.c | 11 int cdx_mcdi_get_num_buses(struct cdx_mcdi *cdx) in cdx_mcdi_get_num_buses() argument 17 ret = cdx_mcdi_rpc(cdx, MC_CMD_CDX_BUS_ENUM_BUSES, NULL, 0, in cdx_mcdi_get_num_buses() 28 int cdx_mcdi_get_num_devs(struct cdx_mcdi *cdx, int bus_num) in cdx_mcdi_get_num_devs() argument 37 ret = cdx_mcdi_rpc(cdx, MC_CMD_CDX_BUS_ENUM_DEVICES, inbuf, sizeof(inbuf), in cdx_mcdi_get_num_devs() 48 int cdx_mcdi_get_dev_config(struct cdx_mcdi *cdx, in cdx_mcdi_get_dev_config() argument 62 ret = cdx_mcdi_rpc(cdx, MC_CMD_CDX_BUS_GET_DEVICE_CONFIG, inbuf, sizeof(inbuf), in cdx_mcdi_get_dev_config() 138 int cdx_mcdi_bus_enable(struct cdx_mcdi *cdx, u8 bus_num) in cdx_mcdi_bus_enable() argument 144 ret = cdx_mcdi_rpc(cdx, MC_CMD_CDX_BUS_UP, inbuf, sizeof(inbuf), in cdx_mcdi_bus_enable() 150 int cdx_mcdi_bus_disable(struct cdx_mcdi *cdx, u8 bus_num) in cdx_mcdi_bus_disable() argument 156 ret = cdx_mcdi_rpc(cdx, MC_CMD_CDX_BUS_DOWN, inbuf, sizeof(inbuf), in cdx_mcdi_bus_disable() [all …]
|
D | mcdi.h | 62 * struct cdx_mcdi - CDX MCDI Firmware interface, to interact 63 * with CDX controller. 83 void (*mcdi_request)(struct cdx_mcdi *cdx, 86 unsigned int (*mcdi_rpc_timeout)(struct cdx_mcdi *cdx, unsigned int cmd); 89 typedef void cdx_mcdi_async_completer(struct cdx_mcdi *cdx, 144 * @cdx: The associated NIC 158 struct cdx_mcdi *cdx; member 183 static inline struct cdx_mcdi_iface *cdx_mcdi_if(struct cdx_mcdi *cdx) in cdx_mcdi_if() argument 185 return cdx->mcdi ? &cdx->mcdi->iface : NULL; in cdx_mcdi_if() 188 int cdx_mcdi_init(struct cdx_mcdi *cdx); [all …]
|
D | Kconfig | 3 # CDX controller configuration 11 tristate "CDX bus controller" 16 CDX controller drives the CDX bus. It interacts with 18 the CDX bus. Say Y to enable the CDX hardware driver.
|
D | cdx_controller.h | 3 * Header file for the CDX Controller 11 #include <linux/cdx/cdx_bus.h> 14 void cdx_rpmsg_post_probe(struct cdx_controller *cdx); 16 void cdx_rpmsg_pre_remove(struct cdx_controller *cdx);
|
D | Makefile | 3 # Makefile for CDX controller drivers 8 obj-$(CONFIG_CDX_CONTROLLER) += cdx-controller.o 9 cdx-controller-objs := cdx_controller.o cdx_rpmsg.o mcdi.o mcdi_functions.o
|
D | cdx_rpmsg.c | 3 * Platform driver for CDX bus. 12 #include <linux/cdx/cdx_bus.h> 15 #include "../cdx.h" 191 "Failed to register cdx RPMsg driver: %d\n", ret); in cdx_setup_rpmsg()
|
D | mc_cdx_pcol.h | 249 * CDX bus hosts devices (functions) that are implemented using the Composable 255 * devices. This command returns the number of CDX buses present in the system. 269 * Number of CDX buses present in the system. Buses are numbered 0 to 278 * Enumerate CDX bus devices on a given bus 308 * Returns device identification and MMIO/MSI resource data for a CDX device. 467 * Asserting reset on the CDX bus causes all devices on the bus to be quiesced. 473 * reload the relevant PL region containing CDX devices if the corresponding CDX 630 * only 4 CDX devices with MSI interrupt capability are supported and all
|
/linux-6.14.4/drivers/cdx/ |
D | cdx.h | 3 * Header file for the CDX Bus 11 #include <linux/cdx/cdx_bus.h> 14 * struct cdx_dev_params - CDX device parameters 15 * @cdx: CDX controller associated with the device 16 * @parent: Associated CDX Bus device 17 * @vendor: Vendor ID for CDX device 18 * @device: Device ID for CDX device 19 * @subsys_vendor: Sub vendor ID for CDX device 20 * @subsys_device: Sub device ID for CDX device 21 * @bus_num: Bus number for this CDX device [all …]
|
D | cdx.c | 3 * CDX bus driver. 11 * CDX is a Hardware Architecture designed for AMD FPGA devices. It 19 * The diagram below shows an overview of the CDX architecture: 24 * | CDX device drivers| 26 * | CDX bus | 28 * | CDX controller | 68 #include <linux/cdx/cdx_bus.h> 72 #include "cdx.h" 74 /* Default DMA mask for devices on a CDX bus */ 78 /* IDA for CDX controllers registered with the CDX bus */ [all …]
|
D | cdx_msi.c | 3 * AMD CDX bus driver MSI support 15 #include <linux/cdx/cdx_bus.h> 17 #include "cdx.h" 43 struct cdx_controller *cdx = cdx_dev->cdx; in cdx_msi_write_irq_unlock() local 64 if (cdx->ops->dev_configure) in cdx_msi_write_irq_unlock() 65 cdx->ops->dev_configure(cdx, cdx_dev->bus_num, cdx_dev->dev_num, &dev_config); in cdx_msi_write_irq_unlock() 70 struct cdx_controller *cdx = cdx_dev->cdx; in cdx_enable_msi() local 75 if (cdx->ops->dev_configure) { in cdx_enable_msi() 76 return cdx->ops->dev_configure(cdx, cdx_dev->bus_num, cdx_dev->dev_num, in cdx_enable_msi() 86 struct cdx_controller *cdx = cdx_dev->cdx; in cdx_disable_msi() local [all …]
|
D | Kconfig | 3 # CDX bus configuration 9 bool "CDX Bus driver" 12 Driver to enable Composable DMA Transfer(CDX) Bus. CDX bus 14 APU. CDX bus provides a mechanism for scanning and probing 15 of CDX devices. CDX devices are memory mapped on system bus 16 for embedded CPUs. CDX bus uses CDX controller and firmware 17 to scan these CDX devices. 19 source "drivers/cdx/controller/Kconfig"
|
D | Makefile | 3 # Makefile for CDX 10 obj-$(CONFIG_CDX_BUS) += cdx.o controller/
|
/linux-6.14.4/include/linux/cdx/ |
D | cdx_bus.h | 3 * CDX bus public interface 21 /* Forward declaration for CDX controller */ 46 typedef int (*cdx_bus_enable_cb)(struct cdx_controller *cdx, u8 bus_num); 48 typedef int (*cdx_bus_disable_cb)(struct cdx_controller *cdx, u8 bus_num); 50 typedef int (*cdx_scan_cb)(struct cdx_controller *cdx); 52 typedef int (*cdx_dev_configure_cb)(struct cdx_controller *cdx, 57 * CDX_DEVICE - macro used to describe a specific CDX device 58 * @vend: the 16 bit CDX Vendor ID 59 * @dev: the 16 bit CDX Device ID 70 * CDX_DEVICE_DRIVER_OVERRIDE - macro used to describe a CDX device with [all …]
|
/linux-6.14.4/Documentation/ABI/testing/ |
D | sysfs-bus-cdx | 1 What: /sys/bus/cdx/rescan 6 and devices on the CDX bus. Any new devices are scanned and 12 # echo 1 > /sys/bus/cdx/rescan 14 What: /sys/bus/cdx/devices/.../vendor 18 Vendor ID for this CDX device, in hexadecimal. Vendor ID is 22 What: /sys/bus/cdx/devices/.../device 26 Device ID for this CDX device, in hexadecimal. Device ID is 31 What: /sys/bus/cdx/devices/.../subsystem_vendor 35 Subsystem Vendor ID for this CDX device, in hexadecimal. 39 What: /sys/bus/cdx/devices/.../subsystem_device [all …]
|
/linux-6.14.4/Documentation/devicetree/bindings/bus/ |
D | xlnx,versal-net-cdx.yaml | 4 $id: http://devicetree.org/schemas/bus/xlnx,versal-net-cdx.yaml# 7 title: AMD CDX bus controller 10 CDX bus controller for AMD devices is implemented to dynamically 11 detect CDX bus and devices using the firmware. 12 The CDX bus manages multiple FPGA based hardware devices, which 17 All devices on the CDX bus will have a unique streamid (for IOMMU) 39 const: xlnx,versal-net-cdx 72 cdx { 73 compatible = "xlnx,versal-net-cdx";
|
/linux-6.14.4/drivers/vfio/cdx/ |
D | Kconfig | 3 # VFIO CDX configuration 9 tristate "VFIO support for CDX bus devices" 13 Driver to enable VFIO support for the devices on CDX bus. 14 This is required to make use of CDX devices present in
|
D | Makefile | 6 obj-$(CONFIG_VFIO_CDX) += vfio-cdx.o 8 vfio-cdx-objs := main.o intr.o
|
D | main.c | 7 #include <linux/cdx/cdx_bus.h> 283 .name = "vfio-cdx", 334 MODULE_DEVICE_TABLE(cdx, vfio_cdx_table); 341 .name = "vfio-cdx", 349 MODULE_DESCRIPTION("VFIO for CDX devices - User Level meta-driver");
|
D | intr.c | 13 #include "linux/cdx/cdx_bus.h" 40 /* Allocate cdx MSIs */ in vfio_cdx_msi_enable()
|
/linux-6.14.4/arch/nios2/kernel/ |
D | cpuinfo.c | 58 cpuinfo.has_cdx = of_property_read_bool(cpu, "altr,has-cdx"); in setup_cpuinfo() 74 err_cpu("CDX"); in setup_cpuinfo() 145 " CDX:\t\t%s\n", in show_cpuinfo()
|
/linux-6.14.4/arch/nios2/platform/ |
D | Kconfig.platform | 90 bool "Enable CDX instructions" 94 the CDX Bit Manipulation Extension instructions. Enables
|
/linux-6.14.4/drivers/vfio/ |
D | Makefile | 18 obj-$(CONFIG_VFIO_CDX) += cdx/
|