]> mj.ucw.cz Git - pciutils.git/blobdiff - ChangeLog
lspci: Add support for CXL GPF Device DVSEC
[pciutils.git] / ChangeLog
index dae416d247d1550bb1ced159f1918949d026a918..f5852d7a3c7ce3cbee96d683981adb70905b2631 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,519 @@
+2022-04-18  Martin Mares <mj@ucw.cz>
+
+       * Released as 3.8.0.
+
+       * Filters can now match devices based on partially specified
+         class code and also on the programming interface.
+
+       * Reporting of link speeds, power limits, and virtual function tags
+         has been updated to the current PCIe specification.
+
+       * We decode the Data Object Exchange capability.
+
+       * Bus mapping mode works in non-zero domains.
+
+       * pci_fill_info() can fetch more fields: bridge bases, programming
+         interface, revision, subsystem vendor and device ID, OS driver,
+         and also parent bridge. Internally, the implementation was rewritten,
+         significantly reducing the number of corner cases to be handled.
+
+       * The Windows port was revived and greatly improved by Pali Rohár.
+         It requires less magic to compile. More importantly, it runs on both
+         old and recent Windows systems (see README.Windows for details).
+
+       * Added a new Windows back-end using the cfgmgr32 interface.
+         It does not provide direct access to the configuration space,
+         but basic information about the device is reported via pci_fill_info().
+         For back-ends of this type, we now provide an emulated read-only
+         config space.
+
+       * If the configuration space is not readable for some reason
+         (e.g., the cfgmgr32 back-end, but also badly implemented sleep mode
+         of some devices), lspci prints only information provided by the OS.
+
+       * The Hurd back-end was greatly improved thanks to Joan Lledó.
+
+       * Various minor bug fixes and improvements.
+
+       * We officially require a working C99 compiler. Sorry, MSVC.
+
+       * As usually, updated pci.ids to the current snapshot of the database.
+
+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.
 2009-01-18  Martin Mares <mj@ucw.cz>
 
        * Released as 3.1.0.
 
        * `setpci --version' now works properly.
 
 
        * `setpci --version' now works properly.
 
-       * `setpci --dumpregs' prints a table of all known name of
+       * `setpci --dumpregs' prints a table of all known names of
        registers and capabilities. This replaces the table of registers
        in the setpci man page.
 
        registers and capabilities. This replaces the table of registers
        in the setpci man page.
 
 
        * Makefile: stripping of the binaries during installation can be
        overridden by the STRIP variable.
 
        * 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.
 
        * lib/types.h: We use the integer types from <stdint.h> if the
        compiler claims C99 support.
 
 
 2007-08-31  Martin Mares <mj@ucw.cz>
 
 
 2007-08-31  Martin Mares <mj@ucw.cz>
 
-       * Makefile, lib/Makefile: `ar' and `ranlib' can be overriden to allow
+       * Makefile, lib/Makefile: `ar' and `ranlib' can be overridden to allow
        cross-compilation.
 
 2007-08-27  Martin Mares  <mj@ucw.cz>
        cross-compilation.
 
 2007-08-27  Martin Mares  <mj@ucw.cz>
        is not supported by all C libraries.
 
        * Makefile: Always enter the lib directory (remember that we don't have
        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
+       full dependencies 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
        thing to rewrite some day).
 
        * lib/sysfs.c: Added Linux sysfs access method based on the patch
@@ -1385,7 +1901,7 @@ Wed Jul  7 00:55:48 1999  Martin Mares  <mj@albireo.ucw.cz>
 
        * lspci.c (show_msi): Added dumping of the MSI capability.
        (show_slotid): The same for SlotID capability.
 
        * lspci.c (show_msi): Added dumping of the MSI capability.
        (show_slotid): The same for SlotID capability.
-       (show_caps): Seperated capability dumping, because it should
+       (show_caps): Separated capability dumping, because it should
        be used for both htype0 and htype1. Even PCI 2.2 doesn't mention
        layout of htype2, so I'm a bit unsure about it wrt capabilities
        -- they at least have to live somewhere else since address 0x34
        be used for both htype0 and htype1. Even PCI 2.2 doesn't mention
        layout of htype2, so I'm a bit unsure about it wrt capabilities
        -- they at least have to live somewhere else since address 0x34
@@ -1500,7 +2016,7 @@ Thu Jan 28 20:54:16 1999  Martin Mares  <mj@albireo.ucw.cz>
        is mainly guesswork based on DEC/Intel 21153 bridge specs
        since I don't have the PCI Power Management document).
 
        is mainly guesswork based on DEC/Intel 21153 bridge specs
        since I don't have the PCI Power Management document).
 
-       * lspci.c: Replaced numerous occurences of (x & flag) ? '+' : '-'
+       * lspci.c: Replaced numerous occurrences of (x & flag) ? '+' : '-'
        by FLAG macro.
 
        * lspci.c: Added bridge checks to bus mapping code.
        by FLAG macro.
 
        * lspci.c: Added bridge checks to bus mapping code.
@@ -1532,11 +2048,11 @@ Sun Jan 24 22:10:36 1999  Martin Mares  <mj@albireo.ucw.cz>
        * lib/header.h: Until kernel adopts new layout of PCI
        includes (i.e., separate declaration of header structure,
        functions and device IDs), which is not going to happen
        * lib/header.h: Until kernel adopts new layout of PCI
        includes (i.e., separate declaration of header structure,
        functions and device IDs), which is not going to happen
-       before 2.3, we'll use our own definiton of the header.
+       before 2.3, we'll use our own definition of the header.
 
        * lspci.c (show_verbose): Display `Cap' flag in device status.
 
 
        * lspci.c (show_verbose): Display `Cap' flag in device status.
 
-       * lspci.c (show_htype0): Display capability lists whereever
+       * lspci.c (show_htype0): Display capability lists wherever
        available. The only capability name we recognize now is `AGP'.
        Unfortunately, capabilities are stored in device-dependent
        portion of the configuration space and are thus available
        available. The only capability name we recognize now is `AGP'.
        Unfortunately, capabilities are stored in device-dependent
        portion of the configuration space and are thus available