]> mj.ucw.cz Git - pciutils.git/blob - ChangeLog
Register caching rewrite
[pciutils.git] / ChangeLog
1 2005-08-23  Martin Mares  <mj@ucw.cz>
2
3         * lspci.man, setpci.man: Improved the man pages. Documented all access
4         methods and which operations are privileged.
5
6         * lspci.c: Another rewrite of config register caching, now also including
7         lots of internal checks. It should be now perfectly able to cope with
8         portions of the configuration space being inaccessible, for example
9         due to insufficient access rights.
10
11         * lspci.c (show_pcix_nobridge, show_pcix_bridge): Cleaned up dumping of PCI-X
12         capabilities. Includes partial support for PCI-X 2.0 (probably incomplete
13         as I haven't seen the spec).
14
15         * lspci.c: Quell warnings about unused parameters.
16
17         * lspci.c: Removed C++ comments.
18
19         * lib/header.h: Merged definitions of extended capabilities and some new
20         PCI-X capability bits from linux-2.6.11/include/pci.h.
21
22         * lspci.c (show_caps): Try to scan extended capabilities only if the
23         device has either PCI-X or PCI Express capability in its normal capability
24         list.
25
26         * lib/dump.c (dump_init): Reading of dumps works again. The dump reader
27         now also remembers how much data it has read and refuses attempts to
28         access more than that.
29
30         * setpci.man, lspci.c, README: prefer spelling "buses" over "busses".
31
32         * lspci.c: If alloca() is not available, use xmalloc(), not malloc().
33
34         * lib/configure: Added x86_64 on Linux.
35
36 2005-08-22  Martin Mares  <mj@ucw.cz>
37
38         * lib/filter.c (pci_filter_parse_slot): Fixed parsing of domain filters.
39         Thanks to Matthew Wilcox for bug report.
40
41         * lspci.c: Corrected spelling of "Hz" (it was "hz" at several places).
42         Thanks to Krzysztof Oledzki for pointing that out.
43
44 2004-08-19  Martin Mares  <mj@ucw.cz>
45
46         * pciutils.spec (%attr): Setting attributes for /sbin/* is an anachronism,
47         because pciutils by default install to /usr/sbin. Update.
48
49 2004-08-13  Martin Mares  <mj@ucw.cz>
50
51         * Released as 2.1.99-test8.
52
53         * lib/types.h, lib/pci.h, lib/sysdep.h: `byte' and `word' are
54         no longer exported to the outside world.
55
56         * README.Windows: Updated.
57
58         * maint/release: Substitute version number in win32/config.h.
59
60         * win32/config.h: Added.
61
62         * lib/sysdep.h (bzero, strcasecmp): are macros on Windows.
63
64         * compat/getopt.[ch]: Added copies of getopt.[ch] from the GNU
65         C library for use on systems where the default libraries lack
66         proper getopt. Currently used by the Windows port.
67
68         * lib/sysdep.h, lib/types.h: Updates of the Windows port from
69         Alexander Stock.
70
71         * lib/types.h: If PCI_HAVE_Uxx_TYPES is defined, libpci doesn't define
72         its own u8, u16, u32, byte and word types and uses what the user
73         has supplied instead. With this change, all namespace clashes should
74         be gone.
75
76         * Makefile, lib/Makefile: Updated dependencies.
77
78         * pciutils.h: Include lib/sysdep.h and move NONRET et al. there.
79
80         * lib/sysdep.h: No need to include <sys/types.h> on FreeBSD, because
81         it is included unconditionally in lib/types.h.
82
83         * Moved system-dependent stuff from lib/internal.h to lib/sysdep.h,
84         which is also used by the utilities. Also moved type declarations
85         from lib/pci.h to lib/types.h.
86
87         * All files: Prepend a "PCI_" prefix in front of all configuration
88         defines to avoid namespace clashes. CAVEAT: If there is any libpci
89         application using the (undocumented) defines, it has to be updated.
90
91         * lib/Makefile: Killed HAVE_OWN_HEADER_H, since we stopped sharing
92         headers with the kernel a couple of years ago.
93
94         * lib/sysfs.c (sysfs_get_resources): We have 7 resources, not 6.
95
96         * lspci.c (show_rom): Use the same logic for printing disabled
97         or unassigned ROM's as we do in show_bases() for the other BAR's.
98
99         * lib/generic.c (pci_generic_fill_info): Better reaction to
100         invalid 64-bit addresses. Also d->hdrtype should not include
101         bit 7, which caused mysterious errors on multi-function devices.
102
103         * lib/generic.c (pci_generic_fill_info): Fill in base addresses
104         even if the regions are known to be disabled. It is the client's
105         job to interpret them. (And it is not a trivial job if you want
106         to do it correctly, since you need to check I/O and memory enables
107         on all upstream bridges, too.) However, it could be interesting to
108         introduce functions for interpreting the addresses and even for
109         mapping the regions and doing I/O on them.
110
111 2004-07-30  Martin Mares  <mj@ucw.cz>
112
113         * lspci.c: HyperTransport improvements from Maciej.
114
115 2004-07-11  Martin Mares  <mj@ucw.cz>
116
117         * lib/sysfs.c (sysfs_get_resources): Arguments now correspond
118         to the format string. [Patch by Bill Nottingham]
119
120 2004-07-05  Martin Mares  <mj@ucw.cz>
121
122         * Released as 2.1.99-test7.
123
124         * lspci.c (config_fetch): Wanted to merge Matthew's bug fix, but
125         ended up with rewriting the fetching mechanism to be fully dynamic,
126         but avoid reading config space registers not explicitly requested.
127
128 2004-06-29  Matthew Wilcox <willy@debian.org>
129
130         * lspci.c: More work on PCI Express dumping.
131
132         * lib/header.h: Updated PCI Express capability definitions.
133
134         * lib/proc.c (proc_read): Removed bogus warning.
135
136         * common.c (xrealloc): Introduced.
137
138         * lspci.man: Added -xxxx.
139
140 2004-06-27  Martin Mares  <mj@ucw.cz>
141
142         * Released as 2.1.99-test6.
143
144         * lspci.c (show_msix), lib/header.h: Added dumping of MSI-X cap.
145         Patch by Roland Dreier <roland@topspin.com>, cleaned up by me.
146
147         * lspci.c (show_pcix_nobridge, show_pcix_bridge): Handle config_fetch()
148         failures.
149
150         * lib/header.h: Added PCI Express extended capabilities. Again by Matthew.
151
152         * lspci.c (show_express): Added dumping of PCI Express cap.
153         Patch by Matthew Wilcox.
154
155         * lib/header.h: Added a list of PCI 3.0 capabilities and also details
156         on PCI Express caps. Patch by Matthew Wilcox <willy@debian.org>.
157
158         * lspci.c (check_root): Gone. No explicit checks for root are needed,
159         report correct errors reported by the libpci instead.
160
161         * lspci.c: Added dumping of the extended config space on "-xxxx".
162         Better caching of config registers.
163
164         * setpci.c (main): Allow access to whole 4096 bytes of the config space.
165
166         * lib/sysfs.c, lib/proc.c: Don't print error messages on short reads,
167         just return the appropriate error code.
168
169         * lib: Added support for extended (4096-byte) configuration space,
170         currently implemented only in Linux proc and sysfs access methods
171         and of course in the dump reader.
172
173 2004-05-29  Martin Mares  <mj@ucw.cz>
174
175         * Released as 2.1.99-test5.
176
177         * lib/pci.h: Windows don't have the standard u_int* types.
178
179         * lib/internal.h: <sys/param.h> required on Windows for endianity
180         macros.
181
182         * lib/i386-ports.c: Connected i386-io-windows.h.
183
184         * lspci.c (check_root): geteuid() is not available on Windows.
185
186         * lib/i386-io-windows.h: Added Windows port contributed by Alexander
187         Stock <stock.alexander@gmx.de>.
188
189         * lib/configure: Hopefully fixed SunOS port broken by various
190         changes to the configure script.
191
192         * Makefile, lib/configure: Cross-compilation support, patch by Maciej.
193
194 2004-05-28  Martin Mares  <mj@ucw.cz>
195
196         * Released as 2.1.99-test4.
197
198         * lspci.c (show_verbose): Header type 1 is probably legal for all
199         types of bridges, not only for PCI-to-PCI bridges.
200
201         * lspci.c (format_agp_rate): Write "x16", not "x@".
202         (show_agp): rate[] could overflow.
203         Bugs reported by Jakub Bogusz <qboosh@pld-linux.org>.
204
205         * lspci.c (show_ht_*): Show HyperTransport capability with all its
206         details. Once again code by Maciej simplified (i.e., possibly broken)
207         by me.
208
209         * lib/header.h: Added declarations of HyperTransport capability.
210         Again thanks to Maciej.
211
212         * lspci.c: Decode all bits of the secondary status word in type 1 headers.
213         Thanks to Maciej W. Rozycki <macro@ds2.pg.gda.pl> for the patch.
214
215 2003-12-27  Martin Mares  <mj@ucw.cz>
216
217         * Released as 2.1.99-test3.
218
219         * lspci.man, setpci.man: Document domains and correct spelling.
220
221         * lib/dump.c (dump_init): Added ability to read domain numbers.
222
223         * lspci.c: Devices in domains different from 0 have their slot number
224         printed as "<domain>:<bus>:<slot>.<func>". Tree view supports domains
225         as well.
226
227         * lib/filter.c: Slot filters understand domains.
228
229         * lib/generic.c: Mention the domain in slot numbers in all error messages.
230
231         * lib/internal.h: The #ifdef for Linux <asm/byteorder.h> was wrong.
232
233         * lib/access.c (pci_get_dev): Added support for domains.
234
235         * lib/sysfs.c (sysfs_scan): Read vendor and device ID from the config
236         registers (or to be precise, leave it for the generic parts of the pcilib
237         to do so) instead of reading them from the sysfs. It's faster this way.
238
239         * lspci.c (show_pcix): Don't touch pci_dev->hdrtype, it's an internal
240         variable. Better read it from the config registers (it's cached anyway).
241
242         * lib/sysfs.c (sysfs_scan), lib/proc.c (proc_scan): Don't read the hdrtype.
243           lib/generic.c (pci_generic_fill_info): If hdrtype is -1 (unset), read it.
244           Saves lots of unnecessary file accesses.
245
246         * lib/pci.h (PCIADDR_PORT_FMT): Use %llx instead of %Lx, because the latter
247         is not supported by all C libraries.
248
249         * Makefile: Always enter the lib directory (remember that we don't have
250         full dependecies for the library in the top-level Makefile; hmmm, another
251         thing to rewrite some day).
252
253         * lib/sysfs.c: Added Linux sysfs access method based on the patch
254         written by Matthew Wilcox <willy@fc.hp.com>.
255
256         * lib/proc.c: Renamed the access method name from "/proc/bus/pci" to "Linux-proc".
257
258         * lib/pread.h: The hacks to support pread on various versions
259         of Linux libc moved there.
260
261         * lib/proc.c (proc_setup): The return value of snprintf() varies
262         between glibc versions, so we need to check both for a negative
263         values and for too large values.
264
265         * Removed last few references to the "Linux PCI Utilities", the
266         package is pretty cross-platform now :)
267
268 2003-12-27  Martin Mares  <mj@ucw.cz>
269
270         * Released as 2.1.99-test2.
271
272         * README, pciutils.lsm, pciutils.spec: Use @VERSION@ to make the
273         release scripts insert the current version. "make release" is gone.
274
275         * maint/release, maint/release.pm: Added a new system of scripts for
276         making releases including inter-version diffs etc.
277
278         * Makefile: Cleaned up.
279
280         * lib/fbsd-device.c: I patched another copy of this file by mistake,
281         this time the version checks should be right.
282
283 2003-12-27  Martin Mares  <mj@ucw.cz>
284
285         * Released as 2.1.99-test1.
286
287         * pciutils.h, common.c, lspci.man, setpci.man, lib/internal.h:
288         Remove shadows of the syscall access method which was never
289         implemented.
290
291         * update-pciids.sh: Try to preserve permissions of the old file
292         if chmod supports --reference. Should close Debian Bug #223740.
293
294         * lib/proc.c (proc_setup): Increased path name length limit to 1024.
295         Thanks for Redhat and Mandrake for inspiration.
296
297         * lib/configure: Recognize ppc and ppc64, both have 64-bit addresses.
298         Grabbed from Redhat (Fedora) patches.
299
300 2003-12-27  Martin Mares  <mj@ucw.cz>
301
302         Merged bug fixes from Debian patches:
303
304         * lspci.c (show_verbose): "Cache Line Size" should be capitalized.
305
306         * lspci.c (show_pcix_nobridge): Added a missing newline.
307
308         * lib/proc.c (proc_scan): When reading the header type, don't
309         forget to clear the topmost bit indicating that the device has
310         multiple functions.
311
312 2003-12-27  Martin Mares  <mj@ucw.cz>
313
314         Updated the FreeBSD port. Thanks to Samy Al Bahra <samy@kerneled.com>
315         for the patches:
316
317         * lib/Makefile: Add ${FREEBSD_SYS} to the include path if it's defined.
318         * lib/fbsd-device.c: Select the right set of system includes according
319         to __FreeBSD_version.
320
321 2003-12-27  Martin Mares  <mj@ucw.cz>
322
323         Merged support for Solaris on i386 by Bill Moore <billm@eng.sun.com>
324         and cleaned up:
325
326         * lib/configure: Recognize SunOS.
327         * lib/internal.h: Learn how to recognize byte order on SunOS.
328         * lib/i386-ports.c: Split OS-dependent I/O port access from i386-ports.c.
329         * lib/i386-io-linux.h: Linux specific part.
330         * lib/i386-io-hurd.h: GNU/Hurd specific part.
331         * lib/i386-io-sunos.h: SunOS specific part.
332
333 2003-12-26  Martin Mares  <mj@ucw.cz>
334
335         * lib/header.h (PCI_*_MASK): Cast to pciaddr_t explicitly.
336
337         * lib/pci.h: Types declared in <sys/types.h> should be usable on all
338         platforms we currently support, so kill the forest of #ifdef's and
339         use them in all cases.
340
341         * lib/pci.h: Use ULONG_MASK to decide whether we should use long
342         or long long to represent a 64-bit address. Killed HAVE_LONG_ADDRESS.
343         Define format strings for addresses, port numbers and IRQ numbers
344         directly in pci.h.
345
346         * lib/proc.c (proc_scan): Use PCIADDR_T_FMT for scanf'ing addresses.
347
348 2003-12-26  Marco Gerards  <metgerards@student.han.nl>
349
350         Added support for the GNU Hurd (cleaned up by Martin Mares):
351
352         * lib/configure [GNU]: Use the i386 ports for configuration access.
353         * lib/i386-ports.c: Don't call iopl() on the Hurd.
354         * lib/pci.h [OS_GNU]: Include <sys/types.h> and use it for defining
355         u8 to u32.
356
357 2003-12-26  Martin Mares  <mj@ucw.cz>
358
359         * lspci.c (show_pcix_bridge, show_pcix_nobridge): Don't forget to call
360         config_fetch() to ensure that the registers have been read. Thanks to
361         Bill Wood <bill.wood@hp.com> for the patch.
362
363         * lspci.c: Ensure that failure of config_fetch() is handled correctly
364         at all places.
365
366         * lspci.man: There was one more explicit reference to /usr/share/pci.ids.
367         Changed to @SHAREDIR@. Patch from Maciej W. Rozycki <macro@ds2.pg.gda.pl>.
368
369         * setpci.c (main): Better error messages.
370
371         * setpci.c (ex_op): The demo mode should disable only writing, not reading.
372
373         * setpci.man: The documentation was inconsistent on what should -D do.
374         Document the new behaviour.
375
376         * pciutils.h, common.c, setpci.c: Introduced a NONRET macro encapsulating
377         the GCC specific __attribute__((noreturn)) and killed the hack with
378         redefining __attribute__ on non-GCC compilers.
379
380         * Makefile: Added missing dependencies. Parallel builds work now.
381         Problem reported by Andreas Haumer <andreas@xss.co.at>, but I chose
382         a different fix.
383
384         * Makefile (MANDIR): Use `:=' instead of `=' to avoid executing the shell
385         command every time $(MANDIR) is referenced.
386
387         * lspci.c (main): The error message for `lspci -s' incorrectly mentioned
388         a `-f' switch. Reported by Steve Finney <Steve.Finney@SpirentCom.COM>.
389
390         * lib/generic.c: Removed memory leak in pci_generic_bus_scan().
391         Reported by Gary Parnes <gary_parnes@terago.com>.
392
393         * Replaced obsolete syntax of __attribute__((unused)) in the middle of
394         parameter declarations (which is no longer supported by GCC 3.1) by the
395         current syntax (attribute at the end). Thanks to pixel@mandrakesoft.com
396         for reporting this problem.
397
398         * Removed CVS $Id$ tags from all files.
399
400         * Makefile: Added some more warnings.
401
402         * setpci.c: Cleaned up mask/value code.
403
404 2003-12-08 Thayne Harbaugh <tharbaugh@lnxi.com>
405
406         * setpci.c: Individual bits to be set can be specified as <value>:<mask>.
407
408 2003-11-29  Martin Mares  <mj@ucw.cz>
409
410         * Imported the pciutils sources to my Arch repository. Good-bye, CVS.
411
412 2003-01-04  Martin Mares  <mj@ucw.cz>
413
414         * Released as 2.1.11.
415
416         * Makefile: Changed configuration of installation directories --
417         all paths are now set at the top of the Makefile instead of being
418         scattered between the installation rules. The default installation
419         now goes always to /usr/local regardless of the OS as most distributions
420         already contain some version of pciutils and we don't want custom
421         installations to interfere with the default ones.
422
423         * Makefile: Removed a couple of ancient install hacks: we no longer
424         try to avoid overwriting a newer pci.ids file (users are now expected
425         to use update-ids) and we don't try to remove /etc/pci.ids (a long time
426         has passed since the last version which used it).
427
428         * Makefile: Paths to pci.ids in man pages automatically get the right path.
429
430         * Added the update-ids utility.
431
432         * lib: Removed partially implemented "syscall" access method which will
433         probably never be needed.
434
435 2002-12-27  Martin Mares  <mj@ucw.cz>
436
437         * lib/nbsd-libpci.c: Cleaned up and hopefully made it endian safe.
438
439         * lib/generic.c (pci_generic_scan_bus): Added work-around for devices with
440         discontiguous numbering of functions. This is already present in the Linux
441         kernel for several years, but I forgot to update pciutils as well.
442
443 2002-12-26  Martin Mares  <mj@ucw.cz>
444
445         * lib/header.h, lspci.c: Dump AGP3 flags and speeds.
446
447         * lib/pci.h, Makefile: Removed HAVE_OWN_HEADER_H. Always use our own header,
448         there is no reason to prefer the kernel version.
449
450         * lib/proc.c (proc_scan): Don't forget to initialize hdrtype.
451
452         * Added preliminary version of NetBSD support by Quentin Garnier
453         <netbsd@quatriemek.com>.
454
455 2002-04-06  Martin Mares  <mj@ucw.cz>
456
457         * lspci.c: Mention "-xxx" in the help.
458
459 2002-03-30  Martin Mares  <mj@ucw.cz>
460
461         * Released as 2.1.10.
462
463         * Removed pci.ids from the CVS as they are now maintained separately.
464         They are still included in the tarball, but if you are building pciutils
465         from CVS sources or you want to get a newer ID file than the one distributed,
466         just use "make update-ids" to download the most recent snapshot from
467         pciids.sf.net.
468
469         * Makefile, README: Updated accordingly.
470
471         * Makefile: Added a couple of maintenance targets.
472
473         * maint/*: Maintainer's utilities now reside here (present only in CVS,
474         not in the tarball).
475
476         * lib/names.c (parse_name_list): End-of-line comments are no longer
477         supported. Hashes are now perfectly valid in all names and they start
478         a comment only at the start of the line.
479
480 2002-03-26  Martin Mares  <mj@ucw.cz>
481
482         * README: Rewritten.
483
484         * Makefile: When the currently installed pci.ids file is newer than
485         the version to be installed, don't overwrite it. Suggested by
486         Jean Delvare <khali@linux-fr.org>.
487
488 2002-03-24  Martin Mares  <mj@ucw.cz>
489
490         * lspci.c (show_pcix_bridge): Added PCI-X capability display.
491         Contributed by Jeff Garzik <jgarzik@mandrakesoft.com>.
492
493         * lib/header.h: Added PCI-X stuff. Again by Jeff.
494
495         * Makefile (CFLAGS): -Werror is gone.
496
497         * lspci.c (format_agp_rate): Fixed AGP rate reporting.
498
499         * lib/filter.c (pci_filter_parse_slot): Allow bus 0xff, slot 0x1f and
500         function 7.
501
502         * lib/names.c (pci_lookup_name): When printing unknown subsystem vendor
503         or device hexadecimally, don't confuse it with chip vendor/device ID.
504         First reported by Marc Boucher <marc@mbsi.ca>.
505
506 2001-11-04  Martin Mares  <mj@ucw.cz>
507
508         * Released as 2.1.9.
509
510         * pci.ids: Synced with the PCI ID Repository at SourceForge
511         (http://pciids.sourceforge.net/).
512
513 2000-08-25  Martin Mares  <mj@albireo.ucw.cz>
514
515         * pci.ids: Updated ID's, synced with kernel 2.4.0-test7.
516
517 2000-06-13  Martin Mares  <mj@albireo.ucw.cz>
518
519         * Makefile (uninstall): Fixed.
520
521         * pci.ids: ID updates.
522
523 2000-05-20  Martin Mares  <mj@albireo.ucw.cz>
524
525         * Released as 2.1.8.
526
527         * pci.ids: ID updates.
528
529         * lspci.c (show_verbose): Min/max latency is now printed in nanoseconds.
530
531 2000-05-04  Martin Mares  <mj@albireo.ucw.cz>
532
533         * lspci.c (show_verbose): If the header type doesn't match device
534         class, just print a warning and still use the header type, assuming
535         bogus class info.
536
537 2000-05-01  Martin Mares  <mj@albireo.ucw.cz>
538
539         * lspci.c (show_pm): Updated according to PCI PM specs 1.1.
540
541         * pci.ids: Updated Contemporary Control ARCnet card entries.
542
543         * pci.ids: Synchronized class list with latest PCI SIG documents.
544
545 2000-04-29  Martin Mares  <mj@albireo.ucw.cz>
546
547         * lib/names.c (pci_lookup_name): Fixed the cheat.
548
549         * lib/internal.h: Moved UNUSED/inline hacks above all other declarations.
550
551         * pci.ids: Various ID updates.
552
553 2000-04-21  Martin Mares  <mj@albireo.ucw.cz>
554
555         * Released as 2.1.7.
556
557         * pciutils.spec: Added German description.
558
559         * lib/names.c (pci_lookup_name): Added a cheat for case that subsystem ID's
560         are the same as device ID and just output subsystem name according to
561         device name.
562
563         * lib/proc.c: Use UNUSED instead of __attribute__((unused)).
564
565         * lib/pci.h: Added the correct typedefs for AIX.
566
567         * lib/generic.c (pci_generic_scan_bus): Export.
568
569         * lib/configure: Detect AIX. Use "echo '...\c'" instead of
570         "echo -n" if the shell isn't bash.
571
572         * lspci.c: Avoid using alloca() if not compiled by GCC.
573         (insert_dev): Avoid returning a void value.
574
575         * Makefile: Choose which install utility to use according to
576         OS type. Also use `-o' instead of `-or' in find arguments.
577         Part of the AIX port.
578
579         * lib/aix-device.c: Added AIX low-level interface. Contributed
580         by Dave Johnson <ddj@brown.edu>, thanks a lot!
581
582         * pci.ids: Few new ID's.
583
584         * pciutils.h, lib/internal.h: Redefine __attribute__ and inline
585         when not compiled by GCC.
586
587 2000-04-17  Martin Mares  <mj@albireo.ucw.cz>
588
589         * Released as 2.1.6.
590
591         * pci.ids: Added a large batch of ID's contributed by Gunther
592         Mayer <gunther.mayer@braunschweig.netsurf.de> and synced the
593         list with the 2.3.99pre6 kernel.
594
595 Thu Mar  9 13:11:39 2000  Martin Mares  <mj@albireo.ucw.cz>
596
597         * lib/example.c: Added a simple example of how to use
598         the library.
599
600         * lspci.man, setpci.man: Revealed --version. Well spotted
601         by Adam Sulmicki.
602
603         * pci.ids: Added lots of new ID's and synced with 2.3.50.
604
605 Tue Feb 15 00:16:21 2000  Martin Mares  <mj@albireo.ucw.cz>
606
607         * Released as 2.1.5.
608
609         * pciutils.spec: Updated spec file from Andreas Jaeger. Now using
610         %{_mandir} to find the right location to install manual pages to.
611
612         * pci.ids: New ID's.
613
614         * setpci.c (main): Don't crash when `-s' or `-d' is given with
615         no argument.
616
617 Mon Jan 24 20:04:11 2000  Andreas Jaeger  <aj@suse.de>
618
619         * lib/i386-ports.c: Include <asm/io.h> only on systems without
620         glibc.
621
622 Mon Jan 24 11:24:43 2000  Martin Mares  <mj@albireo.ucw.cz>
623
624         * Makefile: Modified to work with the Linux FHS brain-damaged idea
625         of putting man pages to /usr/share/man. Now we choose either /usr/man
626         or /usr/share/man depending on which one exists.
627
628 Sun Jan 23 10:52:34 2000  Martin Mares  <mj@albireo.ucw.cz>
629
630         * pci.ids: Synced with Linux 2.3.40.
631
632         * Released as version 2.1.4.
633
634 Thu Jan 20 11:08:32 2000  Martin Mares  <mj@albireo.ucw.cz>
635
636         * lspci.c (scan_device): Fixed bug in reading of cardbus extensions.
637
638         * lib/proc.c: pread/pwrite fixed again, this time on libc5 :(
639
640         * lspci.c (format_agp_rate): Better formatting of AGP rates.
641
642         * pci.ids: New ID's.
643
644         * lib/configure: Added configuration for ia64 (the same as for Alpha).
645         Patch from Stephane Eranian <eranian@cello.hpl.hp.com>.
646
647 Thu Jan 13 23:01:52 2000  Martin Mares  <mj@albireo.ucw.cz>
648
649         * Released as version 2.1.3.
650
651         * pci.ids: New ID's.
652
653         * lspci.c: Alpha IO_FORMAT fix by Andrea Arcangeli.
654
655         * lib/access.c: Corrected order of access methods -- it's wonderful how
656         long could such a bug remain unspotted. Thanks go to Andreas Schockenhoff.
657
658 Sat Dec 11 23:34:48 1999  Martin Mares  <mj@albireo.ucw.cz>
659
660         * Released as version 2.1.2.
661
662         * lib/names.c (pci_lookup_name): Fixed printing of unknown subsystem ID's.
663
664 Sat Dec  4 13:11:03 1999  Martin Mares  <mj@albireo.ucw.cz>
665
666         * Released as version 2.1.1.
667
668         * pci.ids: Several new ID's.
669
670         * setpci.c (exec_op): Don't forget to increment address after writing
671         single value, so that `30.b=12,34,56,78' works as expected. Reported
672         by Petr Soucek <petr@ryston.cz>.
673
674 Wed Nov  3 10:24:38 1999  Martin Mares  <mj@albireo.ucw.cz>
675
676         * lspci.c (show_terse): If prog-if is zero, but it's present in the
677         ID list, show it.
678
679 Sat Oct 30 11:06:35 1999  Martin Mares  <mj@albireo.ucw.cz>
680
681         * Released as version 2.1.
682
683         * pci.ids: Synced to devlist.h in 2.3.24 kernel. Merged in
684         lots of contributed entries.
685
686 Thu Oct 14 10:40:12 1999  Dave Jones    <dave@powertweak.com>
687
688         * pci.ids: Added lots of subsystem definitions.
689
690 Sat Oct  9 14:32:28 1999  Martin Mares  <mj@albireo.ucw.cz>
691
692         * setpci.man: Better example.
693
694         * lspci.c: Resolve prog-if names.
695
696         * lib/names.c: Adapted to new pci.ids syntax.
697
698         * pci.ids: Reorganized the pci.ids file. Subsystems are listed
699         under devices, classes can optionally contain prog-if information.
700         New ID's, as usually.
701
702 Wed Sep 22 09:45:24 1999  Martin Mares  <mj@albireo.ucw.cz>
703
704         * pci.ids: New ID's. As usually.
705
706         * lspci.c (show_htype1, show_htype2): Don't show `closed' bridge windows
707         unless we're vvvery verbose.
708
709 Mon Sep 20 11:22:54 1999  Martin Mares  <mj@albireo.ucw.cz>
710
711         * lspci.c (show_htype2): Don't forget a TAB before the "I/O window" line.
712
713 Tue Sep 14 09:31:01 1999  Martin Mares  <mj@albireo.ucw.cz>
714
715         * pci.ids: New ID's. Again.
716
717 Thu Aug  5 17:45:42 1999  Martin Mares  <mj@albireo.ucw.cz>
718
719         * lspci.c (show_size): Don't show size if it's zero (usually
720         due to bus-centric mode being enabled).
721
722 Tue Jul 20 13:25:09 1999  Martin Mares  <mj@albireo.ucw.cz>
723
724         * lib/pci.h: Types are OS dependent.
725
726         * lib/internal.h: Byte order hacks are OS dependent.
727
728         * lib/configure: Recognize FreeBSD. Also set OS_XXX according to the OS.
729
730         * lib/Makefile, lib/access.c: Added fbsd-device target.
731
732         * pci.ids: Added an entry for PLX 9080 bridges with subsystem ID
733         incorrectly set to device ID.
734
735         * README: Added a note that we support FreeBSD.
736
737         * Makefile (PREFIX, ROOT): Set it depending on the OS.
738         (%.8): Grrr, BSD date is not able to convert date formats the same way
739         as GNU date does. Use sed instead.
740         (install): Use `-c' when calling install.
741
742         * lib/fbsd-device.c: Added FreeBSD /dev/pci access module contributed
743         by Jari Kirma <kirma@cs.hut.fi>.
744
745         * lib/proc.c: Rewrote the pread/pwrite things once again. Use pread
746         and pwrite only when we are certain it's safe (i.e., glibc 2.1
747         on all architectures or any libc on a i386 where we really know
748         how to use syscalls directly). In all other cases, emulate it
749         with lseek/read/write.
750
751         * pci.ids: Some more IDs.
752
753 Mon Jul 19 14:10:36 1999  Martin Mares  <mj@albireo.ucw.cz>
754
755         * pci.ids: Added IDs of parallel port controller cards as sent
756         by Tim Waugh <tim@cyberelk.demon.co.uk>.
757
758 Wed Jul  7 00:55:48 1999  Martin Mares  <mj@albireo.ucw.cz>
759
760         * lib/proc.c (proc_scan): HAVE_LONG_ADDRESS instead of HAVE_64BIT_ADDRESS.
761
762         * lspci.c: ADDR_FORMAT now depends on both HAVE_64BIT_ADDRESS and
763         HAVE_LONG_ADDRESS.
764
765         * lib/configure: HAVE_64BIT_ADDRESS now doesn't imply that the addresses
766         are represented as long long. Introduced a new flag HAVE_LONG_ADDRESS
767         to indicate this. Both Sparc architectures now use both 64BIT_ADDRESS
768         and LONG_ADDRESS since they have 32-bit userland, but don't set LONG_ADDRESS
769         on Alpha.
770
771         * lspci.c (show_msi): Added dumping of the MSI capability.
772         (show_slotid): The same for SlotID capability.
773         (show_caps): Seperated capability dumping, because it should
774         be used for both htype0 and htype1. Even PCI 2.2 doesn't mention
775         layout of htype2, so I'm a bit unsure about it wrt capabilities
776         -- they at least have to live somewhere else since address 0x34
777         is already defined differently in htype2.
778
779         * lib/header.h (PCI_STATUS_UDF): Marked as obsolete (PCI 2.2).
780         (PCI_BASE_ADDRESS_MEM_TYPE_1M): Ditto.
781         (PCI_CAP_ID_*): Added some new capabilities defined in PCI 2.2.
782
783         * lspci.c (show_htype0): Mask out lowest 2 bits from all capability pointers
784         (required by the PCI 2.2 specs).
785
786 Mon Jul  5 12:45:19 1999  Martin Mares  <mj@albireo.ucw.cz>
787
788         * lspci.c (show_size): Added new function for dumping of region sizes.
789         (show_rom): Added. Now correctly dumps unassigned ROM addresses, disabled
790         ROMs et cetera.
791
792         * lib/pci.h (struct pci_dev): known_fields moved to the public part
793         of the structure.
794
795         * Added support for region sizes. Needs support in the kernel, because
796         sizes have to be scanned before drivers initialize yourself. pci_fill_info()
797         now returns a bitmask of what fields were really read.
798
799 Mon Jun 28 18:37:51 1999  Dave Jones    <dave@powertweak.com>
800
801         * Makefile:
802           Added `uninstall' target - removes all traces of pciutils.
803         * pci.ids:
804           - Lots of cleanups in the ATI, S3, Adaptec vendors.
805           - Changed Compaq QVision 1280/p definitions, as it's not possible
806             to determine the revision from the device ID.
807           - Same for the Tseng ET4000.
808             The id's said I had a rev C, when it was actually a rev B.
809           - Removed some unnecessary strings
810             `PCI'. Unless it's an AGP card, it should be obvious that it's PCI.
811             `Ethernet card'. This should be determined from config space.
812           - Lots of other new vendors & devices
813           - Other additional small cleanups.
814
815 Mon Jun 21 22:11:10 1999  Martin Mares  <mj@albireo.ucw.cz>
816
817         * lib/names.c (pci_lookup_name): When device ID lookup
818         fails, return hexadecimal device ID instead of vendor ID.
819         Well spotted by Axel Bodemann <Axel.Bodemann@ruhr-uni-bochum.de>,
820         I've just extended the fix to subsystem ID's.
821
822 Thu Jun 17 19:48:21 1999  Martin Mares  <mj@albireo.ucw.cz>
823
824         * lspci.c (show_agp): Bug fix from Petr Vandrovec
825         <vandrove@vc.cvut.cz>. The command register was displayed
826         incorrectly.
827
828 Wed Jun  2 22:42:44 1999  Martin Mares  <mj@albireo.ucw.cz>
829
830         * lib/proc.c (SYS_pread, SYS_pwrite): Use hard-coded
831         numbers if not supplied by the libc.
832
833 Wed May 19 13:24:39 1999  Martin Mares  <mj@albireo.ucw.cz>
834
835         * Released the whole package as version 2.0.
836
837 Fri May 14 22:42:02 1999  Martin Mares  <mj@albireo.ucw.cz>
838
839         * pci.ids: Added several new ID's contributed by people
840         on the linux-pci list.
841
842 Mon Apr 19 15:21:08 1999  Jakub Jelinek  <jj@ultra.linux.cz>
843
844         * lspci.c: Display I/O addresses correctly on sparc64.
845         * lib/header.h: Ditto.
846
847         * lib/configure: On sparc set HAVE_64BIT* as well, we want
848         a binary which works on both 32bit and 64bit SPARCs.
849
850 Sun Apr 18 21:14:58 1999  Martin Mares  <mj@albireo.ucw.cz>
851
852         * lspci.c, lib/proc.c: Alpha compilation fixes from Matthew Jacob
853         <mjacob@feral.com>.
854
855         * pci.ids: A lot of updates from Adam J. Richter <adam@yggdrasil.com>.
856
857 Sun Feb 28 22:26:21 1999  Martin Mares  <mj@albireo.ucw.cz>
858
859         * lspci.c (do_map_bus): Don't dump functions 1--7 if not flagged
860         as a multi-function device, because several single-function devices
861         don't decode the function bits at all.
862
863 Sun Feb 14 23:48:22 1999  Martin Mares  <mj@albireo.ucw.cz>
864
865         * Makefile (install): Don't use "-o root -g root" for installation
866         since it breaks on machines where programs are not installed by root.
867         Reported by Richard Gooch <rgooch@atnf.csiro.au>
868
869 Tue Feb  9 15:54:39 1999  Martin Mares  <mj@albireo.ucw.cz>
870
871         * lspci.c (show_bases): Use new address masking macros and pciaddr_t.
872
873         * lib/pci.h: Using pciaddr_t for bus addresses, which are 32-bit
874         or 64-bit depending on CPU.
875
876         * lib/pci.h (PCI_ADDR_MEM_MASK): Added macros for address masks
877         according to bus address width.
878
879 Thu Jan 28 20:54:16 1999  Martin Mares  <mj@albireo.ucw.cz>
880
881         * Released as 1.99.4.
882
883         * lspci.c: Capability list parser now recognizes both AGP
884         registers and PCI Power Management registers (the latter
885         is mainly guesswork based on DEC/Intel 21153 bridge specs
886         since I don't have the PCI Power Management document).
887
888         * lspci.c: Replaced numerous occurences of (x & flag) ? '+' : '-'
889         by FLAG macro.
890
891         * lspci.c: Added bridge checks to bus mapping code.
892
893 Wed Jan 27 14:59:16 1999  Martin Mares  <mj@albireo.ucw.cz>
894
895         * lspci.c: Implemented bus mapping mode (-M).
896
897         * lspci.c (scan_devices): Split to scan_devices() and scan_device().
898         (show): Split to show() and show_device().
899
900         * lib/access.c (pci_init): When a->method == PCI_ACCESS_AUTO,
901         set it to the real access method afterwards.
902
903 Mon Jan 25 23:46:13 1999  Martin Mares  <mj@albireo.ucw.cz>
904
905         * lib/generic.c (pci_generic_fill_info): If in buscentric mode,
906         don't check PCI_COMMAND for I/O and memory enables.
907
908 Mon Jan 25 21:28:49 1999  Martin Mares  <mj@albireo.ucw.cz>
909
910         * Makefile: Added target `release' which substitutes new version
911         number to .spec, .lsm and README. Also rewrote target `dist'.
912
913         * Released as 1.99.3.
914
915 Sun Jan 24 22:10:36 1999  Martin Mares  <mj@albireo.ucw.cz>
916
917         * lib/header.h: Until kernel adopts new layout of PCI
918         includes (i.e., separate declaration of header structure,
919         functions and device IDs), which is not going to happen
920         before 2.3, we'll use our own definiton of the header.
921
922         * lspci.c (show_verbose): Display `Cap' flag in device status.
923
924         * lspci.c (show_htype0): Display capability lists whereever
925         available. The only capability name we recognize now is `AGP'.
926         Unfortunately, capabilities are stored in device-dependent
927         portion of the configuration space and are thus available
928         only to root unless you read a dump.
929
930         * lspci.c (scan_devices): Use cache instead of buffering.
931
932         * lib/buffer.c: Removed (obsoleted by the cache).
933
934         * lib/access.c: Added general caching mechanism.
935
936 Sat Jan 23 21:30:54 1999  Martin Mares  <mj@albireo.ucw.cz>
937
938         * pci.ids: Added few devices.
939
940 Fri Jan 22 19:29:31 1999  Martin Mares  <mj@albireo.ucw.cz>
941
942         * Version string is now defined in top-level Makefile, exported
943         to the configure script and also substituted to man pages.
944
945         * lspci.c (show_bases): Rewrote displaying of 64-bit addresses.
946         (show_verbose): Rewrote interrupt display logic.
947
948         * lib/i386-ports.c: Include sys/io.h only on glibc systems.
949
950         * lib/configure: Rewrote detection of Linux versions. Now it
951         works on 2.0 kernels (only with direct/dump access, of course).
952
953         * lib/internal.h: New bytesex macros using <asm/byteorder.h>
954         whenever available.
955
956         * lib/proc.c (proc_read, proc_write): Distinguish between short
957         read/write and real errors.
958
959         * lspci.c (show_htype{0,1}): Always use d->dev->rom_base_addr since
960         libpci respects buscentric mode automatically.
961
962         * lspci.c (show_hex_dump): For CardBus bridges, print out 128
963         bytes of header (the whole standard part).
964
965         * common.c: pcilib options are now all uppercase. Also moved
966         PCI access debugging option here.
967
968         * Released as 1.99.2.
969
970 Wed Jan 20 22:50:35 1999  Martin Mares  <mj@albireo.ucw.cz>
971
972         * Wrote configure script and rewrote Makefiles.
973
974         * Removed few unused variables.
975
976 Wed Jan 20 12:21:56 1999  Martin Mares  <mj@albireo.ucw.cz>
977
978         * common.c: Moved several functions used in both setpci and lspci
979         here. This includes parsing of libpci-related options.
980
981         * More library tweaks.
982
983         * filter.c, names.c: Moved to library.
984
985         * setpci: Rewritten to use the library.
986
987         * Released as 1.99.1.
988
989 Tue Jan 19 23:00:12 1999  Martin Mares  <mj@albireo.ucw.cz>
990
991         * lspci.c (scan_devices): For cardbus bridges, read first 128
992         bytes of config space to get full standard header.
993
994         * Makefile (CFLAGS): Removed "-Wno-unused".
995
996         * Started the "New Generation" branch and introduced the
997         PCI library.
998         
999         * lspci: Rewritten to use the library.
1000
1001 Tue Jan 19 22:24:08 1999  Martin Mares  <mj@albireo.ucw.cz>
1002
1003         * Released as version 1.10.
1004
1005 Mon Jan 18 08:51:17 1999  Martin Mares  <mj@albireo.ucw.cz>
1006
1007         * lspci.8, setpci.8: Miscellaneous fixes as suggested by
1008         Dag Wieers <dag@digibel.be>.
1009
1010 Sun Nov 29 20:05:56 1998  Martin Mares  <mj@albireo.ucw.cz>
1011
1012         * pciutils.spec (Name): Update from Krzysztof G. Baranowski.
1013
1014 Sun Nov 22 10:49:56 1998  Martin Mares  <mj@albireo.ucw.cz>
1015
1016         * Makefile, pciutils.h: Moved pci.ids to /usr/share.
1017
1018         * Released as version 1.09.
1019
1020 Wed Nov 18 15:47:05 1998  Martin Mares  <mj@albireo.ucw.cz>
1021
1022         * lspci.c (show_htype1): Fixed displaying of prefetchable memory behind
1023         bridge. Thanks to Petr Vandrovec <vandrove@vc.cvut.cz> for bug report.
1024
1025 Fri Oct 23 18:59:19 1998  Martin Mares  <mj@albireo.ucw.cz>
1026
1027         * setpci.c: Don't include <syscall-list.h> with glibc >= 2.1.
1028
1029 Mon Oct 19 21:53:30 1998  Martin Mares  <mj@albireo.ucw.cz>
1030
1031         * Released as version 1.08.
1032
1033         * setpci.c: glibc 2.1.x already defines pread() and pwrite().
1034
1035         * lspci.8: Changed warning about lspci -xxx.
1036
1037         * lspci.c: Require "-xxx" for full configuration space dump, so that
1038         it's impossible to crash the machine by single typo.
1039
1040         * specs: Added (courtesy of Krzysztof G. Baranowski <kgb@knm.org.pl>).
1041
1042 Wed Sep  9 12:03:24 1998  Martin Mares  <mj@albireo.ucw.cz>
1043
1044         * lspci.c (show_bases): Better displaying of unassigned and
1045         disabled bases. Thanks to Gabriel Paubert <paubert@iram.es>
1046         for an idea.
1047
1048 Wed Sep  2 10:58:01 1998  Martin Mares  <mj@albireo.ucw.cz>
1049
1050         * setpci.c (pread): Recognize glibc 1.99 numbered as 2.0 on the PPC.
1051         (thanks to Geert Uytterhoeven for finding this out)
1052
1053 Fri Jul 17 10:43:30 1998  Martin Mares  <mj@albireo.ucw.cz>
1054
1055         * lspci.c (show_verbose): Print subsystem ID using the new resolver.
1056         (show_machine): Print subsystem ID.
1057
1058         * names.c: New name resolution engine supporting subsystem IDs.
1059
1060         * Released as version 1.07.
1061
1062 Wed Jul 15 15:37:21 1998  Martin Mares  <mj@albireo.ucw.cz>
1063
1064         * lspci.c (show_htype2 etc.): Displaying of CardBus headers.
1065         (show_bases): Honor the `cnt' argument.
1066         (grow_tree): Parse CardBus headers in tree mode as well.
1067
1068         * pci.h: Updated CardBus header field description. I still don't
1069         have the CardBus standard available, but OZ6832 specs contain
1070         full description of all header fields supported by the chip.
1071
1072 Tue Jun  9 22:53:59 1998  Martin Mares  <mj@albireo.ucw.cz>
1073
1074         * Released as 1.06.
1075
1076         * names.c (parse_name_list): Killed an unused variable.
1077
1078         * setpci.c (pread, pwrite): Define SYS_(pread|pwrite) as __NR_\1
1079         if they are not defined by glibc (needed for glibc built on older
1080         kernels). Ugly.
1081
1082         * setpci.c (exec_op): Fixed error messages. Thanks, Steve!
1083
1084 Mon Jun  8 10:59:22 1998  Martin Mares  <mj@albireo.ucw.cz>
1085
1086         * Released as 1.05.
1087
1088         * setpci.c: Problems with pread()/pwrite() with glibc on Alpha
1089         should be gone. Again thanks to Steve for bug report.
1090
1091         * filter.c (filter_parse_slot): Fixed ":x" type filters.
1092
1093         * pci.ids: Killed duplicate entry. Thanks to Stephen Williams
1094         <steve@icarus.com> for reporting this.
1095
1096 Sun Jun  7 19:27:51 1998  Martin Mares  <mj@albireo.ucw.cz>
1097
1098         * lspci.c (main), setpci.c (main): Implemented "--version".
1099
1100         * Released as 1.04.
1101
1102         * pciutils.h (PCIUTILS_VERSION): Added version string.
1103
1104         * filter.c, names.c: Extraneous #include <linux/pci.h> removed.
1105         Thanks to Geert Uytterhoeven <Geert.Uytterhoeven@cs.kuleuven.ac.be>
1106         for bug report.
1107
1108 Thu May 28 14:45:58 1998  Martin Mares  <mj@lomikel.karlin.mff.cuni.cz>
1109
1110         * pci.ids: More updates from Jens Maurer.
1111
1112 Wed Apr 22 10:00:39 1998  Martin Mares  <mj@albireo.ucw.cz>
1113
1114         * pci.ids: Updates from Jens Maurer.
1115
1116 Sun Apr 19 11:14:25 1998  Martin Mares  <mj@albireo.ucw.cz>
1117
1118         * Released as 1.03.
1119
1120         * setpci.8: Written.
1121
1122         * setpci.c: Finished.
1123
1124         * lspci.c: Now able to fetch expansion ROM base from kernel device list
1125         and print it if not in buscentric mode.
1126
1127 Tue Mar 31 23:11:57 1998  Martin Mares  <mj@albireo.ucw.cz>
1128
1129         * setpci.c: Added.
1130
1131 Sun Mar 22 15:39:08 1998  Martin Mares  <mj@albireo.ucw.cz>
1132
1133         * lspci.8: Updated the documentation.
1134
1135         * lspci.c: Modified to use the new filtering mechanism (options -f and -d).
1136
1137         * filter.c: Introduced new generic device filter.
1138
1139 Thu Mar 19 17:03:48 1998  Martin Mares  <mj@lomikel.karlin.mff.cuni.cz>
1140
1141         * lspci.c (grow_tree, show_tree_dev, print_it): Fixed displaying
1142         of PCI-to-PCI bridges in the tree format.
1143
1144 Sun Feb 15 10:12:25 1998  Martin Mares  <mj@albireo.ucw.cz>
1145
1146         * lspci.c (show_machine): Added non-verbose mode of machine-readable
1147         dump.
1148
1149         * pci.ids: Updates from Jens Maurer.
1150
1151         * Released as version 1.02.
1152
1153 Thu Feb 12 16:53:28 1998  Martin Mares  <mj@lomikel.karlin.mff.cuni.cz>
1154
1155         * lspci.c: Added a "-m" switch for dumping machine-readable
1156         configuration data (requested by Bjoern Kriews <bkr@cut.de>).
1157
1158 Mon Feb  9 13:17:43 1998  Martin Mares  <mj@albireo.ucw.cz>
1159
1160         * Makefile, pciutils.h: Include local pci.h instead of <linux/pci.h>
1161         if available. This should avoid all problems with official kernel
1162         not synchronized to newer PCI code in CVS -- standard distribution
1163         of pciutils now contains pci.h from current CVS kernel, pciutils
1164         in CVS contain no pci.h and use the correct kernel include.
1165
1166         * Makefile: Fixed installation path for man pages.
1167
1168 Sat Feb  7 15:15:46 1998  Martin Mares  <mj@albireo.ucw.cz>
1169
1170         * README: Updated.
1171
1172         * lspci.8: Created a man page.
1173
1174         * Releasing as version 1.0.
1175
1176 Tue Feb  3 20:56:00 1998  Martin Mares  <mj@albireo.ucw.cz>
1177
1178         * Makefile: Recognize architecture by calling uname and pass it as ARCH_xxx
1179         to all the C sources. This should eliminate problems with 32-bit compilers
1180         on sparc64.
1181
1182         * lspci.c (show_verbose): Recognize CardBus bridge header type.
1183         (show_htype2): Stub routine.
1184         (scan_config): Write sensible error message if the kernel denies reading of
1185         upper part of the PCI config space.