.TH lspci 8 "@TODAY@" "@VERSION@" "The PCI Utilities"
.SH NAME
lspci \- list all PCI devices
.SH SYNOPSIS
.B lspci
.RB [ options ]
.SH DESCRIPTION
.B lspci
is a utility for displaying information about PCI buses in the system and
devices connected to them.

By default, it shows a brief list of devices. Use the options described
below to request either a more verbose output or output intended for
parsing by other programs.

If you are going to report bugs in PCI device drivers or in
.I lspci
itself, please include output of "lspci -vvx" or even better "lspci -vvxxx"
(however, see below for possible caveats).

Some parts of the output, especially in the highly verbose modes, are probably
intelligible only to experienced PCI hackers. For exact definitions of
the fields, please consult either the PCI specifications or the
.B header.h
and
.B /usr/include/linux/pci.h
include files.

Access to some parts of the PCI configuration space is restricted to root
on many operating systems, so the features of
.I lspci
available to normal users are limited. However,
.I lspci
tries its best to display as much as available and mark all other
information with
.I <access denied>
text.

.SH OPTIONS

.SS Basic display modes
.TP
.B -m
Dump PCI device data in a backward-compatible machine readable form.
See below for details.
.TP
.B -mm
Dump PCI device data in a machine readable form for easy parsing by scripts.
See below for details.
.TP
.B -t
Show a tree-like diagram containing all buses, bridges, devices and connections
between them.

.SS Display options
.TP
.B -v
Be verbose and display detailed information about all devices.
.TP
.B -vv
Be very verbose and display more details. This level includes everything deemed
useful.
.TP
.B -vvv
Be even more verbose and display everything we are able to parse,
even if it doesn't look interesting at all (e.g., undefined memory regions).
.TP
.B -k
Show kernel drivers handling each device and also kernel modules capable of handling it.
Turned on by default when
.B -v
is given in the normal mode of output.
(Currently works only on Linux with kernel 2.6 or newer.)
.TP
.B -x
Show hexadecimal dump of the standard part of the configuration space (the first
64 bytes or 128 bytes for CardBus bridges).
.TP
.B -xxx
Show hexadecimal dump of the whole PCI configuration space. It is available only to root
as several PCI devices
.B crash
when you try to read some parts of the config space (this behavior probably
doesn't violate the PCI standard, but it's at least very stupid). However, such
devices are rare, so you needn't worry much.
.TP
.B -xxxx
Show hexadecimal dump of the extended (4096-byte) PCI configuration space available
on PCI-X 2.0 and PCI Express buses.
.TP
.B -b
Bus-centric view. Show all IRQ numbers and addresses as seen by the cards on the
PCI bus instead of as seen by the kernel.
.TP
.B -D
Always show PCI domain numbers. By default, lspci suppresses them on machines which
have only domain 0.
.TP
.B -P
Identify PCI devices by path through each bridge, instead of by bus number.
.TP
.B -PP
Identify PCI devices by path through each bridge, showing the bus number as
well as the device number.

.SS Options to control resolving ID's to names
.TP
.B -n
Show PCI vendor and device codes as numbers instead of looking them up in the
PCI ID list.
.TP
.B -nn
Show PCI vendor and device codes as both numbers and names.
.TP
.B -q
Use DNS to query the central PCI ID database if a device is not found in the local
.B pci.ids
file. If the DNS query succeeds, the result is cached in
.B $XDG_CACHE_HOME/pci-ids
and it is recognized in subsequent runs even if
.B -q
is not given any more. Please use this switch inside automated scripts only
with caution to avoid overloading the database servers.
.TP
.B -qq
Same as
.BR -q ,
but the local cache is reset.
.TP
.B -Q
Query the central database even for entries which are recognized locally.
Use this if you suspect that the displayed entry is wrong.

.SS Options for selection of devices
.TP
.B -s [[[[<domain>]:]<bus>]:][<device>][.[<func>]]
Show only devices in the specified domain (in case your machine has several host bridges,
they can either share a common bus number space or each of them can address a PCI domain
of its own; domains are numbered from 0 to ffff), bus (0 to ff), device (0 to 1f) and function (0 to 7).
Each component of the device address can be omitted or set to "*", both meaning "any value". All numbers are
hexadecimal.  E.g., "0:" means all devices on bus 0, "0" means all functions of device 0
on any bus, "0.3" selects third function of device 0 on all buses and ".4" shows only
the fourth function of each device.
.TP
.B -d [<vendor>]:[<device>][:<class>[:<prog-if>]]
Show only devices with specified vendor, device, class ID, and programming interface.
The ID's are given in hexadecimal and may be omitted or given as "*", both meaning
"any value". The class ID can contain "x" characters which stand for "any digit".

.SS Other options
.TP
.B -i <file>
Use
.B
<file>
as the PCI ID list instead of @IDSDIR@/pci.ids.
.TP
.B -p <file>
Use
.B
<file>
as the map of PCI ID's handled by kernel modules. By default, lspci uses
.RI /lib/modules/ kernel_version /modules.pcimap.
Applies only to Linux systems with recent enough module tools.
.TP
.B -M
Invoke bus mapping mode which performs a thorough scan of all PCI devices, including
those behind misconfigured bridges, etc. This option gives meaningful results only
with a direct hardware access mode, which usually requires root privileges.
By default, the bus mapper scans domain. You can use the
.B -s
option to select a different domain.
.TP
.B --version
Shows
.I lspci
version. This option should be used stand-alone.

