+2006-05-05 Martin Mares <mj@ucw.cz>
+
+ * lib/obsd-device.c (and other files in lib/*): Added OpenBSD
+ interface by Matthieu Herrb <matthieu.herrb@laas.fr>, based on
+ the existing FreeBSD interface.
+
+ * Moved pciutils to a GIT repository, which now contains merged
+ history from both CVS and Arch. Good bye, TLA!
+
+2006-03-21 Martin Mares <mj@ucw.cz>
+
+ * lspci.c (show_slot_name): Avoid the previous changes in default
+ display of domain name when in machine-readable mode. However, `-D'
+ forces domain display even there.
+
+ * lspci.man: Added a warning on -m being the only format, which is
+ guaranteed to be stable between lspci versions.
+
+2006-03-13 Martin Mares <mj@ucw.cz>
+
+ * lspci.man: Documented the -D switch.
+
+ * lspci.c (show_slot_name, scan_device): If there are multiple PCI
+ domains or if the `-D' switch is used, show the domain number for
+ all devices.
+
+ * lspci.c (show_verbose): Report cache line size in bytes.
+
+ * update-pciids.sh: Use curl if available. Patch by Matthew Wilcox.
+
+2006-01-04 Martin Mares <mj@ucw.cz>
+
+ * lspci.c (show_express_link): Fixed decoding of link status register.
+ Thanks to Roland Dreier for his report.
+
+2005-12-12 Martin Mares <mj@ucw.cz>
+
+ * lib/nbsd-libpci.c: If libpci is used by an ordinary user, allow
+ at least read-only access. Patch by Pavel Celeda <celeda@liberouter.org>.
+
+ * Makefile: Corrected library path on NetBSD.
+
+2005-11-26 Martin Mares <mj@ucw.cz>
+
+ * Released as 2.2.1.
+
+ * lspci.c (show_machine): Subsystem vendors were printed incorrectly
+ in machine-readable modes. Thanks to Pavel Celeda for a bug report.
+
+2005-10-11 Martin Mares <mj@ucw.cz>
+
+ * lspci.c (new_bus): Fixed a memory leak. Thanks to Paul Sangree for reporting it.
+
+2005-09-21 Martin Mares <mj@ucw.cz>
+
+ * Released as 2.2.0.
+
+ * pci.ids: Updated copyright header.
+
+ * lib/sysfs.c (sysfs_get_resources): Removed warning about unsupported
+ 64-bit addresses, they are now always supported.
+
+ * lspci.c (show_bases): Corrected printing of 64-bit addresses
+ in bus-centric mode.
+
+ * lib/configure: Enable 64-bit addresses on all Linux systems.
+
+ * lib/types.h: Don't pad 64-bit addresses to 16 xigits, only to 8 if they
+ are shorter.
+
+2005-09-11 Martin Mares <mj@ucw.cz>
+
+ * Released as 2.1.99-test11.
+
+ * lspci.c: Removed unnecessary trailing zeros in pci_lookup_name() calls.
+
+2005-09-10 Martin Mares <mj@ucw.cz>
+
+ * Released as 2.1.99-test10.
+
+ * pci.ids: Synchronized with the current database snapshot.
+
+ * update-pciids.sh: Changed the default URL for downloading pci.ids
+ to http://pciids.sourceforge.net/v2.2/pci.ids.
+
+ * lib/pci.h (PCI_LIB_VERSION): Added version identifier.
+
+ * lib/names.c: Rewritten the name database module almost from scratch.
+ Everything is much cleaner and there are hopefully no more memory leaks;
+ pci_lookup_name() now uses varargs in a backward compatible fashion.
+ Introduced PCI_LOOKUP_NO_NUMBERS.
+
+ The new code supports subsystem entries not tied to a specific device.
+ I had to extend the format of pci.ids in order to support it, so I have
+ extended the idea of the "C" (class) blocks and introduced "S" blocks
+ for subsystems. To avoid doing more incompatible changes in the future,
+ the parser skips unknown single-letter blocks without reporting errors.
+
+2005-08-23 Martin Mares <mj@ucw.cz>
+
+ * Released as 2.1.99-test9.
+
+ * Makefile (OPT): Removed -fomit-frame-pointer, it's default in recent
+ gcc versions when optimizing anyway.
+
+ * Made the path to pci.ids customizable and independent on the SHAREDIR.
+ Just override IDSDIR in the top-level Makefile.
+
+ * pci.ids: Synchronized with the current database snapshot.
+
+ * lspci.man, setpci.man: Improved the man pages. Documented all access
+ methods and which operations are privileged.
+
+ * lspci.c: Another rewrite of config register caching, now also including
+ lots of internal checks. It should be now perfectly able to cope with
+ portions of the configuration space being inaccessible, for example
+ due to insufficient access rights.
+
+ * lspci.c (show_pcix_nobridge, show_pcix_bridge): Cleaned up dumping of PCI-X
+ capabilities. Includes partial support for PCI-X 2.0 (probably incomplete
+ as I haven't seen the spec).
+
+ * lspci.c: Quell warnings about unused parameters.
+
+ * lspci.c: Removed C++ comments.
+
+ * lib/header.h: Merged definitions of extended capabilities and some new
+ PCI-X capability bits from linux-2.6.11/include/pci.h.
+
+ * lspci.c (show_caps): Try to scan extended capabilities only if the
+ device has either PCI-X or PCI Express capability in its normal capability
+ list.
+
+ * lib/dump.c (dump_init): Reading of dumps works again. The dump reader
+ now also remembers how much data it has read and refuses attempts to
+ access more than that.
+
+ * setpci.man, lspci.c, README: prefer spelling "buses" over "busses".
+
+ * lspci.c: If alloca() is not available, use xmalloc(), not malloc().
+
+ * lib/configure: Added x86_64 on Linux.
+
+2005-08-22 Martin Mares <mj@ucw.cz>
+
+ * lib/filter.c (pci_filter_parse_slot): Fixed parsing of domain filters.
+ Thanks to Matthew Wilcox for bug report.
+
+ * lspci.c: Corrected spelling of "Hz" (it was "hz" at several places).
+ Thanks to Krzysztof Oledzki for pointing that out.
+
+2004-08-19 Martin Mares <mj@ucw.cz>
+
+ * pciutils.spec (%attr): Setting attributes for /sbin/* is an anachronism,
+ because pciutils by default install to /usr/sbin. Update.
+
+2004-08-13 Martin Mares <mj@ucw.cz>
+
+ * Released as 2.1.99-test8.
+
+ * lib/types.h, lib/pci.h, lib/sysdep.h: `byte' and `word' are
+ no longer exported to the outside world.
+
+ * README.Windows: Updated.
+
+ * maint/release: Substitute version number in win32/config.h.
+
+ * win32/config.h: Added.
+
+ * lib/sysdep.h (bzero, strcasecmp): are macros on Windows.
+
+ * compat/getopt.[ch]: Added copies of getopt.[ch] from the GNU
+ C library for use on systems where the default libraries lack
+ proper getopt. Currently used by the Windows port.
+
+ * lib/sysdep.h, lib/types.h: Updates of the Windows port from
+ Alexander Stock.
+
+ * lib/types.h: If PCI_HAVE_Uxx_TYPES is defined, libpci doesn't define
+ its own u8, u16, u32, byte and word types and uses what the user
+ has supplied instead. With this change, all namespace clashes should
+ be gone.
+
+ * Makefile, lib/Makefile: Updated dependencies.
+
+ * pciutils.h: Include lib/sysdep.h and move NONRET et al. there.
+
+ * lib/sysdep.h: No need to include <sys/types.h> on FreeBSD, because
+ it is included unconditionally in lib/types.h.
+
+ * Moved system-dependent stuff from lib/internal.h to lib/sysdep.h,
+ which is also used by the utilities. Also moved type declarations
+ from lib/pci.h to lib/types.h.
+
+ * All files: Prepend a "PCI_" prefix in front of all configuration
+ defines to avoid namespace clashes. CAVEAT: If there is any libpci
+ application using the (undocumented) defines, it has to be updated.
+
+ * lib/Makefile: Killed HAVE_OWN_HEADER_H, since we stopped sharing
+ headers with the kernel a couple of years ago.
+
+ * lib/sysfs.c (sysfs_get_resources): We have 7 resources, not 6.
+
+ * lspci.c (show_rom): Use the same logic for printing disabled
+ or unassigned ROM's as we do in show_bases() for the other BAR's.
+
+ * lib/generic.c (pci_generic_fill_info): Better reaction to
+ invalid 64-bit addresses. Also d->hdrtype should not include
+ bit 7, which caused mysterious errors on multi-function devices.
+
+ * lib/generic.c (pci_generic_fill_info): Fill in base addresses
+ even if the regions are known to be disabled. It is the client's
+ job to interpret them. (And it is not a trivial job if you want
+ to do it correctly, since you need to check I/O and memory enables
+ on all upstream bridges, too.) However, it could be interesting to
+ introduce functions for interpreting the addresses and even for
+ mapping the regions and doing I/O on them.
+
+2004-07-30 Martin Mares <mj@ucw.cz>
+
+ * lspci.c: HyperTransport improvements from Maciej.
+
+2004-07-11 Martin Mares <mj@ucw.cz>
+
+ * lib/sysfs.c (sysfs_get_resources): Arguments now correspond
+ to the format string. [Patch by Bill Nottingham]
+
+2004-07-05 Martin Mares <mj@ucw.cz>
+
+ * Released as 2.1.99-test7.
+
+ * lspci.c (config_fetch): Wanted to merge Matthew's bug fix, but
+ ended up with rewriting the fetching mechanism to be fully dynamic,
+ but avoid reading config space registers not explicitly requested.
+
+2004-06-29 Matthew Wilcox <willy@debian.org>
+
+ * lspci.c: More work on PCI Express dumping.
+
+ * lib/header.h: Updated PCI Express capability definitions.
+
+ * lib/proc.c (proc_read): Removed bogus warning.
+
+ * common.c (xrealloc): Introduced.
+
+ * lspci.man: Added -xxxx.
+
+2004-06-27 Martin Mares <mj@ucw.cz>
+
+ * Released as 2.1.99-test6.
+
+ * lspci.c (show_msix), lib/header.h: Added dumping of MSI-X cap.
+ Patch by Roland Dreier <roland@topspin.com>, cleaned up by me.
+
+ * lspci.c (show_pcix_nobridge, show_pcix_bridge): Handle config_fetch()
+ failures.
+
+ * lib/header.h: Added PCI Express extended capabilities. Again by Matthew.
+
+ * lspci.c (show_express): Added dumping of PCI Express cap.
+ Patch by Matthew Wilcox.
+
+ * lib/header.h: Added a list of PCI 3.0 capabilities and also details
+ on PCI Express caps. Patch by Matthew Wilcox <willy@debian.org>.
+
+ * lspci.c (check_root): Gone. No explicit checks for root are needed,
+ report correct errors reported by the libpci instead.
+
+ * lspci.c: Added dumping of the extended config space on "-xxxx".
+ Better caching of config registers.
+
+ * setpci.c (main): Allow access to whole 4096 bytes of the config space.
+
+ * lib/sysfs.c, lib/proc.c: Don't print error messages on short reads,
+ just return the appropriate error code.
+
+ * lib: Added support for extended (4096-byte) configuration space,
+ currently implemented only in Linux proc and sysfs access methods
+ and of course in the dump reader.
+
+2004-05-29 Martin Mares <mj@ucw.cz>
+
+ * Released as 2.1.99-test5.
+
+ * lib/pci.h: Windows don't have the standard u_int* types.
+
+ * lib/internal.h: <sys/param.h> required on Windows for endianity
+ macros.
+
+ * lib/i386-ports.c: Connected i386-io-windows.h.
+
+ * lspci.c (check_root): geteuid() is not available on Windows.
+
+ * lib/i386-io-windows.h: Added Windows port contributed by Alexander
+ Stock <stock.alexander@gmx.de>.
+
+ * lib/configure: Hopefully fixed SunOS port broken by various
+ changes to the configure script.
+
+ * Makefile, lib/configure: Cross-compilation support, patch by Maciej.
+
+2004-05-28 Martin Mares <mj@ucw.cz>
+
+ * Released as 2.1.99-test4.
+
+ * lspci.c (show_verbose): Header type 1 is probably legal for all
+ types of bridges, not only for PCI-to-PCI bridges.
+
+ * lspci.c (format_agp_rate): Write "x16", not "x@".
+ (show_agp): rate[] could overflow.
+ Bugs reported by Jakub Bogusz <qboosh@pld-linux.org>.
+
+ * lspci.c (show_ht_*): Show HyperTransport capability with all its
+ details. Once again code by Maciej simplified (i.e., possibly broken)
+ by me.
+
+ * lib/header.h: Added declarations of HyperTransport capability.
+ Again thanks to Maciej.
+
+ * lspci.c: Decode all bits of the secondary status word in type 1 headers.
+ Thanks to Maciej W. Rozycki <macro@ds2.pg.gda.pl> for the patch.
+
+2003-12-27 Martin Mares <mj@ucw.cz>
+
+ * Released as 2.1.99-test3.
+
+ * lspci.man, setpci.man: Document domains and correct spelling.
+
+ * lib/dump.c (dump_init): Added ability to read domain numbers.
+
+ * lspci.c: Devices in domains different from 0 have their slot number
+ printed as "<domain>:<bus>:<slot>.<func>". Tree view supports domains
+ as well.
+
+ * lib/filter.c: Slot filters understand domains.
+
+ * lib/generic.c: Mention the domain in slot numbers in all error messages.
+
+ * lib/internal.h: The #ifdef for Linux <asm/byteorder.h> was wrong.
+
+ * lib/access.c (pci_get_dev): Added support for domains.
+
+ * lib/sysfs.c (sysfs_scan): Read vendor and device ID from the config
+ registers (or to be precise, leave it for the generic parts of the pcilib
+ to do so) instead of reading them from the sysfs. It's faster this way.
+
+ * lspci.c (show_pcix): Don't touch pci_dev->hdrtype, it's an internal
+ variable. Better read it from the config registers (it's cached anyway).
+
+ * lib/sysfs.c (sysfs_scan), lib/proc.c (proc_scan): Don't read the hdrtype.
+ lib/generic.c (pci_generic_fill_info): If hdrtype is -1 (unset), read it.
+ Saves lots of unnecessary file accesses.
+
+ * lib/pci.h (PCIADDR_PORT_FMT): Use %llx instead of %Lx, because the latter
+ is not supported by all C libraries.
+
+ * Makefile: Always enter the lib directory (remember that we don't have
+ full dependecies for the library in the top-level Makefile; hmmm, another
+ thing to rewrite some day).
+
+ * lib/sysfs.c: Added Linux sysfs access method based on the patch
+ written by Matthew Wilcox <willy@fc.hp.com>.
+
+ * lib/proc.c: Renamed the access method name from "/proc/bus/pci" to "Linux-proc".
+
+ * lib/pread.h: The hacks to support pread on various versions
+ of Linux libc moved there.
+
+ * lib/proc.c (proc_setup): The return value of snprintf() varies
+ between glibc versions, so we need to check both for a negative
+ values and for too large values.
+
+ * Removed last few references to the "Linux PCI Utilities", the
+ package is pretty cross-platform now :)
+
+2003-12-27 Martin Mares <mj@ucw.cz>
+
+ * Released as 2.1.99-test2.
+
+ * README, pciutils.lsm, pciutils.spec: Use @VERSION@ to make the
+ release scripts insert the current version. "make release" is gone.
+
+ * maint/release, maint/release.pm: Added a new system of scripts for
+ making releases including inter-version diffs etc.
+
+ * Makefile: Cleaned up.
+
+ * lib/fbsd-device.c: I patched another copy of this file by mistake,
+ this time the version checks should be right.
+
+2003-12-27 Martin Mares <mj@ucw.cz>
+
+ * Released as 2.1.99-test1.
+
+ * pciutils.h, common.c, lspci.man, setpci.man, lib/internal.h:
+ Remove shadows of the syscall access method which was never
+ implemented.
+
+ * update-pciids.sh: Try to preserve permissions of the old file
+ if chmod supports --reference. Should close Debian Bug #223740.
+
+ * lib/proc.c (proc_setup): Increased path name length limit to 1024.
+ Thanks for Redhat and Mandrake for inspiration.
+
+ * lib/configure: Recognize ppc and ppc64, both have 64-bit addresses.
+ Grabbed from Redhat (Fedora) patches.
+
+2003-12-27 Martin Mares <mj@ucw.cz>
+
+ Merged bug fixes from Debian patches:
+
+ * lspci.c (show_verbose): "Cache Line Size" should be capitalized.
+
+ * lspci.c (show_pcix_nobridge): Added a missing newline.
+
+ * lib/proc.c (proc_scan): When reading the header type, don't
+ forget to clear the topmost bit indicating that the device has
+ multiple functions.
+
+2003-12-27 Martin Mares <mj@ucw.cz>
+
+ Updated the FreeBSD port. Thanks to Samy Al Bahra <samy@kerneled.com>
+ for the patches:
+
+ * lib/Makefile: Add ${FREEBSD_SYS} to the include path if it's defined.
+ * lib/fbsd-device.c: Select the right set of system includes according
+ to __FreeBSD_version.
+
+2003-12-27 Martin Mares <mj@ucw.cz>
+
+ Merged support for Solaris on i386 by Bill Moore <billm@eng.sun.com>
+ and cleaned up:
+
+ * lib/configure: Recognize SunOS.
+ * lib/internal.h: Learn how to recognize byte order on SunOS.
+ * lib/i386-ports.c: Split OS-dependent I/O port access from i386-ports.c.
+ * lib/i386-io-linux.h: Linux specific part.
+ * lib/i386-io-hurd.h: GNU/Hurd specific part.
+ * lib/i386-io-sunos.h: SunOS specific part.
+
+2003-12-26 Martin Mares <mj@ucw.cz>
+
+ * lib/header.h (PCI_*_MASK): Cast to pciaddr_t explicitly.
+
+ * lib/pci.h: Types declared in <sys/types.h> should be usable on all
+ platforms we currently support, so kill the forest of #ifdef's and
+ use them in all cases.
+
+ * lib/pci.h: Use ULONG_MASK to decide whether we should use long
+ or long long to represent a 64-bit address. Killed HAVE_LONG_ADDRESS.
+ Define format strings for addresses, port numbers and IRQ numbers
+ directly in pci.h.
+
+ * lib/proc.c (proc_scan): Use PCIADDR_T_FMT for scanf'ing addresses.
+
+2003-12-26 Marco Gerards <metgerards@student.han.nl>
+
+ Added support for the GNU Hurd (cleaned up by Martin Mares):
+
+ * lib/configure [GNU]: Use the i386 ports for configuration access.
+ * lib/i386-ports.c: Don't call iopl() on the Hurd.
+ * lib/pci.h [OS_GNU]: Include <sys/types.h> and use it for defining
+ u8 to u32.
+
+2003-12-26 Martin Mares <mj@ucw.cz>
+
+ * lspci.c (show_pcix_bridge, show_pcix_nobridge): Don't forget to call
+ config_fetch() to ensure that the registers have been read. Thanks to
+ Bill Wood <bill.wood@hp.com> for the patch.
+
+ * lspci.c: Ensure that failure of config_fetch() is handled correctly
+ at all places.
+
+ * lspci.man: There was one more explicit reference to /usr/share/pci.ids.
+ Changed to @SHAREDIR@. Patch from Maciej W. Rozycki <macro@ds2.pg.gda.pl>.
+
+ * setpci.c (main): Better error messages.
+
+ * setpci.c (ex_op): The demo mode should disable only writing, not reading.
+
+ * setpci.man: The documentation was inconsistent on what should -D do.
+ Document the new behaviour.
+
+ * pciutils.h, common.c, setpci.c: Introduced a NONRET macro encapsulating
+ the GCC specific __attribute__((noreturn)) and killed the hack with
+ redefining __attribute__ on non-GCC compilers.
+
+ * Makefile: Added missing dependencies. Parallel builds work now.
+ Problem reported by Andreas Haumer <andreas@xss.co.at>, but I chose
+ a different fix.
+
+ * Makefile (MANDIR): Use `:=' instead of `=' to avoid executing the shell
+ command every time $(MANDIR) is referenced.
+
+ * lspci.c (main): The error message for `lspci -s' incorrectly mentioned
+ a `-f' switch. Reported by Steve Finney <Steve.Finney@SpirentCom.COM>.
+
+ * lib/generic.c: Removed memory leak in pci_generic_bus_scan().
+ Reported by Gary Parnes <gary_parnes@terago.com>.
+
+ * Replaced obsolete syntax of __attribute__((unused)) in the middle of
+ parameter declarations (which is no longer supported by GCC 3.1) by the
+ current syntax (attribute at the end). Thanks to pixel@mandrakesoft.com
+ for reporting this problem.
+
+ * Removed CVS $Id$ tags from all files.
+
+ * Makefile: Added some more warnings.
+
+ * setpci.c: Cleaned up mask/value code.
+
+2003-12-08 Thayne Harbaugh <tharbaugh@lnxi.com>
+
+ * setpci.c: Individual bits to be set can be specified as <value>:<mask>.
+
+2003-11-29 Martin Mares <mj@ucw.cz>
+
+ * Imported the pciutils sources to my Arch repository. Good-bye, CVS.
+
+2003-01-04 Martin Mares <mj@ucw.cz>
+
+ * Released as 2.1.11.
+
+ * Makefile: Changed configuration of installation directories --
+ all paths are now set at the top of the Makefile instead of being
+ scattered between the installation rules. The default installation
+ now goes always to /usr/local regardless of the OS as most distributions
+ already contain some version of pciutils and we don't want custom
+ installations to interfere with the default ones.
+
+ * Makefile: Removed a couple of ancient install hacks: we no longer
+ try to avoid overwriting a newer pci.ids file (users are now expected
+ to use update-ids) and we don't try to remove /etc/pci.ids (a long time
+ has passed since the last version which used it).
+
+ * Makefile: Paths to pci.ids in man pages automatically get the right path.
+
+ * Added the update-ids utility.
+
+ * lib: Removed partially implemented "syscall" access method which will
+ probably never be needed.
+
+2002-12-27 Martin Mares <mj@ucw.cz>
+
+ * lib/nbsd-libpci.c: Cleaned up and hopefully made it endian safe.
+
+ * lib/generic.c (pci_generic_scan_bus): Added work-around for devices with
+ discontiguous numbering of functions. This is already present in the Linux
+ kernel for several years, but I forgot to update pciutils as well.
+
+2002-12-26 Martin Mares <mj@ucw.cz>
+
+ * lib/header.h, lspci.c: Dump AGP3 flags and speeds.
+
+ * lib/pci.h, Makefile: Removed HAVE_OWN_HEADER_H. Always use our own header,
+ there is no reason to prefer the kernel version.
+
+ * lib/proc.c (proc_scan): Don't forget to initialize hdrtype.
+
+ * Added preliminary version of NetBSD support by Quentin Garnier
+ <netbsd@quatriemek.com>.
+
+2002-04-06 Martin Mares <mj@ucw.cz>
+
+ * lspci.c: Mention "-xxx" in the help.
+
+2002-03-30 Martin Mares <mj@ucw.cz>
+
+ * Released as 2.1.10.
+
+ * Removed pci.ids from the CVS as they are now maintained separately.
+ They are still included in the tarball, but if you are building pciutils
+ from CVS sources or you want to get a newer ID file than the one distributed,
+ just use "make update-ids" to download the most recent snapshot from
+ pciids.sf.net.
+
+ * Makefile, README: Updated accordingly.
+
+ * Makefile: Added a couple of maintenance targets.
+
+ * maint/*: Maintainer's utilities now reside here (present only in CVS,
+ not in the tarball).
+
+ * lib/names.c (parse_name_list): End-of-line comments are no longer
+ supported. Hashes are now perfectly valid in all names and they start
+ a comment only at the start of the line.
+
2002-03-26 Martin Mares <mj@ucw.cz>
* README: Rewritten.
(show_htype2): Stub routine.
(scan_config): Write sensible error message if the kernel denies reading of
upper part of the PCI config space.
-