Lines Matching full:pci

5 This document is a guide to use the PCI Endpoint Framework in order to create
12 Linux has a comprehensive PCI subsystem to support PCI controllers that
13 operates in Root Complex mode. The subsystem has capability to scan PCI bus,
14 assign memory resources and IRQ resources, load PCI driver (based on
18 However the PCI controller IP integrated in some SoCs is capable of operating
19 either in Root Complex mode or Endpoint mode. PCI Endpoint Framework will
24 PCI Endpoint Core
27 The PCI Endpoint Core layer comprises 3 components: the Endpoint Controller
31 PCI Endpoint Controller(EPC) Library
38 APIs for the PCI controller Driver
41 This section lists the APIs that the PCI Endpoint core provides to be used
42 by the PCI controller driver.
46 The PCI controller driver should implement the following ops:
51 * alloc_addr_space: ops to allocate in PCI controller address space
54 * start: ops to start the PCI link
55 * stop: ops to stop the PCI link
57 The PCI controller driver can then create a new EPC device by invoking
62 The PCI controller driver can destroy the EPC device created by either
69 they are linked has established a link with the host, the PCI controller
81 EPC APIs for the PCI Endpoint Function Driver
84 This section lists the APIs that the PCI Endpoint core provides to be used
85 by the PCI endpoint function driver.
89 The PCI endpoint function driver should use pci_epc_write_header() to
94 The PCI endpoint function driver should use pci_epc_set_bar() to configure
95 the Base Address Register in order for the host to assign PCI addr space.
101 The PCI endpoint function driver should use pci_epc_clear_bar() to reset
106 The PCI endpoint function driver should use pci_epc_raise_irq() to raise
111 The PCI endpoint function driver should use pci_epc_mem_alloc_addr(), to
117 The PCI endpoint function driver should use pci_epc_mem_free_addr() to
124 the EPF device with EPC device. pci-ep-cfs.c can be used as reference for
129 Get a reference to the PCI endpoint controller based on the device name of
134 Release the reference to the PCI endpoint controller obtained using
139 Add a PCI endpoint function to a PCI endpoint controller. A PCIe device
144 Remove the PCI endpoint function from PCI endpoint controller.
148 The PCI endpoint function driver should invoke pci_epc_start() once it
149 has configured the endpoint function and wants to start the PCI link.
153 The PCI endpoint function driver should invoke pci_epc_stop() to stop
154 the PCI LINK.
157 PCI Endpoint Function(EPF) Library
163 EPF APIs for the PCI Endpoint Function Driver
166 This section lists the APIs that the PCI Endpoint core provides to be used
167 by the PCI endpoint function driver.
171 The PCI Endpoint Function driver should implement the following ops:
178 The PCI Function driver can then register the PCI EPF driver by using
183 The PCI Function driver can unregister the PCI EPF driver by using
188 The PCI Function driver can allocate space for a particular BAR using
193 The PCI Function driver can free the allocated space
196 APIs for the PCI Endpoint Controller Library
199 This section lists the APIs that the PCI Endpoint core provides to be used
200 by the PCI endpoint controller library.
204 The PCI endpoint controller library invokes pci_epf_linkup() when the
212 pci-ep-cfs.c can be used as reference for using these APIs.
216 Create a new PCI EPF device by passing the name of the PCI EPF device.
221 Destroy the created PCI EPF device.