]>
Commit | Line | Data |
---|---|---|
4284af58 | 1 | .TH lspci 8 "@TODAY@" "@VERSION@" "The PCI Utilities" |
2f48f637 MM |
2 | .IX lspci |
3 | .SH NAME | |
4 | lspci \- list all PCI devices | |
5 | .SH SYNOPSIS | |
6 | .B lspci | |
7 | .RB [ options ] | |
8 | .SH DESCRIPTION | |
9 | .B lspci | |
f2bf13dc MM |
10 | is a utility for displaying information about PCI buses in the system and |
11 | devices connected to them. | |
727ce158 | 12 | |
84d437d6 MM |
13 | By default, it shows a brief list of devices. Use the options described |
14 | below to request either a more verbose output or output intended for | |
15 | parsing by other programs. | |
16 | ||
2f48f637 MM |
17 | If you are going to report bugs in PCI device drivers or in |
18 | .I lspci | |
84d437d6 MM |
19 | itself, please include output of "lspci -vvx" or even better "lspci -vvxxx" |
20 | (however, see below for possible caveats). | |
21 | ||
f2bf13dc MM |
22 | Some parts of the output, especially in the highly verbose modes, are probably |
23 | intelligible only to experienced PCI hackers. For exact definitions of | |
84d437d6 MM |
24 | the fields, please consult either the PCI specifications or the |
25 | .B header.h | |
26 | and | |
27 | .B /usr/include/linux/pci.h | |
28 | include files. | |
29 | ||
30 | Access to some parts of the PCI configuration space is restricted to root | |
31 | on many operating systems, so the features of | |
32 | .I lspci | |
33 | available to normal users are limited. However, | |
34 | .I lspci | |
35 | tries its best to display as much as available and mark all other | |
36 | information with | |
37 | .I <access denied> | |
38 | text. | |
2f48f637 MM |
39 | |
40 | .SH OPTIONS | |
f2bf13dc MM |
41 | |
42 | .SS Basic display modes | |
43 | .TP | |
44 | .B -m | |
45 | Dump PCI device data in a backward-compatible machine readable form. | |
46 | See below for details. | |
47 | .TP | |
48 | .B -mm | |
49 | Dump PCI device data in a machine readable form for easy parsing by scripts. | |
50 | See below for details. | |
51 | .TP | |
52 | .B -t | |
53 | Show a tree-like diagram containing all buses, bridges, devices and connections | |
54 | between them. | |
55 | ||
56 | .SS Display options | |
2f48f637 MM |
57 | .TP |
58 | .B -v | |
84d437d6 | 59 | Be verbose and display detailed information about all devices. |
2f48f637 MM |
60 | .TP |
61 | .B -vv | |
84d437d6 MM |
62 | Be very verbose and display more details. This level includes everything deemed |
63 | useful. | |
64 | .TP | |
65 | .B -vvv | |
66 | Be even more verbose and display everything we are able to parse, | |
67 | even if it doesn't look interesting at all (e.g., undefined memory regions). | |
2f48f637 | 68 | .TP |
f2bf13dc MM |
69 | .B -k |
70 | Show kernel drivers handling each device and also kernel modules capable of handling it. | |
71 | Turned on by default when | |
72 | .B -v | |
73 | is given in the normal mode of output. | |
74 | (Currently works only on Linux with kernel 2.6 or newer.) | |
75 | .TP | |
76 | .B -x | |
77 | Show hexadecimal dump of the standard part of the configuration space (the first | |
78 | 64 bytes or 128 bytes for CardBus bridges). | |
79 | .TP | |
80 | .B -xxx | |
81 | Show hexadecimal dump of the whole PCI configuration space. It is available only to root | |
82 | as several PCI devices | |
83 | .B crash | |
84 | when you try to read some parts of the config space (this behavior probably | |
85 | doesn't violate the PCI standard, but it's at least very stupid). However, such | |
86 | devices are rare, so you needn't worry much. | |
87 | .TP | |
88 | .B -xxxx | |
89 | Show hexadecimal dump of the extended (4096-byte) PCI configuration space available | |
90 | on PCI-X 2.0 and PCI Express buses. | |
91 | .TP | |
92 | .B -b | |
93 | Bus-centric view. Show all IRQ numbers and addresses as seen by the cards on the | |
94 | PCI bus instead of as seen by the kernel. | |
95 | .TP | |
96 | .B -D | |
97 | Always show PCI domain numbers. By default, lspci suppresses them on machines which | |
98 | have only domain 0. | |
99 | ||
100 | .SS Options to control resolving ID's to names | |
101 | .TP | |
2f48f637 MM |
102 | .B -n |
103 | Show PCI vendor and device codes as numbers instead of looking them up in the | |
84d437d6 | 104 | PCI ID list. |
2f48f637 | 105 | .TP |
bc2eed2d MM |
106 | .B -nn |
107 | Show PCI vendor and device codes as both numbers and names. | |
108 | .TP | |
7059c711 MM |
109 | .B -q |
110 | Use DNS to query the central PCI ID database if a device is not found in the local | |
111 | .B pci.ids | |
112 | file. If the DNS query succeeds, the result is cached in | |
113 | .B ~/.pciids-cache | |
114 | and it is recognized in subsequent runs even if | |
115 | .B -q | |
116 | is not given any more. Please use this switch inside automated scripts only | |
117 | with caution to avoid overloading the database servers. | |
118 | .TP | |
119 | .B -qq | |
120 | Same as | |
121 | .BR -q , | |
122 | but the local cache is reset. | |
123 | .TP | |
124 | .B -Q | |
125 | Query the central database even for entries which are recognized locally. | |
126 | Use this if you suspect that the displayed entry is wrong. | |
f2bf13dc MM |
127 | |
128 | .SS Options for selection of devices | |
2f48f637 | 129 | .TP |
1f7c91cc MM |
130 | .B -s [[[[<domain>]:]<bus>]:][<slot>][.[<func>]] |
131 | Show only devices in the specified domain (in case your machine has several host bridges, | |
132 | they can either share a common bus number space or each of them can address a PCI domain | |
133 | of its own; domains are numbered from 0 to ffff), bus (0 to ff), slot (0 to 1f) and function (0 to 7). | |
134 | Each component of the device address can be omitted or set to "*", both meaning "any value". All numbers are | |
e4842ff3 | 135 | hexadecimal. E.g., "0:" means all devices on bus 0, "0" means all functions of device 0 |
727ce158 | 136 | on any bus, "0.3" selects third function of device 0 on all buses and ".4" shows only |
1f7c91cc | 137 | the fourth function of each device. |
e4842ff3 MM |
138 | .TP |
139 | .B -d [<vendor>]:[<device>] | |
140 | Show only devices with specified vendor and device ID. Both ID's are given in | |
1f7c91cc | 141 | hexadecimal and may be omitted or given as "*", both meaning "any value". |
f2bf13dc MM |
142 | |
143 | .SS Other options | |
2f48f637 MM |
144 | .TP |
145 | .B -i <file> | |
146 | Use | |
147 | .B | |
148 | <file> | |
54e13765 | 149 | as the PCI ID list instead of @IDSDIR@/pci.ids. |
0a33d0ec | 150 | .TP |
11339c0d MM |
151 | .B -p <file> |
152 | Use | |
153 | .B | |
154 | <file> | |
155 | as the map of PCI ID's handled by kernel modules. By default, lspci uses | |
156 | .RI /lib/modules/ kernel_version /modules.pcimap. | |
157 | Applies only to Linux systems with recent enough module tools. | |
158 | .TP | |
1812a795 | 159 | .B -M |
1f7c91cc MM |
160 | Invoke bus mapping mode which performs a thorough scan of all PCI devices, including |
161 | those behind misconfigured bridges etc. This option is available only to root and it | |
162 | gives meaningful results only if combined with direct hardware access mode (otherwise | |
163 | the results are identical to normal listing modes, modulo bugs in lspci). Please note | |
164 | that the bus mapper doesn't support PCI domains and scans only domain 0. | |
89984232 MM |
165 | .TP |
166 | .B --version | |
94db5c82 | 167 | Shows |
89984232 | 168 | .I lspci |
1f7c91cc | 169 | version. This option should be used stand-alone. |
2f48f637 | 170 | |
f2bf13dc MM |
171 | .SS PCI access options |
172 | .PP | |
173 | The PCI utilities use the PCI library to talk to PCI devices (see | |
174 | \fBpcilib\fP(7) for details). You can use the following options to | |
175 | influence its behavior: | |
84d437d6 | 176 | .TP |
f2bf13dc MM |
177 | .B -A <method> |
178 | The library supports a variety of methods to access the PCI hardware. | |
179 | By default, it uses the first access method available, but you can use | |
180 | this option to override this decision. See \fB-A help\fP for a list of | |
181 | available methods and their descriptions. | |
727ce158 | 182 | .TP |
f2bf13dc MM |
183 | .B -O <param>=<value> |
184 | The behavior of the library is controlled by several named parameters. | |
185 | This option allows to set the value of any of the parameters. Use \fB-O help\fP | |
186 | for a list of known parameters and their default values. | |
727ce158 MM |
187 | .TP |
188 | .B -H1 | |
84d437d6 | 189 | Use direct hardware access via Intel configuration mechanism 1. |
f2bf13dc | 190 | (This is a shorthand for \fB-A intel-conf1\fP.) |
727ce158 MM |
191 | .TP |
192 | .B -H2 | |
84d437d6 | 193 | Use direct hardware access via Intel configuration mechanism 2. |
f2bf13dc | 194 | (This is a shorthand for \fB-A intel-conf2\fP.) |
727ce158 | 195 | .TP |
727ce158 | 196 | .B -F <file> |
f2bf13dc MM |
197 | Instead of accessing real hardware, read the list of devices and values of their |
198 | configuration registers from the given file produced by an earlier run of lspci -x. | |
199 | This is very useful for analysis of user-supplied bug reports, because you can display | |
200 | the hardware configuration in any way you want without disturbing the user with | |
84d437d6 | 201 | requests for more dumps. |
727ce158 MM |
202 | .TP |
203 | .B -G | |
84d437d6 | 204 | Increase debug level of the library. |
727ce158 | 205 | |
6d896960 MM |
206 | .SH MACHINE READABLE OUTPUT |
207 | If you intend to process the output of lspci automatically, please use one of the | |
208 | machine-readable output formats | |
209 | .RB ( -m , | |
210 | .BR -vm , | |
211 | .BR -vmm ) | |
212 | described in this section. All other formats are likely to change | |
213 | between versions of lspci. | |
214 | ||
215 | .P | |
216 | All numbers are always printed in hexadecimal. If you want to process numeric ID's instead of | |
217 | names, please add the | |
218 | .B -n | |
219 | switch. | |
220 | ||
221 | .SS Simple format (-m) | |
222 | ||
223 | In the simple format, each device is described on a single line, which is | |
224 | formatted as parameters suitable for passing to a shell script, i.e., values | |
225 | separated by whitespaces, quoted and escaped if necessary. | |
226 | Some of the arguments are positional: slot, class, vendor name, device name, | |
227 | subsystem vendor name and subsystem name (the last two are empty if | |
228 | the device has no subsystem); the remaining arguments are option-like: | |
229 | ||
230 | .TP | |
231 | .BI -r rev | |
232 | Revision number. | |
233 | ||
234 | .TP | |
235 | .BI -p progif | |
236 | Programming interface. | |
237 | ||
238 | .P | |
239 | The relative order of positional arguments and options is undefined. | |
240 | New options can be added in future versions, but they will always | |
241 | have a single argument not separated from the option by any spaces, | |
242 | so they can be easily ignored if not recognized. | |
243 | ||
244 | .SS Verbose format (-vmm) | |
245 | ||
246 | The verbose output is a sequence of records separated by blank lines. | |
247 | Each record describes a single device by a sequence of lines, each line | |
248 | containing a single | |
249 | .RI ` tag : | |
250 | .IR value ' | |
251 | pair. The | |
252 | .I tag | |
253 | and the | |
254 | .I value | |
255 | are separated by a single tab character. | |
256 | Neither the records nor the lines within a record are in any particular order. | |
257 | Tags are case-sensitive. | |
258 | ||
259 | .P | |
260 | The following tags are defined: | |
261 | ||
262 | .TP | |
263 | .B Slot | |
264 | The name of the slot where the device resides | |
265 | .RI ([ domain :] bus : device . function ). | |
266 | This tag is always the first in a record. | |
267 | ||
268 | .TP | |
269 | .B Class | |
270 | Name of the class. | |
271 | ||
272 | .TP | |
273 | .B Vendor | |
274 | Name of the vendor. | |
275 | ||
276 | .TP | |
277 | .B Device | |
278 | Name of the device. | |
279 | ||
280 | .TP | |
281 | .B SVendor | |
282 | Name of the subsystem vendor (optional). | |
283 | ||
284 | .TP | |
285 | .B SDevice | |
286 | Name of the subsystem (optional). | |
287 | ||
288 | .TP | |
289 | .B Rev | |
290 | Revision number (optional). | |
291 | ||
292 | .TP | |
293 | .B ProgIf | |
294 | Programming interface (optional). | |
295 | ||
11339c0d MM |
296 | .TP |
297 | .B Driver | |
298 | Kernel driver currently handling the device (optional, Linux only). | |
299 | ||
300 | .TP | |
301 | .B Module | |
302 | Kernel module reporting that it is capable of handling the device | |
303 | (optional, Linux only). | |
304 | ||
6d896960 MM |
305 | .P |
306 | New tags can be added in future versions, so you should silently ignore any tags you don't recognize. | |
307 | ||
308 | .SS Backward-compatible verbose format (-vm) | |
309 | ||
310 | In this mode, lspci tries to be perfectly compatible with its old versions. | |
311 | It's almost the same as the regular verbose format, but the | |
312 | .B | |
313 | Device | |
314 | tag is used for both the slot and the device name, so it occurs twice | |
315 | in a single record. Please avoid using this format in any new code. | |
316 | ||
2f48f637 MM |
317 | .SH FILES |
318 | .TP | |
54e13765 | 319 | .B @IDSDIR@/pci.ids |
84d437d6 MM |
320 | A list of all known PCI ID's (vendors, devices, classes and subclasses). Maintained |
321 | at http://pciids.sourceforge.net/, use the | |
322 | .B update-pciids | |
323 | utility to download the most recent version. | |
2f48f637 | 324 | .TP |
cc062b4a MM |
325 | .B @IDSDIR@/pci.ids.gz |
326 | If lspci is compiled with support for compression, this file is tried before pci.ids. | |
327 | .TP | |
7059c711 MM |
328 | .B ~/.pciids-cache |
329 | All ID's found in the DNS query mode are cached in this file. | |
2f48f637 | 330 | |
fa2273ca MM |
331 | .SH BUGS |
332 | ||
333 | Sometimes, lspci is not able to decode the configuration registers completely. | |
334 | This usually happens when not enough documentation was available to the authors. | |
335 | In such cases, it at least prints the | |
336 | .B <?> | |
337 | mark to signal that there is potentially something more to say. If you know | |
338 | the details, patches will be of course welcome. | |
339 | ||
340 | Access to the extended configuration space is currently supported only by the | |
341 | .B linux_sysfs | |
342 | back-end. | |
343 | ||
727ce158 | 344 | .SH SEE ALSO |
1f7c91cc | 345 | .BR setpci (8), |
f2bf13dc MM |
346 | .BR update-pciids (8), |
347 | .BR pcilib (7) | |
727ce158 | 348 | |
2f48f637 | 349 | .SH AUTHOR |
4284af58 | 350 | The PCI Utilities are maintained by Martin Mares <mj@ucw.cz>. |