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