Annotation of embedaddon/pciutils/setpci.man, revision 1.1.1.1

1.1       misho       1: .TH setpci 8 "@TODAY@" "@VERSION@" "The PCI Utilities"
                      2: .IX setpci
                      3: .SH NAME
                      4: setpci \- configure PCI devices
                      5: .SH SYNOPSIS
                      6: .B setpci
                      7: .RB [ options ]
                      8: .B devices
                      9: .BR operations ...
                     10: 
                     11: .SH DESCRIPTION
                     12: .PP
                     13: .B setpci
                     14: is a utility for querying and configuring PCI devices.
                     15: 
                     16: All numbers are entered in hexadecimal notation.
                     17: 
                     18: Root privileges are necessary for almost all operations, excluding reads
                     19: of the standard header of the configuration space on some operating systems.
                     20: Please see
                     21: .BR lspci(8)
                     22: for details on access rights.
                     23: 
                     24: .SH OPTIONS
                     25: 
                     26: .SS General options
                     27: .TP
                     28: .B -v
                     29: Tells
                     30: .I setpci
                     31: to be verbose and display detailed information about configuration space accesses.
                     32: .TP
                     33: .B -f
                     34: Tells
                     35: .I setpci
                     36: not to complain when there's nothing to do (when no devices are selected).
                     37: This option is intended for use in widely-distributed configuration scripts
                     38: where it's uncertain whether the device in question is present in the machine
                     39: or not.
                     40: .TP
                     41: .B -D
                     42: `Demo mode' -- don't write anything to the configuration registers.
                     43: It's useful to try
                     44: .B setpci -vD
                     45: to verify that your complex sequence of
                     46: .B setpci
                     47: operations does what you think it should do.
                     48: .TP
                     49: .B --version
                     50: Show
                     51: .I setpci
                     52: version. This option should be used stand-alone.
                     53: .TP
                     54: .B --help
                     55: Show detailed help on available options. This option should be used stand-alone.
                     56: .TP
                     57: .B --dumpregs
                     58: Show a list of all known PCI registers and capabilities. This option should be
                     59: used stand-alone.
                     60: 
                     61: .SS PCI access options
                     62: .PP
                     63: The PCI utilities use the PCI library to talk to PCI devices (see
                     64: \fBpcilib\fP(7) for details). You can use the following options to
                     65: influence its behavior:
                     66: .TP
                     67: .B -A <method>
                     68: The library supports a variety of methods to access the PCI hardware.
                     69: By default, it uses the first access method available, but you can use
                     70: this option to override this decision. See \fB-A help\fP for a list of
                     71: available methods and their descriptions.
                     72: .TP
                     73: .B -O <param>=<value>
                     74: The behavior of the library is controlled by several named parameters.
                     75: This option allows to set the value of any of the parameters. Use \fB-O help\fP
                     76: for a list of known parameters and their default values.
                     77: .TP
                     78: .B -H1
                     79: Use direct hardware access via Intel configuration mechanism 1.
                     80: (This is a shorthand for \fB-A intel-conf1\fP.)
                     81: .TP
                     82: .B -H2
                     83: Use direct hardware access via Intel configuration mechanism 2.
                     84: (This is a shorthand for \fB-A intel-conf2\fP.)
                     85: .TP
                     86: .B -G
                     87: Increase debug level of the library.
                     88: 
                     89: .SH DEVICE SELECTION
                     90: .PP
                     91: Before each sequence of operations you need to select which devices you wish that
                     92: operation to affect.
                     93: .TP
                     94: .B -s [[[[<domain>]:]<bus>]:][<slot>][.[<func>]]
                     95: Consider only devices in the specified domain (in case your machine has several host bridges,
                     96: they can either share a common bus number space or each of them can address a PCI domain
                     97: of its own; domains are numbered from 0 to ffff), bus (0 to ff), slot (0 to 1f) and function (0 to 7).
                     98: Each component of the device address can be omitted or set to "*", both meaning "any value". All numbers are
                     99: hexadecimal.  E.g., "0:" means all devices on bus 0, "0" means all functions of device 0
                    100: on any bus, "0.3" selects third function of device 0 on all buses and ".4" matches only
                    101: the fourth function of each device.
                    102: .TP
                    103: .B -d [<vendor>]:[<device>]
                    104: Select devices with specified vendor and device ID. Both ID's are given in
                    105: hexadecimal and may be omitted or given as "*", both meaning "any value".
                    106: .PP
                    107: When
                    108: .B -s
                    109: and
                    110: .B -d
                    111: are combined, only devices that match both criteria are selected. When multiple
                    112: options of the same kind are specified, the rightmost one overrides the others.
                    113: 
                    114: .SH OPERATIONS
                    115: .PP
                    116: There are two kinds of operations: reads and writes. To read a register, just specify
                    117: its name. Writes have the form
                    118: .IR name = value , value ...
                    119: where each
                    120: .I value
                    121: is either a hexadecimal number or an expression of type
                    122: .IR data : mask
                    123: where both
                    124: .I data
                    125: and
                    126: .I mask
                    127: are hexadecimal numbers. In the latter case, only the bits corresponding to binary
                    128: ones in the \fImask\fP are changed (technically, this is a read-modify-write operation).
                    129: 
                    130: .PP
                    131: There are several ways how to identity a register:
                    132: .IP \(bu
                    133: Tell its address in hexadecimal.
                    134: .IP \(bu
                    135: Spell its name. Setpci knows the names of all registers in the standard configuration
                    136: headers. Use `\fBsetpci --dumpregs\fP' to get the complete list.
                    137: See PCI bus specifications for the precise meaning of these registers or consult
                    138: \fBheader.h\fP or \fB/usr/include/pci/pci.h\fP for a brief sketch.
                    139: .IP \(bu
                    140: If the register is a part of a PCI capability, you can specify the name of the
                    141: capability to get the address of its first register. See the names starting with
                    142: `CAP_' or `ECAP_' in the \fB--dumpregs\fP output.
                    143: .IP \(bu
                    144: If the name of the capability is not known to \fBsetpci\fP, you can refer to it
                    145: by its number in the form CAP\fBid\fP or ECAP\fBid\fP, where \fBid\fP is the numeric
                    146: identifier of the capability in hexadecimal.
                    147: .IP \(bu
                    148: Each of the previous formats can be followed by \fB+offset\fP to add an offset
                    149: (a hex number) to the address. This feature can be useful for addressing of registers
                    150: living within a capability, or to modify parts of standard registers.
                    151: .IP \(bu
                    152: Finally, you should append a width specifier \fB.B\fP, \fB.W\fP, or \fB.L\fP to choose
                    153: how many bytes (1, 2, or 4) should be transferred. The width can be omitted if you are
                    154: referring to a register by its name and the width of the register is well known.
                    155: 
                    156: .PP
                    157: All names of registers and width specifiers are case-insensitive.
                    158: 
                    159: .SH
                    160: EXAMPLES
                    161: 
                    162: .IP COMMAND
                    163: asks for the word-sized command register.
                    164: .IP 4.w
                    165: is a numeric address of the same register.
                    166: .IP COMMAND.l
                    167: asks for a 32-bit word starting at the location of the command register,
                    168: i.e., the command and status registers together.
                    169: .IP VENDOR_ID+1.b
                    170: specifies the upper byte of the vendor ID register (remember, PCI is little-endian).
                    171: .IP CAP_PM+2.w
                    172: corresponds to the second word of the power management capability.
                    173: .IP ECAP108.l
                    174: asks for the first 32-bit word of the extended capability with ID 0x108.
                    175: 
                    176: .SH SEE ALSO
                    177: .BR lspci (8),
                    178: .BR pcilib (7)
                    179: 
                    180: .SH AUTHOR
                    181: The PCI Utilities are maintained by Martin Mares <mj@ucw.cz>.

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>