12024-02-18 Martin Mares <[email protected]> 2 3 * Will be released as 3.11.0. 4 5 * update-pciids now supports XZ compression. If libpci is configured 6 with support for compression, all downloaded files are recompressed 7 as gzip. Otherwise they are stored as plain text. 8 9 * update-pciids now sends itself as the User-Agent. 10 11 * Added a pcilmr utility for PCIe lane margining. Thanks to Nikita 12 Proshkin for contributing it. 13 14 * Re-factored access to i386 ports on all relevant platforms. 15 16 * Added i386 port access on OpenBSD. 17 18 * Linux systems without pread/pwrite are no longer supported 19 as they are hopefully long gone. This helps avoid the tricky check 20 for presence of pread which was found to fail on musl libc. 21 22 * Improved decoding of PCIe control and status registers. 23 24 * Decoding of CXL capabilities now supports up to CXL 3.0. 25 26 * lspci now displays interrupt message numbers consistently across 27 different capabilities. 28 29 * Cache of IDs resolved via DNS, which was located in ~/.pci-ids 30 by default, is now stored according to the XDG base directory 31 specification in $XDG_CACHE_HOME/pci-ids. 32 33 * All source files now have SPDX license identifiers. 34 35 * Internal: The "aux" fields of structs pci_access and pci_dev 36 reserved for use by back-ends were renamed to backend_data to better 37 reflect their meaning. 38 39 * As usually, various minor bug fixes and updated pci.ids. 40 412023-05-01 Martin Mares <[email protected]> 42 43 * Released as 3.10.0. 44 45 * Fixed bug in definition of versioned symbol aliases 46 in shared libpci, which made compiling with link-time 47 optimization fail. 48 49 * Filters now accept "0x..." syntax for backward compatibility. 50 51 * Windows: The cfgmgr32 back-end which provides the list of devices 52 can be combined with another back-end which provides access 53 to configuration space. 54 55 * ECAM (Enhanced Configuration Access Mechanism), which is defined 56 by the PCIe standard, is now supported. It requires root privileges, 57 access to physical memory, and also manual configuration on some 58 systems. 59 60 * lspci: Tree view now works on multi-domain systems. It now respects 61 filters properly. 62 63 * Last but not least, pci.ids were updated to the current snapshot 64 of the database. This includes overall cleanup of entries with 65 non-ASCII characters in their names -- such characters are allowed, 66 but only if they convey interesting information (e.g., umlauts 67 in German company names, but not the "registered trade mark" sign). 68 692022-11-20 Martin Mares <[email protected]> 70 71 * Released as 3.9.0. 72 73 * We decode Compute Express Link (CXL) capabilities. 74 75 * The tree mode of lspci is now compatible with filtering options. 76 77 * When setpci is used with a named register, it checks whether 78 the register is present in the particular header type. 79 80 * Linux: The intel-conf[12] back-ends prefer to use ioperm() instead 81 of iopl() to gain access to I/O ports. 82 83 * Windows: We have two new back-ends thanks to Pali Rohár. 84 One uses the NT SysDbg interface, the other uses kldbgdrv.sys 85 (which is a part of the Microsoft WinDbg tool). 86 87 * Windows: We support building libpci as a DLL. Also, Windows 88 binaries now include meta-data with version. 89 90 * Hurd: The Hurd back-end works again. 91 92 * mmio-conf1(-ext): Added a new back-end implementing the intel-conf1 93 interface over MMIO. This is useful on some ARM machines, but it 94 requires manual configuration of the MMIO addresses. 95 96 * As usually, updated pci.ids to the current snapshot of the database. 97 982022-04-18 Martin Mares <[email protected]> 99 100 * Released as 3.8.0. 101 102 * Filters can now match devices based on partially specified 103 class code and also on the programming interface. 104 105 * Reporting of link speeds, power limits, and virtual function tags 106 has been updated to the current PCIe specification. 107 108 * We decode the Data Object Exchange capability. 109 110 * Bus mapping mode works in non-zero domains. 111 112 * pci_fill_info() can fetch more fields: bridge bases, programming 113 interface, revision, subsystem vendor and device ID, OS driver, 114 and also parent bridge. Internally, the implementation was rewritten, 115 significantly reducing the number of corner cases to be handled. 116 117 * The Windows port was revived and greatly improved by Pali Rohár. 118 It requires less magic to compile. More importantly, it runs on both 119 old and recent Windows systems (see README.Windows for details). 120 121 * Added a new Windows back-end using the cfgmgr32 interface. 122 It does not provide direct access to the configuration space, 123 but basic information about the device is reported via pci_fill_info(). 124 For back-ends of this type, we now provide an emulated read-only 125 config space. 126 127 * If the configuration space is not readable for some reason 128 (e.g., the cfgmgr32 back-end, but also badly implemented sleep mode 129 of some devices), lspci prints only information provided by the OS. 130 131 * The Hurd back-end was greatly improved thanks to Joan Lledó. 132 133 * Various minor bug fixes and improvements. 134 135 * We officially require a working C99 compiler. Sorry, MSVC. 136 137 * As usually, updated pci.ids to the current snapshot of the database. 138 1392020-05-31 Martin Mares <[email protected]> 140 141 * Released as 3.7.0. 142 143 * Added or improved the following capabilities: Designated Vendor-Specific, 144 Compute eXpress Link, Resizable BARs, VF Resizable BARs, Link 145 Capabilities 2, Link Status 2. 146 147 * On Linux, lspci can show IOMMU groups. 148 149 * setpci can be asked to skip bus scan and operate on a device 150 completely specified by its domain/bus/dev/func address. This 151 involved major internal cleanup. 152 153 * The above feature of setpci uses the pci_get_dev() function, 154 which obtains a struct pci_dev without doing a bus scan. This was 155 always possible, but apparently little used, because back-ends 156 frequently choked when operating on such devices. Fixed a lot 157 of minor bugs related to this. 158 159 * Also, back-ends which do not support domains now correctly fail when 160 trying to access devices outside domain 0. 161 162 * Semantics of pci_fill_info() and pci_dev->known_fields was underspecified, 163 which lead to inconsistencies between back-ends. Improved documentation 164 to give a more precise definition and updated all back-ends to conform 165 to it. Most importantly, pci_dev->known_fields shows all fields requested 166 over the lifetime of the pci_dev, but never those which are not supported 167 by the back-end. 168 169 * As usually, updated pci.ids to the current snapshot of the database. 170 1712020-01-25 Martin Mares <[email protected]> 172 173 * Released as 3.6.4. 174 175 * A new back-end for the GNU Hurd was contributed by Joan Lledó. 176 177 * When printing VPD item identifiers, non-ASCII characters are escaped. 178 1792020-01-22 Martin Mares <[email protected]> 180 181 * Released as 3.6.3. 182 183 * `lspci -t' (tree mode) can be combined with `-s' to show a sub-tree. 184 We also fixed potential buffer overflows in the tree dumper. 185 186 * Cleaned messy code for dumping of I/O, memory, and ROM regions. 187 This helped fixing a bug, which caused some 64-bit regions to be 188 reported as virtual. All flags are now printed after the address 189 (previously, "[virtual]" and "[enhanced]" were before it for no good 190 reason). 191 192 * Added pci_find_cap_nr() to the library, which handles capabilities 193 which occur multiple times in a single device. 194 195 * Minor improvements in printing of PCIe capabilities. 196 197 * We now decode the Multicast and Secondary PCI Express extended 198 capabilities. 199 200 * The list of capability names available to setpci was updated. 201 202 * Minor bugs were fixed in FreeBSD and Solaris ports. 203 204 * We now prefer HTTPS URLs in all documentation 205 206 * The pci.ids file has a man page. 207 208 * As usually, updated pci.ids to the current snapshot of the database. 209 2102018-08-12 Martin Mares <[email protected]> 211 212 * Released as 3.6.2. 213 214 * Added "-P" and "-PP" switches to lspci, which display the path 215 through bridges to each device. 216 217 * Fixed a couple of bugs in computation of bus topology. It was 218 previously used only for the tree display, but we re-use it for 219 computing the paths. 220 221 * As usually, updated pci.ids to the current snapshot of the database. 222 2232018-07-12 Martin Mares <[email protected]> 224 225 * Released as 3.6.1. 226 227 * Fixed compilation issues on Linux systems with MUSL libc. 228 2292018-06-30 Martin Mares <[email protected]> 230 231 * Released as 3.6.0. 232 233 * BARs reported by the OS, but not set on the device itself are 234 reliably marked with "[virtual]". 235 236 * Library: Introduced a generic mechanism of string properties. This 237 avoids lots of special cases and makes ABI compatibility easier. 238 239 * On Linux systems with OpenFirmware, report corresponding device tree nodes 240 as device properties. 241 242 * VPD decoder knows several non-standard extensions. 243 244 * When PCIe link speed is less than the maximum supported by the 245 device, it is explicitly marked as "downgraded". 246 247 * Several new capabilities are not decoded yet, but at least their 248 names are printed. 249 250 * The Null capability is easily decoded. 251 252 * Formatting of several capabilities was cleaned up. 253 254 * The VGA16 bit in the bridge control register is now supported. 255 256 * Added a port to SylixOS. Thanks to YuJian Gong for contribution. 257 258 * Added a port to DOS/DJGPP. Thanks to Rudolf Marek for contribution. 259 260 * The order in which back-ends are probed was decoupled from the 261 internal back-end IDs. This helps, because new back-ends must have 262 their ID allocated at the end to keep the ABI, but they might need 263 to be probed earlier. 264 265 * The fbsd-device back-end should work again. 266 267 * Fixed a couple of bugs. Most notably, DeviceName was not printed. 268 269 * As usually, updated pci.ids to the current snapshot of the database. 270 2712017-11-17 Martin Mares <[email protected]> 272 273 * Released as 3.5.6. 274 275 * Improvements of the FreeBSD back-end: read-only access for non-root, 276 support DragonFly BSD, support extended config space. 277 278 * MN VPD keyword is decoded correctly. 279 280 * As usually, updated pci.ids to the current snapshot of the database. 281 2822017-07-05 Martin Mares <[email protected]> 283 284 * Released as 3.5.5. 285 286 * Better decoding of AER capability. 287 288 * "Slot Implemented" flag is decoded for PCI/PCI-X to PCIe bridges. 289 290 * Minor fixes of decoding other capabilities. 291 292 * As usually, updated pci.ids to the current snapshot of the database. 293 2942017-02-25 Martin Mares <[email protected]> 295 296 * Released as 3.5.4. 297 298 * Previous version broke compilation on systems, for which lib/types.h 299 did not provide a 64-bit integer type. It is provided everywhere now. 300 3012017-02-15 Martin Mares <[email protected]> 302 303 * Released as 3.5.3. 304 305 * When lspci looks for Linux kernel modules, it uses the default 306 path to module directory provided by libkmod. Previously, 307 it tried to construct the path explicitly, which need not 308 work on all systems. 309 310 * Improved formatting of memory and I/O ranges behind a bridge. 311 312 * PCIe link capabilities now display GEN4 speed (16GT/s). 313 314 * PCIe device capabilities now show bits related to atomic operations. 315 Thanks to Satanand Burla for a patch. 316 317 * As usually, updated pci.ids to the current snapshot of the database. 318 3192016-10-03 Martin Mares <[email protected]> 320 321 * Released as 3.5.2. 322 323 * The L1 power management capability is now decoded more 324 thoroughly. Thanks to Rajat Jain for the patch. 325 326 * The table of configuration registers used by setpci 327 had a bug in the definition of SUBSYSTEM_VENDOR_ID. 328 3292016-05-22 Martin Mares <[email protected]> 330 331 * Released as 3.5.1. 332 333 * Fixed symbol versioning of pci_init(). 334 3352016-05-19 Martin Mares <[email protected]> 336 337 * Released as 3.5.0. 338 339 * New capabilities decoded: Downstream Port Containment, 340 Precision Time Measurement. Thanks to Keith Busch and 341 Jonathan Yong. 342 343 * Domain numbers extended to 31 bits. This will be used by the 344 Linux kernel on some machines in near future. 345 346 * Enhanced allocation regions are now decoded on Linux. 347 348 * The NetBSD back-end supports PCIe extended configuration space. 349 350 * Updated pci.ids to the current snapshot of the database. 351 3522016-01-03 Martin Mares <[email protected]> 353 354 * Released as 3.4.1. 355 356 * New capabilities decoded: Process Address Space, Page Request 357 Interface, Enhanced Allocation. Thanks to David Daney and 358 David Woodhouse. 359 360 * DevCap SlotPowerLimit is now decoded for all components with 361 upstream ports. 362 363 * Database mirror at SourceForge moved to GitHub. 364 365 * Updated pci.ids to the current snapshot of the database. 366 3672015-09-14 Martin Mares <[email protected]> 368 369 * Released as 3.4.0. 370 371 * On Linux, we report NUMA nodes of devices. 372 373 * The sysfs back-end does not die on read errors 374 of optional attributes. Instead, a warning is produced. 375 376 * Fixed several minor bugs. 377 378 * Updated pci.ids to the current snapshot of the database. 379 3802015-04-09 Martin Mares <[email protected]> 381 382 * Released as 3.3.1. 383 384 * Removed hacks for backward compatibility with Linux libc5, 385 which were breaking newer non-glibc Linux systems. Thanks 386 to Felix Janda. 387 388 * Display VirtIO vendor-specific capability. Patch by Gerd 389 Hoffmann. 390 391 * Fixed memory leak in name cache. 392 393 * Updated pci.ids to the current snapshot of the database. 394 3952014-11-10 Martin Mares <[email protected]> 396 397 * Released as 3.3.0. 398 (celebrating a one-year anniversary of the previous version :)) 399 400 * Device names exported by BIOS are displayed on Linux. 401 402 * On Linux systems, HWDB is used to look up device names 403 when our ID database gives no match. (More precisely, 404 HWDB is consulted after local pci.ids, but before using 405 network to query online pci.ids.) Thanks to Tom Gundersen 406 for the initial patch. 407 408 * Added experimental back-end for OS X / Darwin. Thanks to 409 Richard Yao for providing it. 410 411 * Filters now support matching by device class. Original 412 patch by Matthew Wilcox, wrappers for ABI compatibility 413 by me. 414 415 * Interrupt Pin and Interrupt Line registers are displayed 416 for bridge devices, too. 417 418 * Several portability bugs have been fixed. 419 420 * Several typos have been fixed. Also, use of questionable 421 constructs in man pages has been reduced. 422 423 * PCIe link capabilities now include the ASPMOptComp bit. 424 425 * The "CRS Software Visibility" bit is now decoded properly. 426 427 * Updated pci.ids to the current snapshot of the database. 428 4292013-11-10 Martin Mares <[email protected]> 430 431 * Released as 3.2.1. 432 433 * CardBus bridge capabilities are displayed. 434 435 * PCIe L1 PM substates are decoded. 436 437 * Various bugs were fixed in decoding of PCIe capabilities. 438 439 * The sysfs back-end does not spit out unnecessary warnings when 440 empty slots report only a partial device address. This actually 441 happens on IBM pSeries. 442 443 * Updated pci.ids to the today's snapshot of the database. 444 4452013-04-19 Martin Mares <[email protected]> 446 447 * Released as 3.2.0. 448 449 * On newer Linux systems, we use libkmod to look up kernel modules 450 (modules.pcimap no longer exists). To facilitate this, libpci 451 is able to look up module aliases in sysfs. 452 453 * Various minor bug fixes. 454 455 * Updated pci.ids to the today's snapshot of the database. 456 4572012-06-25 Martin Mares <[email protected]> 458 459 * Released as 3.1.10. 460 461 * Decoding of LTR/OBFF in PCIe capabilities. 462 463 * Various minor bug fixes. 464 465 * Updated pci.ids to the today's snapshot of the database. 466 4672012-01-14 Martin Mares <[email protected]> 468 469 * Released as 3.1.9. 470 471 * Updated README. 472 473 * Wherever we mention the PCI ID database, we now refer to 474 http://pci-ids.ucw.cz/ and the sf.net site is mentioned only 475 as a mirror. This includes update-pciids. 476 477 * Decode PCIe Gen 3 speeds and link status fields. 478 479 * Various minor bug fixes. 480 481 * Updated pci.ids to the today's snapshot of the database. 482 4832011-10-02 Martin Mares <[email protected]> 484 485 * Released as 3.1.8. 486 487 * More capabilities: Transaction Processing Hints, Latency Tolerance 488 Reporting. Thanks to Jesse Barnes. 489 490 * Added BeOS and Haiku ports. Contributed by Francois Revol. 491 492 * pciutils.pc now uses Libs.private properly. 493 494 * When we format a name and it does not fit in the buffer, we truncate 495 it instead of returning "buffer too small" instead. This works on all 496 platforms with sane (i.e., C99-compatible) snprintf(). 497 498 * Various minor bug fixes. 499 500 * Updated pci.ids to the today's snapshot of the database. 501 5022010-01-31 Martin Mares <[email protected]> 503 504 * Released as 3.1.7. 505 506 * Minor improvements and bug fixes in decoding of the Virtual Channel 507 capability. 508 5092010-01-24 Martin Mares <[email protected]> 510 511 * Released as 3.1.6. 512 513 * More capabilities decoded: Virtual Channel (except arbitration 514 tables), Root Complex Link, Vendor-Specific (header only), SATA HBA. 515 516 * All extended capabilities have their version displayed (-vv or more). 517 5182010-01-19 Martin Mares <[email protected]> 519 520 * Released as 3.1.5. 521 522 * Updated pci.ids to the today's snapshot of the database. 523 524 * When scanning extended capabilities, properly mask the lowest 2 bits, 525 which are currently reserved. This avoids unaligned access errors on 526 broken hardware (see tests/broken-ecaps). 527 528 * Large bar sizes are displayed in human-readable format (with units). 529 Thanks to Matthew Wilcox. 530 531 * Physical slot information is displayed correctly for multi-function cards. 532 Fixed by Matthew Wilcox. 533 534 * Fixed a couple of typos everywhere. 535 536 * Library: Fixed bugs in freeing of capabilities. 537 538 * Windows back-end compiles again. 539 5402009-08-14 Martin Mares <[email protected]> 541 542 * Released as 3.1.4. 543 (sorry that I have missed 22/7 and released it later :-)) 544 545 * Updated pci.ids to the today's snapshot of the database. 546 547 * Fixed memory and file descriptor leak in the dump back-end. 548 549 * The SR-IOV capability decoder now prints the VF BAR's. 550 Patch by Chris Wright, cleaned up by me. 551 552 * On request of certain company's lawyers, we now include a copy 553 of the GPL with our package. It seems that the pciutils are getting 554 mature if the most important bug of the month was this one ;-) 555 5562009-07-04 Martin Mares <[email protected]> 557 558 * Released as 3.1.3. 559 560 * Updated pci.ids to the current snapshot of the database. 561 562 * The VPD parser now reports unknown and vendor-defined items 563 properly. It also stops on any item in unknown format, avoiding long 564 output on bogus VPD data. Thanks to Ben Hutchings and Matthew Wilcox. 565 566 * The MSI-X table size now matches the spec. Thanks to Michael S. 567 Tsirkin. 568 569 * The Power Management capability now includes the soft reset bit. 570 Thanks to Yu Zhao. 571 572 * Decoding of the Advanced Features capability has been added. 573 Thanks to Yu Zhao. 574 575 * The whole package compiles on GNU/kFreeBSD again. 576 577 The following patches have been contributed by Matthew Wilcox: 578 579 * The procfs back-end is able to cope with /proc/bus/pci 580 containing names with domains, which occur on sparc64 and 581 possibly other architectures due to a kernel bug. 582 583 * The sysfs back-end no longer complains when a slot address 584 is missing, which happens with old versions of Linux fakephp. 585 586 * The Device Serial Number capability is printed in the right 587 byte order. 588 589 * The MSI and MSI-X capabilities are printed in a prettier way. 590 591 * The tree output mode (`lspci -t') shows domain numbers only 592 at the root, which makes the output more compact. 593 594 * Updated documentation on the bus mapping mode (`lspci -M'). 595 5962009-02-01 Martin Mares <[email protected]> 597 598 * Released as 3.1.2. 599 600 * Fixed another silly bug in the command-line parser of setpci. 601 6022009-01-30 Martin Mares <[email protected]> 603 604 * Released as 3.1.1. 605 606 * Updated pci.ids to the current snapshot of the database. 607 608 * The configure script now sets LC_ALL to avoid being fooled by 609 locale-dependent behavior of `tr'. 610 611 * The command-line parser of setpci did sometimes segfault on invalid 612 input. Thanks to Andreas Wiese for a fix. 613 6142009-01-18 Martin Mares <[email protected]> 615 616 * Released as 3.1.0. 617 618 * Updated pci.ids to the current snapshot of the database. 619 620 * The Cygwin backend now works on Windows Vista. Thanks to Jonathan 621 Kotta. 622 623 * Fixed a bug in decoding of the SR-IOV capability. Patch by Yu Zhao. 624 625 * Details of some PCIe capabilities are displayed only with -vv. 626 627 * When a BAR is reported by the OS, but not by the device (i.e., 628 it is marked as [virtual] in lspci), the [disabled] flag is 629 suppressed, because it does not make sense in such cases. 630 Patch by Yu Zhao. 631 6322008-12-13 Martin Mares <[email protected]> 633 634 * The source code of lspci has been split to multiple files, hopefully 635 making it easier to maintain. 636 637 * The library and lspci now know about physical slot names. So far, 638 they are provided by the sysfs back-end only. Thanks go to Alex Chiang. 639 640 * When a device has the VPD (Vital Product Data) capability and the 641 VPD data are supplied by the OS, they are decoded and printed in the 642 verbose mode. This currently works only on Linux with the sysfs 643 back-end. Thanks to Ben Hutchings of Solarflare for the patch. 644 645 * `setpci --version' now works properly. 646 647 * `setpci --dumpregs' prints a table of all known names of 648 registers and capabilities. This replaces the table of registers 649 in the setpci man page. 650 651 * The dry-run mode of setpci gives better feedback. 652 653 * The setpci utility is now able to address registers stored in PCI 654 capabilities (actually it allows a more general form of relative 655 addressing). 656 657 * The library has gained functions for working with PCI capabilities. 658 659 * Address Translation Services capability is now decoded. Patch by 660 Yu Zhao. 661 6622008-11-09 Martin Mares <[email protected]> 663 664 * Released as 3.0.3. 665 666 * `lspci -k' now displays the subsystem ID, too. This makes `-k' 667 show everything needed to identify the device and the available 668 drivers, which was called for by many users. 669 670 * Fixed spelling of MSI. Patch by Matthew Wilcox. 671 672 * Better support for cross-compilation. Thanks to Alon Bar-Lev 673 for the patch. 674 675 * Fixed printing of the AER capability. Patch by Max Asbock. 676 677 * HT 1.02 capabilities are decoded as HT 1.03. Suggested by 678 Carl-Daniel Hailfinger. 679 680 * Fixed Cygwin build. Thanks to Steve Elliott for reporting the bug. 681 682 * Updated pci.ids to the current snapshot of the database. 683 6842008-09-19 Martin Mares <[email protected]> 685 686 * Released as 3.0.2. 687 688 * Fixed a minor bug in the configure script, which caused warnings 689 about redefinition of symbols during compilation. 690 6912008-09-11 Martin Mares <[email protected]> 692 693 * Released as 3.0.1. 694 695 * Updated pci.ids to the most recent snapshot. 696 697 * Added a Cygwin port. Patch by Christopher Voltz, ported to the 698 current tree by Martin Mares. 699 700 * Worked around compatibility problems with various default settings 701 of wget (we have to set --no-timestamping explicitly). Thanks to Ville 702 Skytta for pointing that out. 703 704 * Fixed printing of MSI capabilities. Thanks to Matthew Wilcox for 705 a patch. 706 707 * Added decoding of several PCI-X capabilities: device/link/slot 2, 708 Advanced Error Reporting, Access Control Services, Alternative Routing-ID, 709 Single Root I/O Virtualization. Thanks to Yu Zhao for patches. 710 711 * Fixed bug in filters which caused them to refuse vendor/device ID 0xffff. 712 713 * README: The linux-pci mailing list has moved to [email protected]. 714 715 * Fixed several build problems: builds without PCI_USE_DNS on Linux 716 and with PCI_USE_DNS on Solaris and *BSD. Static library mode also 717 compiles again on old versions of GCC. 718 7192008-04-10 Martin Mares <[email protected]> 720 721 * Released as 3.0.0. 722 723 * Updated API and ABI version. 724 7252008-02-20 Martin Mares <[email protected]> 726 727 * Released as 2.99.1-alpha2. 728 729 * Changed the default domain for the DNS resolver. 730 7312008-02-18 Martin Mares <[email protected]> 732 733 * Released as 2.99.1-alpha1. 734 735 * The makefile system has been reworked. All configuration settings 736 are now passed to the configure script in environment variables, 737 allowing for easy tweaking in the top-level Makefile. All control 738 knobs are now described in the README. 739 740 * The libpci can be built as a shared library with properly restricted 741 symbol exports. Use `make SHARED=yes' to enable that or `make SHARED=local' 742 for a local testing build (with hardwired paths to the library, so that 743 it does not need installation). 744 745 * The example program has been moved from lib/example.c to the top-level 746 directory, because it should be built exactly as the other utilities 747 are. It has been also improved slightly to educate better. 748 749 * The i386-ports method is enabled on Linux/x86_64 as well. 750 7512008-02-13 Martin Mares <[email protected]> 752 753 * Released as 2.2.10-net2. 754 755 * Support for resolving of PCI ID's using DNS together with a local 756 cache of resolved entries has been added. See the `-q' and `-Q' options 757 of lspci. 758 759 * The library now has a generic system of settable parameters, which 760 also include settings of the DNS resolver and cache. An `-O' option 761 has been added to lspci and setpci to allow setting of these options. 762 763 * Configuration of the access methods are now specified by the new 764 parameter system, replacing the pci_access->method_params array. 765 766 * Access methods now also have sensible names and help texts and it 767 is possible to look up method ID by a name. 768 769 * An `-A' switch has been added to both lspci and setpci, allowing to 770 select an arbitrary access method. The `-P' switch (configure proc 771 backend) has been removed as it is no longer needed and I do not know 772 any its user. 773 774 * Several source files have been split for better maintainability 775 (most notably the resolving of ID's). 776 777 * Man pages and help texts have been updated. A new man page `pcilib(7)' 778 has been added and description of library options has been moved there. 779 780 * When an unknown device ID is encountered, we print `Device <id>' 781 instead of `Unknown device <id>'. It uses less space and it also 782 should reduce the number of inexperienced users complaining that 783 the device is not supported by the OS. To lookup up OS drivers, 784 use the `-k' option. 785 786 * PCI_LIB_VERSION has been bumped to 0x020299. 787 788 * Makefile: stripping of the binaries during installation can be 789 overridden by the STRIP variable. 790 791 * lib/types.h: We use the integer types from <stdint.h> if the 792 compiler claims C99 support. 793 7942008-02-11 Martin Mares <[email protected]> 795 796 * Released as 2.2.10. 797 798 * lspci.c, setpci.c: Cleaned up the list of options. 799 800 * lib/names.c: Fix displaying of errors reported by zlib. 801 Previously, the buffer containing the error message had 802 been deallocated by gzclose() before the message was printed. 803 8042008-01-07 Martin Mares <[email protected]> 805 806 * update-pciids.sh: Added quiet mode (-q). Clean up uncompressed 807 files left by previous versions of the pciutils. Patch by Mike 808 Frysinger. 809 810 * update-pciids.man: Mention the -q switch. 811 8122007-11-29 Martin Mares <[email protected]> 813 814 * lib/dump.c: Squashed compiler warnings about code with 815 no effect (there really were surplus *'s). 816 8172007-11-06 Martin Mares <[email protected]> 818 819 * Released as 2.2.9. 820 821 * lspci.c: Added a new switch `-k' which requests printing 822 of information on kernel drivers attached to each device 823 and on kernel modules reporting the ability to handle the 824 device. So far, this is supported only on Linux with the 825 sysfs back-end, so it is implemented internally in the lspci 826 instead of the libpci. Thanks to Anicka <[email protected]> 827 for help. 828 8292007-10-19 Martin Mares <[email protected]> 830 831 * Makefile, lib/Makefile: Moved -lz from LDFLAGS to LDLIBS. 832 Also added an explicit pattern rule for linking to make sure 833 that LDLIBS is used on all platforms. Thanks to Dan Nicholson 834 for the suggestion. 835 8362007-10-19 Martin Mares <[email protected]> 837 838 * Released as 2.2.8. 839 840 * pci.ids: Revised class codes to match Conventional PCI 3.0 specs. 841 Added a couple of new ones, renumbered `ADMA continuous operation' 842 prog-if to 0x30 (even the old SATA Class Code ECN doesn't mention 843 0x40) and renumbered the satellite communication controllers. 844 845 * lib/header.h: Include `PCI hot-plug' and `Secure device' 846 capabilities from PCI 3.0 specs. Also added `SATA HBA' and 847 `Advanced features' caps from various ECN's. 848 849 * lspci.c: All known capabilities have at least their name displayed 850 now. When we are unable to decode them completely, we signalize it 851 with a `<?>' mark. 852 853 * lspci.man: Document `<?>' and also mention that extended config 854 space is currently available only with the linux_sysfs back-end. 855 856 * lspci.c: Decode the Debug port capability (per EHCI 0.96 spec). 857 858 * lspci.c: Big code cleanup: re-arranged functions in the code, 859 renamed everything related to capabilities to cap_* and 860 all options except verbose to opt_*. 861 8622007-10-14 Martin Mares <[email protected]> 863 864 * lib/[fno]bsd-*: Removed extraneous braces. 865 8662007-10-12 Martin Mares <[email protected]> 867 868 * Capability loop detection introduced 2.2.7 did not work 869 properly with extended capabilities. Fixed. 870 8712007-10-05 Martin Mares <[email protected]> 872 873 * Released as 2.2.7. 874 875 * lspci.c (show_caps, show_ext_caps): Detect and report loops in 876 capability lists. 877 878 * lspci.c, lib/header.h: Finished decoding of the PCI Express 879 capability. The extended capabilities remain undecoded for now, 880 but at least the list of them has been updated to reflect the 881 current PCI Express 2.0 spec. 882 883 * lspci.c, lib/header.h: Decode new bits of traditional registers 884 as defined by PCIE / PCI-X. This includes discard timers in the bridge 885 control register and INTx enable/status in device control/status 886 registers. 887 888 * lib/fbsd-device.c: Support domains on new FreeBSD's. Contributed 889 by Marius Strobl. 890 8912007-09-12 Hasso Tepper <[email protected]> 892 893 * Extended the fbsd-device backend to run on Dragonfly BSD. 894 895 * lspci.c: alloca() is declared in <stdlib.h> on BSD's, not <alloca.h>. 896 8972007-09-03 Martin Mares <[email protected]> 898 899 * Resurrected the Windows port, including cross-compilation by MinGW. 900 Patch by Samuel Bronson <[email protected]>. 901 9022007-08-31 Martin Mares <[email protected]> 903 904 * Makefile, lib/Makefile: `ar' and `ranlib' can be overridden to allow 905 cross-compilation. 906 9072007-08-27 Martin Mares <[email protected]> 908 909 * lib/names.c (pci_open): When calling gzopen(), use "rb" file mode 910 instead of "r". This is needed on DOS systems, where this function 911 somewhat illogically uses the binary flag for the compressed file 912 instead of the decompressed stream inside, where binariness really 913 matters. 914 9152007-08-14 Martin Mares <[email protected]> 916 917 * lspci.c (show_ht): Added decoding of Hypertransport MSI mapping capability, 918 based on a patch by Jason Gunthorpe. 919 920 * tests/cap-MSI-mapping: Added a test case. I plan to add test cases 921 (which are dumps of config space) for all new features. 922 9232007-06-20 Martin Mares <[email protected]> 924 925 * Released as 2.2.6. 926 927 * Makefile: Added an "install-lib" target. Thanks to Dan Nicholson 928 for a patch. 929 930 * Makefile, lib/Makefile: Generate and install pkg-config file 931 for libpci. Again by Dan Nicholson. 932 9332007-06-20 Thomas Schwinge <[email protected]> 934 935 * lib/i386-io-hurd.h: Rewritten for new Hurd kernels. 936 9372007-05-04 Martin Mares <[email protected]> 938 939 * Released as 2.2.5. 940 941 * pci.ids: Updated to the current snapshot of the database. 942 9432007-02-14 Martin Mares <[email protected]> 944 945 * lspci.c (show_express): Added PCI/PCI-X to PCI-Express Bridge type. 946 Patch by Mark Glines. 947 9482007-02-09 Martin Mares <[email protected]> 949 950 * pci.ids: Updated to the current snapshot of the database. 951 9522007-02-06 Martin Mares <[email protected]> 953 954 * Replaced bzero() by memset() everywhere, it's better to lose a tiny 955 bit of readability than maintain hacks to make it work on various systems. 956 957 * lib/configure: tr on Solaris is a bit weird and it requires `[A-Z]' 958 instead of `A-Z'. Fortunately, the extra brackets don't hurt otherwise. 959 960 * lib/types.h, lib/configure: Solaris should use <stdint.h> to get precise 961 integer types. 962 9632007-02-04 Martin Mares <[email protected]> 964 965 * lspci.c: alloca() needs <alloca.h>. 966 9672006-09-17 Martin Mares <[email protected]> 968 969 * lib/dump.c: Fixed a couple of bugs in the dump backend which caused 970 devices with domains or with extended config space to be read incorrectly. 971 Also, dumps with partial lines are allowed now. 972 9732006-09-10 Martin Mares <[email protected]> 974 975 * pci.ids: Updated to the current database snapshot. 976 977 * lspci.c (scan_device): If an error occurs when reading the standard config 978 header of a device, report it and ignore the device and return with exit 979 code 2 at the end. 980 9812006-09-09 Martin Mares <[email protected]> 982 983 * Released as 2.2.4. 984 985 * maint/release: Remind the maintainer about the current PCI_LIB_VERSION. 986 987 * lib/pci.h: Updated PCI_LIB_VERSION. 988 989 * lspci.c (show_machine): In the `-m' mode, do proper shell escaping 990 if the fields printed contain quotes or backslashes. 991 992 * lspci.c (show_machine): Added a `-vmm' mode, which removes the misuse 993 of the `Device' tag for two different purposes. 994 995 * Makefile: Moved all system-dependent decisions to lib/configure, 996 since config.mk is included in the top-level Makefile anyway. 997 998 * lib/configure: When configuring for Linux, ignore the kernel version 999 and always build all access methods. 1000 1001 * Makefile (CFLAGS): Removed -Winline, it's not needed and triggers 1002 at many non-interesting places with gcc 3.4. 1003 1004 * Whitespace cleanup of all source files. 1005 1006 * The pci.ids file can be stored compressed if zlib is available. 1007 Added transparent decompression to lib/names.c, modified update-pciids.sh 1008 to keep the file compressed if applicable, updated Makefiles. 1009 Based on a patch by Matthew Wilcox, but all the bugs are mine. 1010 1011 * Makefile, README: Allow installation to be done to a different directory 1012 from the one we will eventually be placed in by setting DESTDIR. 1013 Patch by Matthew Wilcox. 1014 1015 * Added .gitignore files. 1016 1017 * Makefile (clean): Clean *.orig, too. 1018 1019 * Cleaned up usage of `char' and `byte'. 1020 1021 * lib/header.h: PCI_CLASS_DOCKING_OTHER should be 0x0a80, not 0x0a01. 1022 1023 * lib/header.h: Added PCI_CLASS_xxx constants for all classes currently 1024 defined in the pci.ids file. 1025 10262006-08-01 Martin Mares <[email protected]> 1027 1028 * lib/i386-io-hurd.h: Fixed a silly typo. 1029 10302006-07-30 Martin Mares <[email protected]> 1031 1032 * lib/Makefile: Added a missing rule for obsd-device.o. 1033 1034 * lspci.c, lib/header.h: Added support for MSI per-vector masking. 1035 Contributed by Petr Vandrovec. 1036 1037 * lspci.c, lib/header.h: Added support for the `bridge subsystem ID' 1038 capability. Contributed by Petr Vandrovec. 1039 1040 * lspci.c (show_htype1): Fixed bug in printing of 64-bit prefetchable 1041 memory windows. Fix by Petr Vandrovec. 1042 1043 * maint/release.pm: Exclude .git directory from releases. 1044 1045 * lib/i386-ports.c, lib/i386-io-*: Report failures during port access 1046 initialization by a->warn() instead of calling printf() or perror() 1047 directly. 1048 1049 * lib/i386-ports.c, lib/i386-io-*: Moved the logic which keeps track of 1050 the port access state to generic code. 1051 1052 * lib/i386-io-hurd.h: Ask the kernel for I/O port access appropriately. 1053 Contributed by Thomas Schwinge and Samuel Thibault. 1054 1055 * lib/i386-ports.c: Define _GNU_SOURCE, it's needed by the Hurd module. 1056 1057 * lib/header.h: Whitespace cleanups. 1058 1059 * lib/i386-io-windows.h: Fixed indentation and spelling. 1060 1061 * README.Windows: Mention that WinIO.dll is needed and where to get it. 1062 10632006-06-27 Martin Mares <[email protected]> 1064 1065 * lib/Makefile, Makefile: Added rules for building and cleaning the example. 1066 1067 * lib/example.c: Show how to use PCI_FILL_CLASS and used another register 1068 for demonstrating the config space accesses. The example is still very 1069 incomplete, though. 1070 1071 * lib/pci.h, lib/generic.c: Added PCI_FILL_CLASS. 1072 1073 * lib/sysfs.c: Fetch device ID and class from sysfs, because they can 1074 be modified by kernel fixups. 1075 1076 * lspci.c: Use PCI_FILL_CLASS. Thanks to Matthew Willcox for the patch. 1077 10782006-06-03 Martin Mares <[email protected]> 1079 1080 * lspci.c: Introduced the -nn switch. Thanks to David N. Welton 1081 for the idea. 1082 1083 * lib/names.c (pci_lookup_name): Introduced PCI_LOOKUP_MIXED and 1084 cleaned up the name selection code. 1085 1086 * lib/names.c (pci_lookup_name): If PCI_LOOKUP_NO_NUMBERS is given, 1087 pci_access->numeric_ids is ignored. 1088 1089 * lib/names.c (pci_lookup_name): When class is identified and 1090 subclass isn't, display class name and subclass number. 1091 10922006-05-31 Martin Mares <[email protected]> 1093 1094 * setpci.c (main): Don't crash when an invalid width is specified. 1095 1096 * lspci.c, setpci.c, common.c: die() now uses the right program 1097 name when printing an error message. 1098 10992006-05-19 Martin Mares <[email protected]> 1100 1101 * README: Mention the public GIT tree. 1102 1103 * README: Updated the list of ports. 1104 11052006-05-10 Martin Mares <[email protected]> 1106 1107 * lib/configure, lib/fbsd-device.c: Added support for GNU/kFreeBSD. 1108 Thanks to Petr Salinger for the patch. 1109 11102006-05-05 Martin Mares <[email protected]> 1111 1112 * Released as 2.2.3. 1113 1114 * lspci.c (scan_device): The -D switch didn't work as intended 1115 in -m mode. 1116 11172006-05-05 Martin Mares <[email protected]> 1118 1119 * Released as 2.2.2. 1120 1121 * pci.ids: Updated to the current database snapshot. 1122 1123 * lib/obsd-device.c (and other files in lib/*): Added OpenBSD 1124 interface by Matthieu Herrb <[email protected]>, based on 1125 the existing FreeBSD interface. 1126 1127 * Moved pciutils to a GIT repository, which now contains merged 1128 history from both CVS and Arch. Good bye, TLA! 1129 11302006-03-21 Martin Mares <[email protected]> 1131 1132 * lspci.c (show_slot_name): Avoid the previous changes in default 1133 display of domain name when in machine-readable mode. However, `-D' 1134 forces domain display even there. 1135 1136 * lspci.man: Added a warning on -m being the only format, which is 1137 guaranteed to be stable between lspci versions. 1138 11392006-03-13 Martin Mares <[email protected]> 1140 1141 * lspci.man: Documented the -D switch. 1142 1143 * lspci.c (show_slot_name, scan_device): If there are multiple PCI 1144 domains or if the `-D' switch is used, show the domain number for 1145 all devices. 1146 1147 * lspci.c (show_verbose): Report cache line size in bytes. 1148 1149 * update-pciids.sh: Use curl if available. Patch by Matthew Wilcox. 1150 11512006-01-04 Martin Mares <[email protected]> 1152 1153 * lspci.c (show_express_link): Fixed decoding of link status register. 1154 Thanks to Roland Dreier for his report. 1155 11562005-12-12 Martin Mares <[email protected]> 1157 1158 * lib/nbsd-libpci.c: If libpci is used by an ordinary user, allow 1159 at least read-only access. Patch by Pavel Celeda <[email protected]>. 1160 1161 * Makefile: Corrected library path on NetBSD. 1162 11632005-11-26 Martin Mares <[email protected]> 1164 1165 * Released as 2.2.1. 1166 1167 * lspci.c (show_machine): Subsystem vendors were printed incorrectly 1168 in machine-readable modes. Thanks to Pavel Celeda for a bug report. 1169 11702005-10-11 Martin Mares <[email protected]> 1171 1172 * lspci.c (new_bus): Fixed a memory leak. Thanks to Paul Sangree for reporting it. 1173 11742005-09-21 Martin Mares <[email protected]> 1175 1176 * Released as 2.2.0. 1177 1178 * pci.ids: Updated copyright header. 1179 1180 * lib/sysfs.c (sysfs_get_resources): Removed warning about unsupported 1181 64-bit addresses, they are now always supported. 1182 1183 * lspci.c (show_bases): Corrected printing of 64-bit addresses 1184 in bus-centric mode. 1185 1186 * lib/configure: Enable 64-bit addresses on all Linux systems. 1187 1188 * lib/types.h: Don't pad 64-bit addresses to 16 xigits, only to 8 if they 1189 are shorter. 1190 11912005-09-11 Martin Mares <[email protected]> 1192 1193 * Released as 2.1.99-test11. 1194 1195 * lspci.c: Removed unnecessary trailing zeros in pci_lookup_name() calls. 1196 11972005-09-10 Martin Mares <[email protected]> 1198 1199 * Released as 2.1.99-test10. 1200 1201 * pci.ids: Synchronized with the current database snapshot. 1202 1203 * update-pciids.sh: Changed the default URL for downloading pci.ids 1204 to http://pciids.sourceforge.net/v2.2/pci.ids. 1205 1206 * lib/pci.h (PCI_LIB_VERSION): Added version identifier. 1207 1208 * lib/names.c: Rewritten the name database module almost from scratch. 1209 Everything is much cleaner and there are hopefully no more memory leaks; 1210 pci_lookup_name() now uses varargs in a backward compatible fashion. 1211 Introduced PCI_LOOKUP_NO_NUMBERS. 1212 1213 The new code supports subsystem entries not tied to a specific device. 1214 I had to extend the format of pci.ids in order to support it, so I have 1215 extended the idea of the "C" (class) blocks and introduced "S" blocks 1216 for subsystems. To avoid doing more incompatible changes in the future, 1217 the parser skips unknown single-letter blocks without reporting errors. 1218 12192005-08-23 Martin Mares <[email protected]> 1220 1221 * Released as 2.1.99-test9. 1222 1223 * Makefile (OPT): Removed -fomit-frame-pointer, it's default in recent 1224 gcc versions when optimizing anyway. 1225 1226 * Made the path to pci.ids customizable and independent on the SHAREDIR. 1227 Just override IDSDIR in the top-level Makefile. 1228 1229 * pci.ids: Synchronized with the current database snapshot. 1230 1231 * lspci.man, setpci.man: Improved the man pages. Documented all access 1232 methods and which operations are privileged. 1233 1234 * lspci.c: Another rewrite of config register caching, now also including 1235 lots of internal checks. It should be now perfectly able to cope with 1236 portions of the configuration space being inaccessible, for example 1237 due to insufficient access rights. 1238 1239 * lspci.c (show_pcix_nobridge, show_pcix_bridge): Cleaned up dumping of PCI-X 1240 capabilities. Includes partial support for PCI-X 2.0 (probably incomplete 1241 as I haven't seen the spec). 1242 1243 * lspci.c: Quell warnings about unused parameters. 1244 1245 * lspci.c: Removed C++ comments. 1246 1247 * lib/header.h: Merged definitions of extended capabilities and some new 1248 PCI-X capability bits from linux-2.6.11/include/pci.h. 1249 1250 * lspci.c (show_caps): Try to scan extended capabilities only if the 1251 device has either PCI-X or PCI Express capability in its normal capability 1252 list. 1253 1254 * lib/dump.c (dump_init): Reading of dumps works again. The dump reader 1255 now also remembers how much data it has read and refuses attempts to 1256 access more than that. 1257 1258 * setpci.man, lspci.c, README: prefer spelling "buses" over "busses". 1259 1260 * lspci.c: If alloca() is not available, use xmalloc(), not malloc(). 1261 1262 * lib/configure: Added x86_64 on Linux. 1263 12642005-08-22 Martin Mares <[email protected]> 1265 1266 * lib/filter.c (pci_filter_parse_slot): Fixed parsing of domain filters. 1267 Thanks to Matthew Wilcox for bug report. 1268 1269 * lspci.c: Corrected spelling of "Hz" (it was "hz" at several places). 1270 Thanks to Krzysztof Oledzki for pointing that out. 1271 12722004-08-19 Martin Mares <[email protected]> 1273 1274 * pciutils.spec (%attr): Setting attributes for /sbin/* is an anachronism, 1275 because pciutils by default install to /usr/sbin. Update. 1276 12772004-08-13 Martin Mares <[email protected]> 1278 1279 * Released as 2.1.99-test8. 1280 1281 * lib/types.h, lib/pci.h, lib/sysdep.h: `byte' and `word' are 1282 no longer exported to the outside world. 1283 1284 * README.Windows: Updated. 1285 1286 * maint/release: Substitute version number in win32/config.h. 1287 1288 * win32/config.h: Added. 1289 1290 * lib/sysdep.h (bzero, strcasecmp): are macros on Windows. 1291 1292 * compat/getopt.[ch]: Added copies of getopt.[ch] from the GNU 1293 C library for use on systems where the default libraries lack 1294 proper getopt. Currently used by the Windows port. 1295 1296 * lib/sysdep.h, lib/types.h: Updates of the Windows port from 1297 Alexander Stock. 1298 1299 * lib/types.h: If PCI_HAVE_Uxx_TYPES is defined, libpci doesn't define 1300 its own u8, u16, u32, byte and word types and uses what the user 1301 has supplied instead. With this change, all namespace clashes should 1302 be gone. 1303 1304 * Makefile, lib/Makefile: Updated dependencies. 1305 1306 * pciutils.h: Include lib/sysdep.h and move NONRET et al. there. 1307 1308 * lib/sysdep.h: No need to include <sys/types.h> on FreeBSD, because 1309 it is included unconditionally in lib/types.h. 1310 1311 * Moved system-dependent stuff from lib/internal.h to lib/sysdep.h, 1312 which is also used by the utilities. Also moved type declarations 1313 from lib/pci.h to lib/types.h. 1314 1315 * All files: Prepend a "PCI_" prefix in front of all configuration 1316 defines to avoid namespace clashes. CAVEAT: If there is any libpci 1317 application using the (undocumented) defines, it has to be updated. 1318 1319 * lib/Makefile: Killed HAVE_OWN_HEADER_H, since we stopped sharing 1320 headers with the kernel a couple of years ago. 1321 1322 * lib/sysfs.c (sysfs_get_resources): We have 7 resources, not 6. 1323 1324 * lspci.c (show_rom): Use the same logic for printing disabled 1325 or unassigned ROM's as we do in show_bases() for the other BAR's. 1326 1327 * lib/generic.c (pci_generic_fill_info): Better reaction to 1328 invalid 64-bit addresses. Also d->hdrtype should not include 1329 bit 7, which caused mysterious errors on multi-function devices. 1330 1331 * lib/generic.c (pci_generic_fill_info): Fill in base addresses 1332 even if the regions are known to be disabled. It is the client's 1333 job to interpret them. (And it is not a trivial job if you want 1334 to do it correctly, since you need to check I/O and memory enables 1335 on all upstream bridges, too.) However, it could be interesting to 1336 introduce functions for interpreting the addresses and even for 1337 mapping the regions and doing I/O on them. 1338 13392004-07-30 Martin Mares <[email protected]> 1340 1341 * lspci.c: HyperTransport improvements from Maciej. 1342 13432004-07-11 Martin Mares <[email protected]> 1344 1345 * lib/sysfs.c (sysfs_get_resources): Arguments now correspond 1346 to the format string. [Patch by Bill Nottingham] 1347 13482004-07-05 Martin Mares <[email protected]> 1349 1350 * Released as 2.1.99-test7. 1351 1352 * lspci.c (config_fetch): Wanted to merge Matthew's bug fix, but 1353 ended up with rewriting the fetching mechanism to be fully dynamic, 1354 but avoid reading config space registers not explicitly requested. 1355 13562004-06-29 Matthew Wilcox <[email protected]> 1357 1358 * lspci.c: More work on PCI Express dumping. 1359 1360 * lib/header.h: Updated PCI Express capability definitions. 1361 1362 * lib/proc.c (proc_read): Removed bogus warning. 1363 1364 * common.c (xrealloc): Introduced. 1365 1366 * lspci.man: Added -xxxx. 1367 13682004-06-27 Martin Mares <[email protected]> 1369 1370 * Released as 2.1.99-test6. 1371 1372 * lspci.c (show_msix), lib/header.h: Added dumping of MSI-X cap. 1373 Patch by Roland Dreier <[email protected]>, cleaned up by me. 1374 1375 * lspci.c (show_pcix_nobridge, show_pcix_bridge): Handle config_fetch() 1376 failures. 1377 1378 * lib/header.h: Added PCI Express extended capabilities. Again by Matthew. 1379 1380 * lspci.c (show_express): Added dumping of PCI Express cap. 1381 Patch by Matthew Wilcox. 1382 1383 * lib/header.h: Added a list of PCI 3.0 capabilities and also details 1384 on PCI Express caps. Patch by Matthew Wilcox <[email protected]>. 1385 1386 * lspci.c (check_root): Gone. No explicit checks for root are needed, 1387 report correct errors reported by the libpci instead. 1388 1389 * lspci.c: Added dumping of the extended config space on "-xxxx". 1390 Better caching of config registers. 1391 1392 * setpci.c (main): Allow access to whole 4096 bytes of the config space. 1393 1394 * lib/sysfs.c, lib/proc.c: Don't print error messages on short reads, 1395 just return the appropriate error code. 1396 1397 * lib: Added support for extended (4096-byte) configuration space, 1398 currently implemented only in Linux proc and sysfs access methods 1399 and of course in the dump reader. 1400 14012004-05-29 Martin Mares <[email protected]> 1402 1403 * Released as 2.1.99-test5. 1404 1405 * lib/pci.h: Windows don't have the standard u_int* types. 1406 1407 * lib/internal.h: <sys/param.h> required on Windows for endianity 1408 macros. 1409 1410 * lib/i386-ports.c: Connected i386-io-windows.h. 1411 1412 * lspci.c (check_root): geteuid() is not available on Windows. 1413 1414 * lib/i386-io-windows.h: Added Windows port contributed by Alexander 1415 Stock <[email protected]>. 1416 1417 * lib/configure: Hopefully fixed SunOS port broken by various 1418 changes to the configure script. 1419 1420 * Makefile, lib/configure: Cross-compilation support, patch by Maciej. 1421 14222004-05-28 Martin Mares <[email protected]> 1423 1424 * Released as 2.1.99-test4. 1425 1426 * lspci.c (show_verbose): Header type 1 is probably legal for all 1427 types of bridges, not only for PCI-to-PCI bridges. 1428 1429 * lspci.c (format_agp_rate): Write "x16", not "x@". 1430 (show_agp): rate[] could overflow. 1431 Bugs reported by Jakub Bogusz <[email protected]>. 1432 1433 * lspci.c (show_ht_*): Show HyperTransport capability with all its 1434 details. Once again code by Maciej simplified (i.e., possibly broken) 1435 by me. 1436 1437 * lib/header.h: Added declarations of HyperTransport capability. 1438 Again thanks to Maciej. 1439 1440 * lspci.c: Decode all bits of the secondary status word in type 1 headers. 1441 Thanks to Maciej W. Rozycki <[email protected]> for the patch. 1442 14432003-12-27 Martin Mares <[email protected]> 1444 1445 * Released as 2.1.99-test3. 1446 1447 * lspci.man, setpci.man: Document domains and correct spelling. 1448 1449 * lib/dump.c (dump_init): Added ability to read domain numbers. 1450 1451 * lspci.c: Devices in domains different from 0 have their slot number 1452 printed as "<domain>:<bus>:<slot>.<func>". Tree view supports domains 1453 as well. 1454 1455 * lib/filter.c: Slot filters understand domains. 1456 1457 * lib/generic.c: Mention the domain in slot numbers in all error messages. 1458 1459 * lib/internal.h: The #ifdef for Linux <asm/byteorder.h> was wrong. 1460 1461 * lib/access.c (pci_get_dev): Added support for domains. 1462 1463 * lib/sysfs.c (sysfs_scan): Read vendor and device ID from the config 1464 registers (or to be precise, leave it for the generic parts of the pcilib 1465 to do so) instead of reading them from the sysfs. It's faster this way. 1466 1467 * lspci.c (show_pcix): Don't touch pci_dev->hdrtype, it's an internal 1468 variable. Better read it from the config registers (it's cached anyway). 1469 1470 * lib/sysfs.c (sysfs_scan), lib/proc.c (proc_scan): Don't read the hdrtype. 1471 lib/generic.c (pci_generic_fill_info): If hdrtype is -1 (unset), read it. 1472 Saves lots of unnecessary file accesses. 1473 1474 * lib/pci.h (PCIADDR_PORT_FMT): Use %llx instead of %Lx, because the latter 1475 is not supported by all C libraries. 1476 1477 * Makefile: Always enter the lib directory (remember that we don't have 1478 full dependencies for the library in the top-level Makefile; hmmm, another 1479 thing to rewrite some day). 1480 1481 * lib/sysfs.c: Added Linux sysfs access method based on the patch 1482 written by Matthew Wilcox <[email protected]>. 1483 1484 * lib/proc.c: Renamed the access method name from "/proc/bus/pci" to "Linux-proc". 1485 1486 * lib/pread.h: The hacks to support pread on various versions 1487 of Linux libc moved there. 1488 1489 * lib/proc.c (proc_setup): The return value of snprintf() varies 1490 between glibc versions, so we need to check both for a negative 1491 values and for too large values. 1492 1493 * Removed last few references to the "Linux PCI Utilities", the 1494 package is pretty cross-platform now :) 1495 14962003-12-27 Martin Mares <[email protected]> 1497 1498 * Released as 2.1.99-test2. 1499 1500 * README, pciutils.lsm, pciutils.spec: Use @VERSION@ to make the 1501 release scripts insert the current version. "make release" is gone. 1502 1503 * maint/release, maint/release.pm: Added a new system of scripts for 1504 making releases including inter-version diffs etc. 1505 1506 * Makefile: Cleaned up. 1507 1508 * lib/fbsd-device.c: I patched another copy of this file by mistake, 1509 this time the version checks should be right. 1510 15112003-12-27 Martin Mares <[email protected]> 1512 1513 * Released as 2.1.99-test1. 1514 1515 * pciutils.h, common.c, lspci.man, setpci.man, lib/internal.h: 1516 Remove shadows of the syscall access method which was never 1517 implemented. 1518 1519 * update-pciids.sh: Try to preserve permissions of the old file 1520 if chmod supports --reference. Should close Debian Bug #223740. 1521 1522 * lib/proc.c (proc_setup): Increased path name length limit to 1024. 1523 Thanks for Redhat and Mandrake for inspiration. 1524 1525 * lib/configure: Recognize ppc and ppc64, both have 64-bit addresses. 1526 Grabbed from Redhat (Fedora) patches. 1527 15282003-12-27 Martin Mares <[email protected]> 1529 1530 Merged bug fixes from Debian patches: 1531 1532 * lspci.c (show_verbose): "Cache Line Size" should be capitalized. 1533 1534 * lspci.c (show_pcix_nobridge): Added a missing newline. 1535 1536 * lib/proc.c (proc_scan): When reading the header type, don't 1537 forget to clear the topmost bit indicating that the device has 1538 multiple functions. 1539 15402003-12-27 Martin Mares <[email protected]> 1541 1542 Updated the FreeBSD port. Thanks to Samy Al Bahra <[email protected]> 1543 for the patches: 1544 1545 * lib/Makefile: Add ${FREEBSD_SYS} to the include path if it's defined. 1546 * lib/fbsd-device.c: Select the right set of system includes according 1547 to __FreeBSD_version. 1548 15492003-12-27 Martin Mares <[email protected]> 1550 1551 Merged support for Solaris on i386 by Bill Moore <[email protected]> 1552 and cleaned up: 1553 1554 * lib/configure: Recognize SunOS. 1555 * lib/internal.h: Learn how to recognize byte order on SunOS. 1556 * lib/i386-ports.c: Split OS-dependent I/O port access from i386-ports.c. 1557 * lib/i386-io-linux.h: Linux specific part. 1558 * lib/i386-io-hurd.h: GNU/Hurd specific part. 1559 * lib/i386-io-sunos.h: SunOS specific part. 1560 15612003-12-26 Martin Mares <[email protected]> 1562 1563 * lib/header.h (PCI_*_MASK): Cast to pciaddr_t explicitly. 1564 1565 * lib/pci.h: Types declared in <sys/types.h> should be usable on all 1566 platforms we currently support, so kill the forest of #ifdef's and 1567 use them in all cases. 1568 1569 * lib/pci.h: Use ULONG_MASK to decide whether we should use long 1570 or long long to represent a 64-bit address. Killed HAVE_LONG_ADDRESS. 1571 Define format strings for addresses, port numbers and IRQ numbers 1572 directly in pci.h. 1573 1574 * lib/proc.c (proc_scan): Use PCIADDR_T_FMT for scanf'ing addresses. 1575 15762003-12-26 Marco Gerards <[email protected]> 1577 1578 Added support for the GNU Hurd (cleaned up by Martin Mares): 1579 1580 * lib/configure [GNU]: Use the i386 ports for configuration access. 1581 * lib/i386-ports.c: Don't call iopl() on the Hurd. 1582 * lib/pci.h [OS_GNU]: Include <sys/types.h> and use it for defining 1583 u8 to u32. 1584 15852003-12-26 Martin Mares <[email protected]> 1586 1587 * lspci.c (show_pcix_bridge, show_pcix_nobridge): Don't forget to call 1588 config_fetch() to ensure that the registers have been read. Thanks to 1589 Bill Wood <[email protected]> for the patch. 1590 1591 * lspci.c: Ensure that failure of config_fetch() is handled correctly 1592 at all places. 1593 1594 * lspci.man: There was one more explicit reference to /usr/share/pci.ids. 1595 Changed to @SHAREDIR@. Patch from Maciej W. Rozycki <[email protected]>. 1596 1597 * setpci.c (main): Better error messages. 1598 1599 * setpci.c (ex_op): The demo mode should disable only writing, not reading. 1600 1601 * setpci.man: The documentation was inconsistent on what should -D do. 1602 Document the new behaviour. 1603 1604 * pciutils.h, common.c, setpci.c: Introduced a NONRET macro encapsulating 1605 the GCC specific __attribute__((noreturn)) and killed the hack with 1606 redefining __attribute__ on non-GCC compilers. 1607 1608 * Makefile: Added missing dependencies. Parallel builds work now. 1609 Problem reported by Andreas Haumer <[email protected]>, but I chose 1610 a different fix. 1611 1612 * Makefile (MANDIR): Use `:=' instead of `=' to avoid executing the shell 1613 command every time $(MANDIR) is referenced. 1614 1615 * lspci.c (main): The error message for `lspci -s' incorrectly mentioned 1616 a `-f' switch. Reported by Steve Finney <[email protected]>. 1617 1618 * lib/generic.c: Removed memory leak in pci_generic_bus_scan(). 1619 Reported by Gary Parnes <[email protected]>. 1620 1621 * Replaced obsolete syntax of __attribute__((unused)) in the middle of 1622 parameter declarations (which is no longer supported by GCC 3.1) by the 1623 current syntax (attribute at the end). Thanks to [email protected] 1624 for reporting this problem. 1625 1626 * Removed CVS $Id$ tags from all files. 1627 1628 * Makefile: Added some more warnings. 1629 1630 * setpci.c: Cleaned up mask/value code. 1631 16322003-12-08 Thayne Harbaugh <[email protected]> 1633 1634 * setpci.c: Individual bits to be set can be specified as <value>:<mask>. 1635 16362003-11-29 Martin Mares <[email protected]> 1637 1638 * Imported the pciutils sources to my Arch repository. Good-bye, CVS. 1639 16402003-01-04 Martin Mares <[email protected]> 1641 1642 * Released as 2.1.11. 1643 1644 * Makefile: Changed configuration of installation directories -- 1645 all paths are now set at the top of the Makefile instead of being 1646 scattered between the installation rules. The default installation 1647 now goes always to /usr/local regardless of the OS as most distributions 1648 already contain some version of pciutils and we don't want custom 1649 installations to interfere with the default ones. 1650 1651 * Makefile: Removed a couple of ancient install hacks: we no longer 1652 try to avoid overwriting a newer pci.ids file (users are now expected 1653 to use update-ids) and we don't try to remove /etc/pci.ids (a long time 1654 has passed since the last version which used it). 1655 1656 * Makefile: Paths to pci.ids in man pages automatically get the right path. 1657 1658 * Added the update-ids utility. 1659 1660 * lib: Removed partially implemented "syscall" access method which will 1661 probably never be needed. 1662 16632002-12-27 Martin Mares <[email protected]> 1664 1665 * lib/nbsd-libpci.c: Cleaned up and hopefully made it endian safe. 1666 1667 * lib/generic.c (pci_generic_scan_bus): Added work-around for devices with 1668 discontiguous numbering of functions. This is already present in the Linux 1669 kernel for several years, but I forgot to update pciutils as well. 1670 16712002-12-26 Martin Mares <[email protected]> 1672 1673 * lib/header.h, lspci.c: Dump AGP3 flags and speeds. 1674 1675 * lib/pci.h, Makefile: Removed HAVE_OWN_HEADER_H. Always use our own header, 1676 there is no reason to prefer the kernel version. 1677 1678 * lib/proc.c (proc_scan): Don't forget to initialize hdrtype. 1679 1680 * Added preliminary version of NetBSD support by Quentin Garnier 1681 <[email protected]>. 1682 16832002-04-06 Martin Mares <[email protected]> 1684 1685 * lspci.c: Mention "-xxx" in the help. 1686 16872002-03-30 Martin Mares <[email protected]> 1688 1689 * Released as 2.1.10. 1690 1691 * Removed pci.ids from the CVS as they are now maintained separately. 1692 They are still included in the tarball, but if you are building pciutils 1693 from CVS sources or you want to get a newer ID file than the one distributed, 1694 just use "make update-ids" to download the most recent snapshot from 1695 pciids.sf.net. 1696 1697 * Makefile, README: Updated accordingly. 1698 1699 * Makefile: Added a couple of maintenance targets. 1700 1701 * maint/*: Maintainer's utilities now reside here (present only in CVS, 1702 not in the tarball). 1703 1704 * lib/names.c (parse_name_list): End-of-line comments are no longer 1705 supported. Hashes are now perfectly valid in all names and they start 1706 a comment only at the start of the line. 1707 17082002-03-26 Martin Mares <[email protected]> 1709 1710 * README: Rewritten. 1711 1712 * Makefile: When the currently installed pci.ids file is newer than 1713 the version to be installed, don't overwrite it. Suggested by 1714 Jean Delvare <[email protected]>. 1715 17162002-03-24 Martin Mares <[email protected]> 1717 1718 * lspci.c (show_pcix_bridge): Added PCI-X capability display. 1719 Contributed by Jeff Garzik <[email protected]>. 1720 1721 * lib/header.h: Added PCI-X stuff. Again by Jeff. 1722 1723 * Makefile (CFLAGS): -Werror is gone. 1724 1725 * lspci.c (format_agp_rate): Fixed AGP rate reporting. 1726 1727 * lib/filter.c (pci_filter_parse_slot): Allow bus 0xff, slot 0x1f and 1728 function 7. 1729 1730 * lib/names.c (pci_lookup_name): When printing unknown subsystem vendor 1731 or device hexadecimally, don't confuse it with chip vendor/device ID. 1732 First reported by Marc Boucher <[email protected]>. 1733 17342001-11-04 Martin Mares <[email protected]> 1735 1736 * Released as 2.1.9. 1737 1738 * pci.ids: Synced with the PCI ID Repository at SourceForge 1739 (http://pciids.sourceforge.net/). 1740 17412000-08-25 Martin Mares <[email protected]> 1742 1743 * pci.ids: Updated ID's, synced with kernel 2.4.0-test7. 1744 17452000-06-13 Martin Mares <[email protected]> 1746 1747 * Makefile (uninstall): Fixed. 1748 1749 * pci.ids: ID updates. 1750 17512000-05-20 Martin Mares <[email protected]> 1752 1753 * Released as 2.1.8. 1754 1755 * pci.ids: ID updates. 1756 1757 * lspci.c (show_verbose): Min/max latency is now printed in nanoseconds. 1758 17592000-05-04 Martin Mares <[email protected]> 1760 1761 * lspci.c (show_verbose): If the header type doesn't match device 1762 class, just print a warning and still use the header type, assuming 1763 bogus class info. 1764 17652000-05-01 Martin Mares <[email protected]> 1766 1767 * lspci.c (show_pm): Updated according to PCI PM specs 1.1. 1768 1769 * pci.ids: Updated Contemporary Control ARCnet card entries. 1770 1771 * pci.ids: Synchronized class list with latest PCI SIG documents. 1772 17732000-04-29 Martin Mares <[email protected]> 1774 1775 * lib/names.c (pci_lookup_name): Fixed the cheat. 1776 1777 * lib/internal.h: Moved UNUSED/inline hacks above all other declarations. 1778 1779 * pci.ids: Various ID updates. 1780 17812000-04-21 Martin Mares <[email protected]> 1782 1783 * Released as 2.1.7. 1784 1785 * pciutils.spec: Added German description. 1786 1787 * lib/names.c (pci_lookup_name): Added a cheat for case that subsystem ID's 1788 are the same as device ID and just output subsystem name according to 1789 device name. 1790 1791 * lib/proc.c: Use UNUSED instead of __attribute__((unused)). 1792 1793 * lib/pci.h: Added the correct typedefs for AIX. 1794 1795 * lib/generic.c (pci_generic_scan_bus): Export. 1796 1797 * lib/configure: Detect AIX. Use "echo '...\c'" instead of 1798 "echo -n" if the shell isn't bash. 1799 1800 * lspci.c: Avoid using alloca() if not compiled by GCC. 1801 (insert_dev): Avoid returning a void value. 1802 1803 * Makefile: Choose which install utility to use according to 1804 OS type. Also use `-o' instead of `-or' in find arguments. 1805 Part of the AIX port. 1806 1807 * lib/aix-device.c: Added AIX low-level interface. Contributed 1808 by Dave Johnson <[email protected]>, thanks a lot! 1809 1810 * pci.ids: Few new ID's. 1811 1812 * pciutils.h, lib/internal.h: Redefine __attribute__ and inline 1813 when not compiled by GCC. 1814 18152000-04-17 Martin Mares <[email protected]> 1816 1817 * Released as 2.1.6. 1818 1819 * pci.ids: Added a large batch of ID's contributed by Gunther 1820 Mayer <[email protected]> and synced the 1821 list with the 2.3.99pre6 kernel. 1822 1823Thu Mar 9 13:11:39 2000 Martin Mares <[email protected]> 1824 1825 * lib/example.c: Added a simple example of how to use 1826 the library. 1827 1828 * lspci.man, setpci.man: Revealed --version. Well spotted 1829 by Adam Sulmicki. 1830 1831 * pci.ids: Added lots of new ID's and synced with 2.3.50. 1832 1833Tue Feb 15 00:16:21 2000 Martin Mares <[email protected]> 1834 1835 * Released as 2.1.5. 1836 1837 * pciutils.spec: Updated spec file from Andreas Jaeger. Now using 1838 %{_mandir} to find the right location to install manual pages to. 1839 1840 * pci.ids: New ID's. 1841 1842 * setpci.c (main): Don't crash when `-s' or `-d' is given with 1843 no argument. 1844 1845Mon Jan 24 20:04:11 2000 Andreas Jaeger <[email protected]> 1846 1847 * lib/i386-ports.c: Include <asm/io.h> only on systems without 1848 glibc. 1849 1850Mon Jan 24 11:24:43 2000 Martin Mares <[email protected]> 1851 1852 * Makefile: Modified to work with the Linux FHS brain-damaged idea 1853 of putting man pages to /usr/share/man. Now we choose either /usr/man 1854 or /usr/share/man depending on which one exists. 1855 1856Sun Jan 23 10:52:34 2000 Martin Mares <[email protected]> 1857 1858 * pci.ids: Synced with Linux 2.3.40. 1859 1860 * Released as version 2.1.4. 1861 1862Thu Jan 20 11:08:32 2000 Martin Mares <[email protected]> 1863 1864 * lspci.c (scan_device): Fixed bug in reading of cardbus extensions. 1865 1866 * lib/proc.c: pread/pwrite fixed again, this time on libc5 :( 1867 1868 * lspci.c (format_agp_rate): Better formatting of AGP rates. 1869 1870 * pci.ids: New ID's. 1871 1872 * lib/configure: Added configuration for ia64 (the same as for Alpha). 1873 Patch from Stephane Eranian <[email protected]>. 1874 1875Thu Jan 13 23:01:52 2000 Martin Mares <[email protected]> 1876 1877 * Released as version 2.1.3. 1878 1879 * pci.ids: New ID's. 1880 1881 * lspci.c: Alpha IO_FORMAT fix by Andrea Arcangeli. 1882 1883 * lib/access.c: Corrected order of access methods -- it's wonderful how 1884 long could such a bug remain unspotted. Thanks go to Andreas Schockenhoff. 1885 1886Sat Dec 11 23:34:48 1999 Martin Mares <[email protected]> 1887 1888 * Released as version 2.1.2. 1889 1890 * lib/names.c (pci_lookup_name): Fixed printing of unknown subsystem ID's. 1891 1892Sat Dec 4 13:11:03 1999 Martin Mares <[email protected]> 1893 1894 * Released as version 2.1.1. 1895 1896 * pci.ids: Several new ID's. 1897 1898 * setpci.c (exec_op): Don't forget to increment address after writing 1899 single value, so that `30.b=12,34,56,78' works as expected. Reported 1900 by Petr Soucek <[email protected]>. 1901 1902Wed Nov 3 10:24:38 1999 Martin Mares <[email protected]> 1903 1904 * lspci.c (show_terse): If prog-if is zero, but it's present in the 1905 ID list, show it. 1906 1907Sat Oct 30 11:06:35 1999 Martin Mares <[email protected]> 1908 1909 * Released as version 2.1. 1910 1911 * pci.ids: Synced to devlist.h in 2.3.24 kernel. Merged in 1912 lots of contributed entries. 1913 1914Thu Oct 14 10:40:12 1999 Dave Jones <[email protected]> 1915 1916 * pci.ids: Added lots of subsystem definitions. 1917 1918Sat Oct 9 14:32:28 1999 Martin Mares <[email protected]> 1919 1920 * setpci.man: Better example. 1921 1922 * lspci.c: Resolve prog-if names. 1923 1924 * lib/names.c: Adapted to new pci.ids syntax. 1925 1926 * pci.ids: Reorganized the pci.ids file. Subsystems are listed 1927 under devices, classes can optionally contain prog-if information. 1928 New ID's, as usually. 1929 1930Wed Sep 22 09:45:24 1999 Martin Mares <[email protected]> 1931 1932 * pci.ids: New ID's. As usually. 1933 1934 * lspci.c (show_htype1, show_htype2): Don't show `closed' bridge windows 1935 unless we're vvvery verbose. 1936 1937Mon Sep 20 11:22:54 1999 Martin Mares <[email protected]> 1938 1939 * lspci.c (show_htype2): Don't forget a TAB before the "I/O window" line. 1940 1941Tue Sep 14 09:31:01 1999 Martin Mares <[email protected]> 1942 1943 * pci.ids: New ID's. Again. 1944 1945Thu Aug 5 17:45:42 1999 Martin Mares <[email protected]> 1946 1947 * lspci.c (show_size): Don't show size if it's zero (usually 1948 due to bus-centric mode being enabled). 1949 1950Tue Jul 20 13:25:09 1999 Martin Mares <[email protected]> 1951 1952 * lib/pci.h: Types are OS dependent. 1953 1954 * lib/internal.h: Byte order hacks are OS dependent. 1955 1956 * lib/configure: Recognize FreeBSD. Also set OS_XXX according to the OS. 1957 1958 * lib/Makefile, lib/access.c: Added fbsd-device target. 1959 1960 * pci.ids: Added an entry for PLX 9080 bridges with subsystem ID 1961 incorrectly set to device ID. 1962 1963 * README: Added a note that we support FreeBSD. 1964 1965 * Makefile (PREFIX, ROOT): Set it depending on the OS. 1966 (%.8): Grrr, BSD date is not able to convert date formats the same way 1967 as GNU date does. Use sed instead. 1968 (install): Use `-c' when calling install. 1969 1970 * lib/fbsd-device.c: Added FreeBSD /dev/pci access module contributed 1971 by Jari Kirma <[email protected]>. 1972 1973 * lib/proc.c: Rewrote the pread/pwrite things once again. Use pread 1974 and pwrite only when we are certain it's safe (i.e., glibc 2.1 1975 on all architectures or any libc on a i386 where we really know 1976 how to use syscalls directly). In all other cases, emulate it 1977 with lseek/read/write. 1978 1979 * pci.ids: Some more IDs. 1980 1981Mon Jul 19 14:10:36 1999 Martin Mares <[email protected]> 1982 1983 * pci.ids: Added IDs of parallel port controller cards as sent 1984 by Tim Waugh <[email protected]>. 1985 1986Wed Jul 7 00:55:48 1999 Martin Mares <[email protected]> 1987 1988 * lib/proc.c (proc_scan): HAVE_LONG_ADDRESS instead of HAVE_64BIT_ADDRESS. 1989 1990 * lspci.c: ADDR_FORMAT now depends on both HAVE_64BIT_ADDRESS and 1991 HAVE_LONG_ADDRESS. 1992 1993 * lib/configure: HAVE_64BIT_ADDRESS now doesn't imply that the addresses 1994 are represented as long long. Introduced a new flag HAVE_LONG_ADDRESS 1995 to indicate this. Both Sparc architectures now use both 64BIT_ADDRESS 1996 and LONG_ADDRESS since they have 32-bit userland, but don't set LONG_ADDRESS 1997 on Alpha. 1998 1999 * lspci.c (show_msi): Added dumping of the MSI capability. 2000 (show_slotid): The same for SlotID capability. 2001 (show_caps): Separated capability dumping, because it should 2002 be used for both htype0 and htype1. Even PCI 2.2 doesn't mention 2003 layout of htype2, so I'm a bit unsure about it wrt capabilities 2004 -- they at least have to live somewhere else since address 0x34 2005 is already defined differently in htype2. 2006 2007 * lib/header.h (PCI_STATUS_UDF): Marked as obsolete (PCI 2.2). 2008 (PCI_BASE_ADDRESS_MEM_TYPE_1M): Ditto. 2009 (PCI_CAP_ID_*): Added some new capabilities defined in PCI 2.2. 2010 2011 * lspci.c (show_htype0): Mask out lowest 2 bits from all capability pointers 2012 (required by the PCI 2.2 specs). 2013 2014Mon Jul 5 12:45:19 1999 Martin Mares <[email protected]> 2015 2016 * lspci.c (show_size): Added new function for dumping of region sizes. 2017 (show_rom): Added. Now correctly dumps unassigned ROM addresses, disabled 2018 ROMs et cetera. 2019 2020 * lib/pci.h (struct pci_dev): known_fields moved to the public part 2021 of the structure. 2022 2023 * Added support for region sizes. Needs support in the kernel, because 2024 sizes have to be scanned before drivers initialize yourself. pci_fill_info() 2025 now returns a bitmask of what fields were really read. 2026 2027Mon Jun 28 18:37:51 1999 Dave Jones <[email protected]> 2028 2029 * Makefile: 2030 Added `uninstall' target - removes all traces of pciutils. 2031 * pci.ids: 2032 - Lots of cleanups in the ATI, S3, Adaptec vendors. 2033 - Changed Compaq QVision 1280/p definitions, as it's not possible 2034 to determine the revision from the device ID. 2035 - Same for the Tseng ET4000. 2036 The id's said I had a rev C, when it was actually a rev B. 2037 - Removed some unnecessary strings 2038 `PCI'. Unless it's an AGP card, it should be obvious that it's PCI. 2039 `Ethernet card'. This should be determined from config space. 2040 - Lots of other new vendors & devices 2041 - Other additional small cleanups. 2042 2043Mon Jun 21 22:11:10 1999 Martin Mares <[email protected]> 2044 2045 * lib/names.c (pci_lookup_name): When device ID lookup 2046 fails, return hexadecimal device ID instead of vendor ID. 2047 Well spotted by Axel Bodemann <[email protected]>, 2048 I've just extended the fix to subsystem ID's. 2049 2050Thu Jun 17 19:48:21 1999 Martin Mares <[email protected]> 2051 2052 * lspci.c (show_agp): Bug fix from Petr Vandrovec 2053 <[email protected]>. The command register was displayed 2054 incorrectly. 2055 2056Wed Jun 2 22:42:44 1999 Martin Mares <[email protected]> 2057 2058 * lib/proc.c (SYS_pread, SYS_pwrite): Use hard-coded 2059 numbers if not supplied by the libc. 2060 2061Wed May 19 13:24:39 1999 Martin Mares <[email protected]> 2062 2063 * Released the whole package as version 2.0. 2064 2065Fri May 14 22:42:02 1999 Martin Mares <[email protected]> 2066 2067 * pci.ids: Added several new ID's contributed by people 2068 on the linux-pci list. 2069 2070Mon Apr 19 15:21:08 1999 Jakub Jelinek <[email protected]> 2071 2072 * lspci.c: Display I/O addresses correctly on sparc64. 2073 * lib/header.h: Ditto. 2074 2075 * lib/configure: On sparc set HAVE_64BIT* as well, we want 2076 a binary which works on both 32bit and 64bit SPARCs. 2077 2078Sun Apr 18 21:14:58 1999 Martin Mares <[email protected]> 2079 2080 * lspci.c, lib/proc.c: Alpha compilation fixes from Matthew Jacob 2081 <[email protected]>. 2082 2083 * pci.ids: A lot of updates from Adam J. Richter <[email protected]>. 2084 2085Sun Feb 28 22:26:21 1999 Martin Mares <[email protected]> 2086 2087 * lspci.c (do_map_bus): Don't dump functions 1--7 if not flagged 2088 as a multi-function device, because several single-function devices 2089 don't decode the function bits at all. 2090 2091Sun Feb 14 23:48:22 1999 Martin Mares <[email protected]> 2092 2093 * Makefile (install): Don't use "-o root -g root" for installation 2094 since it breaks on machines where programs are not installed by root. 2095 Reported by Richard Gooch <[email protected]> 2096 2097Tue Feb 9 15:54:39 1999 Martin Mares <[email protected]> 2098 2099 * lspci.c (show_bases): Use new address masking macros and pciaddr_t. 2100 2101 * lib/pci.h: Using pciaddr_t for bus addresses, which are 32-bit 2102 or 64-bit depending on CPU. 2103 2104 * lib/pci.h (PCI_ADDR_MEM_MASK): Added macros for address masks 2105 according to bus address width. 2106 2107Thu Jan 28 20:54:16 1999 Martin Mares <[email protected]> 2108 2109 * Released as 1.99.4. 2110 2111 * lspci.c: Capability list parser now recognizes both AGP 2112 registers and PCI Power Management registers (the latter 2113 is mainly guesswork based on DEC/Intel 21153 bridge specs 2114 since I don't have the PCI Power Management document). 2115 2116 * lspci.c: Replaced numerous occurrences of (x & flag) ? '+' : '-' 2117 by FLAG macro. 2118 2119 * lspci.c: Added bridge checks to bus mapping code. 2120 2121Wed Jan 27 14:59:16 1999 Martin Mares <[email protected]> 2122 2123 * lspci.c: Implemented bus mapping mode (-M). 2124 2125 * lspci.c (scan_devices): Split to scan_devices() and scan_device(). 2126 (show): Split to show() and show_device(). 2127 2128 * lib/access.c (pci_init): When a->method == PCI_ACCESS_AUTO, 2129 set it to the real access method afterwards. 2130 2131Mon Jan 25 23:46:13 1999 Martin Mares <[email protected]> 2132 2133 * lib/generic.c (pci_generic_fill_info): If in buscentric mode, 2134 don't check PCI_COMMAND for I/O and memory enables. 2135 2136Mon Jan 25 21:28:49 1999 Martin Mares <[email protected]> 2137 2138 * Makefile: Added target `release' which substitutes new version 2139 number to .spec, .lsm and README. Also rewrote target `dist'. 2140 2141 * Released as 1.99.3. 2142 2143Sun Jan 24 22:10:36 1999 Martin Mares <[email protected]> 2144 2145 * lib/header.h: Until kernel adopts new layout of PCI 2146 includes (i.e., separate declaration of header structure, 2147 functions and device IDs), which is not going to happen 2148 before 2.3, we'll use our own definition of the header. 2149 2150 * lspci.c (show_verbose): Display `Cap' flag in device status. 2151 2152 * lspci.c (show_htype0): Display capability lists wherever 2153 available. The only capability name we recognize now is `AGP'. 2154 Unfortunately, capabilities are stored in device-dependent 2155 portion of the configuration space and are thus available 2156 only to root unless you read a dump. 2157 2158 * lspci.c (scan_devices): Use cache instead of buffering. 2159 2160 * lib/buffer.c: Removed (obsoleted by the cache). 2161 2162 * lib/access.c: Added general caching mechanism. 2163 2164Sat Jan 23 21:30:54 1999 Martin Mares <[email protected]> 2165 2166 * pci.ids: Added few devices. 2167 2168Fri Jan 22 19:29:31 1999 Martin Mares <[email protected]> 2169 2170 * Version string is now defined in top-level Makefile, exported 2171 to the configure script and also substituted to man pages. 2172 2173 * lspci.c (show_bases): Rewrote displaying of 64-bit addresses. 2174 (show_verbose): Rewrote interrupt display logic. 2175 2176 * lib/i386-ports.c: Include sys/io.h only on glibc systems. 2177 2178 * lib/configure: Rewrote detection of Linux versions. Now it 2179 works on 2.0 kernels (only with direct/dump access, of course). 2180 2181 * lib/internal.h: New bytesex macros using <asm/byteorder.h> 2182 whenever available. 2183 2184 * lib/proc.c (proc_read, proc_write): Distinguish between short 2185 read/write and real errors. 2186 2187 * lspci.c (show_htype{0,1}): Always use d->dev->rom_base_addr since 2188 libpci respects buscentric mode automatically. 2189 2190 * lspci.c (show_hex_dump): For CardBus bridges, print out 128 2191 bytes of header (the whole standard part). 2192 2193 * common.c: pcilib options are now all uppercase. Also moved 2194 PCI access debugging option here. 2195 2196 * Released as 1.99.2. 2197 2198Wed Jan 20 22:50:35 1999 Martin Mares <[email protected]> 2199 2200 * Wrote configure script and rewrote Makefiles. 2201 2202 * Removed few unused variables. 2203 2204Wed Jan 20 12:21:56 1999 Martin Mares <[email protected]> 2205 2206 * common.c: Moved several functions used in both setpci and lspci 2207 here. This includes parsing of libpci-related options. 2208 2209 * More library tweaks. 2210 2211 * filter.c, names.c: Moved to library. 2212 2213 * setpci: Rewritten to use the library. 2214 2215 * Released as 1.99.1. 2216 2217Tue Jan 19 23:00:12 1999 Martin Mares <[email protected]> 2218 2219 * lspci.c (scan_devices): For cardbus bridges, read first 128 2220 bytes of config space to get full standard header. 2221 2222 * Makefile (CFLAGS): Removed "-Wno-unused". 2223 2224 * Started the "New Generation" branch and introduced the 2225 PCI library. 2226 2227 * lspci: Rewritten to use the library. 2228 2229Tue Jan 19 22:24:08 1999 Martin Mares <[email protected]> 2230 2231 * Released as version 1.10. 2232 2233Mon Jan 18 08:51:17 1999 Martin Mares <[email protected]> 2234 2235 * lspci.8, setpci.8: Miscellaneous fixes as suggested by 2236 Dag Wieers <[email protected]>. 2237 2238Sun Nov 29 20:05:56 1998 Martin Mares <[email protected]> 2239 2240 * pciutils.spec (Name): Update from Krzysztof G. Baranowski. 2241 2242Sun Nov 22 10:49:56 1998 Martin Mares <[email protected]> 2243 2244 * Makefile, pciutils.h: Moved pci.ids to /usr/share. 2245 2246 * Released as version 1.09. 2247 2248Wed Nov 18 15:47:05 1998 Martin Mares <[email protected]> 2249 2250 * lspci.c (show_htype1): Fixed displaying of prefetchable memory behind 2251 bridge. Thanks to Petr Vandrovec <[email protected]> for bug report. 2252 2253Fri Oct 23 18:59:19 1998 Martin Mares <[email protected]> 2254 2255 * setpci.c: Don't include <syscall-list.h> with glibc >= 2.1. 2256 2257Mon Oct 19 21:53:30 1998 Martin Mares <[email protected]> 2258 2259 * Released as version 1.08. 2260 2261 * setpci.c: glibc 2.1.x already defines pread() and pwrite(). 2262 2263 * lspci.8: Changed warning about lspci -xxx. 2264 2265 * lspci.c: Require "-xxx" for full configuration space dump, so that 2266 it's impossible to crash the machine by single typo. 2267 2268 * specs: Added (courtesy of Krzysztof G. Baranowski <[email protected]>). 2269 2270Wed Sep 9 12:03:24 1998 Martin Mares <[email protected]> 2271 2272 * lspci.c (show_bases): Better displaying of unassigned and 2273 disabled bases. Thanks to Gabriel Paubert <[email protected]> 2274 for an idea. 2275 2276Wed Sep 2 10:58:01 1998 Martin Mares <[email protected]> 2277 2278 * setpci.c (pread): Recognize glibc 1.99 numbered as 2.0 on the PPC. 2279 (thanks to Geert Uytterhoeven for finding this out) 2280 2281Fri Jul 17 10:43:30 1998 Martin Mares <[email protected]> 2282 2283 * lspci.c (show_verbose): Print subsystem ID using the new resolver. 2284 (show_machine): Print subsystem ID. 2285 2286 * names.c: New name resolution engine supporting subsystem IDs. 2287 2288 * Released as version 1.07. 2289 2290Wed Jul 15 15:37:21 1998 Martin Mares <[email protected]> 2291 2292 * lspci.c (show_htype2 etc.): Displaying of CardBus headers. 2293 (show_bases): Honor the `cnt' argument. 2294 (grow_tree): Parse CardBus headers in tree mode as well. 2295 2296 * pci.h: Updated CardBus header field description. I still don't 2297 have the CardBus standard available, but OZ6832 specs contain 2298 full description of all header fields supported by the chip. 2299 2300Tue Jun 9 22:53:59 1998 Martin Mares <[email protected]> 2301 2302 * Released as 1.06. 2303 2304 * names.c (parse_name_list): Killed an unused variable. 2305 2306 * setpci.c (pread, pwrite): Define SYS_(pread|pwrite) as __NR_\1 2307 if they are not defined by glibc (needed for glibc built on older 2308 kernels). Ugly. 2309 2310 * setpci.c (exec_op): Fixed error messages. Thanks, Steve! 2311 2312Mon Jun 8 10:59:22 1998 Martin Mares <[email protected]> 2313 2314 * Released as 1.05. 2315 2316 * setpci.c: Problems with pread()/pwrite() with glibc on Alpha 2317 should be gone. Again thanks to Steve for bug report. 2318 2319 * filter.c (filter_parse_slot): Fixed ":x" type filters. 2320 2321 * pci.ids: Killed duplicate entry. Thanks to Stephen Williams 2322 <[email protected]> for reporting this. 2323 2324Sun Jun 7 19:27:51 1998 Martin Mares <[email protected]> 2325 2326 * lspci.c (main), setpci.c (main): Implemented "--version". 2327 2328 * Released as 1.04. 2329 2330 * pciutils.h (PCIUTILS_VERSION): Added version string. 2331 2332 * filter.c, names.c: Extraneous #include <linux/pci.h> removed. 2333 Thanks to Geert Uytterhoeven <[email protected]> 2334 for bug report. 2335 2336Thu May 28 14:45:58 1998 Martin Mares <[email protected]> 2337 2338 * pci.ids: More updates from Jens Maurer. 2339 2340Wed Apr 22 10:00:39 1998 Martin Mares <[email protected]> 2341 2342 * pci.ids: Updates from Jens Maurer. 2343 2344Sun Apr 19 11:14:25 1998 Martin Mares <[email protected]> 2345 2346 * Released as 1.03. 2347 2348 * setpci.8: Written. 2349 2350 * setpci.c: Finished. 2351 2352 * lspci.c: Now able to fetch expansion ROM base from kernel device list 2353 and print it if not in buscentric mode. 2354 2355Tue Mar 31 23:11:57 1998 Martin Mares <[email protected]> 2356 2357 * setpci.c: Added. 2358 2359Sun Mar 22 15:39:08 1998 Martin Mares <[email protected]> 2360 2361 * lspci.8: Updated the documentation. 2362 2363 * lspci.c: Modified to use the new filtering mechanism (options -f and -d). 2364 2365 * filter.c: Introduced new generic device filter. 2366 2367Thu Mar 19 17:03:48 1998 Martin Mares <[email protected]> 2368 2369 * lspci.c (grow_tree, show_tree_dev, print_it): Fixed displaying 2370 of PCI-to-PCI bridges in the tree format. 2371 2372Sun Feb 15 10:12:25 1998 Martin Mares <[email protected]> 2373 2374 * lspci.c (show_machine): Added non-verbose mode of machine-readable 2375 dump. 2376 2377 * pci.ids: Updates from Jens Maurer. 2378 2379 * Released as version 1.02. 2380 2381Thu Feb 12 16:53:28 1998 Martin Mares <[email protected]> 2382 2383 * lspci.c: Added a "-m" switch for dumping machine-readable 2384 configuration data (requested by Bjoern Kriews <[email protected]>). 2385 2386Mon Feb 9 13:17:43 1998 Martin Mares <[email protected]> 2387 2388 * Makefile, pciutils.h: Include local pci.h instead of <linux/pci.h> 2389 if available. This should avoid all problems with official kernel 2390 not synchronized to newer PCI code in CVS -- standard distribution 2391 of pciutils now contains pci.h from current CVS kernel, pciutils 2392 in CVS contain no pci.h and use the correct kernel include. 2393 2394 * Makefile: Fixed installation path for man pages. 2395 2396Sat Feb 7 15:15:46 1998 Martin Mares <[email protected]> 2397 2398 * README: Updated. 2399 2400 * lspci.8: Created a man page. 2401 2402 * Releasing as version 1.0. 2403 2404Tue Feb 3 20:56:00 1998 Martin Mares <[email protected]> 2405 2406 * Makefile: Recognize architecture by calling uname and pass it as ARCH_xxx 2407 to all the C sources. This should eliminate problems with 32-bit compilers 2408 on sparc64. 2409 2410 * lspci.c (show_verbose): Recognize CardBus bridge header type. 2411 (show_htype2): Stub routine. 2412 (scan_config): Write sensible error message if the kernel denies reading of 2413 upper part of the PCI config space. 2414