This package contains the PCI Utilities, version 2.1.9.
-Copyright (c) 1997--2001 Martin Mares <mj@ucw.cz>
+Copyright (c) 1997--2002 Martin Mares <mj@ucw.cz>
All files in this package can be freely distributed and used according
to the terms of the GNU General Public License, either version 2 or
for details.
- The PCI Utilities package contains a library for portable access to PCI bus
-configuration space and several utilities based on this library. Current
-version works only on Linux and also has an experimental support for FreeBSD,
-but it can be easily extended to work on other systems as well.
+1. What's that?
+~~~~~~~~~~~~~~~
+The PCI Utilities package contains a library for portable access to PCI bus
+configuration registers and several utilities based on this library.
- The utilities include: (See manual pages for more details)
+Currently, pciutils work on all versions of Linux and they also have somewhat
+experimental support for FreeBSD and AIX. It should be very easy to add support
+for other systems as well (volunteers wanted; if you want to try that, please
+send the patches to me, so that I can include them in the next version).
- - lspci: displays detailed information about all PCI busses and devices
- in the system, replacing the original /proc/pci interface.
+The utilities include: (See manual pages for more details)
- - setpci: allows to read from and write to PCI device configuration
- registers. For example, you can adjust the latency timers with it.
+ - lspci: displays detailed information about all PCI busses and devices.
- The library (and therefore all the utilities) can access PCI registers
-either via the /proc/bus/pci interface present since Linux 2.1.82 or
-via direct hardware access (to be used with older kernels and also for
-hardware diagnostics). It's also capable of reading and interpreting
-register dumps printed by `lspci -x'. Unfortunately, there is no documentation
-on how to use the library yet, so if you want to play with it, just ask
-me for whatever you want.
+ - setpci: allows to read from and write to PCI device configuration
+ registers. For example, you can adjust the latency timers with it.
+ CAUTION: There is a couple of dangerous points and caveats, please read
+ the manual page first!
- To compile the package, just run "make". To install it, "make install".
- If you have any bug reports or suggestions, send them to the author.
+2. Compiling and (un)installing
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+Just run "make" to compile the package and then "make install" to install it.
- If you want, subscribe to linux-pci@atrey.karlin.mff.cuni.cz (send
+If you want to change the default installation location, please override
+the ROOT and PREFIX variables specified in the Makefile -- e.g., you can
+use "make PREFIX=/opt/pciutils ROOT=/opt/pciutils install" to create
+a separate installation not interfering with the rest of your system.
+
+When you are bored of dumping PCI registers, just use "make uninstall".
+
+
+3. Getting new ID's
+~~~~~~~~~~~~~~~~~~~
+The database of PCI ID's (the pci.ids file) gets out of date much faster
+than I release new versions of this package.
+
+If you are missing names for any of your devices or you just want to stay
+on the bleeding edge, download the most recent pci.ids file from
+http://pciids.sf.net/. If your devices still appear as unknown, please
+send us their ID's and names, the detailed instructions for submissions
+are listed on the sf.net web page.
+
+
+4. Available access methods
+~~~~~~~~~~~~~~~~~~~~~~~~~~~
+The library (and therefore all the utilities) know a variety of methods for
+accessing the PCI registers. Here is a list of them:
+
+ /proc/bus/pci on all Linux systems since kernel 2.1.82.
+ direct port access on all Linux systems with i386, to be used when
+ /proc/bus/pci is unavailable or you want to scan
+ the bus manually when hunting kernel bugs.
+ dumps reading of dumps produced by `lspci -x'.
+ lsdev + odmget used on AIX
+ /dev/pci used on FreeBSD
+
+
+5. Using the library
+~~~~~~~~~~~~~~~~~~~~
+There is still no documentation for the library, if you want to use it
+in your programs, please follow the comments in lib/pci.h and in the
+example program lib/example.c.
+
+
+6. Feedback
+~~~~~~~~~~~
+If you have any bug reports or suggestions, send them to the author.
+
+If you have any new ID's, I'll be very glad to add them to the database, but
+please take a look at http://pciids.sf.net/ first and follow the instructions.
+
+If you want, subscribe to linux-pci@atrey.karlin.mff.cuni.cz (send
"subscribe linux-pci" to majordomo@atrey.karlin.mff.cuni.cz).
Release notes about new versions will be send to the list and problems with
the Linux PCI support will be probably discussed there, too.
- You also might want to look at the pciutils web page containing release
-notes and other news: http://atrey.karlin.mff.cuni.cz/~mj/pciutils.html .
- If you're missing any PCI ID's, please look at the home page of the Linux
-PCI ID Repository at http://pciids.sourceforge.net/ and download an updated
-pci.ids file first. If the current version doesn't contain your devices,
-please send us an update either using the Web interface of the Repository
-or just mail a unified diff against the latest pci.ids to pci-ids@ucw.cz.
+7. Miscellanea
+~~~~~~~~~~~~~~
+You also might want to look at the pciutils web page containing release
+notes and other news: http://atrey.karlin.mff.cuni.cz/~mj/pciutils.html .
- There also exists a utility called PowerTweak which is able to fine tune
+There also exists a utility called PowerTweak which is able to fine tune
parameters of many chipsets much better than the Bridge Optimization code
in Linux kernel (already removed in 2.3.x). See http://powertweak.sf.net/
for more information.