]>
Commit | Line | Data |
---|---|---|
f2bf13dc | 1 | .TH pcilib 7 "@TODAY@" "@VERSION@" "The PCI Utilities" |
f2bf13dc MM |
2 | .SH NAME |
3 | pcilib \- a library for accessing PCI devices | |
4 | ||
5 | .SH DESCRIPTION | |
6 | ||
7 | The PCI library (also known as \fIpcilib\fP and \fIlibpci\fP) is a portable library | |
8 | for accessing PCI devices and their configuration space. | |
9 | ||
10 | .SH ACCESS METHODS | |
11 | ||
12 | .PP | |
13 | The library supports a variety of methods to access the configuration space | |
14 | on different operating systems. By default, the first matching method in this | |
15 | list is used, but you can specify override the decision (see the \fB-A\fP switch | |
16 | of \fIlspci\fP). | |
17 | ||
18 | .TP | |
19 | .B linux-sysfs | |
20 | The | |
21 | .B /sys | |
22 | filesystem on Linux 2.6 and newer. The standard header of the config space is available | |
9bd5b1cf | 23 | to all users, the rest only to root. Supports extended configuration space, PCI domains, |
e16e04e8 MM |
24 | VPD (from Linux 2.6.26), physical slots (also since Linux 2.6.26) and information on attached |
25 | kernel drivers. | |
f2bf13dc MM |
26 | .TP |
27 | .B linux-proc | |
28 | The | |
29 | .B /proc/bus/pci | |
30 | interface supported by Linux 2.1 and newer. The standard header of the config space is available | |
31 | to all users, the rest only to root. | |
32 | .TP | |
33 | .B intel-conf1 | |
34 | Direct hardware access via Intel configuration mechanism 1. Available on i386 and compatibles | |
40e253d7 | 35 | on Linux, Solaris/x86, GNU Hurd, Windows, BeOS and Haiku. Requires root privileges. |
f2bf13dc MM |
36 | .TP |
37 | .B intel-conf2 | |
38 | Direct hardware access via Intel configuration mechanism 2. Available on i386 and compatibles | |
40e253d7 | 39 | on Linux, Solaris/x86, GNU Hurd, Windows, BeOS and Haiku. Requires root privileges. Warning: This method |
f2bf13dc MM |
40 | is able to address only the first 16 devices on any bus and it seems to be very |
41 | unreliable in many cases. | |
42 | .TP | |
0a7350fb PR |
43 | .B mmio-conf1 |
44 | Direct hardware access via Intel configuration mechanism 1 via memory-mapped I/O. | |
45 | Mostly used on non-i386 platforms. Requires root privileges. Warning: This method | |
46 | needs to be properly configured via the | |
47 | .B mmio-conf1.addrs | |
48 | parameter. | |
49 | .TP | |
e2d9340b PR |
50 | .B mmio-conf1-ext |
51 | Direct hardware access via Extended PCIe Intel configuration mechanism 1 via memory-mapped I/O. | |
52 | Mostly used on non-i386 platforms. Requires root privileges. Warning: This method | |
53 | needs to be properly configured via the | |
54 | .B mmio-conf1-ext.addrs | |
55 | parameter. | |
56 | .TP | |
2ba0f6f4 PR |
57 | .B ecam |
58 | Direct hardware access via PCIe ECAM (Enhanced Configuration Access Mechanism). | |
59 | Available on all PCIe-compliant hardware. Requires root privileges and access | |
60 | to physical memory (on Linux systems disabled CONFIG_STRICT_DEVMEM option). On | |
61 | ACPI compatible systems is ECAM mapping read from the MCFG table specified by the | |
62 | .B ecam.acpimcfg | |
63 | parameter. On EFI compatible systems, ACPI MCFG table can be located in physical | |
64 | memory via EFI system table specified by the | |
65 | .B ecam.efisystab | |
66 | parameter. On FreeBSD/NetBSD systems, physical address of ACPI MCFG table can be | |
67 | located by kenv or sysctl interface when the | |
68 | .B ecam.bsd | |
69 | parameter is not disabled. On x86 BIOS compatible systems, ACPI MCFG table can | |
70 | be located in physical memory by scanning x86 BIOS memory when the | |
71 | .B ecam.x86bios | |
72 | parameter is not disabled. Alternatively ECAM mappings can be specified by the | |
73 | .B ecam.addrs | |
74 | parameter which takes precedence over ACPI MCFG table. This option is required | |
75 | on systems without ACPI and also on systems without EFI or x86 BIOS. | |
76 | .TP | |
f2bf13dc MM |
77 | .B fbsd-device |
78 | The | |
79 | .B /dev/pci | |
80 | device on FreeBSD. Requires root privileges. | |
81 | .TP | |
82 | .B aix-device | |
83 | Access method used on AIX. Requires root privileges. | |
84 | .TP | |
85 | .B nbsd-libpci | |
86 | The | |
87 | .B /dev/pci0 | |
88 | device on NetBSD accessed using the local libpci library. | |
89 | .TP | |
90 | .B obsd-device | |
91 | The | |
92 | .B /dev/pci | |
93 | device on OpenBSD. Requires root privileges. | |
94 | .TP | |
95 | .B dump | |
96 | Read the contents of configuration registers from a file specified in the | |
97 | .B dump.name | |
98 | parameter. The format corresponds to the output of \fIlspci\fP \fB-x\fP. | |
d4c2ab05 MM |
99 | .TP |
100 | .B darwin | |
101 | Access method used on Mac OS X / Darwin. Must be run as root and the system | |
102 | must have been booted with debug=0x144. | |
765da485 PR |
103 | .TP |
104 | .B win32-cfgmgr32 | |
105 | Device listing on Windows systems using the Windows Configuration Manager | |
106 | via cfgmgr32.dll system library. This method does not require any special | |
107 | Administrator rights or privileges. Configuration Manager provides only basic | |
108 | information about devices, assigned resources and device tree structure. There | |
848123eb PR |
109 | is no access to the PCI configuration space but libpci either tries to use |
110 | other access method to access configuration space or it provides read-only | |
111 | virtual emulation based on information from Configuration Manager. Other | |
112 | access method can be chosen by the | |
113 | .B win32.cfgmethod | |
114 | parameter. By default the first working one is selected (if any). Starting | |
765da485 PR |
115 | with Windows 8 (NT 6.2) it is not possible to retrieve resources from 32-bit |
116 | application or library on 64-bit system. | |
963d7cb7 PR |
117 | .TP |
118 | .B win32-sysdbg | |
119 | Access to the PCI configuration space via NT SysDbg interface on Windows | |
120 | systems. Process needs to have Debug privilege, which local Administrators | |
121 | have by default. Not available on 64-bit systems and neither on recent 32-bit | |
122 | systems. Only devices from the first domain are accessible and only first | |
123 | 256 bytes of the PCI configuration space is accessible via this method. | |
388dc6c2 PR |
124 | .TP |
125 | .B win32-kldbg | |
126 | Access to the PCI configuration space via Kernel Local Debugging Driver | |
127 | kldbgdrv.sys. This driver is not part of the Windows system but is part of | |
128 | the Microsoft WinDbg tool. It is required to have kldbgdrv.sys driver installed | |
129 | in the system32 directory or to have windbg.exe or kd.exe binary in PATH. | |
130 | kldbgdrv.sys driver has some restrictions. Process needs to have Debug privilege | |
131 | and Windows system has to be booted with Debugging option. Debugging option can | |
132 | be enabled by calling (takes effect after next boot): | |
133 | .B bcdedit /debug on | |
134 | .IP | |
135 | Download links for WinDbg 6.12.2.633 standalone installer from Microsoft Windows | |
136 | SDK for Windows 7 and .NET Framework 4: | |
137 | .br | |
138 | amd64: https://download.microsoft.com/download/A/6/A/A6AC035D-DA3F-4F0C-ADA4-37C8E5D34E3D/setup/WinSDKDebuggingTools_amd64/dbg_amd64.msi | |
139 | .br | |
140 | ia64: https://download.microsoft.com/download/A/6/A/A6AC035D-DA3F-4F0C-ADA4-37C8E5D34E3D/setup/WinSDKDebuggingTools_ia64/dbg_ia64.msi | |
141 | .br | |
142 | x86: https://download.microsoft.com/download/A/6/A/A6AC035D-DA3F-4F0C-ADA4-37C8E5D34E3D/setup/WinSDKDebuggingTools/dbg_x86.msi | |
143 | .IP | |
144 | Archived download links of previous WinDbg versions: | |
145 | .br | |
146 | https://web.archive.org/web/20110221133326/https://www.microsoft.com/whdc/devtools/debugging/installx86.mspx | |
147 | .br | |
148 | https://web.archive.org/web/20110214012715/https://www.microsoft.com/whdc/devtools/debugging/install64bit.mspx | |
f2bf13dc MM |
149 | |
150 | .SH PARAMETERS | |
151 | ||
152 | .PP | |
153 | The library is controlled by several parameters. They should have sensible default | |
154 | values, but in case you want to do something unusual (or even something weird), | |
155 | you can override them (see the \fB-O\fP switch of \fIlspci\fP). | |
156 | ||
157 | .SS Parameters of specific access methods | |
158 | ||
159 | .TP | |
160 | .B dump.name | |
161 | Name of the bus dump file to read from. | |
162 | .TP | |
163 | .B fbsd.path | |
164 | Path to the FreeBSD PCI device. | |
165 | .TP | |
166 | .B nbsd.path | |
167 | Path to the NetBSD PCI device. | |
168 | .TP | |
169 | .B obsd.path | |
170 | Path to the OpenBSD PCI device. | |
171 | .TP | |
172 | .B proc.path | |
173 | Path to the procfs bus tree. | |
174 | .TP | |
175 | .B sysfs.path | |
176 | Path to the sysfs device tree. | |
0a7350fb PR |
177 | .TP |
178 | .B devmem.path | |
179 | Path to the /dev/mem device. | |
180 | .TP | |
181 | .B mmio-conf1.addrs | |
182 | Physical addresses of memory-mapped I/O ports for Intel configuration mechanism 1. | |
183 | CF8 (address) and CFC (data) I/O port addresses are separated by slash and | |
184 | multiple addresses for different PCI domains are separated by commas. | |
185 | Format: 0xaddr1/0xdata1,0xaddr2/0xdata2,... | |
e2d9340b PR |
186 | .TP |
187 | .B mmio-conf1-ext.addrs | |
188 | Physical addresses of memory-mapped I/O ports for Extended PCIe Intel configuration mechanism 1. | |
189 | It has same format as | |
190 | .B mmio-conf1.addrs | |
191 | parameter. | |
848123eb | 192 | .TP |
2ba0f6f4 PR |
193 | .B ecam.addrs |
194 | Physical addresses of PCIe ECAM mappings. Each mapping must contains first PCI | |
195 | bus number and physical address where mapping starts. And then it may contain | |
196 | the length of the mapping, the last PCI bus number and PCI domain number. When | |
197 | the last PCI bus number is not provided then it is calculated from the length | |
198 | of the mapping or it is assumed 0xff. When length of the mapping is provided | |
199 | then it is calculated from the last PCI bus number. And when PCI domain is not | |
200 | provided then 0x0 is assumed. All numbers must be supplied in hexadecimal form | |
201 | (leading prefix 0x is not required). Multiple mappings are separated by commas. | |
202 | Format: [domain:]start_bus[-end_bus]:start_addr[+length],... | |
203 | .TP | |
204 | .B ecam.acpimcfg | |
205 | Path to the ACPI MCFG table. Processed by the | |
206 | .BR glob (3) | |
207 | function, so it may contain wildcards (*). | |
208 | .TP | |
209 | .B ecam.efisystab | |
210 | Path to the EFI system table. | |
211 | .TP | |
212 | .B ecam.bsd | |
213 | When not set to 0 then use BSD kenv or sysctl to find ACPI MCFG table. Default | |
214 | value is 1 on BSD systems. | |
215 | .TP | |
216 | .B ecam.x86bios | |
217 | When not set to 0 then scan x86 BIOS memory for ACPI MCFG table. Default value | |
218 | is 1 on x86 systems. | |
219 | .TP | |
848123eb | 220 | .B win32.cfgmethod |
96240635 | 221 | Config space access method to use with win32-cfgmgr32 on Windows systems. Value |
848123eb | 222 | .I auto |
96240635 MM |
223 | or an empty string selects the first access method which supports access |
224 | to the config space on Windows. Value | |
848123eb | 225 | .I win32-cfgmgr32 |
ea404c2a MM |
226 | or |
227 | .I none | |
96240635 | 228 | only builds a read-only virtual emulated config space with information from the |
848123eb | 229 | Configuration Manager. |
f2bf13dc MM |
230 | |
231 | .SS Parameters for resolving of ID's via DNS | |
232 | .TP | |
233 | .B net.domain | |
234 | DNS domain containing the ID database. | |
235 | .TP | |
236 | .B net.cache_name | |
237 | Name of the file used for caching of resolved ID's. | |
238 | ||
ac357d3b MM |
239 | .SS Parameters for resolving of ID's via UDEV's HWDB |
240 | .TP | |
241 | .B hwdb.disable | |
242 | Disable use of HWDB if set to a non-zero value. | |
243 | ||
f2bf13dc MM |
244 | .SH SEE ALSO |
245 | ||
246 | .BR lspci (8), | |
247 | .BR setpci (8), | |
ef5b622f | 248 | .BR pci.ids (5), |
f2bf13dc MM |
249 | .BR update-pciids (8) |
250 | ||
251 | .SH AUTHOR | |
252 | The PCI Utilities are maintained by Martin Mares <mj@ucw.cz>. |