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