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