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