Home
last modified time | relevance | path

Searched full:cdx (Results 1 – 25 of 35) sorted by relevance

12

/linux-6.14.4/drivers/cdx/controller/
Dcdx_controller.c3 * 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 …]
Dmcdi_functions.h3 * 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 …]
Dmcdi.c30 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 …]
Dmcdi_functions.c11 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 …]
Dmcdi.h62 * 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 …]
DKconfig3 # 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.
Dcdx_controller.h3 * 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);
DMakefile3 # 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
Dcdx_rpmsg.c3 * 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()
Dmc_cdx_pcol.h249 * 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/
Dcdx.h3 * 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 …]
Dcdx.c3 * 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 …]
Dcdx_msi.c3 * 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 …]
DKconfig3 # 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"
DMakefile3 # Makefile for CDX
10 obj-$(CONFIG_CDX_BUS) += cdx.o controller/
/linux-6.14.4/include/linux/cdx/
Dcdx_bus.h3 * 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/
Dsysfs-bus-cdx1 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/
Dxlnx,versal-net-cdx.yaml4 $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/
DKconfig3 # 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
DMakefile6 obj-$(CONFIG_VFIO_CDX) += vfio-cdx.o
8 vfio-cdx-objs := main.o intr.o
Dmain.c7 #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");
Dintr.c13 #include "linux/cdx/cdx_bus.h"
40 /* Allocate cdx MSIs */ in vfio_cdx_msi_enable()
/linux-6.14.4/arch/nios2/kernel/
Dcpuinfo.c58 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/
DKconfig.platform90 bool "Enable CDX instructions"
94 the CDX Bit Manipulation Extension instructions. Enables
/linux-6.14.4/drivers/vfio/
DMakefile18 obj-$(CONFIG_VFIO_CDX) += cdx/

12