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