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