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