]> mj.ucw.cz Git - pciutils.git/blobdiff - setpci.man
Allow header type 1 for any bridge.
[pciutils.git] / setpci.man
index e316b656d2995575b34b45bd4e87dc81562090df..5dda2480c96bf7b3eb5d2b0807a659ea2ede8846 100644 (file)
@@ -1,4 +1,4 @@
-.TH setpci 8 "@TODAY@" "@VERSION@" "Linux PCI Utilities"
+.TH setpci 8 "@TODAY@" "@VERSION@" "The PCI Utilities"
 .IX setpci
 .SH NAME
 setpci \- configure PCI devices
 .IX setpci
 .SH NAME
 setpci \- configure PCI devices
@@ -13,11 +13,6 @@ setpci \- configure PCI devices
 .B setpci
 is a utility for querying and configuring PCI devices.
 
 .B setpci
 is a utility for querying and configuring PCI devices.
 
-To make use of all the features of this program, you need to have Linux kernel
-2.1.82 or newer which supports the /proc/bus/pci interface. With older kernels,
-the PCI utilities have to use direct hardware access which is available
-only to root and it suffers from numerous race conditions and other problems.
-
 All numbers are entered in hexadecimal notation.
 
 .SH OPTIONS
 All numbers are entered in hexadecimal notation.
 
 .SH OPTIONS
@@ -36,28 +31,36 @@ where it's uncertain whether the device in question is present in the machine
 or not.
 .TP
 .B -D
 or not.
 .TP
 .B -D
-`Demo mode' -- simulate configuration space accesses instead of really doing them.
+`Demo mode' -- don't write anything to the configuration registers.
 It's useful to try
 .B setpci -vD
 to see what your complex sequence of
 .B setpci
 operations does before you actually execute it.
 It's useful to try
 .B setpci -vD
 to see what your complex sequence of
 .B setpci
 operations does before you actually execute it.
+.TP
+.B --version
+Shows
+.I setpci
+version. This option should be used stand-alone.
+
 
 .SH DEVICE SELECTION
 .PP
 Before each sequence of operations you need to select which devices you wish that
 operation to affect.
 .TP
 
 .SH DEVICE SELECTION
 .PP
 Before each sequence of operations you need to select which devices you wish that
 operation to affect.
 .TP
-.B -s [[<bus>]:][<slot>][.[<func>]]
-Select devices in specified bus, slot and function. Each component of the device
-address can be omitted or set as "*" meaning "any value". All numbers are
+.B -s [[[[<domain>]:]<bus>]:][<slot>][.[<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), slot (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
 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 busses and ".4" selects only
-fourth function of each device.
+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>]
 Select devices with specified vendor and device ID. Both ID's are given in
 .TP
 .B -d [<vendor>]:[<device>]
 Select devices with specified vendor and device ID. Both ID's are given in
-hexadecimal and may be omitted or given as "*" meaning "any value".
+hexadecimal and may be omitted or given as "*", both meaning "any value".
 
 .SH OPERATIONS
 .PP
 
 .SH OPERATIONS
 .PP
@@ -73,10 +76,17 @@ To set a register, write
 .BR reg = values
 where
 .B reg
 .BR reg = values
 where
 .B reg
-is the same you would use to query the register and
+is the same as you would use to query the register and
 .B values
 is a comma-separated list of values you want to write starting with the given
 .B values
 is a comma-separated list of values you want to write starting with the given
-address.
+address. Each value to be written can be specified either as a hexadecimal number
+or as a
+.BR bits : mask
+pair which causes the bits corresponding to binary ones in the
+.B mask
+to be changed to values of the corresponding bits in the
+.B bits
+.
 
 .SH REGISTER NAMES
 .PP
 
 .SH REGISTER NAMES
 .PP
@@ -162,7 +172,7 @@ it's supported in.
 
 .TP
 .B -P <dir>
 
 .TP
 .B -P <dir>
-Use Linux 2.1 style configuration access to directory
+Force use of Linux /proc/bus/pci style configuration access, using
 .B <dir>
 instead of /proc/bus/pci. (Linux 2.1 or newer only)
 .TP
 .B <dir>
 instead of /proc/bus/pci. (Linux 2.1 or newer only)
 .TP
@@ -172,10 +182,7 @@ Use direct hardware access via Intel configuration mechanism 1. (i386 and compat
 .B -H2
 Use direct hardware access via Intel configuration mechanism 2. Warning: This method
 is able to address only first 16 devices on any bus and it seems to be very
 .B -H2
 Use direct hardware access via Intel configuration mechanism 2. Warning: This method
 is able to address only first 16 devices on any bus and it seems to be very
-unrealiable in many cases. (i386 and compatible only)
-.TP
-.B -S
-Use PCI access syscalls. (Linux on Alpha and UltraSparc only)
+unreliable in many cases. (i386 and compatible only)
 .TP
 .B -F <file>
 Extract all information from given file containing output of lspci -x. This is very
 .TP
 .B -F <file>
 Extract all information from given file containing output of lspci -x. This is very
@@ -194,9 +201,14 @@ Increase debug level of the library. (All systems)
 .PP
 `setpci -s 12:3.4 3c.l=1,2,3' writes longword 1 to register 3c, 2 to register 3d
 and 3 to register 3e of device at bus 12, slot 3, function 4.
 .PP
 `setpci -s 12:3.4 3c.l=1,2,3' writes longword 1 to register 3c, 2 to register 3d
 and 3 to register 3e of device at bus 12, slot 3, function 4.
+.PP
+`setpci -s 13:8.4 40.b=50:d0,04:0c,ff' works on bus 13, device 8, function
+4: turns bit 7 off and bits 6 and 4 on in the byte register 40; turns
+bit 3 off and bit 2 on in the byte register 41; sets byte register
+42 to ff.
 
 .SH SEE ALSO
 .BR lspci (8)
 
 .SH AUTHOR
 
 .SH SEE ALSO
 .BR lspci (8)
 
 .SH AUTHOR
-The Linux PCI Utilities are maintained by Martin Mares <mj@suse.cz>.
+The PCI Utilities are maintained by Martin Mares <mj@ucw.cz>.