+2006-07-30 Martin Mares <mj@ucw.cz>
+
+ * lib/i386-io-hurd.h: Ask the kernel for I/O port access appropriately.
+ Contributed by Thomas Schwinge and Samuel Thibault.
+
+ * lib/i386-ports.c: Define _GNU_SOURCE, it's needed by the Hurd module.
+
+ * lib/header.h: Whitespace cleanups.
+
+ * lib/i386-io-windows.h: Fixed indentation and spelling.
+
+ * README.Windows: Mention that WinIO.dll is needed and where to get it.
+
+2006-06-27 Martin Mares <mj@ucw.cz>
+
+ * lib/Makefile, Makefile: Added rules for building and cleaning the example.
+
+ * lib/example.c: Show how to use PCI_FILL_CLASS and used another register
+ for demonstrating the config space accesses. The example is still very
+ incomplete, though.
+
+ * lib/pci.h, lib/generic.c: Added PCI_FILL_CLASS.
+
+ * lib/sysfs.c: Fetch device ID and class from sysfs, because they can
+ be modified by kernel fixups.
+
+ * lspci.c: Use PCI_FILL_CLASS. Thanks to Matthew Willcox for the patch.
+
+2006-06-03 Martin Mares <mj@ucw.cz>
+
+ * lspci.c: Introduced the -nn switch. Thanks to David N. Welton
+ for the idea.
+
+ * lib/names.c (pci_lookup_name): Introduced PCI_LOOKUP_MIXED and
+ cleaned up the name selection code.
+
+ * lib/names.c (pci_lookup_name): If PCI_LOOKUP_NO_NUMBERS is given,
+ pci_access->numeric_ids is ignored.
+
+ * lib/names.c (pci_lookup_name): When class is identified and
+ subclass isn't, display class name and subclass number.
+
+2006-05-31 Martin Mares <mj@ucw.cz>
+
+ * setpci.c (main): Don't crash when an invalid width is specified.
+
+ * lspci.c, setpci.c, common.c: die() now uses the right program
+ name when printing an error message.
+
+2006-05-19 Martin Mares <mj@ucw.cz>
+
+ * README: Mention the public GIT tree.
+
+ * README: Updated the list of ports.
+
+2006-05-10 Martin Mares <mj@ucw.cz>
+
+ * lib/configure, lib/fbsd-device.c: Added support for GNU/kFreeBSD.
+ Thanks to Petr Salinger for the patch.
+
+2006-05-05 Martin Mares <mj@ucw.cz>
+
+ * Released as 2.2.3.
+
+ * lspci.c (scan_device): The -D switch didn't work as intended
+ in -m mode.
+
+2006-05-05 Martin Mares <mj@ucw.cz>
+
+ * Released as 2.2.2.
+
+ * pci.ids: Updated to the current database snapshot.
+
+ * 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.