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