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