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