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