Lines Matching +full:pci +full:- +full:dev

30 .Nm pci ,
78 .Nd PCI bus interface
84 .Fn pci_alloc_msi "device_t dev" "int *count"
86 .Fn pci_alloc_msix "device_t dev" "int *count"
88 .Fn pci_clear_pme "device_t dev"
90 .Fn pci_disable_busmaster "device_t dev"
92 .Fn pci_disable_io "device_t dev" "int space"
94 .Fn pci_enable_busmaster "device_t dev"
96 .Fn pci_enable_io "device_t dev" "int space"
98 .Fn pci_enable_pme "device_t dev"
102 .Fn pci_find_cap "device_t dev" "int capability" "int *capreg"
108 .Fn pci_find_extcap "device_t dev" "int capability" "int *capreg"
110 .Fn pci_find_htcap "device_t dev" "int capability" "int *capreg"
112 .Fn pci_find_next_cap "device_t dev" "int capability" "int start" "int *capreg"
114 .Fn pci_find_next_extcap "device_t dev" "int capability" "int start" "int *capreg"
116 .Fn pci_find_next_htcap "device_t dev" "int capability" "int start" "int *capreg"
118 .Fn pci_find_pcie_root_port "device_t dev"
120 .Fn pci_get_id "device_t dev" "enum pci_id_type type" "uintptr_t *id"
122 .Fn pci_get_max_payload "device_t dev"
124 .Fn pci_get_max_read_req "device_t dev"
126 .Fn pci_get_powerstate "device_t dev"
128 .Fn pci_get_vpd_ident "device_t dev" "const char **identptr"
130 .Fn pci_get_vpd_readonly "device_t dev" "const char *kw" "const char **vptr"
132 .Fn pci_has_pm "device_t dev"
134 .Fn pci_msi_count "device_t dev"
136 .Fn pci_msix_count "device_t dev"
138 .Fn pci_msix_pba_bar "device_t dev"
140 .Fn pci_msix_table_bar "device_t dev"
142 .Fn pci_pending_msix "device_t dev" "u_int index"
144 .Fn pci_read_config "device_t dev" "int reg" "int width"
146 .Fn pci_release_msi "device_t dev"
148 .Fn pci_remap_msix "device_t dev" "int count" "const u_int *vectors"
150 .Fn pci_restore_state "device_t dev"
152 .Fn pci_save_state "device_t dev"
154 .Fn pci_set_max_read_req "device_t dev" "int size"
156 .Fn pci_set_powerstate "device_t dev" "int state"
158 .Fn pci_write_config "device_t dev" "int reg" "uint32_t val" "int width"
161 .Fa "device_t dev"
168 .Fn pcie_flr "device_t dev" "u_int max_delay" "bool force"
170 .Fn pcie_get_max_completion_timeout "device_t dev"
172 .Fn pcie_read_config "device_t dev" "int reg" "int width"
174 .Fn pcie_wait_for_pending_transactions "device_t dev" "u_int max_delay"
176 .Fn pcie_write_config "device_t dev" "int reg" "uint32_t val" "int width"
178 .Fn pci_event_fn "void *arg" "device_t dev"
183 .Fn pci_iov_attach "device_t dev" "nvlist_t *pf_schema" "nvlist_t *vf_schema"
186 .Fa "device_t dev"
193 .Fn pci_iov_detach "device_t dev"
197 set of functions are used for managing PCI devices.
208 function is used to read data from the PCI configuration
210 .Fa dev ,
221 to the PCI configuration
223 .Fa dev ,
232 function is used to modify the value of a register in the PCI-express
234 .Fa dev .
251 function is used to read the value of a register in the PCI-express
253 .Fa dev .
264 to a register in the PCI-express capability register set of device
265 .Fa dev .
275 .Fn pci
282 of a PCI device, given its
292 Note that in case the system has multiple PCI domains,
297 .Bd -literal -offset indent
305 of a PCI device, given its
321 of a PCI device, given its
331 function is used to locate the first instance of a PCI capability
333 .Fa dev .
351 function is used to locate the next instance of a PCI capability
353 .Fa dev .
369 .Fa dev
374 function is used to locate the first instance of a PCI-express
376 .Fa dev .
390 PCI-express device,
395 function is used to locate the next instance of a PCI-express
397 .Fa dev .
414 .Fa dev .
434 .Fa dev .
449 function walks up the PCI device hierarchy to locate the PCI-express root
451 .Fa dev .
464 .Bl -hang -width ".Dv PCI_ID_RID"
469 This is needed by some interrupt controllers to route MSI and MSI-X interrupts.
478 .Fa dev
482 is set to point at a read-only, null-terminated copy of the identifier
495 function is used to fetch the value of a single VPD read-only keyword
497 .Fa dev .
500 If the device supports VPD and provides a read-only value for the
504 is set to point at a read-only, null-terminated copy of the value,
517 .Fa dev
520 .Fa dev
521 device is not a PCI-express device,
525 .Fa dev ,
532 .Fa dev
535 pending flag in the PCI-express device status register.
556 .Fa dev
557 is not a PCI-express device.
561 function enables PCI bus mastering for the device
562 .Fa dev ,
575 .Fa dev ,
594 The PCI bus will enable decoding automatically when a
606 PCI-express device.
608 .Fa dev
609 device is not a PCI-express device,
616 PCI-express device.
618 .Fa dev
619 device is not a PCI-express device,
625 sets the PCI-express maximum read request size for
626 .Fa dev .
634 .Fa dev
635 device is not a PCI-express device,
642 .Fa dev .
647 The following power states are defined by PCI:
648 .Bl -hang -width ".Dv PCI_POWERSTATE_UNKNOWN"
654 Class-specific low-power state in which device context may or
659 Class-specific low-power state in which device context may or
682 .Fa dev
683 to the PCI power state
705 supports PCI Single-Root I/O Virtualization
706 .Pq SR-IOV .
707 A driver that supports SR-IOV must implement the
717 still successfully attaches, but runs with SR-IOV disabled.
722 parameters are used to define what device-specific configuration parameters the
723 device driver accepts when SR-IOV is enabled for the Physical Function
738 will return an error and SR-IOV will not be available on the PF device.
741 The SR-IOV infrastructure takes ownership of the
753 .Pa /dev/iov
759 .Fa dev
764 function is used to advise the SR-IOV infrastructure that the driver for the
765 given device is attempting to detach and that all SR-IOV resources for the
788 functions can be used by a device driver to save and restore standard PCI
795 If the device is not in the fully-powered state
809 .Fa dev .
811 .Fa dev
812 is not a PCI-express device or does not support Function Level Resets via
813 the PCI-express device control register,
830 busmastering is re-enabled and
853 .Pq MSI-X
854 are PCI capabilities that provide an alternate method for PCI
856 The legacy INTx interrupt is available to PCI devices as a
859 MSI and MSI-X interrupts are available to PCI devices as one or more
862 A driver must ask the PCI bus to allocate MSI or MSI-X interrupts
867 before it can use MSI or MSI-X
872 resource if MSI or MSI-X interrupts have been allocated,
873 and attempts to allocate MSI or MSI-X interrupts will fail if the
877 A driver is only allowed to use either MSI or MSI-X,
884 .Fa dev .
895 .Fa dev .
900 .Fa dev
917 requests to allocate a non-power of two count of messages will fail.
921 function is used to release any allocated MSI or MSI-X messages back
923 If any MSI or MSI-X
935 function returns the maximum number of MSI-X messages supported by the
937 .Fa dev .
938 If the device does not support MSI-X,
947 containing the MSI-X Pending Bit Array (PBA) for device
948 .Fa dev .
954 If the device does not support MSI-X,
957 returns -1.
962 containing the MSI-X vector table for device
963 .Fa dev .
969 If the device does not support MSI-X,
972 returns -1.
978 MSI-X messages for the device
979 .Fa dev .
984 .Fa dev
986 or if the system has a shortage of available MSI-X messages.
992 For MSI-X messages,
995 resource identifies the index in the MSI-X table of the
997 A resource ID of one maps to the first index of the MSI-X table;
1011 MSI-X does not require message counts that are powers of two.
1013 The BARs containing the MSI-X vector table and PBA must be
1026 .Fa dev
1028 to determine the pending status of the MSI-X message at table index
1031 this function returns a non-zero value;
1040 MSI-X messages are initially assigned to the first N table entries.
1060 The array maps directly to the MSI-X table in that the first entry in
1061 the array specifies the message used for the first entry in the MSI-X
1064 MSI-X table,
1067 that no message should be assigned to the corresponding MSI-X table entry,
1074 corresponding MSI-X table entry.
1079 each MSI-X table entry with a non-zero vector will have an associated
1084 MSI-X table entries that with a vector of zero will not have an
1091 are not used in the new distribution of messages in the MSI-X table,
1103 event handler is invoked every time a new PCI device is added to the system.
1104 This includes the creation of Virtual Functions via SR-IOV.
1108 event handler is invoked every time a PCI device is removed from the system.
1112 object of the relevant PCI device as
1113 .Fa dev
1116 .Fa dev
1119 .Xr pci 4 ,
1134 .%U https://docs.freebsd.org/en/books/developers-handbook/
1139 .%B PCI System Architecture
1141 .%I Addison-Wesley
1142 .%O ISBN 0-201-30974-2
1145 .An -nosplit
1151 The kernel PCI code has a number of references to
1153 These do not refer to the geographic location of PCI devices,
1154 but to the device number assigned by the combination of the PCI IDSEL
1156 This should be taken note of when working with the kernel PCI code.
1158 The PCI bus driver should allocate the MSI-X vector table and PBA internally