File:  [ELWIX - Embedded LightWeight unIX -] / embedaddon / pciutils / setpci.man
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs - revision graph
Fri Feb 17 15:18:42 2012 UTC (12 years, 4 months ago) by misho
Branches: pciutils, MAIN
CVS tags: v3_1_9, HEAD
pciutils

    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>