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