.SS PCI access options
.PP
The PCI utilities use the PCI library to talk to PCI devices (see
\fBpcilib\fP(7) for details). You can use the following options to
influence its behavior:
.TP
.B -A <method>
The library supports a variety of methods to access the PCI hardware.
By default, it uses the first access method available, but you can use
this option to override this decision. See \fB-A help\fP for a list of
available methods and their descriptions.
.TP
.B -O <param>=<value>
The behavior of the library is controlled by several named parameters.
This option allows one to set the value of any of the parameters. Use \fB-O help\fP
for a list of known parameters and their default values.
.TP
.B -H1
Use direct hardware access via Intel configuration mechanism 1.
(This is a shorthand for \fB-A intel-conf1\fP.)
.TP
.B -H2
Use direct hardware access via Intel configuration mechanism 2.
(This is a shorthand for \fB-A intel-conf2\fP.)
.TP
.B -F <file>
Instead of accessing real hardware, read the list of devices and values of their
configuration registers from the given file produced by an earlier run of lspci -x.
This is very useful for analysis of user-supplied bug reports, because you can display
the hardware configuration in any way you want without disturbing the user with
requests for more dumps.
.TP
.B -G
Increase debug level of the library.

.SH MACHINE READABLE OUTPUT
If you intend to process the output of lspci automatically, please use one of the
machine-readable output formats
.RB ( -m ,
.BR -vm ,
.BR -vmm )
described in this section. All other formats are likely to change
between versions of lspci.

.P
All numbers are always printed in hexadecimal. If you want to process numeric ID's instead of
names, please add the
.B -n
switch.

.SS Simple format (-m)

In the simple format, each device is described on a single line, which is
formatted as parameters suitable for passing to a shell script, i.e., values
separated by whitespaces, quoted and escaped if necessary.
Some of the arguments are positional: slot, class, vendor name, device name,
subsystem vendor name and subsystem name (the last two are empty if
the device has no subsystem); the remaining arguments are option-like:

.TP
.BI -r rev
Revision number.

.TP
.BI -p progif
Programming interface.

.P
The relative order of positional arguments and options is undefined.
New options can be added in future versions, but they will always
have a single argument not separated from the option by any spaces,
so they can be easily ignored if not recognized.

.SS Verbose format (-vmm)

The verbose output is a sequence of records separated by blank lines.
Each record describes a single device by a sequence of lines, each line
containing a single
.RI ` tag :
.IR value '
pair. The
.I tag
and the
.I value
are separated by a single tab character.
Neither the records nor the lines within a record are in any particular order.
Tags are case-sensitive.

.P
The following tags are defined:

.TP
.B Slot
The name of the slot where the device resides
.RI ([ domain :] bus : device . function ).
This tag is always the first in a record.

.TP
.B Class
Name of the class.

.TP
.B Vendor
Name of the vendor.

.TP
.B Device
Name of the device.

.TP
.B SVendor
Name of the subsystem vendor (optional).

.TP
.B SDevice
Name of the subsystem (optional).

.TP
.B PhySlot
The physical slot where the device resides (optional, Linux only).

.TP
.B Rev
Revision number (optional).

.TP
.B ProgIf
Programming interface (optional).

.TP
.B Driver
Kernel driver currently handling the device (optional, Linux only).

.TP
.B Module
Kernel module reporting that it is capable of handling the device
(optional, Linux only). Multiple lines with this tag can occur.

.TP
.B NUMANode
NUMA node this device is connected to (optional, Linux only).

.TP
.B IOMMUGroup
IOMMU group that this device is part of (optional, Linux only).

.P
New tags can be added in future versions, so you should silently ignore any tags you don't recognize.

.SS Backward-compatible verbose format (-vm)

In this mode, lspci tries to be perfectly compatible with its old versions.
It's almost the same as the regular verbose format, but the
.B
Device
tag is used for both the slot and the device name, so it occurs twice
in a single record. Please avoid using this format in any new code.

.SH FILES
.TP
.B @IDSDIR@/pci.ids
A list of all known PCI ID's (vendors, devices, classes and subclasses). Maintained
at https://pci-ids.ucw.cz/, use the
.B update-pciids
utility to download the most recent version.
.TP
.B @IDSDIR@/pci.ids.gz
If lspci is compiled with support for compression, this file is tried before pci.ids.
.TP
.B $XDG_CACHE_HOME/pci-ids
All ID's found in the DNS query mode are cached in this file.

.SH BUGS

Sometimes, lspci is not able to decode the configuration registers completely.
This usually happens when not enough documentation was available to the authors.
In such cases, it at least prints the
.B <?>
mark to signal that there is potentially something more to say. If you know
the details, patches will be of course welcome.

Access to the extended configuration space is currently supported only by the
.B linux_sysfs
back-end.

.SH SEE ALSO
.BR setpci (8),
.BR pci.ids (5),
.BR update-pciids (8),
.BR pcilib (7)

.SH AUTHOR
The PCI Utilities are maintained by Martin Mares <mj@ucw.cz>.
