-2008-02-17 Martin Mares <mj@ucw.cz>
+2020-05-31 Martin Mares <mj@ucw.cz>
+
+ * Released as 3.7.0.
+
+ * Added or improved the following capabilities: Designated Vendor-Specific,
+ Compute eXpress Link, Resizable BARs, VF Resizable BARs, Link
+ Capabilities 2, Link Status 2.
+
+ * On Linux, lspci can show IOMMU groups.
+
+ * setpci can be asked to skip bus scan and operate on a device
+ completely specified by its domain/bus/dev/func address. This
+ involved major internal cleanup.
+
+ * The above feature of setpci uses the pci_get_dev() function,
+ which obtains a struct pci_dev without doing a bus scan. This was
+ always possible, but apparently little used, because back-ends
+ frequently choked when operating on such devices. Fixed a lot
+ of minor bugs related to this.
+
+ * Also, back-ends which do not support domains now correctly fail when
+ trying to access devices outside domain 0.
+
+ * Semantics of pci_fill_info() and pci_dev->known_fields was underspecified,
+ which lead to inconsistencies between back-ends. Improved documentation
+ to give a more precise definition and updated all back-ends to conform
+ to it. Most importantly, pci_dev->known_fields shows all fields requested
+ over the lifetime of the pci_dev, but never those which are not supported
+ by the back-end.
+
+ * As usually, updated pci.ids to the current snapshot of the database.
+
+2020-01-25 Martin Mares <mj@ucw.cz>
+
+ * Released as 3.6.4.
+
+ * A new back-end for the GNU Hurd was contributed by Joan Lledó.
+
+ * When printing VPD item identifiers, non-ASCII characters are escaped.
+
+2020-01-22 Martin Mares <mj@ucw.cz>
+
+ * Released as 3.6.3.
+
+ * `lspci -t' (tree mode) can be combined with `-s' to show a sub-tree.
+ We also fixed potential buffer overflows in the tree dumper.
+
+ * Cleaned messy code for dumping of I/O, memory, and ROM regions.
+ This helped fixing a bug, which caused some 64-bit regions to be
+ reported as virtual. All flags are now printed after the address
+ (previously, "[virtual]" and "[enhanced]" were before it for no good
+ reason).
+
+ * Added pci_find_cap_nr() to the library, which handles capabilities
+ which occur multiple times in a single device.
+
+ * Minor improvements in printing of PCIe capabilities.
+
+ * We now decode the Multicast and Secondary PCI Express extended
+ capabilities.
+
+ * The list of capability names available to setpci was updated.
+
+ * Minor bugs were fixed in FreeBSD and Solaris ports.
+
+ * We now prefer HTTPS URLs in all documentation
+
+ * The pci.ids file has a man page.
+
+ * As usually, updated pci.ids to the current snapshot of the database.
+
+2018-08-12 Martin Mares <mj@ucw.cz>
+
+ * Released as 3.6.2.
+
+ * Added "-P" and "-PP" switches to lspci, which display the path
+ through bridges to each device.
+
+ * Fixed a couple of bugs in computation of bus topology. It was
+ previously used only for the tree display, but we re-use it for
+ computing the paths.
+
+ * As usually, updated pci.ids to the current snapshot of the database.
+
+2018-07-12 Martin Mares <mj@ucw.cz>
+
+ * Released as 3.6.1.
+
+ * Fixed compilation issues on Linux systems with MUSL libc.
+
+2018-06-30 Martin Mares <mj@ucw.cz>
+
+ * Released as 3.6.0.
+
+ * BARs reported by the OS, but not set on the device itself are
+ reliably marked with "[virtual]".
+
+ * Library: Introduced a generic mechanism of string properties. This
+ avoids lots of special cases and makes ABI compatibility easier.
+
+ * On Linux systems with OpenFirmware, report corresponding device tree nodes
+ as device properties.
+
+ * VPD decoder knows several non-standard extensions.
+
+ * When PCIe link speed is less than the maximum supported by the
+ device, it is explicitly marked as "downgraded".
+
+ * Several new capabilities are not decoded yet, but at least their
+ names are printed.
+
+ * The Null capability is easily decoded.
+
+ * Formatting of several capabilities was cleaned up.
+
+ * The VGA16 bit in the bridge control register is now supported.
+
+ * Added a port to SylixOS. Thanks to YuJian Gong for contribution.
+
+ * Added a port to DOS/DJGPP. Thanks to Rudolf Marek for contribution.
+
+ * The order in which back-ends are probed was decoupled from the
+ internal back-end IDs. This helps, because new back-ends must have
+ their ID allocated at the end to keep the ABI, but they might need
+ to be probed earlier.
+
+ * The fbsd-device back-end should work again.
+
+ * Fixed a couple of bugs. Most notably, DeviceName was not printed.
+
+ * As usually, updated pci.ids to the current snapshot of the database.
+
+2017-11-17 Martin Mares <mj@ucw.cz>
+
+ * Released as 3.5.6.
+
+ * Improvements of the FreeBSD back-end: read-only access for non-root,
+ support DragonFly BSD, support extended config space.
+
+ * MN VPD keyword is decoded correctly.
+
+ * As usually, updated pci.ids to the current snapshot of the database.
+
+2017-07-05 Martin Mares <mj@ucw.cz>
+
+ * Released as 3.5.5.
+
+ * Better decoding of AER capability.
+
+ * "Slot Implemented" flag is decoded for PCI/PCI-X to PCIe bridges.
+
+ * Minor fixes of decoding other capabilities.
+
+ * As usually, updated pci.ids to the current snapshot of the database.
+
+2017-02-25 Martin Mares <mj@ucw.cz>
+
+ * Released as 3.5.4.
+
+ * Previous version broke compilation on systems, for which lib/types.h
+ did not provide a 64-bit integer type. It is provided everywhere now.
+
+2017-02-15 Martin Mares <mj@ucw.cz>
+
+ * Released as 3.5.3.
+
+ * When lspci looks for Linux kernel modules, it uses the default
+ path to module directory provided by libkmod. Previously,
+ it tried to construct the path explicitly, which need not
+ work on all systems.
+
+ * Improved formatting of memory and I/O ranges behind a bridge.
+
+ * PCIe link capabilities now display GEN4 speed (16GT/s).
+
+ * PCIe device capabilities now show bits related to atomic operations.
+ Thanks to Satanand Burla for a patch.
+
+ * As usually, updated pci.ids to the current snapshot of the database.
+
+2016-10-03 Martin Mares <mj@ucw.cz>
+
+ * Released as 3.5.2.
+
+ * The L1 power management capability is now decoded more
+ thoroughly. Thanks to Rajat Jain for the patch.
+
+ * The table of configuration registers used by setpci
+ had a bug in the definition of SUBSYSTEM_VENDOR_ID.
+
+2016-05-22 Martin Mares <mj@ucw.cz>
+
+ * Released as 3.5.1.
+
+ * Fixed symbol versioning of pci_init().
+
+2016-05-19 Martin Mares <mj@ucw.cz>
+
+ * Released as 3.5.0.
+
+ * New capabilities decoded: Downstream Port Containment,
+ Precision Time Measurement. Thanks to Keith Busch and
+ Jonathan Yong.
+
+ * Domain numbers extended to 31 bits. This will be used by the
+ Linux kernel on some machines in near future.
+
+ * Enhanced allocation regions are now decoded on Linux.
+
+ * The NetBSD back-end supports PCIe extended configuration space.
+
+ * Updated pci.ids to the current snapshot of the database.
+
+2016-01-03 Martin Mares <mj@ucw.cz>
+
+ * Released as 3.4.1.
+
+ * New capabilities decoded: Process Address Space, Page Request
+ Interface, Enhanced Allocation. Thanks to David Daney and
+ David Woodhouse.
+
+ * DevCap SlotPowerLimit is now decoded for all components with
+ upstream ports.
+
+ * Database mirror at SourceForge moved to GitHub.
+
+ * Updated pci.ids to the current snapshot of the database.
+
+2015-09-14 Martin Mares <mj@ucw.cz>
+
+ * Released as 3.4.0.
+
+ * On Linux, we report NUMA nodes of devices.
+
+ * The sysfs back-end does not die on read errors
+ of optional attributes. Instead, a warning is produced.
+
+ * Fixed several minor bugs.
+
+ * Updated pci.ids to the current snapshot of the database.
+
+2015-04-09 Martin Mares <mj@ucw.cz>
+
+ * Released as 3.3.1.
+
+ * Removed hacks for backward compatibility with Linux libc5,
+ which were breaking newer non-glibc Linux systems. Thanks
+ to Felix Janda.
+
+ * Display VirtIO vendor-specific capability. Patch by Gerd
+ Hoffmann.
+
+ * Fixed memory leak in name cache.
+
+ * Updated pci.ids to the current snapshot of the database.
+
+2014-11-10 Martin Mares <mj@ucw.cz>
+
+ * Released as 3.3.0.
+ (celebrating a one-year anniversary of the previous version :))
+
+ * Device names exported by BIOS are displayed on Linux.
+
+ * On Linux systems, HWDB is used to look up device names
+ when our ID database gives no match. (More precisely,
+ HWDB is consulted after local pci.ids, but before using
+ network to query online pci.ids.) Thanks to Tom Gundersen
+ for the initial patch.
+
+ * Added experimental back-end for OS X / Darwin. Thanks to
+ Richard Yao for providing it.
+
+ * Filters now support matching by device class. Original
+ patch by Matthew Wilcox, wrappers for ABI compatibility
+ by me.
+
+ * Interrupt Pin and Interrupt Line registers are displayed
+ for bridge devices, too.
+
+ * Several portability bugs have been fixed.
+
+ * Several typos have been fixed. Also, use of questionable
+ constructs in man pages has been reduced.
+
+ * PCIe link capabilities now include the ASPMOptComp bit.
+
+ * The "CRS Software Visibility" bit is now decoded properly.
+
+ * Updated pci.ids to the current snapshot of the database.
+
+2013-11-10 Martin Mares <mj@ucw.cz>
+
+ * Released as 3.2.1.
+
+ * CardBus bridge capabilities are displayed.
+
+ * PCIe L1 PM substates are decoded.
+
+ * Various bugs were fixed in decoding of PCIe capabilities.
+
+ * The sysfs back-end does not spit out unnecessary warnings when
+ empty slots report only a partial device address. This actually
+ happens on IBM pSeries.
+
+ * Updated pci.ids to the today's snapshot of the database.
+
+2013-04-19 Martin Mares <mj@ucw.cz>
+
+ * Released as 3.2.0.
+
+ * On newer Linux systems, we use libkmod to look up kernel modules
+ (modules.pcimap no longer exists). To facilitate this, libpci
+ is able to look up module aliases in sysfs.
+
+ * Various minor bug fixes.
+
+ * Updated pci.ids to the today's snapshot of the database.
+
+2012-06-25 Martin Mares <mj@ucw.cz>
+
+ * Released as 3.1.10.
+
+ * Decoding of LTR/OBFF in PCIe capabilities.
+
+ * Various minor bug fixes.
+
+ * Updated pci.ids to the today's snapshot of the database.
+
+2012-01-14 Martin Mares <mj@ucw.cz>
+
+ * Released as 3.1.9.
+
+ * Updated README.
+
+ * Wherever we mention the PCI ID database, we now refer to
+ http://pci-ids.ucw.cz/ and the sf.net site is mentioned only
+ as a mirror. This includes update-pciids.
+
+ * Decode PCIe Gen 3 speeds and link status fields.
+
+ * Various minor bug fixes.
+
+ * Updated pci.ids to the today's snapshot of the database.
+
+2011-10-02 Martin Mares <mj@ucw.cz>
+
+ * Released as 3.1.8.
+
+ * More capabilities: Transaction Processing Hints, Latency Tolerance
+ Reporting. Thanks to Jesse Barnes.
+
+ * Added BeOS and Haiku ports. Contributed by Francois Revol.
+
+ * pciutils.pc now uses Libs.private properly.
+
+ * When we format a name and it does not fit in the buffer, we truncate
+ it instead of returning "buffer too small" instead. This works on all
+ platforms with sane (i.e., C99-compatible) snprintf().
+
+ * Various minor bug fixes.
+
+ * Updated pci.ids to the today's snapshot of the database.
+
+2010-01-31 Martin Mares <mj@ucw.cz>
+
+ * Released as 3.1.7.
+
+ * Minor improvements and bug fixes in decoding of the Virtual Channel
+ capability.
+
+2010-01-24 Martin Mares <mj@ucw.cz>
+
+ * Released as 3.1.6.
+
+ * More capabilities decoded: Virtual Channel (except arbitration
+ tables), Root Complex Link, Vendor-Specific (header only), SATA HBA.
+
+ * All extended capabilities have their version displayed (-vv or more).
+
+2010-01-19 Martin Mares <mj@ucw.cz>
+
+ * Released as 3.1.5.
+
+ * Updated pci.ids to the today's snapshot of the database.
+
+ * When scanning extended capabilities, properly mask the lowest 2 bits,
+ which are currently reserved. This avoids unaligned access errors on
+ broken hardware (see tests/broken-ecaps).
+
+ * Large bar sizes are displayed in human-readable format (with units).
+ Thanks to Matthew Wilcox.
+
+ * Physical slot information is displayed correctly for multi-function cards.
+ Fixed by Matthew Wilcox.
+
+ * Fixed a couple of typos everywhere.
+
+ * Library: Fixed bugs in freeing of capabilities.
+
+ * Windows back-end compiles again.
+
+2009-08-14 Martin Mares <mj@ucw.cz>
+
+ * Released as 3.1.4.
+ (sorry that I have missed 22/7 and released it later :-))
+
+ * Updated pci.ids to the today's snapshot of the database.
+
+ * Fixed memory and file descriptor leak in the dump back-end.
+
+ * The SR-IOV capability decoder now prints the VF BAR's.
+ Patch by Chris Wright, cleaned up by me.
+
+ * On request of certain company's lawyers, we now include a copy
+ of the GPL with our package. It seems that the pciutils are getting
+ mature if the most important bug of the month was this one ;-)
+
+2009-07-04 Martin Mares <mj@ucw.cz>
+
+ * Released as 3.1.3.
+
+ * Updated pci.ids to the current snapshot of the database.
+
+ * The VPD parser now reports unknown and vendor-defined items
+ properly. It also stops on any item in unknown format, avoiding long
+ output on bogus VPD data. Thanks to Ben Hutchings and Matthew Wilcox.
+
+ * The MSI-X table size now matches the spec. Thanks to Michael S.
+ Tsirkin.
+
+ * The Power Management capability now includes the soft reset bit.
+ Thanks to Yu Zhao.
+
+ * Decoding of the Advanced Features capability has been added.
+ Thanks to Yu Zhao.
+
+ * The whole package compiles on GNU/kFreeBSD again.
+
+ The following patches have been contributed by Matthew Wilcox:
+
+ * The procfs back-end is able to cope with /proc/bus/pci
+ containing names with domains, which occur on sparc64 and
+ possibly other architectures due to a kernel bug.
+
+ * The sysfs back-end no longer complains when a slot address
+ is missing, which happens with old versions of Linux fakephp.
+
+ * The Device Serial Number capability is printed in the right
+ byte order.
+
+ * The MSI and MSI-X capabilities are printed in a prettier way.
+
+ * The tree output mode (`lspci -t') shows domain numbers only
+ at the root, which makes the output more compact.
+
+ * Updated documentation on the bus mapping mode (`lspci -M').
+
+2009-02-01 Martin Mares <mj@ucw.cz>
+
+ * Released as 3.1.2.
+
+ * Fixed another silly bug in the command-line parser of setpci.
+
+2009-01-30 Martin Mares <mj@ucw.cz>
+
+ * Released as 3.1.1.
+
+ * Updated pci.ids to the current snapshot of the database.
+
+ * The configure script now sets LC_ALL to avoid being fooled by
+ locale-dependent behavior of `tr'.
+
+ * The command-line parser of setpci did sometimes segfault on invalid
+ input. Thanks to Andreas Wiese for a fix.
+
+2009-01-18 Martin Mares <mj@ucw.cz>
+
+ * Released as 3.1.0.
+
+ * Updated pci.ids to the current snapshot of the database.
+
+ * The Cygwin backend now works on Windows Vista. Thanks to Jonathan
+ Kotta.
+
+ * Fixed a bug in decoding of the SR-IOV capability. Patch by Yu Zhao.
+
+ * Details of some PCIe capabilities are displayed only with -vv.
+
+ * When a BAR is reported by the OS, but not by the device (i.e.,
+ it is marked as [virtual] in lspci), the [disabled] flag is
+ suppressed, because it does not make sense in such cases.
+ Patch by Yu Zhao.
+
+2008-12-13 Martin Mares <mj@ucw.cz>
+
+ * The source code of lspci has been split to multiple files, hopefully
+ making it easier to maintain.
+
+ * The library and lspci now know about physical slot names. So far,
+ they are provided by the sysfs back-end only. Thanks go to Alex Chiang.
+
+ * When a device has the VPD (Vital Product Data) capability and the
+ VPD data are supplied by the OS, they are decoded and printed in the
+ verbose mode. This currently works only on Linux with the sysfs
+ back-end. Thanks to Ben Hutchings of Solarflare for the patch.
+
+ * `setpci --version' now works properly.
+
+ * `setpci --dumpregs' prints a table of all known names of
+ registers and capabilities. This replaces the table of registers
+ in the setpci man page.
+
+ * The dry-run mode of setpci gives better feedback.
+
+ * The setpci utility is now able to address registers stored in PCI
+ capabilities (actually it allows a more general form of relative
+ addressing).
+
+ * The library has gained functions for working with PCI capabilities.
+
+ * Address Translation Services capability is now decoded. Patch by
+ Yu Zhao.
+
+2008-11-09 Martin Mares <mj@ucw.cz>
+
+ * Released as 3.0.3.
+
+ * `lspci -k' now displays the subsystem ID, too. This makes `-k'
+ show everything needed to identify the device and the available
+ drivers, which was called for by many users.
+
+ * Fixed spelling of MSI. Patch by Matthew Wilcox.
+
+ * Better support for cross-compilation. Thanks to Alon Bar-Lev
+ for the patch.
+
+ * Fixed printing of the AER capability. Patch by Max Asbock.
+
+ * HT 1.02 capabilities are decoded as HT 1.03. Suggested by
+ Carl-Daniel Hailfinger.
+
+ * Fixed Cygwin build. Thanks to Steve Elliott for reporting the bug.
+
+ * Updated pci.ids to the current snapshot of the database.
+
+2008-09-19 Martin Mares <mj@ucw.cz>
+
+ * Released as 3.0.2.
+
+ * Fixed a minor bug in the configure script, which caused warnings
+ about redefinition of symbols during compilation.
+
+2008-09-11 Martin Mares <mj@ucw.cz>
+
+ * Released as 3.0.1.
+
+ * Updated pci.ids to the most recent snapshot.
+
+ * Added a Cygwin port. Patch by Christopher Voltz, ported to the
+ current tree by Martin Mares.
+
+ * Worked around compatibility problems with various default settings
+ of wget (we have to set --no-timestamping explicitly). Thanks to Ville
+ Skytta for pointing that out.
+
+ * Fixed printing of MSI capabilities. Thanks to Matthew Wilcox for
+ a patch.
+
+ * Added decoding of several PCI-X capabilities: device/link/slot 2,
+ Advanced Error Reporting, Access Control Services, Alternative Routing-ID,
+ Single Root I/O Virtualization. Thanks to Yu Zhao for patches.
+
+ * Fixed bug in filters which caused them to refuse vendor/device ID 0xffff.
+
+ * README: The linux-pci mailing list has moved to linux-pci@vger.kernel.org.
+
+ * Fixed several build problems: builds without PCI_USE_DNS on Linux
+ and with PCI_USE_DNS on Solaris and *BSD. Static library mode also
+ compiles again on old versions of GCC.
+
+2008-04-10 Martin Mares <mj@ucw.cz>
+
+ * Released as 3.0.0.
+
+ * Updated API and ABI version.
+
+2008-02-20 Martin Mares <mj@ucw.cz>
+
+ * Released as 2.99.1-alpha2.
+
+ * Changed the default domain for the DNS resolver.
+
+2008-02-18 Martin Mares <mj@ucw.cz>
+
+ * Released as 2.99.1-alpha1.
+
+ * The makefile system has been reworked. All configuration settings
+ are now passed to the configure script in environment variables,
+ allowing for easy tweaking in the top-level Makefile. All control
+ knobs are now described in the README.
+
+ * The libpci can be built as a shared library with properly restricted
+ symbol exports. Use `make SHARED=yes' to enable that or `make SHARED=local'
+ for a local testing build (with hardwired paths to the library, so that
+ it does not need installation).
+
+ * The example program has been moved from lib/example.c to the top-level
+ directory, because it should be built exactly as the other utilities
+ are. It has been also improved slightly to educate better.
* The i386-ports method is enabled on Linux/x86_64 as well.
* Makefile: stripping of the binaries during installation can be
overridden by the STRIP variable.
-
+
* lib/types.h: We use the integer types from <stdint.h> if the
compiler claims C99 support.