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