xref: /pciutils/ChangeLog (revision b35db44c)
12022-11-18  Martin Mares <[email protected]>
2
3	* XXX: To be released as 3.9.0.
4
5	* We decode Compute Express Link (CXL) capabilities.
6
7	* The tree mode of lspci is now compatible with filtering options.
8
9	* When setpci is used with a named register, it checks whether
10	  the register is present in the particular header type.
11
12	* Linux: The intel-conf[12] back-ends prefer to use ioperm() instead
13	  of iopl() to gain access to I/O ports.
14
15	* Windows: We have two new back-ends thanks to Pali Rohár.
16	  One uses the NT SysDbg interface, the other uses kldbgdrv.sys
17	  (which is a part of the Microsoft WinDbg tool).
18
19	* Windows: We support building libpci as a DLL. Also, Windows
20	  binaries now include meta-data with version.
21
22	* Hurd: The Hurd back-end works again.
23
24	* mmio-ports: Added a new back-end implementing the intel-conf1
25	  interface over MMIO. This is useful on some ARM machines, but it
26	  requires manual configuration of the MMIO addresses.
27
282022-04-18  Martin Mares <[email protected]>
29
30	* Released as 3.8.0.
31
32	* Filters can now match devices based on partially specified
33	  class code and also on the programming interface.
34
35	* Reporting of link speeds, power limits, and virtual function tags
36	  has been updated to the current PCIe specification.
37
38	* We decode the Data Object Exchange capability.
39
40	* Bus mapping mode works in non-zero domains.
41
42	* pci_fill_info() can fetch more fields: bridge bases, programming
43	  interface, revision, subsystem vendor and device ID, OS driver,
44	  and also parent bridge. Internally, the implementation was rewritten,
45	  significantly reducing the number of corner cases to be handled.
46
47	* The Windows port was revived and greatly improved by Pali Rohár.
48	  It requires less magic to compile. More importantly, it runs on both
49	  old and recent Windows systems (see README.Windows for details).
50
51	* Added a new Windows back-end using the cfgmgr32 interface.
52	  It does not provide direct access to the configuration space,
53	  but basic information about the device is reported via pci_fill_info().
54	  For back-ends of this type, we now provide an emulated read-only
55	  config space.
56
57	* If the configuration space is not readable for some reason
58	  (e.g., the cfgmgr32 back-end, but also badly implemented sleep mode
59	  of some devices), lspci prints only information provided by the OS.
60
61	* The Hurd back-end was greatly improved thanks to Joan Lledó.
62
63	* Various minor bug fixes and improvements.
64
65	* We officially require a working C99 compiler. Sorry, MSVC.
66
67	* As usually, updated pci.ids to the current snapshot of the database.
68
692020-05-31  Martin Mares <[email protected]>
70
71	* Released as 3.7.0.
72
73	* Added or improved the following capabilities: Designated Vendor-Specific,
74	  Compute eXpress Link, Resizable BARs, VF Resizable BARs, Link
75	  Capabilities 2, Link Status 2.
76
77	* On Linux, lspci can show IOMMU groups.
78
79	* setpci can be asked to skip bus scan and operate on a device
80	  completely specified by its domain/bus/dev/func address. This
81	  involved major internal cleanup.
82
83	* The above feature of setpci uses the pci_get_dev() function,
84	  which obtains a struct pci_dev without doing a bus scan. This was
85	  always possible, but apparently little used, because back-ends
86	  frequently choked when operating on such devices. Fixed a lot
87	  of minor bugs related to this.
88
89	* Also, back-ends which do not support domains now correctly fail when
90	  trying to access devices outside domain 0.
91
92	* Semantics of pci_fill_info() and pci_dev->known_fields was underspecified,
93	  which lead to inconsistencies between back-ends. Improved documentation
94	  to give a more precise definition and updated all back-ends to conform
95	  to it. Most importantly, pci_dev->known_fields shows all fields requested
96	  over the lifetime of the pci_dev, but never those which are not supported
97	  by the back-end.
98
99	* As usually, updated pci.ids to the current snapshot of the database.
100
1012020-01-25  Martin Mares <[email protected]>
102
103	* Released as 3.6.4.
104
105	* A new back-end for the GNU Hurd was contributed by Joan Lledó.
106
107	* When printing VPD item identifiers, non-ASCII characters are escaped.
108
1092020-01-22  Martin Mares <[email protected]>
110
111	* Released as 3.6.3.
112
113	* `lspci -t' (tree mode) can be combined with `-s' to show a sub-tree.
114	  We also fixed potential buffer overflows in the tree dumper.
115
116	* Cleaned messy code for dumping of I/O, memory, and ROM regions.
117	  This helped fixing a bug, which caused some 64-bit regions to be
118	  reported as virtual. All flags are now printed after the address
119	  (previously, "[virtual]" and "[enhanced]" were before it for no good
120	  reason).
121
122	* Added pci_find_cap_nr() to the library, which handles capabilities
123	  which occur multiple times in a single device.
124
125	* Minor improvements in printing of PCIe capabilities.
126
127	* We now decode the Multicast and Secondary PCI Express extended
128	  capabilities.
129
130	* The list of capability names available to setpci was updated.
131
132	* Minor bugs were fixed in FreeBSD and Solaris ports.
133
134	* We now prefer HTTPS URLs in all documentation
135
136	* The pci.ids file has a man page.
137
138	* As usually, updated pci.ids to the current snapshot of the database.
139
1402018-08-12  Martin Mares <[email protected]>
141
142	* Released as 3.6.2.
143
144	* Added "-P" and "-PP" switches to lspci, which display the path
145	  through bridges to each device.
146
147	* Fixed a couple of bugs in computation of bus topology. It was
148	  previously used only for the tree display, but we re-use it for
149	  computing the paths.
150
151	* As usually, updated pci.ids to the current snapshot of the database.
152
1532018-07-12  Martin Mares <[email protected]>
154
155	* Released as 3.6.1.
156
157	* Fixed compilation issues on Linux systems with MUSL libc.
158
1592018-06-30  Martin Mares <[email protected]>
160
161	* Released as 3.6.0.
162
163	* BARs reported by the OS, but not set on the device itself are
164	  reliably marked with "[virtual]".
165
166	* Library: Introduced a generic mechanism of string properties. This
167	  avoids lots of special cases and makes ABI compatibility easier.
168
169	* On Linux systems with OpenFirmware, report corresponding device tree nodes
170	  as device properties.
171
172	* VPD decoder knows several non-standard extensions.
173
174	* When PCIe link speed is less than the maximum supported by the
175	  device, it is explicitly marked as "downgraded".
176
177	* Several new capabilities are not decoded yet, but at least their
178	  names are printed.
179
180	* The Null capability is easily decoded.
181
182	* Formatting of several capabilities was cleaned up.
183
184	* The VGA16 bit in the bridge control register is now supported.
185
186	* Added a port to SylixOS. Thanks to YuJian Gong for contribution.
187
188	* Added a port to DOS/DJGPP. Thanks to Rudolf Marek for contribution.
189
190	* The order in which back-ends are probed was decoupled from the
191	  internal back-end IDs. This helps, because new back-ends must have
192	  their ID allocated at the end to keep the ABI, but they might need
193	  to be probed earlier.
194
195	* The fbsd-device back-end should work again.
196
197	* Fixed a couple of bugs. Most notably, DeviceName was not printed.
198
199	* As usually, updated pci.ids to the current snapshot of the database.
200
2012017-11-17  Martin Mares <[email protected]>
202
203	* Released as 3.5.6.
204
205	* Improvements of the FreeBSD back-end: read-only access for non-root,
206	  support DragonFly BSD, support extended config space.
207
208	* MN VPD keyword is decoded correctly.
209
210	* As usually, updated pci.ids to the current snapshot of the database.
211
2122017-07-05  Martin Mares <[email protected]>
213
214	* Released as 3.5.5.
215
216	* Better decoding of AER capability.
217
218	* "Slot Implemented" flag is decoded for PCI/PCI-X to PCIe bridges.
219
220	* Minor fixes of decoding other capabilities.
221
222	* As usually, updated pci.ids to the current snapshot of the database.
223
2242017-02-25  Martin Mares <[email protected]>
225
226	* Released as 3.5.4.
227
228	* Previous version broke compilation on systems, for which lib/types.h
229	  did not provide a 64-bit integer type. It is provided everywhere now.
230
2312017-02-15  Martin Mares <[email protected]>
232
233	* Released as 3.5.3.
234
235	* When lspci looks for Linux kernel modules, it uses the default
236	  path to module directory provided by libkmod. Previously,
237	  it tried to construct the path explicitly, which need not
238	  work on all systems.
239
240	* Improved formatting of memory and I/O ranges behind a bridge.
241
242	* PCIe link capabilities now display GEN4 speed (16GT/s).
243
244	* PCIe device capabilities now show bits related to atomic operations.
245	  Thanks to Satanand Burla for a patch.
246
247	* As usually, updated pci.ids to the current snapshot of the database.
248
2492016-10-03  Martin Mares <[email protected]>
250
251	* Released as 3.5.2.
252
253	* The L1 power management capability is now decoded more
254	  thoroughly. Thanks to Rajat Jain for the patch.
255
256	* The table of configuration registers used by setpci
257	  had a bug in the definition of SUBSYSTEM_VENDOR_ID.
258
2592016-05-22  Martin Mares <[email protected]>
260
261	* Released as 3.5.1.
262
263	* Fixed symbol versioning of pci_init().
264
2652016-05-19  Martin Mares <[email protected]>
266
267	* Released as 3.5.0.
268
269	* New capabilities decoded: Downstream Port Containment,
270	  Precision Time Measurement. Thanks to Keith Busch and
271	  Jonathan Yong.
272
273	* Domain numbers extended to 31 bits. This will be used by the
274	  Linux kernel on some machines in near future.
275
276	* Enhanced allocation regions are now decoded on Linux.
277
278	* The NetBSD back-end supports PCIe extended configuration space.
279
280	* Updated pci.ids to the current snapshot of the database.
281
2822016-01-03  Martin Mares <[email protected]>
283
284	* Released as 3.4.1.
285
286	* New capabilities decoded: Process Address Space, Page Request
287	  Interface, Enhanced Allocation. Thanks to David Daney and
288	  David Woodhouse.
289
290	* DevCap SlotPowerLimit is now decoded for all components with
291	  upstream ports.
292
293	* Database mirror at SourceForge moved to GitHub.
294
295	* Updated pci.ids to the current snapshot of the database.
296
2972015-09-14  Martin Mares <[email protected]>
298
299	* Released as 3.4.0.
300
301	* On Linux, we report NUMA nodes of devices.
302
303	* The sysfs back-end does not die on read errors
304	  of optional attributes. Instead, a warning is produced.
305
306	* Fixed several minor bugs.
307
308	* Updated pci.ids to the current snapshot of the database.
309
3102015-04-09  Martin Mares <[email protected]>
311
312	* Released as 3.3.1.
313
314	* Removed hacks for backward compatibility with Linux libc5,
315	  which were breaking newer non-glibc Linux systems. Thanks
316	  to Felix Janda.
317
318	* Display VirtIO vendor-specific capability. Patch by Gerd
319	  Hoffmann.
320
321	* Fixed memory leak in name cache.
322
323	* Updated pci.ids to the current snapshot of the database.
324
3252014-11-10  Martin Mares <[email protected]>
326
327	* Released as 3.3.0.
328	  (celebrating a one-year anniversary of the previous version :))
329
330	* Device names exported by BIOS are displayed on Linux.
331
332	* On Linux systems, HWDB is used to look up device names
333	  when our ID database gives no match. (More precisely,
334	  HWDB is consulted after local pci.ids, but before using
335	  network to query online pci.ids.) Thanks to Tom Gundersen
336	  for the initial patch.
337
338	* Added experimental back-end for OS X / Darwin. Thanks to
339	  Richard Yao for providing it.
340
341	* Filters now support matching by device class. Original
342	  patch by Matthew Wilcox, wrappers for ABI compatibility
343	  by me.
344
345	* Interrupt Pin and Interrupt Line registers are displayed
346	  for bridge devices, too.
347
348	* Several portability bugs have been fixed.
349
350	* Several typos have been fixed. Also, use of questionable
351	  constructs in man pages has been reduced.
352
353	* PCIe link capabilities now include the ASPMOptComp bit.
354
355	* The "CRS Software Visibility" bit is now decoded properly.
356
357	* Updated pci.ids to the current snapshot of the database.
358
3592013-11-10  Martin Mares <[email protected]>
360
361	* Released as 3.2.1.
362
363	* CardBus bridge capabilities are displayed.
364
365	* PCIe L1 PM substates are decoded.
366
367	* Various bugs were fixed in decoding of PCIe capabilities.
368
369	* The sysfs back-end does not spit out unnecessary warnings when
370	  empty slots report only a partial device address. This actually
371	  happens on IBM pSeries.
372
373	* Updated pci.ids to the today's snapshot of the database.
374
3752013-04-19  Martin Mares <[email protected]>
376
377	* Released as 3.2.0.
378
379	* On newer Linux systems, we use libkmod to look up kernel modules
380	  (modules.pcimap no longer exists). To facilitate this, libpci
381	  is able to look up module aliases in sysfs.
382
383	* Various minor bug fixes.
384
385	* Updated pci.ids to the today's snapshot of the database.
386
3872012-06-25  Martin Mares <[email protected]>
388
389	* Released as 3.1.10.
390
391	* Decoding of LTR/OBFF in PCIe capabilities.
392
393	* Various minor bug fixes.
394
395	* Updated pci.ids to the today's snapshot of the database.
396
3972012-01-14  Martin Mares <[email protected]>
398
399	* Released as 3.1.9.
400
401	* Updated README.
402
403	* Wherever we mention the PCI ID database, we now refer to
404	  http://pci-ids.ucw.cz/ and the sf.net site is mentioned only
405	  as a mirror. This includes update-pciids.
406
407	* Decode PCIe Gen 3 speeds and link status fields.
408
409	* Various minor bug fixes.
410
411	* Updated pci.ids to the today's snapshot of the database.
412
4132011-10-02  Martin Mares <[email protected]>
414
415	* Released as 3.1.8.
416
417	* More capabilities: Transaction Processing Hints, Latency Tolerance
418	Reporting. Thanks to Jesse Barnes.
419
420	* Added BeOS and Haiku ports. Contributed by Francois Revol.
421
422	* pciutils.pc now uses Libs.private properly.
423
424	* When we format a name and it does not fit in the buffer, we truncate
425	it instead of returning "buffer too small" instead. This works on all
426	platforms with sane (i.e., C99-compatible) snprintf().
427
428	* Various minor bug fixes.
429
430	* Updated pci.ids to the today's snapshot of the database.
431
4322010-01-31  Martin Mares <[email protected]>
433
434	* Released as 3.1.7.
435
436	* Minor improvements and bug fixes in decoding of the Virtual Channel
437	capability.
438
4392010-01-24  Martin Mares <[email protected]>
440
441	* Released as 3.1.6.
442
443	* More capabilities decoded: Virtual Channel (except arbitration
444	tables), Root Complex Link, Vendor-Specific (header only), SATA HBA.
445
446	* All extended capabilities have their version displayed (-vv or more).
447
4482010-01-19  Martin Mares <[email protected]>
449
450	* Released as 3.1.5.
451
452	* Updated pci.ids to the today's snapshot of the database.
453
454	* When scanning extended capabilities, properly mask the lowest 2 bits,
455	  which are currently reserved. This avoids unaligned access errors on
456	  broken hardware (see tests/broken-ecaps).
457
458	* Large bar sizes are displayed in human-readable format (with units).
459	  Thanks to Matthew Wilcox.
460
461	* Physical slot information is displayed correctly for multi-function cards.
462	  Fixed by Matthew Wilcox.
463
464	* Fixed a couple of typos everywhere.
465
466	* Library: Fixed bugs in freeing of capabilities.
467
468	* Windows back-end compiles again.
469
4702009-08-14  Martin Mares <[email protected]>
471
472	* Released as 3.1.4.
473	  (sorry that I have missed 22/7 and released it later :-))
474
475	* Updated pci.ids to the today's snapshot of the database.
476
477	* Fixed memory and file descriptor leak in the dump back-end.
478
479	* The SR-IOV capability decoder now prints the VF BAR's.
480	Patch by Chris Wright, cleaned up by me.
481
482	* On request of certain company's lawyers, we now include a copy
483	of the GPL with our package. It seems that the pciutils are getting
484	mature if the most important bug of the month was this one ;-)
485
4862009-07-04  Martin Mares <[email protected]>
487
488	* Released as 3.1.3.
489
490	* Updated pci.ids to the current snapshot of the database.
491
492	* The VPD parser now reports unknown and vendor-defined items
493	properly. It also stops on any item in unknown format, avoiding long
494	output on bogus VPD data. Thanks to Ben Hutchings and Matthew Wilcox.
495
496	* The MSI-X table size now matches the spec. Thanks to Michael S.
497	Tsirkin.
498
499	* The Power Management capability now includes the soft reset bit.
500	Thanks to Yu Zhao.
501
502	* Decoding of the Advanced Features capability has been added.
503	Thanks to Yu Zhao.
504
505	* The whole package compiles on GNU/kFreeBSD again.
506
507	The following patches have been contributed by Matthew Wilcox:
508
509	* The procfs back-end is able to cope with /proc/bus/pci
510	containing names with domains, which occur on sparc64 and
511	possibly other architectures due to a kernel bug.
512
513	* The sysfs back-end no longer complains when a slot address
514	is missing, which happens with old versions of Linux fakephp.
515
516	* The Device Serial Number capability is printed in the right
517	byte order.
518
519	* The MSI and MSI-X capabilities are printed in a prettier way.
520
521	* The tree output mode (`lspci -t') shows domain numbers only
522	at the root, which makes the output more compact.
523
524	* Updated documentation on the bus mapping mode (`lspci -M').
525
5262009-02-01  Martin Mares <[email protected]>
527
528	* Released as 3.1.2.
529
530	* Fixed another silly bug in the command-line parser of setpci.
531
5322009-01-30  Martin Mares <[email protected]>
533
534	* Released as 3.1.1.
535
536	* Updated pci.ids to the current snapshot of the database.
537
538	* The configure script now sets LC_ALL to avoid being fooled by
539	locale-dependent behavior of `tr'.
540
541	* The command-line parser of setpci did sometimes segfault on invalid
542	input. Thanks to Andreas Wiese for a fix.
543
5442009-01-18  Martin Mares <[email protected]>
545
546	* Released as 3.1.0.
547
548	* Updated pci.ids to the current snapshot of the database.
549
550	* The Cygwin backend now works on Windows Vista. Thanks to Jonathan
551	Kotta.
552
553	* Fixed a bug in decoding of the SR-IOV capability. Patch by Yu Zhao.
554
555	* Details of some PCIe capabilities are displayed only with -vv.
556
557	* When a BAR is reported by the OS, but not by the device (i.e.,
558	it is marked as [virtual] in lspci), the [disabled] flag is
559	suppressed, because it does not make sense in such cases.
560	Patch by Yu Zhao.
561
5622008-12-13  Martin Mares <[email protected]>
563
564	* The source code of lspci has been split to multiple files, hopefully
565	making it easier to maintain.
566
567	* The library and lspci now know about physical slot names. So far,
568	they are provided by the sysfs back-end only. Thanks go to Alex Chiang.
569
570	* When a device has the VPD (Vital Product Data) capability and the
571	VPD data are supplied by the OS, they are decoded and printed in the
572	verbose mode. This currently works only on Linux with the sysfs
573	back-end. Thanks to Ben Hutchings of Solarflare for the patch.
574
575	* `setpci --version' now works properly.
576
577	* `setpci --dumpregs' prints a table of all known names of
578	registers and capabilities. This replaces the table of registers
579	in the setpci man page.
580
581	* The dry-run mode of setpci gives better feedback.
582
583	* The setpci utility is now able to address registers stored in PCI
584	capabilities (actually it allows a more general form of relative
585	addressing).
586
587	* The library has gained functions for working with PCI capabilities.
588
589	* Address Translation Services capability is now decoded. Patch by
590	Yu Zhao.
591
5922008-11-09  Martin Mares <[email protected]>
593
594	* Released as 3.0.3.
595
596	* `lspci -k' now displays the subsystem ID, too. This makes `-k'
597	show everything needed to identify the device and the available
598	drivers, which was called for by many users.
599
600	* Fixed spelling of MSI. Patch by Matthew Wilcox.
601
602	* Better support for cross-compilation. Thanks to Alon Bar-Lev
603	for the patch.
604
605	* Fixed printing of the AER capability. Patch by Max Asbock.
606
607	* HT 1.02 capabilities are decoded as HT 1.03. Suggested by
608	Carl-Daniel Hailfinger.
609
610	* Fixed Cygwin build. Thanks to Steve Elliott for reporting the bug.
611
612	* Updated pci.ids to the current snapshot of the database.
613
6142008-09-19  Martin Mares <[email protected]>
615
616	* Released as 3.0.2.
617
618	* Fixed a minor bug in the configure script, which caused warnings
619	about redefinition of symbols during compilation.
620
6212008-09-11  Martin Mares <[email protected]>
622
623	* Released as 3.0.1.
624
625	* Updated pci.ids to the most recent snapshot.
626
627	* Added a Cygwin port. Patch by Christopher Voltz, ported to the
628	current tree by Martin Mares.
629
630	* Worked around compatibility problems with various default settings
631	of wget (we have to set --no-timestamping explicitly). Thanks to Ville
632	Skytta for pointing that out.
633
634	* Fixed printing of MSI capabilities. Thanks to Matthew Wilcox for
635	a patch.
636
637	* Added decoding of several PCI-X capabilities: device/link/slot 2,
638	Advanced Error Reporting, Access Control Services, Alternative Routing-ID,
639	Single Root I/O Virtualization. Thanks to Yu Zhao for patches.
640
641	* Fixed bug in filters which caused them to refuse vendor/device ID 0xffff.
642
643	* README: The linux-pci mailing list has moved to [email protected].
644
645	* Fixed several build problems: builds without PCI_USE_DNS on Linux
646	and with PCI_USE_DNS on Solaris and *BSD. Static library mode also
647	compiles again on old versions of GCC.
648
6492008-04-10  Martin Mares <[email protected]>
650
651	* Released as 3.0.0.
652
653	* Updated API and ABI version.
654
6552008-02-20  Martin Mares <[email protected]>
656
657	* Released as 2.99.1-alpha2.
658
659	* Changed the default domain for the DNS resolver.
660
6612008-02-18  Martin Mares <[email protected]>
662
663	* Released as 2.99.1-alpha1.
664
665	* The makefile system has been reworked. All configuration settings
666	are now passed to the configure script in environment variables,
667	allowing for easy tweaking in the top-level Makefile. All control
668	knobs are now described in the README.
669
670	* The libpci can be built as a shared library with properly restricted
671	symbol exports. Use `make SHARED=yes' to enable that or `make SHARED=local'
672	for a local testing build (with hardwired paths to the library, so that
673	it does not need installation).
674
675	* The example program has been moved from lib/example.c to the top-level
676	directory, because it should be built exactly as the other utilities
677	are. It has been also improved slightly to educate better.
678
679	* The i386-ports method is enabled on Linux/x86_64 as well.
680
6812008-02-13  Martin Mares <[email protected]>
682
683	* Released as 2.2.10-net2.
684
685	* Support for resolving of PCI ID's using DNS together with a local
686	cache of resolved entries has been added. See the `-q' and `-Q' options
687	of lspci.
688
689	* The library now has a generic system of settable parameters, which
690	also include settings of the DNS resolver and cache. An `-O' option
691	has been added to lspci and setpci to allow setting of these options.
692
693	* Configuration of the access methods are now specified by the new
694	parameter system, replacing the pci_access->method_params array.
695
696	* Access methods now also have sensible names and help texts and it
697	is possible to look up method ID by a name.
698
699	* An `-A' switch has been added to both lspci and setpci, allowing to
700	select an arbitrary access method. The `-P' switch (configure proc
701	backend) has been removed as it is no longer needed and I do not know
702	any its user.
703
704	* Several source files have been split for better maintainability
705	(most notably the resolving of ID's).
706
707	* Man pages and help texts have been updated. A new man page `pcilib(7)'
708	has been added and description of library options has been moved there.
709
710	* When an unknown device ID is encountered, we print `Device <id>'
711	instead of `Unknown device <id>'. It uses less space and it also
712	should reduce the number of inexperienced users complaining that
713	the device is not supported by the OS. To lookup up OS drivers,
714	use the `-k' option.
715
716	* PCI_LIB_VERSION has been bumped to 0x020299.
717
718	* Makefile: stripping of the binaries during installation can be
719	overridden by the STRIP variable.
720
721	* lib/types.h: We use the integer types from <stdint.h> if the
722	compiler claims C99 support.
723
7242008-02-11  Martin Mares <[email protected]>
725
726	* Released as 2.2.10.
727
728	* lspci.c, setpci.c: Cleaned up the list of options.
729
730	* lib/names.c: Fix displaying of errors reported by zlib.
731	Previously, the buffer containing the error message had
732	been deallocated by gzclose() before the message was printed.
733
7342008-01-07  Martin Mares <[email protected]>
735
736	* update-pciids.sh: Added quiet mode (-q). Clean up uncompressed
737	files left by previous versions of the pciutils. Patch by Mike
738	Frysinger.
739
740	* update-pciids.man: Mention the -q switch.
741
7422007-11-29  Martin Mares <[email protected]>
743
744	* lib/dump.c: Squashed compiler warnings about code with
745	no effect (there really were surplus *'s).
746
7472007-11-06  Martin Mares <[email protected]>
748
749	* Released as 2.2.9.
750
751	* lspci.c: Added a new switch `-k' which requests printing
752	of information on kernel drivers attached to each device
753	and on kernel modules reporting the ability to handle the
754	device. So far, this is supported only on Linux with the
755	sysfs back-end, so it is implemented internally in the lspci
756	instead of the libpci. Thanks to Anicka <[email protected]>
757	for help.
758
7592007-10-19  Martin Mares <[email protected]>
760
761	* Makefile, lib/Makefile: Moved -lz from LDFLAGS to LDLIBS.
762	Also added an explicit pattern rule for linking to make sure
763	that LDLIBS is used on all platforms. Thanks to Dan Nicholson
764	for the suggestion.
765
7662007-10-19  Martin Mares <[email protected]>
767
768	* Released as 2.2.8.
769
770	* pci.ids: Revised class codes to match Conventional PCI 3.0 specs.
771	Added a couple of new ones, renumbered `ADMA continuous operation'
772	prog-if to 0x30 (even the old SATA Class Code ECN doesn't mention
773	0x40) and renumbered the satellite communication controllers.
774
775	* lib/header.h: Include `PCI hot-plug' and `Secure device'
776	capabilities from PCI 3.0 specs. Also added `SATA HBA' and
777	`Advanced features' caps from various ECN's.
778
779	* lspci.c: All known capabilities have at least their name displayed
780	now. When we are unable to decode them completely, we signalize it
781	with a `<?>' mark.
782
783	* lspci.man: Document `<?>' and also mention that extended config
784	space is currently available only with the linux_sysfs back-end.
785
786	* lspci.c: Decode the Debug port capability (per EHCI 0.96 spec).
787
788	* lspci.c: Big code cleanup: re-arranged functions in the code,
789	renamed everything related to capabilities to cap_* and
790	all options except verbose to opt_*.
791
7922007-10-14  Martin Mares <[email protected]>
793
794	* lib/[fno]bsd-*: Removed extraneous braces.
795
7962007-10-12  Martin Mares <[email protected]>
797
798	* Capability loop detection introduced 2.2.7 did not work
799	  properly with extended capabilities. Fixed.
800
8012007-10-05  Martin Mares <[email protected]>
802
803	* Released as 2.2.7.
804
805	* lspci.c (show_caps, show_ext_caps): Detect and report loops in
806	capability lists.
807
808	* lspci.c, lib/header.h: Finished decoding of the PCI Express
809	capability. The extended capabilities remain undecoded for now,
810	but at least the list of them has been updated to reflect the
811	current PCI Express 2.0 spec.
812
813	* lspci.c, lib/header.h: Decode new bits of traditional registers
814	as defined by PCIE / PCI-X. This includes discard timers in the bridge
815	control register and INTx enable/status in device control/status
816	registers.
817
818	* lib/fbsd-device.c: Support domains on new FreeBSD's. Contributed
819	by Marius Strobl.
820
8212007-09-12  Hasso Tepper <[email protected]>
822
823	* Extended the fbsd-device backend to run on Dragonfly BSD.
824
825	* lspci.c: alloca() is declared in <stdlib.h> on BSD's, not <alloca.h>.
826
8272007-09-03  Martin Mares <[email protected]>
828
829	* Resurrected the Windows port, including cross-compilation by MinGW.
830	Patch by Samuel Bronson <[email protected]>.
831
8322007-08-31  Martin Mares <[email protected]>
833
834	* Makefile, lib/Makefile: `ar' and `ranlib' can be overridden to allow
835	cross-compilation.
836
8372007-08-27  Martin Mares  <[email protected]>
838
839	* lib/names.c (pci_open): When calling gzopen(), use "rb" file mode
840	instead of "r". This is needed on DOS systems, where this function
841	somewhat illogically uses the binary flag for the compressed file
842	instead of the decompressed stream inside, where binariness really
843	matters.
844
8452007-08-14  Martin Mares  <[email protected]>
846
847	* lspci.c (show_ht): Added decoding of Hypertransport MSI mapping capability,
848	based on a patch by Jason Gunthorpe.
849
850	* tests/cap-MSI-mapping: Added a test case. I plan to add test cases
851	(which are dumps of config space) for all new features.
852
8532007-06-20  Martin Mares  <[email protected]>
854
855	* Released as 2.2.6.
856
857	* Makefile: Added an "install-lib" target. Thanks to Dan Nicholson
858	for a patch.
859
860	* Makefile, lib/Makefile: Generate and install pkg-config file
861	for libpci. Again by Dan Nicholson.
862
8632007-06-20  Thomas Schwinge  <[email protected]>
864
865	* lib/i386-io-hurd.h: Rewritten for new Hurd kernels.
866
8672007-05-04  Martin Mares  <[email protected]>
868
869	* Released as 2.2.5.
870
871	* pci.ids: Updated to the current snapshot of the database.
872
8732007-02-14  Martin Mares  <[email protected]>
874
875	* lspci.c (show_express): Added PCI/PCI-X to PCI-Express Bridge type.
876	Patch by Mark Glines.
877
8782007-02-09  Martin Mares  <[email protected]>
879
880	* pci.ids: Updated to the current snapshot of the database.
881
8822007-02-06  Martin Mares  <[email protected]>
883
884	* Replaced bzero() by memset() everywhere, it's better to lose a tiny
885	bit of readability than maintain hacks to make it work on various systems.
886
887	* lib/configure: tr on Solaris is a bit weird and it requires `[A-Z]'
888	instead of `A-Z'. Fortunately, the extra brackets don't hurt otherwise.
889
890	* lib/types.h, lib/configure: Solaris should use <stdint.h> to get precise
891	integer types.
892
8932007-02-04  Martin Mares  <[email protected]>
894
895	* lspci.c: alloca() needs <alloca.h>.
896
8972006-09-17  Martin Mares  <[email protected]>
898
899	* lib/dump.c: Fixed a couple of bugs in the dump backend which caused
900	devices with domains or with extended config space to be read incorrectly.
901	Also, dumps with partial lines are allowed now.
902
9032006-09-10  Martin Mares  <[email protected]>
904
905	* pci.ids: Updated to the current database snapshot.
906
907	* lspci.c (scan_device): If an error occurs when reading the standard config
908	header of a device, report it and ignore the device and return with exit
909	code 2 at the end.
910
9112006-09-09  Martin Mares  <[email protected]>
912
913	* Released as 2.2.4.
914
915	* maint/release: Remind the maintainer about the current PCI_LIB_VERSION.
916
917	* lib/pci.h: Updated PCI_LIB_VERSION.
918
919	* lspci.c (show_machine): In the `-m' mode, do proper shell escaping
920	if the fields printed contain quotes or backslashes.
921
922	* lspci.c (show_machine): Added a `-vmm' mode, which removes the misuse
923	of the `Device' tag for two different purposes.
924
925	* Makefile: Moved all system-dependent decisions to lib/configure,
926	since config.mk is included in the top-level Makefile anyway.
927
928	* lib/configure: When configuring for Linux, ignore the kernel version
929	and always build all access methods.
930
931	* Makefile (CFLAGS): Removed -Winline, it's not needed and triggers
932	at many non-interesting places with gcc 3.4.
933
934	* Whitespace cleanup of all source files.
935
936	* The pci.ids file can be stored compressed if zlib is available.
937	Added transparent decompression to lib/names.c, modified update-pciids.sh
938	to keep the file compressed if applicable, updated Makefiles.
939	Based on a patch by Matthew Wilcox, but all the bugs are mine.
940
941	* Makefile, README: Allow installation to be done to a different directory
942	from the one we will eventually be placed in by setting DESTDIR.
943	Patch by Matthew Wilcox.
944
945	* Added .gitignore files.
946
947	* Makefile (clean): Clean *.orig, too.
948
949	* Cleaned up usage of `char' and `byte'.
950
951	* lib/header.h: PCI_CLASS_DOCKING_OTHER should be 0x0a80, not 0x0a01.
952
953	* lib/header.h: Added PCI_CLASS_xxx constants for all classes currently
954	defined in the pci.ids file.
955
9562006-08-01  Martin Mares  <[email protected]>
957
958	* lib/i386-io-hurd.h: Fixed a silly typo.
959
9602006-07-30  Martin Mares  <[email protected]>
961
962	* lib/Makefile: Added a missing rule for obsd-device.o.
963
964	* lspci.c, lib/header.h: Added support for MSI per-vector masking.
965	Contributed by Petr Vandrovec.
966
967	* lspci.c, lib/header.h: Added support for the `bridge subsystem ID'
968	capability. Contributed by Petr Vandrovec.
969
970	* lspci.c (show_htype1): Fixed bug in printing of 64-bit prefetchable
971	memory windows. Fix by Petr Vandrovec.
972
973	* maint/release.pm: Exclude .git directory from releases.
974
975	* lib/i386-ports.c, lib/i386-io-*: Report failures during port access
976	initialization by a->warn() instead of calling printf() or perror()
977	directly.
978
979	* lib/i386-ports.c, lib/i386-io-*: Moved the logic which keeps track of
980	the port access state to generic code.
981
982	* lib/i386-io-hurd.h: Ask the kernel for I/O port access appropriately.
983	Contributed by Thomas Schwinge and Samuel Thibault.
984
985	* lib/i386-ports.c: Define _GNU_SOURCE, it's needed by the Hurd module.
986
987	* lib/header.h: Whitespace cleanups.
988
989	* lib/i386-io-windows.h: Fixed indentation and spelling.
990
991	* README.Windows: Mention that WinIO.dll is needed and where to get it.
992
9932006-06-27  Martin Mares  <[email protected]>
994
995	* lib/Makefile, Makefile: Added rules for building and cleaning the example.
996
997	* lib/example.c: Show how to use PCI_FILL_CLASS and used another register
998	for demonstrating the config space accesses. The example is still very
999	incomplete, though.
1000
1001	* lib/pci.h, lib/generic.c: Added PCI_FILL_CLASS.
1002
1003	* lib/sysfs.c: Fetch device ID and class from sysfs, because they can
1004	be modified by kernel fixups.
1005
1006	* lspci.c: Use PCI_FILL_CLASS. Thanks to Matthew Willcox for the patch.
1007
10082006-06-03  Martin Mares  <[email protected]>
1009
1010	* lspci.c: Introduced the -nn switch. Thanks to David N. Welton
1011	for the idea.
1012
1013	* lib/names.c (pci_lookup_name): Introduced PCI_LOOKUP_MIXED and
1014	cleaned up the name selection code.
1015
1016	* lib/names.c (pci_lookup_name): If PCI_LOOKUP_NO_NUMBERS is given,
1017	pci_access->numeric_ids is ignored.
1018
1019	* lib/names.c (pci_lookup_name): When class is identified and
1020	subclass isn't, display class name and subclass number.
1021
10222006-05-31  Martin Mares  <[email protected]>
1023
1024	* setpci.c (main): Don't crash when an invalid width is specified.
1025
1026	* lspci.c, setpci.c, common.c: die() now uses the right program
1027	name when printing an error message.
1028
10292006-05-19  Martin Mares  <[email protected]>
1030
1031	* README: Mention the public GIT tree.
1032
1033	* README: Updated the list of ports.
1034
10352006-05-10  Martin Mares  <[email protected]>
1036
1037	* lib/configure, lib/fbsd-device.c: Added support for GNU/kFreeBSD.
1038	Thanks to Petr Salinger for the patch.
1039
10402006-05-05  Martin Mares  <[email protected]>
1041
1042	* Released as 2.2.3.
1043
1044	* lspci.c (scan_device): The -D switch didn't work as intended
1045	in -m mode.
1046
10472006-05-05  Martin Mares  <[email protected]>
1048
1049	* Released as 2.2.2.
1050
1051	* pci.ids: Updated to the current database snapshot.
1052
1053	* lib/obsd-device.c (and other files in lib/*): Added OpenBSD
1054	interface by Matthieu Herrb <[email protected]>, based on
1055	the existing FreeBSD interface.
1056
1057	* Moved pciutils to a GIT repository, which now contains merged
1058	history from both CVS and Arch. Good bye, TLA!
1059
10602006-03-21  Martin Mares  <[email protected]>
1061
1062	* lspci.c (show_slot_name): Avoid the previous changes in default
1063	display of domain name when in machine-readable mode. However, `-D'
1064	forces domain display even there.
1065
1066	* lspci.man: Added a warning on -m being the only format, which is
1067	guaranteed to be stable between lspci versions.
1068
10692006-03-13  Martin Mares  <[email protected]>
1070
1071	* lspci.man: Documented the -D switch.
1072
1073	* lspci.c (show_slot_name, scan_device): If there are multiple PCI
1074	domains or if the `-D' switch is used, show the domain number for
1075	all devices.
1076
1077	* lspci.c (show_verbose): Report cache line size in bytes.
1078
1079	* update-pciids.sh: Use curl if available. Patch by Matthew Wilcox.
1080
10812006-01-04  Martin Mares  <[email protected]>
1082
1083	* lspci.c (show_express_link): Fixed decoding of link status register.
1084	Thanks to Roland Dreier for his report.
1085
10862005-12-12  Martin Mares  <[email protected]>
1087
1088	* lib/nbsd-libpci.c: If libpci is used by an ordinary user, allow
1089	at least read-only access. Patch by Pavel Celeda <[email protected]>.
1090
1091	* Makefile: Corrected library path on NetBSD.
1092
10932005-11-26  Martin Mares  <[email protected]>
1094
1095	* Released as 2.2.1.
1096
1097	* lspci.c (show_machine): Subsystem vendors were printed incorrectly
1098	in machine-readable modes. Thanks to Pavel Celeda for a bug report.
1099
11002005-10-11  Martin Mares  <[email protected]>
1101
1102	* lspci.c (new_bus): Fixed a memory leak. Thanks to Paul Sangree for reporting it.
1103
11042005-09-21  Martin Mares  <[email protected]>
1105
1106	* Released as 2.2.0.
1107
1108	* pci.ids: Updated copyright header.
1109
1110	* lib/sysfs.c (sysfs_get_resources): Removed warning about unsupported
1111	64-bit addresses, they are now always supported.
1112
1113	* lspci.c (show_bases): Corrected printing of 64-bit addresses
1114	in bus-centric mode.
1115
1116	* lib/configure: Enable 64-bit addresses on all Linux systems.
1117
1118	* lib/types.h: Don't pad 64-bit addresses to 16 xigits, only to 8 if they
1119	are shorter.
1120
11212005-09-11  Martin Mares  <[email protected]>
1122
1123	* Released as 2.1.99-test11.
1124
1125	* lspci.c: Removed unnecessary trailing zeros in pci_lookup_name() calls.
1126
11272005-09-10  Martin Mares  <[email protected]>
1128
1129	* Released as 2.1.99-test10.
1130
1131	* pci.ids: Synchronized with the current database snapshot.
1132
1133	* update-pciids.sh: Changed the default URL for downloading pci.ids
1134	to http://pciids.sourceforge.net/v2.2/pci.ids.
1135
1136	* lib/pci.h (PCI_LIB_VERSION): Added version identifier.
1137
1138	* lib/names.c: Rewritten the name database module almost from scratch.
1139	Everything is much cleaner and there are hopefully no more memory leaks;
1140	pci_lookup_name() now uses varargs in a backward compatible fashion.
1141	Introduced PCI_LOOKUP_NO_NUMBERS.
1142
1143	The new code supports subsystem entries not tied to a specific device.
1144	I had to extend the format of pci.ids in order to support it, so I have
1145	extended the idea of the "C" (class) blocks and introduced "S" blocks
1146	for subsystems. To avoid doing more incompatible changes in the future,
1147	the parser skips unknown single-letter blocks without reporting errors.
1148
11492005-08-23  Martin Mares  <[email protected]>
1150
1151	* Released as 2.1.99-test9.
1152
1153	* Makefile (OPT): Removed -fomit-frame-pointer, it's default in recent
1154	gcc versions when optimizing anyway.
1155
1156	* Made the path to pci.ids customizable and independent on the SHAREDIR.
1157	Just override IDSDIR in the top-level Makefile.
1158
1159	* pci.ids: Synchronized with the current database snapshot.
1160
1161	* lspci.man, setpci.man: Improved the man pages. Documented all access
1162	methods and which operations are privileged.
1163
1164	* lspci.c: Another rewrite of config register caching, now also including
1165	lots of internal checks. It should be now perfectly able to cope with
1166	portions of the configuration space being inaccessible, for example
1167	due to insufficient access rights.
1168
1169	* lspci.c (show_pcix_nobridge, show_pcix_bridge): Cleaned up dumping of PCI-X
1170	capabilities. Includes partial support for PCI-X 2.0 (probably incomplete
1171	as I haven't seen the spec).
1172
1173	* lspci.c: Quell warnings about unused parameters.
1174
1175	* lspci.c: Removed C++ comments.
1176
1177	* lib/header.h: Merged definitions of extended capabilities and some new
1178	PCI-X capability bits from linux-2.6.11/include/pci.h.
1179
1180	* lspci.c (show_caps): Try to scan extended capabilities only if the
1181	device has either PCI-X or PCI Express capability in its normal capability
1182	list.
1183
1184	* lib/dump.c (dump_init): Reading of dumps works again. The dump reader
1185	now also remembers how much data it has read and refuses attempts to
1186	access more than that.
1187
1188	* setpci.man, lspci.c, README: prefer spelling "buses" over "busses".
1189
1190	* lspci.c: If alloca() is not available, use xmalloc(), not malloc().
1191
1192	* lib/configure: Added x86_64 on Linux.
1193
11942005-08-22  Martin Mares  <[email protected]>
1195
1196	* lib/filter.c (pci_filter_parse_slot): Fixed parsing of domain filters.
1197	Thanks to Matthew Wilcox for bug report.
1198
1199	* lspci.c: Corrected spelling of "Hz" (it was "hz" at several places).
1200	Thanks to Krzysztof Oledzki for pointing that out.
1201
12022004-08-19  Martin Mares  <[email protected]>
1203
1204	* pciutils.spec (%attr): Setting attributes for /sbin/* is an anachronism,
1205	because pciutils by default install to /usr/sbin. Update.
1206
12072004-08-13  Martin Mares  <[email protected]>
1208
1209	* Released as 2.1.99-test8.
1210
1211	* lib/types.h, lib/pci.h, lib/sysdep.h: `byte' and `word' are
1212	no longer exported to the outside world.
1213
1214	* README.Windows: Updated.
1215
1216	* maint/release: Substitute version number in win32/config.h.
1217
1218	* win32/config.h: Added.
1219
1220	* lib/sysdep.h (bzero, strcasecmp): are macros on Windows.
1221
1222	* compat/getopt.[ch]: Added copies of getopt.[ch] from the GNU
1223	C library for use on systems where the default libraries lack
1224	proper getopt. Currently used by the Windows port.
1225
1226	* lib/sysdep.h, lib/types.h: Updates of the Windows port from
1227	Alexander Stock.
1228
1229	* lib/types.h: If PCI_HAVE_Uxx_TYPES is defined, libpci doesn't define
1230	its own u8, u16, u32, byte and word types and uses what the user
1231	has supplied instead. With this change, all namespace clashes should
1232	be gone.
1233
1234	* Makefile, lib/Makefile: Updated dependencies.
1235
1236	* pciutils.h: Include lib/sysdep.h and move NONRET et al. there.
1237
1238	* lib/sysdep.h: No need to include <sys/types.h> on FreeBSD, because
1239	it is included unconditionally in lib/types.h.
1240
1241	* Moved system-dependent stuff from lib/internal.h to lib/sysdep.h,
1242	which is also used by the utilities. Also moved type declarations
1243	from lib/pci.h to lib/types.h.
1244
1245	* All files: Prepend a "PCI_" prefix in front of all configuration
1246	defines to avoid namespace clashes. CAVEAT: If there is any libpci
1247	application using the (undocumented) defines, it has to be updated.
1248
1249	* lib/Makefile: Killed HAVE_OWN_HEADER_H, since we stopped sharing
1250	headers with the kernel a couple of years ago.
1251
1252	* lib/sysfs.c (sysfs_get_resources): We have 7 resources, not 6.
1253
1254	* lspci.c (show_rom): Use the same logic for printing disabled
1255	or unassigned ROM's as we do in show_bases() for the other BAR's.
1256
1257	* lib/generic.c (pci_generic_fill_info): Better reaction to
1258	invalid 64-bit addresses. Also d->hdrtype should not include
1259	bit 7, which caused mysterious errors on multi-function devices.
1260
1261	* lib/generic.c (pci_generic_fill_info): Fill in base addresses
1262	even if the regions are known to be disabled. It is the client's
1263	job to interpret them. (And it is not a trivial job if you want
1264	to do it correctly, since you need to check I/O and memory enables
1265	on all upstream bridges, too.) However, it could be interesting to
1266	introduce functions for interpreting the addresses and even for
1267	mapping the regions and doing I/O on them.
1268
12692004-07-30  Martin Mares  <[email protected]>
1270
1271	* lspci.c: HyperTransport improvements from Maciej.
1272
12732004-07-11  Martin Mares  <[email protected]>
1274
1275	* lib/sysfs.c (sysfs_get_resources): Arguments now correspond
1276	to the format string. [Patch by Bill Nottingham]
1277
12782004-07-05  Martin Mares  <[email protected]>
1279
1280	* Released as 2.1.99-test7.
1281
1282	* lspci.c (config_fetch): Wanted to merge Matthew's bug fix, but
1283	ended up with rewriting the fetching mechanism to be fully dynamic,
1284	but avoid reading config space registers not explicitly requested.
1285
12862004-06-29  Matthew Wilcox <[email protected]>
1287
1288	* lspci.c: More work on PCI Express dumping.
1289
1290	* lib/header.h: Updated PCI Express capability definitions.
1291
1292	* lib/proc.c (proc_read): Removed bogus warning.
1293
1294	* common.c (xrealloc): Introduced.
1295
1296	* lspci.man: Added -xxxx.
1297
12982004-06-27  Martin Mares  <[email protected]>
1299
1300	* Released as 2.1.99-test6.
1301
1302	* lspci.c (show_msix), lib/header.h: Added dumping of MSI-X cap.
1303	Patch by Roland Dreier <[email protected]>, cleaned up by me.
1304
1305	* lspci.c (show_pcix_nobridge, show_pcix_bridge): Handle config_fetch()
1306	failures.
1307
1308	* lib/header.h: Added PCI Express extended capabilities. Again by Matthew.
1309
1310	* lspci.c (show_express): Added dumping of PCI Express cap.
1311	Patch by Matthew Wilcox.
1312
1313	* lib/header.h: Added a list of PCI 3.0 capabilities and also details
1314	on PCI Express caps. Patch by Matthew Wilcox <[email protected]>.
1315
1316	* lspci.c (check_root): Gone. No explicit checks for root are needed,
1317	report correct errors reported by the libpci instead.
1318
1319	* lspci.c: Added dumping of the extended config space on "-xxxx".
1320	Better caching of config registers.
1321
1322	* setpci.c (main): Allow access to whole 4096 bytes of the config space.
1323
1324	* lib/sysfs.c, lib/proc.c: Don't print error messages on short reads,
1325	just return the appropriate error code.
1326
1327	* lib: Added support for extended (4096-byte) configuration space,
1328	currently implemented only in Linux proc and sysfs access methods
1329	and of course in the dump reader.
1330
13312004-05-29  Martin Mares  <[email protected]>
1332
1333	* Released as 2.1.99-test5.
1334
1335	* lib/pci.h: Windows don't have the standard u_int* types.
1336
1337	* lib/internal.h: <sys/param.h> required on Windows for endianity
1338	macros.
1339
1340	* lib/i386-ports.c: Connected i386-io-windows.h.
1341
1342	* lspci.c (check_root): geteuid() is not available on Windows.
1343
1344	* lib/i386-io-windows.h: Added Windows port contributed by Alexander
1345	Stock <[email protected]>.
1346
1347	* lib/configure: Hopefully fixed SunOS port broken by various
1348	changes to the configure script.
1349
1350	* Makefile, lib/configure: Cross-compilation support, patch by Maciej.
1351
13522004-05-28  Martin Mares  <[email protected]>
1353
1354	* Released as 2.1.99-test4.
1355
1356	* lspci.c (show_verbose): Header type 1 is probably legal for all
1357	types of bridges, not only for PCI-to-PCI bridges.
1358
1359	* lspci.c (format_agp_rate): Write "x16", not "x@".
1360	(show_agp): rate[] could overflow.
1361	Bugs reported by Jakub Bogusz <[email protected]>.
1362
1363	* lspci.c (show_ht_*): Show HyperTransport capability with all its
1364	details. Once again code by Maciej simplified (i.e., possibly broken)
1365	by me.
1366
1367	* lib/header.h: Added declarations of HyperTransport capability.
1368	Again thanks to Maciej.
1369
1370	* lspci.c: Decode all bits of the secondary status word in type 1 headers.
1371	Thanks to Maciej W. Rozycki <[email protected]> for the patch.
1372
13732003-12-27  Martin Mares  <[email protected]>
1374
1375	* Released as 2.1.99-test3.
1376
1377	* lspci.man, setpci.man: Document domains and correct spelling.
1378
1379	* lib/dump.c (dump_init): Added ability to read domain numbers.
1380
1381	* lspci.c: Devices in domains different from 0 have their slot number
1382	printed as "<domain>:<bus>:<slot>.<func>". Tree view supports domains
1383	as well.
1384
1385	* lib/filter.c: Slot filters understand domains.
1386
1387	* lib/generic.c: Mention the domain in slot numbers in all error messages.
1388
1389	* lib/internal.h: The #ifdef for Linux <asm/byteorder.h> was wrong.
1390
1391	* lib/access.c (pci_get_dev): Added support for domains.
1392
1393	* lib/sysfs.c (sysfs_scan): Read vendor and device ID from the config
1394	registers (or to be precise, leave it for the generic parts of the pcilib
1395	to do so) instead of reading them from the sysfs. It's faster this way.
1396
1397	* lspci.c (show_pcix): Don't touch pci_dev->hdrtype, it's an internal
1398	variable. Better read it from the config registers (it's cached anyway).
1399
1400	* lib/sysfs.c (sysfs_scan), lib/proc.c (proc_scan): Don't read the hdrtype.
1401	  lib/generic.c (pci_generic_fill_info): If hdrtype is -1 (unset), read it.
1402	  Saves lots of unnecessary file accesses.
1403
1404	* lib/pci.h (PCIADDR_PORT_FMT): Use %llx instead of %Lx, because the latter
1405	is not supported by all C libraries.
1406
1407	* Makefile: Always enter the lib directory (remember that we don't have
1408	full dependencies for the library in the top-level Makefile; hmmm, another
1409	thing to rewrite some day).
1410
1411	* lib/sysfs.c: Added Linux sysfs access method based on the patch
1412	written by Matthew Wilcox <[email protected]>.
1413
1414	* lib/proc.c: Renamed the access method name from "/proc/bus/pci" to "Linux-proc".
1415
1416	* lib/pread.h: The hacks to support pread on various versions
1417	of Linux libc moved there.
1418
1419	* lib/proc.c (proc_setup): The return value of snprintf() varies
1420	between glibc versions, so we need to check both for a negative
1421	values and for too large values.
1422
1423	* Removed last few references to the "Linux PCI Utilities", the
1424	package is pretty cross-platform now :)
1425
14262003-12-27  Martin Mares  <[email protected]>
1427
1428	* Released as 2.1.99-test2.
1429
1430	* README, pciutils.lsm, pciutils.spec: Use @VERSION@ to make the
1431	release scripts insert the current version. "make release" is gone.
1432
1433	* maint/release, maint/release.pm: Added a new system of scripts for
1434	making releases including inter-version diffs etc.
1435
1436	* Makefile: Cleaned up.
1437
1438	* lib/fbsd-device.c: I patched another copy of this file by mistake,
1439	this time the version checks should be right.
1440
14412003-12-27  Martin Mares  <[email protected]>
1442
1443	* Released as 2.1.99-test1.
1444
1445	* pciutils.h, common.c, lspci.man, setpci.man, lib/internal.h:
1446	Remove shadows of the syscall access method which was never
1447	implemented.
1448
1449	* update-pciids.sh: Try to preserve permissions of the old file
1450	if chmod supports --reference. Should close Debian Bug #223740.
1451
1452	* lib/proc.c (proc_setup): Increased path name length limit to 1024.
1453	Thanks for Redhat and Mandrake for inspiration.
1454
1455	* lib/configure: Recognize ppc and ppc64, both have 64-bit addresses.
1456	Grabbed from Redhat (Fedora) patches.
1457
14582003-12-27  Martin Mares  <[email protected]>
1459
1460	Merged bug fixes from Debian patches:
1461
1462	* lspci.c (show_verbose): "Cache Line Size" should be capitalized.
1463
1464	* lspci.c (show_pcix_nobridge): Added a missing newline.
1465
1466	* lib/proc.c (proc_scan): When reading the header type, don't
1467	forget to clear the topmost bit indicating that the device has
1468	multiple functions.
1469
14702003-12-27  Martin Mares  <[email protected]>
1471
1472	Updated the FreeBSD port. Thanks to Samy Al Bahra <[email protected]>
1473	for the patches:
1474
1475	* lib/Makefile: Add ${FREEBSD_SYS} to the include path if it's defined.
1476	* lib/fbsd-device.c: Select the right set of system includes according
1477	to __FreeBSD_version.
1478
14792003-12-27  Martin Mares  <[email protected]>
1480
1481	Merged support for Solaris on i386 by Bill Moore <[email protected]>
1482	and cleaned up:
1483
1484	* lib/configure: Recognize SunOS.
1485	* lib/internal.h: Learn how to recognize byte order on SunOS.
1486	* lib/i386-ports.c: Split OS-dependent I/O port access from i386-ports.c.
1487	* lib/i386-io-linux.h: Linux specific part.
1488	* lib/i386-io-hurd.h: GNU/Hurd specific part.
1489	* lib/i386-io-sunos.h: SunOS specific part.
1490
14912003-12-26  Martin Mares  <[email protected]>
1492
1493	* lib/header.h (PCI_*_MASK): Cast to pciaddr_t explicitly.
1494
1495	* lib/pci.h: Types declared in <sys/types.h> should be usable on all
1496	platforms we currently support, so kill the forest of #ifdef's and
1497	use them in all cases.
1498
1499	* lib/pci.h: Use ULONG_MASK to decide whether we should use long
1500	or long long to represent a 64-bit address. Killed HAVE_LONG_ADDRESS.
1501	Define format strings for addresses, port numbers and IRQ numbers
1502	directly in pci.h.
1503
1504	* lib/proc.c (proc_scan): Use PCIADDR_T_FMT for scanf'ing addresses.
1505
15062003-12-26  Marco Gerards  <[email protected]>
1507
1508	Added support for the GNU Hurd (cleaned up by Martin Mares):
1509
1510	* lib/configure [GNU]: Use the i386 ports for configuration access.
1511	* lib/i386-ports.c: Don't call iopl() on the Hurd.
1512	* lib/pci.h [OS_GNU]: Include <sys/types.h> and use it for defining
1513	u8 to u32.
1514
15152003-12-26  Martin Mares  <[email protected]>
1516
1517	* lspci.c (show_pcix_bridge, show_pcix_nobridge): Don't forget to call
1518	config_fetch() to ensure that the registers have been read. Thanks to
1519	Bill Wood <[email protected]> for the patch.
1520
1521	* lspci.c: Ensure that failure of config_fetch() is handled correctly
1522	at all places.
1523
1524	* lspci.man: There was one more explicit reference to /usr/share/pci.ids.
1525	Changed to @SHAREDIR@. Patch from Maciej W. Rozycki <[email protected]>.
1526
1527	* setpci.c (main): Better error messages.
1528
1529	* setpci.c (ex_op): The demo mode should disable only writing, not reading.
1530
1531	* setpci.man: The documentation was inconsistent on what should -D do.
1532	Document the new behaviour.
1533
1534	* pciutils.h, common.c, setpci.c: Introduced a NONRET macro encapsulating
1535	the GCC specific __attribute__((noreturn)) and killed the hack with
1536	redefining __attribute__ on non-GCC compilers.
1537
1538	* Makefile: Added missing dependencies. Parallel builds work now.
1539	Problem reported by Andreas Haumer <[email protected]>, but I chose
1540	a different fix.
1541
1542	* Makefile (MANDIR): Use `:=' instead of `=' to avoid executing the shell
1543	command every time $(MANDIR) is referenced.
1544
1545	* lspci.c (main): The error message for `lspci -s' incorrectly mentioned
1546	a `-f' switch. Reported by Steve Finney <[email protected]>.
1547
1548	* lib/generic.c: Removed memory leak in pci_generic_bus_scan().
1549	Reported by Gary Parnes <[email protected]>.
1550
1551	* Replaced obsolete syntax of __attribute__((unused)) in the middle of
1552	parameter declarations (which is no longer supported by GCC 3.1) by the
1553	current syntax (attribute at the end). Thanks to [email protected]
1554	for reporting this problem.
1555
1556	* Removed CVS $Id$ tags from all files.
1557
1558	* Makefile: Added some more warnings.
1559
1560	* setpci.c: Cleaned up mask/value code.
1561
15622003-12-08 Thayne Harbaugh <[email protected]>
1563
1564	* setpci.c: Individual bits to be set can be specified as <value>:<mask>.
1565
15662003-11-29  Martin Mares  <[email protected]>
1567
1568	* Imported the pciutils sources to my Arch repository. Good-bye, CVS.
1569
15702003-01-04  Martin Mares  <[email protected]>
1571
1572	* Released as 2.1.11.
1573
1574	* Makefile: Changed configuration of installation directories --
1575	all paths are now set at the top of the Makefile instead of being
1576	scattered between the installation rules. The default installation
1577	now goes always to /usr/local regardless of the OS as most distributions
1578	already contain some version of pciutils and we don't want custom
1579	installations to interfere with the default ones.
1580
1581	* Makefile: Removed a couple of ancient install hacks: we no longer
1582	try to avoid overwriting a newer pci.ids file (users are now expected
1583	to use update-ids) and we don't try to remove /etc/pci.ids (a long time
1584	has passed since the last version which used it).
1585
1586	* Makefile: Paths to pci.ids in man pages automatically get the right path.
1587
1588	* Added the update-ids utility.
1589
1590	* lib: Removed partially implemented "syscall" access method which will
1591	probably never be needed.
1592
15932002-12-27  Martin Mares  <[email protected]>
1594
1595	* lib/nbsd-libpci.c: Cleaned up and hopefully made it endian safe.
1596
1597	* lib/generic.c (pci_generic_scan_bus): Added work-around for devices with
1598	discontiguous numbering of functions. This is already present in the Linux
1599	kernel for several years, but I forgot to update pciutils as well.
1600
16012002-12-26  Martin Mares  <[email protected]>
1602
1603	* lib/header.h, lspci.c: Dump AGP3 flags and speeds.
1604
1605	* lib/pci.h, Makefile: Removed HAVE_OWN_HEADER_H. Always use our own header,
1606	there is no reason to prefer the kernel version.
1607
1608	* lib/proc.c (proc_scan): Don't forget to initialize hdrtype.
1609
1610	* Added preliminary version of NetBSD support by Quentin Garnier
1611	<[email protected]>.
1612
16132002-04-06  Martin Mares  <[email protected]>
1614
1615	* lspci.c: Mention "-xxx" in the help.
1616
16172002-03-30  Martin Mares  <[email protected]>
1618
1619	* Released as 2.1.10.
1620
1621	* Removed pci.ids from the CVS as they are now maintained separately.
1622	They are still included in the tarball, but if you are building	pciutils
1623	from CVS sources or you want to get a newer ID file than the one distributed,
1624	just use "make update-ids" to download the most recent snapshot from
1625	pciids.sf.net.
1626
1627	* Makefile, README: Updated accordingly.
1628
1629	* Makefile: Added a couple of maintenance targets.
1630
1631	* maint/*: Maintainer's utilities now reside here (present only in CVS,
1632	not in the tarball).
1633
1634	* lib/names.c (parse_name_list): End-of-line comments are no longer
1635	supported. Hashes are now perfectly valid in all names and they start
1636	a comment only at the start of the line.
1637
16382002-03-26  Martin Mares  <[email protected]>
1639
1640	* README: Rewritten.
1641
1642	* Makefile: When the currently installed pci.ids file is newer than
1643	the version to be installed, don't overwrite it. Suggested by
1644	Jean Delvare <[email protected]>.
1645
16462002-03-24  Martin Mares  <[email protected]>
1647
1648	* lspci.c (show_pcix_bridge): Added PCI-X capability display.
1649	Contributed by Jeff Garzik <[email protected]>.
1650
1651	* lib/header.h: Added PCI-X stuff. Again by Jeff.
1652
1653	* Makefile (CFLAGS): -Werror is gone.
1654
1655	* lspci.c (format_agp_rate): Fixed AGP rate reporting.
1656
1657	* lib/filter.c (pci_filter_parse_slot): Allow bus 0xff, slot 0x1f and
1658	function 7.
1659
1660	* lib/names.c (pci_lookup_name): When printing unknown subsystem vendor
1661	or device hexadecimally, don't confuse it with chip vendor/device ID.
1662	First reported by Marc Boucher <[email protected]>.
1663
16642001-11-04  Martin Mares  <[email protected]>
1665
1666	* Released as 2.1.9.
1667
1668	* pci.ids: Synced with the PCI ID Repository at SourceForge
1669	(http://pciids.sourceforge.net/).
1670
16712000-08-25  Martin Mares  <[email protected]>
1672
1673	* pci.ids: Updated ID's, synced with kernel 2.4.0-test7.
1674
16752000-06-13  Martin Mares  <[email protected]>
1676
1677	* Makefile (uninstall): Fixed.
1678
1679	* pci.ids: ID updates.
1680
16812000-05-20  Martin Mares  <[email protected]>
1682
1683	* Released as 2.1.8.
1684
1685	* pci.ids: ID updates.
1686
1687	* lspci.c (show_verbose): Min/max latency is now printed in nanoseconds.
1688
16892000-05-04  Martin Mares  <[email protected]>
1690
1691	* lspci.c (show_verbose): If the header type doesn't match device
1692	class, just print a warning and still use the header type, assuming
1693	bogus class info.
1694
16952000-05-01  Martin Mares  <[email protected]>
1696
1697	* lspci.c (show_pm): Updated according to PCI PM specs 1.1.
1698
1699	* pci.ids: Updated Contemporary Control ARCnet card entries.
1700
1701	* pci.ids: Synchronized class list with latest PCI SIG documents.
1702
17032000-04-29  Martin Mares  <[email protected]>
1704
1705	* lib/names.c (pci_lookup_name): Fixed the cheat.
1706
1707	* lib/internal.h: Moved UNUSED/inline hacks above all other declarations.
1708
1709	* pci.ids: Various ID updates.
1710
17112000-04-21  Martin Mares  <[email protected]>
1712
1713	* Released as 2.1.7.
1714
1715	* pciutils.spec: Added German description.
1716
1717	* lib/names.c (pci_lookup_name): Added a cheat for case that subsystem ID's
1718	are the same as device ID and just output subsystem name according to
1719	device name.
1720
1721	* lib/proc.c: Use UNUSED instead of __attribute__((unused)).
1722
1723	* lib/pci.h: Added the correct typedefs for AIX.
1724
1725	* lib/generic.c (pci_generic_scan_bus): Export.
1726
1727	* lib/configure: Detect AIX. Use "echo '...\c'" instead of
1728	"echo -n" if the shell isn't bash.
1729
1730	* lspci.c: Avoid using alloca() if not compiled by GCC.
1731	(insert_dev): Avoid returning a void value.
1732
1733	* Makefile: Choose which install utility to use according to
1734	OS type. Also use `-o' instead of `-or' in find arguments.
1735	Part of the AIX port.
1736
1737	* lib/aix-device.c: Added AIX low-level interface. Contributed
1738	by Dave Johnson <[email protected]>, thanks a lot!
1739
1740	* pci.ids: Few new ID's.
1741
1742	* pciutils.h, lib/internal.h: Redefine __attribute__ and inline
1743	when not compiled by GCC.
1744
17452000-04-17  Martin Mares  <[email protected]>
1746
1747	* Released as 2.1.6.
1748
1749	* pci.ids: Added a large batch of ID's contributed by Gunther
1750	Mayer <[email protected]> and synced the
1751	list with the 2.3.99pre6 kernel.
1752
1753Thu Mar  9 13:11:39 2000  Martin Mares  <[email protected]>
1754
1755	* lib/example.c: Added a simple example of how to use
1756	the library.
1757
1758	* lspci.man, setpci.man: Revealed --version. Well spotted
1759	by Adam Sulmicki.
1760
1761	* pci.ids: Added lots of new ID's and synced with 2.3.50.
1762
1763Tue Feb 15 00:16:21 2000  Martin Mares  <[email protected]>
1764
1765	* Released as 2.1.5.
1766
1767	* pciutils.spec: Updated spec file from Andreas Jaeger. Now using
1768	%{_mandir} to find the right location to install manual pages to.
1769
1770	* pci.ids: New ID's.
1771
1772	* setpci.c (main): Don't crash when `-s' or `-d' is given with
1773	no argument.
1774
1775Mon Jan 24 20:04:11 2000  Andreas Jaeger  <[email protected]>
1776
1777	* lib/i386-ports.c: Include <asm/io.h> only on systems without
1778	glibc.
1779
1780Mon Jan 24 11:24:43 2000  Martin Mares  <[email protected]>
1781
1782	* Makefile: Modified to work with the Linux FHS brain-damaged idea
1783	of putting man pages to /usr/share/man. Now we choose either /usr/man
1784	or /usr/share/man depending on which one exists.
1785
1786Sun Jan 23 10:52:34 2000  Martin Mares  <[email protected]>
1787
1788	* pci.ids: Synced with Linux 2.3.40.
1789
1790	* Released as version 2.1.4.
1791
1792Thu Jan 20 11:08:32 2000  Martin Mares  <[email protected]>
1793
1794	* lspci.c (scan_device): Fixed bug in reading of cardbus extensions.
1795
1796	* lib/proc.c: pread/pwrite fixed again, this time on libc5 :(
1797
1798	* lspci.c (format_agp_rate): Better formatting of AGP rates.
1799
1800	* pci.ids: New ID's.
1801
1802	* lib/configure: Added configuration for ia64 (the same as for Alpha).
1803	Patch from Stephane Eranian <[email protected]>.
1804
1805Thu Jan 13 23:01:52 2000  Martin Mares  <[email protected]>
1806
1807	* Released as version 2.1.3.
1808
1809	* pci.ids: New ID's.
1810
1811	* lspci.c: Alpha IO_FORMAT fix by Andrea Arcangeli.
1812
1813	* lib/access.c: Corrected order of access methods -- it's wonderful how
1814	long could such a bug remain unspotted. Thanks go to Andreas Schockenhoff.
1815
1816Sat Dec 11 23:34:48 1999  Martin Mares  <[email protected]>
1817
1818	* Released as version 2.1.2.
1819
1820	* lib/names.c (pci_lookup_name): Fixed printing of unknown subsystem ID's.
1821
1822Sat Dec  4 13:11:03 1999  Martin Mares  <[email protected]>
1823
1824	* Released as version 2.1.1.
1825
1826	* pci.ids: Several new ID's.
1827
1828	* setpci.c (exec_op): Don't forget to increment address after writing
1829	single value, so that `30.b=12,34,56,78' works as expected. Reported
1830	by Petr Soucek <[email protected]>.
1831
1832Wed Nov  3 10:24:38 1999  Martin Mares  <[email protected]>
1833
1834	* lspci.c (show_terse): If prog-if is zero, but it's present in the
1835	ID list, show it.
1836
1837Sat Oct 30 11:06:35 1999  Martin Mares  <[email protected]>
1838
1839	* Released as version 2.1.
1840
1841	* pci.ids: Synced to devlist.h in 2.3.24 kernel. Merged in
1842	lots of contributed entries.
1843
1844Thu Oct 14 10:40:12 1999  Dave Jones    <[email protected]>
1845
1846	* pci.ids: Added lots of subsystem definitions.
1847
1848Sat Oct  9 14:32:28 1999  Martin Mares  <[email protected]>
1849
1850	* setpci.man: Better example.
1851
1852	* lspci.c: Resolve prog-if names.
1853
1854	* lib/names.c: Adapted to new pci.ids syntax.
1855
1856	* pci.ids: Reorganized the pci.ids file. Subsystems are listed
1857	under devices, classes can optionally contain prog-if information.
1858	New ID's, as usually.
1859
1860Wed Sep 22 09:45:24 1999  Martin Mares  <[email protected]>
1861
1862	* pci.ids: New ID's. As usually.
1863
1864	* lspci.c (show_htype1, show_htype2): Don't show `closed' bridge windows
1865	unless we're vvvery verbose.
1866
1867Mon Sep 20 11:22:54 1999  Martin Mares  <[email protected]>
1868
1869	* lspci.c (show_htype2): Don't forget a TAB before the "I/O window" line.
1870
1871Tue Sep 14 09:31:01 1999  Martin Mares  <[email protected]>
1872
1873	* pci.ids: New ID's. Again.
1874
1875Thu Aug  5 17:45:42 1999  Martin Mares  <[email protected]>
1876
1877	* lspci.c (show_size): Don't show size if it's zero (usually
1878	due to bus-centric mode being enabled).
1879
1880Tue Jul 20 13:25:09 1999  Martin Mares  <[email protected]>
1881
1882	* lib/pci.h: Types are OS dependent.
1883
1884	* lib/internal.h: Byte order hacks are OS dependent.
1885
1886	* lib/configure: Recognize FreeBSD. Also set OS_XXX according to the OS.
1887
1888	* lib/Makefile, lib/access.c: Added fbsd-device target.
1889
1890	* pci.ids: Added an entry for PLX 9080 bridges with subsystem ID
1891	incorrectly set to device ID.
1892
1893	* README: Added a note that we support FreeBSD.
1894
1895	* Makefile (PREFIX, ROOT): Set it depending on the OS.
1896	(%.8): Grrr, BSD date is not able to convert date formats the same way
1897	as GNU date does. Use sed instead.
1898	(install): Use `-c' when calling install.
1899
1900	* lib/fbsd-device.c: Added FreeBSD /dev/pci access module contributed
1901	by Jari Kirma <[email protected]>.
1902
1903	* lib/proc.c: Rewrote the pread/pwrite things once again. Use pread
1904	and pwrite only when we are certain it's safe (i.e., glibc 2.1
1905	on all architectures or any libc on a i386 where we really know
1906	how to use syscalls directly). In all other cases, emulate it
1907	with lseek/read/write.
1908
1909	* pci.ids: Some more IDs.
1910
1911Mon Jul 19 14:10:36 1999  Martin Mares  <[email protected]>
1912
1913	* pci.ids: Added IDs of parallel port controller cards as sent
1914	by Tim Waugh <[email protected]>.
1915
1916Wed Jul  7 00:55:48 1999  Martin Mares  <[email protected]>
1917
1918	* lib/proc.c (proc_scan): HAVE_LONG_ADDRESS instead of HAVE_64BIT_ADDRESS.
1919
1920	* lspci.c: ADDR_FORMAT now depends on both HAVE_64BIT_ADDRESS and
1921	HAVE_LONG_ADDRESS.
1922
1923	* lib/configure: HAVE_64BIT_ADDRESS now doesn't imply that the addresses
1924	are represented as long long. Introduced a new flag HAVE_LONG_ADDRESS
1925	to indicate this. Both Sparc architectures now use both 64BIT_ADDRESS
1926	and LONG_ADDRESS since they have 32-bit userland, but don't set LONG_ADDRESS
1927	on Alpha.
1928
1929	* lspci.c (show_msi): Added dumping of the MSI capability.
1930	(show_slotid): The same for SlotID capability.
1931	(show_caps): Separated capability dumping, because it should
1932	be used for both htype0 and htype1. Even PCI 2.2 doesn't mention
1933	layout of htype2, so I'm a bit unsure about it wrt capabilities
1934	-- they at least have to live somewhere else since address 0x34
1935	is already defined differently in htype2.
1936
1937	* lib/header.h (PCI_STATUS_UDF): Marked as obsolete (PCI 2.2).
1938	(PCI_BASE_ADDRESS_MEM_TYPE_1M): Ditto.
1939	(PCI_CAP_ID_*): Added some new capabilities defined in PCI 2.2.
1940
1941	* lspci.c (show_htype0): Mask out lowest 2 bits from all capability pointers
1942	(required by the PCI 2.2 specs).
1943
1944Mon Jul  5 12:45:19 1999  Martin Mares  <[email protected]>
1945
1946	* lspci.c (show_size): Added new function for dumping of region sizes.
1947	(show_rom): Added. Now correctly dumps unassigned ROM addresses, disabled
1948	ROMs et cetera.
1949
1950	* lib/pci.h (struct pci_dev): known_fields moved to the public part
1951	of the structure.
1952
1953	* Added support for region sizes. Needs support in the kernel, because
1954	sizes have to be scanned before drivers initialize yourself. pci_fill_info()
1955	now returns a bitmask of what fields were really read.
1956
1957Mon Jun 28 18:37:51 1999  Dave Jones    <[email protected]>
1958
1959	* Makefile:
1960	  Added `uninstall' target - removes all traces of pciutils.
1961	* pci.ids:
1962	  - Lots of cleanups in the ATI, S3, Adaptec vendors.
1963	  - Changed Compaq QVision 1280/p definitions, as it's not possible
1964	    to determine the revision from the device ID.
1965	  - Same for the Tseng ET4000.
1966	    The id's said I had a rev C, when it was actually a rev B.
1967	  - Removed some unnecessary strings
1968	    `PCI'. Unless it's an AGP card, it should be obvious that it's PCI.
1969	    `Ethernet card'. This should be determined from config space.
1970	  - Lots of other new vendors & devices
1971	  - Other additional small cleanups.
1972
1973Mon Jun 21 22:11:10 1999  Martin Mares  <[email protected]>
1974
1975	* lib/names.c (pci_lookup_name): When device ID lookup
1976	fails, return hexadecimal device ID instead of vendor ID.
1977	Well spotted by Axel Bodemann <[email protected]>,
1978	I've just extended the fix to subsystem ID's.
1979
1980Thu Jun 17 19:48:21 1999  Martin Mares  <[email protected]>
1981
1982	* lspci.c (show_agp): Bug fix from Petr Vandrovec
1983	<[email protected]>. The command register was displayed
1984	incorrectly.
1985
1986Wed Jun  2 22:42:44 1999  Martin Mares  <[email protected]>
1987
1988	* lib/proc.c (SYS_pread, SYS_pwrite): Use hard-coded
1989	numbers if not supplied by the libc.
1990
1991Wed May 19 13:24:39 1999  Martin Mares  <[email protected]>
1992
1993	* Released the whole package as version 2.0.
1994
1995Fri May 14 22:42:02 1999  Martin Mares  <[email protected]>
1996
1997	* pci.ids: Added several new ID's contributed by people
1998	on the linux-pci list.
1999
2000Mon Apr 19 15:21:08 1999  Jakub Jelinek  <[email protected]>
2001
2002	* lspci.c: Display I/O addresses correctly on sparc64.
2003	* lib/header.h: Ditto.
2004
2005	* lib/configure: On sparc set HAVE_64BIT* as well, we want
2006	a binary which works on both 32bit and 64bit SPARCs.
2007
2008Sun Apr 18 21:14:58 1999  Martin Mares  <[email protected]>
2009
2010	* lspci.c, lib/proc.c: Alpha compilation fixes from Matthew Jacob
2011	<[email protected]>.
2012
2013	* pci.ids: A lot of updates from Adam J. Richter <[email protected]>.
2014
2015Sun Feb 28 22:26:21 1999  Martin Mares  <[email protected]>
2016
2017	* lspci.c (do_map_bus): Don't dump functions 1--7 if not flagged
2018	as a multi-function device, because several single-function devices
2019	don't decode the function bits at all.
2020
2021Sun Feb 14 23:48:22 1999  Martin Mares  <[email protected]>
2022
2023	* Makefile (install): Don't use "-o root -g root" for installation
2024	since it breaks on machines where programs are not installed by root.
2025	Reported by Richard Gooch <[email protected]>
2026
2027Tue Feb  9 15:54:39 1999  Martin Mares  <[email protected]>
2028
2029	* lspci.c (show_bases): Use new address masking macros and pciaddr_t.
2030
2031	* lib/pci.h: Using pciaddr_t for bus addresses, which are 32-bit
2032	or 64-bit depending on CPU.
2033
2034	* lib/pci.h (PCI_ADDR_MEM_MASK): Added macros for address masks
2035	according to bus address width.
2036
2037Thu Jan 28 20:54:16 1999  Martin Mares  <[email protected]>
2038
2039	* Released as 1.99.4.
2040
2041	* lspci.c: Capability list parser now recognizes both AGP
2042	registers and PCI Power Management registers (the latter
2043	is mainly guesswork based on DEC/Intel 21153 bridge specs
2044	since I don't have the PCI Power Management document).
2045
2046	* lspci.c: Replaced numerous occurrences of (x & flag) ? '+' : '-'
2047	by FLAG macro.
2048
2049	* lspci.c: Added bridge checks to bus mapping code.
2050
2051Wed Jan 27 14:59:16 1999  Martin Mares  <[email protected]>
2052
2053	* lspci.c: Implemented bus mapping mode (-M).
2054
2055	* lspci.c (scan_devices): Split to scan_devices() and scan_device().
2056	(show): Split to show() and show_device().
2057
2058	* lib/access.c (pci_init): When a->method == PCI_ACCESS_AUTO,
2059	set it to the real access method afterwards.
2060
2061Mon Jan 25 23:46:13 1999  Martin Mares  <[email protected]>
2062
2063	* lib/generic.c (pci_generic_fill_info): If in buscentric mode,
2064	don't check PCI_COMMAND for I/O and memory enables.
2065
2066Mon Jan 25 21:28:49 1999  Martin Mares  <[email protected]>
2067
2068	* Makefile: Added target `release' which substitutes new version
2069	number to .spec, .lsm and README. Also rewrote target `dist'.
2070
2071	* Released as 1.99.3.
2072
2073Sun Jan 24 22:10:36 1999  Martin Mares  <[email protected]>
2074
2075	* lib/header.h: Until kernel adopts new layout of PCI
2076	includes (i.e., separate declaration of header structure,
2077	functions and device IDs), which is not going to happen
2078	before 2.3, we'll use our own definition of the header.
2079
2080	* lspci.c (show_verbose): Display `Cap' flag in device status.
2081
2082	* lspci.c (show_htype0): Display capability lists wherever
2083	available. The only capability name we recognize now is `AGP'.
2084	Unfortunately, capabilities are stored in device-dependent
2085	portion of the configuration space and are thus available
2086	only to root unless you read a dump.
2087
2088	* lspci.c (scan_devices): Use cache instead of buffering.
2089
2090	* lib/buffer.c: Removed (obsoleted by the cache).
2091
2092	* lib/access.c: Added general caching mechanism.
2093
2094Sat Jan 23 21:30:54 1999  Martin Mares  <[email protected]>
2095
2096	* pci.ids: Added few devices.
2097
2098Fri Jan 22 19:29:31 1999  Martin Mares  <[email protected]>
2099
2100	* Version string is now defined in top-level Makefile, exported
2101	to the configure script and also substituted to man pages.
2102
2103	* lspci.c (show_bases): Rewrote displaying of 64-bit addresses.
2104	(show_verbose): Rewrote interrupt display logic.
2105
2106	* lib/i386-ports.c: Include sys/io.h only on glibc systems.
2107
2108	* lib/configure: Rewrote detection of Linux versions. Now it
2109	works on 2.0 kernels (only with direct/dump access, of course).
2110
2111	* lib/internal.h: New bytesex macros using <asm/byteorder.h>
2112	whenever available.
2113
2114	* lib/proc.c (proc_read, proc_write): Distinguish between short
2115	read/write and real errors.
2116
2117	* lspci.c (show_htype{0,1}): Always use d->dev->rom_base_addr since
2118	libpci respects buscentric mode automatically.
2119
2120	* lspci.c (show_hex_dump): For CardBus bridges, print out 128
2121	bytes of header (the whole standard part).
2122
2123	* common.c: pcilib options are now all uppercase. Also moved
2124	PCI access debugging option here.
2125
2126	* Released as 1.99.2.
2127
2128Wed Jan 20 22:50:35 1999  Martin Mares  <[email protected]>
2129
2130	* Wrote configure script and rewrote Makefiles.
2131
2132	* Removed few unused variables.
2133
2134Wed Jan 20 12:21:56 1999  Martin Mares  <[email protected]>
2135
2136	* common.c: Moved several functions used in both setpci and lspci
2137	here. This includes parsing of libpci-related options.
2138
2139	* More library tweaks.
2140
2141	* filter.c, names.c: Moved to library.
2142
2143	* setpci: Rewritten to use the library.
2144
2145	* Released as 1.99.1.
2146
2147Tue Jan 19 23:00:12 1999  Martin Mares  <[email protected]>
2148
2149	* lspci.c (scan_devices): For cardbus bridges, read first 128
2150	bytes of config space to get full standard header.
2151
2152	* Makefile (CFLAGS): Removed "-Wno-unused".
2153
2154	* Started the "New Generation" branch and introduced the
2155	PCI library.
2156
2157	* lspci: Rewritten to use the library.
2158
2159Tue Jan 19 22:24:08 1999  Martin Mares  <[email protected]>
2160
2161	* Released as version 1.10.
2162
2163Mon Jan 18 08:51:17 1999  Martin Mares  <[email protected]>
2164
2165	* lspci.8, setpci.8: Miscellaneous fixes as suggested by
2166	Dag Wieers <[email protected]>.
2167
2168Sun Nov 29 20:05:56 1998  Martin Mares  <[email protected]>
2169
2170	* pciutils.spec (Name): Update from Krzysztof G. Baranowski.
2171
2172Sun Nov 22 10:49:56 1998  Martin Mares  <[email protected]>
2173
2174	* Makefile, pciutils.h: Moved pci.ids to /usr/share.
2175
2176	* Released as version 1.09.
2177
2178Wed Nov 18 15:47:05 1998  Martin Mares  <[email protected]>
2179
2180	* lspci.c (show_htype1): Fixed displaying of prefetchable memory behind
2181	bridge. Thanks to Petr Vandrovec <[email protected]> for bug report.
2182
2183Fri Oct 23 18:59:19 1998  Martin Mares  <[email protected]>
2184
2185	* setpci.c: Don't include <syscall-list.h> with glibc >= 2.1.
2186
2187Mon Oct 19 21:53:30 1998  Martin Mares  <[email protected]>
2188
2189	* Released as version 1.08.
2190
2191	* setpci.c: glibc 2.1.x already defines pread() and pwrite().
2192
2193	* lspci.8: Changed warning about lspci -xxx.
2194
2195	* lspci.c: Require "-xxx" for full configuration space dump, so that
2196	it's impossible to crash the machine by single typo.
2197
2198	* specs: Added (courtesy of Krzysztof G. Baranowski <[email protected]>).
2199
2200Wed Sep  9 12:03:24 1998  Martin Mares  <[email protected]>
2201
2202	* lspci.c (show_bases): Better displaying of unassigned and
2203	disabled bases. Thanks to Gabriel Paubert <[email protected]>
2204	for an idea.
2205
2206Wed Sep  2 10:58:01 1998  Martin Mares  <[email protected]>
2207
2208	* setpci.c (pread): Recognize glibc 1.99 numbered as 2.0 on the PPC.
2209	(thanks to Geert Uytterhoeven for finding this out)
2210
2211Fri Jul 17 10:43:30 1998  Martin Mares  <[email protected]>
2212
2213	* lspci.c (show_verbose): Print subsystem ID using the new resolver.
2214	(show_machine): Print subsystem ID.
2215
2216	* names.c: New name resolution engine supporting subsystem IDs.
2217
2218	* Released as version 1.07.
2219
2220Wed Jul 15 15:37:21 1998  Martin Mares  <[email protected]>
2221
2222	* lspci.c (show_htype2 etc.): Displaying of CardBus headers.
2223	(show_bases): Honor the `cnt' argument.
2224	(grow_tree): Parse CardBus headers in tree mode as well.
2225
2226	* pci.h: Updated CardBus header field description. I still don't
2227	have the CardBus standard available, but OZ6832 specs contain
2228	full description of all header fields supported by the chip.
2229
2230Tue Jun  9 22:53:59 1998  Martin Mares  <[email protected]>
2231
2232	* Released as 1.06.
2233
2234	* names.c (parse_name_list): Killed an unused variable.
2235
2236	* setpci.c (pread, pwrite): Define SYS_(pread|pwrite) as __NR_\1
2237	if they are not defined by glibc (needed for glibc built on older
2238	kernels). Ugly.
2239
2240	* setpci.c (exec_op): Fixed error messages. Thanks, Steve!
2241
2242Mon Jun  8 10:59:22 1998  Martin Mares  <[email protected]>
2243
2244	* Released as 1.05.
2245
2246	* setpci.c: Problems with pread()/pwrite() with glibc on Alpha
2247	should be gone. Again thanks to Steve for bug report.
2248
2249	* filter.c (filter_parse_slot): Fixed ":x" type filters.
2250
2251	* pci.ids: Killed duplicate entry. Thanks to Stephen Williams
2252	<[email protected]> for reporting this.
2253
2254Sun Jun  7 19:27:51 1998  Martin Mares  <[email protected]>
2255
2256	* lspci.c (main), setpci.c (main): Implemented "--version".
2257
2258	* Released as 1.04.
2259
2260	* pciutils.h (PCIUTILS_VERSION): Added version string.
2261
2262	* filter.c, names.c: Extraneous #include <linux/pci.h> removed.
2263	Thanks to Geert Uytterhoeven <[email protected]>
2264	for bug report.
2265
2266Thu May 28 14:45:58 1998  Martin Mares  <[email protected]>
2267
2268	* pci.ids: More updates from Jens Maurer.
2269
2270Wed Apr 22 10:00:39 1998  Martin Mares  <[email protected]>
2271
2272	* pci.ids: Updates from Jens Maurer.
2273
2274Sun Apr 19 11:14:25 1998  Martin Mares  <[email protected]>
2275
2276	* Released as 1.03.
2277
2278	* setpci.8: Written.
2279
2280	* setpci.c: Finished.
2281
2282	* lspci.c: Now able to fetch expansion ROM base from kernel device list
2283	and print it if not in buscentric mode.
2284
2285Tue Mar 31 23:11:57 1998  Martin Mares  <[email protected]>
2286
2287	* setpci.c: Added.
2288
2289Sun Mar 22 15:39:08 1998  Martin Mares  <[email protected]>
2290
2291	* lspci.8: Updated the documentation.
2292
2293	* lspci.c: Modified to use the new filtering mechanism (options -f and -d).
2294
2295	* filter.c: Introduced new generic device filter.
2296
2297Thu Mar 19 17:03:48 1998  Martin Mares  <[email protected]>
2298
2299	* lspci.c (grow_tree, show_tree_dev, print_it): Fixed displaying
2300	of PCI-to-PCI bridges in the tree format.
2301
2302Sun Feb 15 10:12:25 1998  Martin Mares  <[email protected]>
2303
2304	* lspci.c (show_machine): Added non-verbose mode of machine-readable
2305	dump.
2306
2307	* pci.ids: Updates from Jens Maurer.
2308
2309	* Released as version 1.02.
2310
2311Thu Feb 12 16:53:28 1998  Martin Mares  <[email protected]>
2312
2313	* lspci.c: Added a "-m" switch for dumping machine-readable
2314	configuration data (requested by Bjoern Kriews <[email protected]>).
2315
2316Mon Feb  9 13:17:43 1998  Martin Mares  <[email protected]>
2317
2318	* Makefile, pciutils.h: Include local pci.h instead of <linux/pci.h>
2319	if available. This should avoid all problems with official kernel
2320	not synchronized to newer PCI code in CVS -- standard distribution
2321	of pciutils now contains pci.h from current CVS kernel, pciutils
2322	in CVS contain no pci.h and use the correct kernel include.
2323
2324	* Makefile: Fixed installation path for man pages.
2325
2326Sat Feb  7 15:15:46 1998  Martin Mares  <[email protected]>
2327
2328	* README: Updated.
2329
2330	* lspci.8: Created a man page.
2331
2332	* Releasing as version 1.0.
2333
2334Tue Feb  3 20:56:00 1998  Martin Mares  <[email protected]>
2335
2336	* Makefile: Recognize architecture by calling uname and pass it as ARCH_xxx
2337	to all the C sources. This should eliminate problems with 32-bit compilers
2338	on sparc64.
2339
2340	* lspci.c (show_verbose): Recognize CardBus bridge header type.
2341	(show_htype2): Stub routine.
2342	(scan_config): Write sensible error message if the kernel denies reading of
2343	upper part of the PCI config space.
2344