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