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