Lines Matching +full:per +full:- +full:device
31 ----------------------
38 -----------------------------------------
44 - Multi-resource MCB devices like the VME Controller or M-Module carrier.
45 - MCB devices that need another MCB device, like SRAM for a DMA Controller's
47 - A per-carrier IRQ domain for carrier devices that have one (or more) IRQs
48 per MCB device like PCIe based carriers with MSI or MSI-X support.
55 - The MEN Chameleon Bus itself,
56 - drivers for MCB Carrier Devices and
57 - the parser for the Chameleon table.
60 -----------------
63 called Chameleon FPGA device found on some hardware produced my MEN Mikro
64 Elektronik GmbH. These devices are multi-function devices implemented in a
67 header lists the device id, PCI BAR, offset from the beginning of the PCI
72 ---------------
74 A carrier device is just an abstraction for the real world physical bus the
76 properties of the carrier device (like querying the IRQ number of a PCI
77 device). To provide abstraction from the real hardware bus, an MCB carrier
78 device provides callback methods to translate the driver's MCB function calls
79 to hardware related function calls. For example a carrier device may
81 query for the IRQ number the device should use.
84 ------
86 The parser reads the first 512 bytes of a Chameleon device and parses the
99 per MCB device. But this is likely going to change in the future.
102 ----------------
104 Each MCB device has exactly one memory resource, which can be requested from
105 the MCB bus. This memory resource is the physical address of the MCB device
110 ----
112 Each MCB device has exactly one IRQ resource, which can be requested from the
113 MCB bus. If a carrier device driver implements the ->get_irq() callback
114 method, the IRQ number assigned by the carrier device will be returned,
122 --------------------
124 Each MCB driver has a structure to identify the device driver as well as
125 device ids which identify the IP Core inside the FPGA. The driver structure
130 { .device = 0x123 },
137 .name = "foo-bar",
146 ---------------------
156 -----------------------
179 ---------
181 To make use of the kernel's DMA-API's function, you will need to use the
182 carrier device's 'struct device'. Fortunately 'struct mcb_device' embeds a
183 pointer (->dma_dev) to the carrier's device for DMA purposes::
185 ret = dma_set_mask_and_coherent(&mdev->dma_dev, DMA_BIT_MASK(dma_bits));