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