/openbmc/linux/drivers/cdx/controller/ |
H A D | cdx_controller.c | 3 * CDX host controller driver for AMD versal-net platform. 11 #include <linux/cdx/cdx_bus.h> 14 #include "../cdx.h" 18 static unsigned int cdx_mcdi_rpc_timeout(struct cdx_mcdi *cdx, unsigned int cmd) in cdx_mcdi_rpc_timeout() argument 23 static void cdx_mcdi_request(struct cdx_mcdi *cdx, in cdx_mcdi_request() argument 27 if (cdx_rpmsg_send(cdx, hdr, hdr_len, sdu, sdu_len)) in cdx_mcdi_request() 28 dev_err(&cdx->rpdev->dev, "Failed to send rpmsg data\n"); in cdx_mcdi_request() 36 void cdx_rpmsg_post_probe(struct cdx_controller *cdx) in cdx_rpmsg_post_probe() argument 38 /* Register CDX controller with CDX bus driver */ in cdx_rpmsg_post_probe() 39 if (cdx_register_controller(cdx)) in cdx_rpmsg_post_probe() [all …]
|
H A D | mcdi.c | 34 static void cdx_mcdi_cancel_cmd(struct cdx_mcdi *cdx, struct cdx_mcdi_cmd *cmd); 35 static void cdx_mcdi_wait_for_cleanup(struct cdx_mcdi *cdx); 36 static int cdx_mcdi_rpc_async_internal(struct cdx_mcdi *cdx, 52 static void cdx_mcdi_mode_fail(struct cdx_mcdi *cdx, struct list_head *cleanup_list); 53 static void _cdx_mcdi_display_error(struct cdx_mcdi *cdx, unsigned int cmd, 98 static unsigned long cdx_mcdi_rpc_timeout(struct cdx_mcdi *cdx, unsigned int cmd) in cdx_mcdi_rpc_timeout() argument 100 if (!cdx->mcdi_ops->mcdi_rpc_timeout) in cdx_mcdi_rpc_timeout() 103 return cdx->mcdi_ops->mcdi_rpc_timeout(cdx, cmd); in cdx_mcdi_rpc_timeout() 106 int cdx_mcdi_init(struct cdx_mcdi *cdx) in cdx_mcdi_init() argument 111 cdx->mcdi = kzalloc(sizeof(*cdx->mcdi), GFP_KERNEL); in cdx_mcdi_init() [all …]
|
H A 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_reset_device - Reset cdx device represented by bus_num:dev_num 52 * @cdx: pointer to MCDI interface. [all …]
|
H A 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 …]
|
H A D | Kconfig | 3 # CDX controller configuration 11 tristate "CDX bus controller" 15 CDX controller drives the CDX bus. It interacts with 17 the CDX bus. Say Y to enable the CDX hardware driver.
|
H A 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() 127 int cdx_mcdi_reset_device(struct cdx_mcdi *cdx, u8 bus_num, u8 dev_num) in cdx_mcdi_reset_device() argument 135 ret = cdx_mcdi_rpc(cdx, MC_CMD_CDX_DEVICE_RESET, inbuf, sizeof(inbuf), in cdx_mcdi_reset_device()
|
H A 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);
|
H A 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
|
H A 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()
|
H A 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.
|
/openbmc/linux/drivers/cdx/ |
H A 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 controller 17 * @vendor: Vendor ID for CDX device 18 * @device: Device ID for CDX device 19 * @bus_num: Bus number for this CDX device 23 * @req_id: Requestor ID associated with CDX device 26 struct cdx_controller *cdx; member [all …]
|
H A 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 | 64 #include <linux/cdx/cdx_bus.h> 67 #include "cdx.h" 69 /* Default DMA mask for devices on a CDX bus */ 73 /* CDX controllers registered with the CDX bus */ [all …]
|
H A 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"
|
H A D | Makefile | 3 # Makefile for CDX 8 obj-$(CONFIG_CDX_BUS) += cdx.o controller/
|
/openbmc/linux/include/linux/cdx/ |
H A D | cdx_bus.h | 3 * CDX bus public interface 20 /* Forward declaration for CDX controller */ 31 typedef int (*cdx_scan_cb)(struct cdx_controller *cdx); 33 typedef int (*cdx_dev_configure_cb)(struct cdx_controller *cdx, 38 * CDX_DEVICE_DRIVER_OVERRIDE - macro used to describe a CDX device with 40 * @vend: the 16 bit CDX Vendor ID 41 * @dev: the 16 bit CDX Device ID 42 * @driver_override: the 32 bit CDX Device override_only 51 * struct cdx_ops - Callbacks supported by CDX controller. 54 * msi_config etc for a CDX device [all …]
|
/openbmc/linux/Documentation/ABI/testing/ |
H A 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/.../reset 35 Writing y/1/on to this file resets the CDX device. 42 # echo 1 > /sys/bus/cdx/.../reset [all …]
|
/openbmc/linux/Documentation/devicetree/bindings/bus/ |
H A 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";
|
/openbmc/linux/drivers/vfio/cdx/ |
H A 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
|
H A D | main.c | 7 #include <linux/cdx/cdx_bus.h> 168 .name = "vfio-cdx", 218 MODULE_DEVICE_TABLE(cdx, vfio_cdx_table); 225 .name = "vfio-cdx", 233 MODULE_DESCRIPTION("VFIO for CDX devices - User Level meta-driver");
|
H A D | Makefile | 6 obj-$(CONFIG_VFIO_CDX) += vfio-cdx.o 8 vfio-cdx-objs := main.o
|
/openbmc/linux/arch/nios2/kernel/ |
H A 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()
|
/openbmc/linux/arch/nios2/platform/ |
H A D | Kconfig.platform | 90 bool "Enable CDX instructions" 94 the CDX Bit Manipulation Extension instructions. Enables
|
/openbmc/linux/drivers/vfio/ |
H A D | Makefile | 18 obj-$(CONFIG_VFIO_CDX) += cdx/
|
H A D | Kconfig | 87 source "drivers/vfio/cdx/Kconfig"
|
/openbmc/linux/arch/nios2/ |
H A D | Makefile | 32 KBUILD_CFLAGS += $(if $(CONFIG_NIOS2_CDX_SUPPORT),-mcdx,-mno-cdx)
|