Initialize for pciutils

This commit is contained in:
zyppe 2024-02-05 14:46:39 +08:00
commit 40c64adcf0
17 changed files with 1867 additions and 0 deletions

2
.gitignore vendored Normal file
View file

@ -0,0 +1,2 @@
pciutils-3.5.6.tar.sign
pciutils-3.5.6.tar.xz

2
.pciutils.metadata Normal file
View file

@ -0,0 +1,2 @@
24e4114efa4df3bb36ef54f4865ac5cfc4a3189533d2d24c7837568a2891ed59 pciutils-3.5.6.tar.sign
f2705b2623b5614906a250067ab69339fdcd9d8183a910a3cbf0b11299b53a79 pciutils-3.5.6.tar.xz

7
baselibs.conf Normal file
View file

@ -0,0 +1,7 @@
libpci3
obsoletes "pciutils-<targettype> < <version>"
provides "pciutils-<targettype> = <version>"
pciutils-devel
requires -pciutils-<targettype>
requires "libpci3-<targettype> = <version>"

View file

@ -0,0 +1,167 @@
From 76d47191f9274991059a41e19e1999a12c0d3416 Mon Sep 17 00:00:00 2001
From: Martin Mares <mj@ucw.cz>
Date: Wed, 22 Jan 2020 09:49:18 +0100
Subject: [PATCH] Fixed buffer overflows in ls-tree.c
As reported in GitHub issue #24, tree dumping mode can smash the stack
if the hierarchy of buses is too deep.
Increased line buffer size to 1024 and switched to use of snprintf
everywhere, so that in the worst case, the line is truncated.
As snprintf can be problematic on obscure platforms, I wrapped it
in tree_printf(), so that we can add #ifdefs should problems arise.
---
lib/sysdep.h | 2 ++
ls-tree.c | 65 +++++++++++++++++++++++++++++++++++-----------------
2 files changed, 47 insertions(+), 22 deletions(-)
diff --git a/lib/sysdep.h b/lib/sysdep.h
index e525dc4..1a5cb16 100644
--- a/lib/sysdep.h
+++ b/lib/sysdep.h
@@ -9,9 +9,11 @@
#ifdef __GNUC__
#define UNUSED __attribute__((unused))
#define NONRET __attribute__((noreturn))
+#define FORMAT_CHECK(x,y,z) __attribute__((format(x,y,z)))
#else
#define UNUSED
#define NONRET
+#define FORMAT_CHECK(x,y,z)
#define inline
#endif
diff --git a/ls-tree.c b/ls-tree.c
index 6995dd2..aeb4087 100644
--- a/ls-tree.c
+++ b/ls-tree.c
@@ -6,6 +6,7 @@
* Can be freely distributed and used under the terms of the GNU GPL.
*/
+#include <stdarg.h>
#include <stdio.h>
#include <string.h>
@@ -167,6 +168,31 @@
static void show_tree_bridge(struct bridge *, char *, char *);
+#define LINE_BUF_SIZE 1024
+
+static char * FORMAT_CHECK(printf, 3, 4)
+tree_printf(char *line, char *p, char *fmt, ...)
+{
+ va_list args;
+ char *end = line + LINE_BUF_SIZE - 2;
+
+ if (p >= end)
+ return p;
+
+ va_start(args, fmt);
+ int res = vsnprintf(p, end - p, fmt, args);
+ if (res < 0)
+ {
+ /* Ancient C libraries return -1 on overflow */
+ p += strlen(p);
+ }
+ else
+ p += res;
+
+ va_end(args);
+ return p;
+}
+
static void
show_tree_dev(struct device *d, char *line, char *p)
{
@@ -174,19 +200,19 @@
struct bridge *b;
char namebuf[256];
- p += sprintf(p, "%02x.%x", q->dev, q->func);
+ p = tree_printf(line, p, "%02x.%x", q->dev, q->func);
for (b=&host_bridge; b; b=b->chain)
if (b->br_dev == d)
{
if (b->secondary == b->subordinate)
- p += sprintf(p, "-[%02x]-", b->secondary);
+ p = tree_printf(line, p, "-[%02x]-", b->secondary);
else
- p += sprintf(p, "-[%02x-%02x]-", b->secondary, b->subordinate);
+ p = tree_printf(line, p, "-[%02x-%02x]-", b->secondary, b->subordinate);
show_tree_bridge(b, line, p);
return;
}
if (verbose)
- p += sprintf(p, " %s",
+ p = tree_printf(line, p, " %s",
pci_lookup_name(pacc, namebuf, sizeof(namebuf),
PCI_LOOKUP_VENDOR | PCI_LOOKUP_DEVICE,
q->vendor_id, q->device_id));
@@ -200,8 +226,7 @@
print_it(line, p);
else if (!b->first_dev->next)
{
- *p++ = '-';
- *p++ = '-';
+ p = tree_printf(line, p, "--");
show_tree_dev(b->first_dev, line, p);
}
else
@@ -209,25 +234,23 @@
struct device *d = b->first_dev;
while (d->next)
{
- p[0] = '+';
- p[1] = '-';
- show_tree_dev(d, line, p+2);
+ char *p2 = tree_printf(line, p, "+-");
+ show_tree_dev(d, line, p2);
d = d->next;
}
- p[0] = '\\';
- p[1] = '-';
- show_tree_dev(d, line, p+2);
+ p = tree_printf(line, p, "\\-");
+ show_tree_dev(d, line, p);
}
}
static void
show_tree_bridge(struct bridge *b, char *line, char *p)
{
- *p++ = '-';
+ p = tree_printf(line, p, "-");
if (!b->first_bus->sibling)
{
if (b == &host_bridge)
- p += sprintf(p, "[%04x:%02x]-", b->domain, b->first_bus->number);
+ p = tree_printf(line, p, "[%04x:%02x]-", b->domain, b->first_bus->number);
show_tree_bus(b->first_bus, line, p);
}
else
@@ -237,11 +260,11 @@
while (u->sibling)
{
- k = p + sprintf(p, "+-[%04x:%02x]-", u->domain, u->number);
+ k = tree_printf(line, p, "+-[%04x:%02x]-", u->domain, u->number);
show_tree_bus(u, line, k);
u = u->sibling;
}
- k = p + sprintf(p, "\\-[%04x:%02x]-", u->domain, u->number);
+ k = tree_printf(line, p, "\\-[%04x:%02x]-", u->domain, u->number);
show_tree_bus(u, line, k);
}
}
@@ -249,7 +272,7 @@
void
show_forest(void)
{
- char line[256];
+ char line[LINE_BUF_SIZE];
grow_tree();
show_tree_bridge(&host_bridge, line, line);

View file

@ -0,0 +1,12 @@
Index: pciutils-3.3.1/lib/libpci.pc.in
===================================================================
--- pciutils-3.3.1.orig/lib/libpci.pc.in
+++ pciutils-3.3.1/lib/libpci.pc.in
@@ -6,6 +6,5 @@ idsdir=@IDSDIR@
Name: libpci
Description: libpci
Version: @VERSION@
-Libs: -L${libdir} -lpci
+Libs: -lpci @LDLIBS@
Libs.private: @LDLIBS@
-Cflags: -I${includedir}

View file

@ -0,0 +1,40 @@
Index: pciutils-3.3.1/Makefile
===================================================================
--- pciutils-3.3.1.orig/Makefile
+++ pciutils-3.3.1/Makefile
@@ -88,7 +88,7 @@ lspci: LDLIBS+=$(LIBKMOD_LIBS)
ls-kernel.o: CFLAGS+=$(LIBKMOD_CFLAGS)
update-pciids: update-pciids.sh
- sed <$< >$@ "s@^DEST=.*@DEST=$(IDSDIR)/$(PCI_IDS)@;s@^PCI_COMPRESSED_IDS=.*@PCI_COMPRESSED_IDS=$(PCI_COMPRESSED_IDS)@"
+ sed <$< >$@ "s@^DEST=.*@DEST=$(IDSDIR)/pci.ids.d/pci.ids.dist@;s@^PCI_COMPRESSED_IDS=.*@PCI_COMPRESSED_IDS=@"
chmod +x $@
# The example of use of libpci
Index: pciutils-3.3.1/update-pciids.sh
===================================================================
--- pciutils-3.3.1.orig/update-pciids.sh
+++ pciutils-3.3.1/update-pciids.sh
@@ -4,7 +4,7 @@
set -e
SRC="http://pci-ids.ucw.cz/v2.2/pci.ids"
-DEST=pci.ids
+DEST=pci.ids.d/pci.ids.dist
PCI_COMPRESSED_IDS=
GREP=grep
@@ -66,6 +66,13 @@ fi
mv $DEST.neww $DEST
rm $DEST.new
+if [ -x /usr/bin/merge-pciids -a -x /usr/bin/perl ]; then
+ merge-pciids
+else
+ echo "WARNING: merge-pciids or perl missing"
+ cp -p $DEST /usr/share/pci.ids
+fi
+
# Older versions did not compress the ids file, so let's make sure we
# clean that up.
if [ ${DEST%.gz} != ${DEST} ] ; then

View file

@ -0,0 +1,33 @@
From caca31a0eea41c7b051705704c1158fddc02fbd2 Mon Sep 17 00:00:00 2001
From: Gustavo Pimentel <Gustavo.Pimentel@synopsys.com>
Date: Tue, 4 Jun 2019 18:24:46 +0200
Subject: [PATCH] lspci: Add PCIe 5.0 data rate (32 GT/s) support
This enables "lspci" to show PCIe 5.0 data rate (32 GT/s) properly
according to the contents in register PCI_EXP_LNKCAP, PCI_EXP_LNKSTA
and PCI_EXP_LNKCTL2.
Signed-off-by: Gustavo Pimentel <gustavo.pimentel@synopsys.com>
Index: pciutils-3.5.6/ls-caps.c
===================================================================
--- pciutils-3.5.6.orig/ls-caps.c
+++ pciutils-3.5.6/ls-caps.c
@@ -728,6 +728,8 @@ static char *link_speed(int speed)
return "8GT/s";
case 4:
return "16GT/s";
+ case 5:
+ return "32GT/s";
default:
return "unknown";
}
@@ -1059,6 +1061,8 @@ static const char *cap_express_link2_spe
return "8GT/s";
case 4:
return "16GT/s";
+ case 5:
+ return "32GT/s";
default:
return "Unknown";
}

View file

@ -0,0 +1,32 @@
From 5bdf63b6b1bc35b59c4b3f47f7ca83ca1868155b Mon Sep 17 00:00:00 2001
From: Gustavo Pimentel <Gustavo.Pimentel@synopsys.com>
Date: Wed, 18 Nov 2020 23:56:52 +0100
Subject: [PATCH] lspci: Add PCIe 6.0 data rate (64 GT/s) support
This enables "lspci" to show PCIe 6.0 data rate (64 GT/s) properly
according to the contents in register PCI_EXP_LNKCAP, PCI_EXP_LNKSTA
and PCI_EXP_LNKCTL2.
Signed-off-by: Gustavo Pimentel <gustavo.pimentel@synopsys.com>
Index: pciutils-3.5.6/ls-caps.c
===================================================================
--- pciutils-3.5.6.orig/ls-caps.c
+++ pciutils-3.5.6/ls-caps.c
@@ -730,6 +730,8 @@ static char *link_speed(int speed)
return "16GT/s";
case 5:
return "32GT/s";
+ case 6:
+ return "64GT/s";
default:
return "unknown";
}
@@ -1063,6 +1065,8 @@ static const char *cap_express_link2_spe
return "16GT/s";
case 5:
return "32GT/s";
+ case 6:
+ return "64GT/s";
default:
return "Unknown";
}

View file

@ -0,0 +1,52 @@
From eff7cc9ee7f8b6efeb7d5854abbcfb8cdc486a95 Mon Sep 17 00:00:00 2001
From: "return.0" <return.0@me.com>
Date: Mon, 18 Jun 2018 17:00:31 -0500
Subject: [PATCH] pciutils: Add decoding of vendor specific VPD fields
References: bsc#1170554 ltc#185587
Upstream: v3.6.0
Git-commit: eff7cc9ee7f8b6efeb7d5854abbcfb8cdc486a95
IBM has defined several VPD fields that are not part of the PCI
spec, but are frequently used on embedded and pluggable pcie
adapters.
Since these fields are "Unknown", they are listed in hex
and less readable.
This patch adds commonly used vendor specific VPD keywords
described in "Table 160. LoPAPR VPD Fields" of the Linux on Power
Architecture Platform Reference (LoPAPR).
Signed-off-by: John Walthour <return.0@me.com>
---
ls-vpd.c | 13 +++++++++++++
1 file changed, 13 insertions(+)
diff --git a/ls-vpd.c b/ls-vpd.c
index b79abfc..cc279c3 100644
--- a/ls-vpd.c
+++ b/ls-vpd.c
@@ -41,6 +41,19 @@ static const struct vpd_item {
{ 'Y','A', F_TEXT, "Asset tag" },
{ 'V', 0 , F_TEXT, "Vendor specific" },
{ 'Y', 0 , F_TEXT, "System specific" },
+/*
+ * The following VPD keywords are vendor specific or not part of any
+ * current PCI-SIG specification
+ */
+ { 'C','C', F_TEXT, "CCIN" },
+ { 'F','C', F_TEXT, "Feature code" },
+ { 'F','N', F_TEXT, "FRU" },
+ { 'N','A', F_TEXT, "Network address" },
+ { 'R','M', F_TEXT, "Firmware version" },
+ { 'Z', 0 , F_TEXT, "Product specific" },
+/*
+ * End vendor specific VPD keywords
+ */
{ 0, 0 , F_BINARY, "Unknown" }
};
--
2.26.2

View file

@ -0,0 +1,47 @@
From d9b702cde8550b245defa130f3d93a5b34ae68d7 Mon Sep 17 00:00:00 2001
From: Martin Mares <mj@ucw.cz>
Date: Tue, 19 Jun 2018 11:44:42 +0200
Subject: [PATCH] VPD: Cleanup
References: bsc#1170554 ltc#185587
Upstream: v3.6.0
Git-commit: d9b702cde8550b245defa130f3d93a5b34ae68d7
---
ls-vpd.c | 20 +++++++-------------
1 file changed, 7 insertions(+), 13 deletions(-)
diff --git a/ls-vpd.c b/ls-vpd.c
index cc279c3..37217f0 100644
--- a/ls-vpd.c
+++ b/ls-vpd.c
@@ -41,19 +41,13 @@ static const struct vpd_item {
{ 'Y','A', F_TEXT, "Asset tag" },
{ 'V', 0 , F_TEXT, "Vendor specific" },
{ 'Y', 0 , F_TEXT, "System specific" },
-/*
- * The following VPD keywords are vendor specific or not part of any
- * current PCI-SIG specification
- */
- { 'C','C', F_TEXT, "CCIN" },
- { 'F','C', F_TEXT, "Feature code" },
- { 'F','N', F_TEXT, "FRU" },
- { 'N','A', F_TEXT, "Network address" },
- { 'R','M', F_TEXT, "Firmware version" },
- { 'Z', 0 , F_TEXT, "Product specific" },
-/*
- * End vendor specific VPD keywords
- */
+ /* Non-standard extensions */
+ { 'C','C', F_TEXT, "CCIN" },
+ { 'F','C', F_TEXT, "Feature code" },
+ { 'F','N', F_TEXT, "FRU" },
+ { 'N','A', F_TEXT, "Network address" },
+ { 'R','M', F_TEXT, "Firmware version" },
+ { 'Z', 0 , F_TEXT, "Product specific" },
{ 0, 0 , F_BINARY, "Unknown" }
};
--
2.26.2

View file

@ -0,0 +1,57 @@
From 726b641b0dd842b920f7e1c985cb4a22494fe466 Mon Sep 17 00:00:00 2001
From: Martin Mares <mj@ucw.cz>
Date: Sat, 25 Jan 2020 20:42:03 +0100
Subject: [PATCH] VPD: When printing item IDs, escape non-ASCII characters
References: bsc#1170554 ltc#185587
Upstream: v3.6.4
Git-commit: 726b641b0dd842b920f7e1c985cb4a22494fe466
---
ls-vpd.c | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
diff --git a/ls-vpd.c b/ls-vpd.c
index 37217f0..92627e4 100644
--- a/ls-vpd.c
+++ b/ls-vpd.c
@@ -10,6 +10,7 @@
*/
#include <stdio.h>
+#include <string.h>
#include "lspci.h"
@@ -156,13 +157,14 @@ cap_vpd(struct device *d)
{
word read_len;
const struct vpd_item *item;
- byte id1, id2;
+ byte id[2], id1, id2;
if (!read_vpd(d, res_addr + part_pos, buf, 3, &csum))
break;
part_pos += 3;
- id1 = buf[0];
- id2 = buf[1];
+ memcpy(id, buf, 2);
+ id1 = id[0];
+ id2 = id[1];
part_len = buf[2];
if (part_len > res_len - part_pos)
break;
@@ -178,7 +180,9 @@ cap_vpd(struct device *d)
if (!read_vpd(d, res_addr + part_pos, buf, read_len, &csum))
break;
- printf("\t\t\t[%c%c] %s: ", id1, id2, item->name);
+ printf("\t\t\t[");
+ print_vpd_string(id, 2);
+ printf("] %s: ", item->name);
switch (item->format)
{
--
2.26.2

View file

@ -0,0 +1,420 @@
Index: pciutils-3.5.6/lib/header.h
===================================================================
--- pciutils-3.5.6.orig/lib/header.h 2017-04-29 20:05:07.000000000 +0200
+++ pciutils-3.5.6/lib/header.h 2020-10-29 09:31:24.947599754 +0100
@@ -216,7 +216,7 @@
#define PCI_EXT_CAP_ID_PB 0x04 /* Power Budgeting */
#define PCI_EXT_CAP_ID_RCLINK 0x05 /* Root Complex Link Declaration */
#define PCI_EXT_CAP_ID_RCILINK 0x06 /* Root Complex Internal Link Declaration */
-#define PCI_EXT_CAP_ID_RCECOLL 0x07 /* Root Complex Event Collector */
+#define PCI_EXT_CAP_ID_RCEC 0x07 /* Root Complex Event Collector */
#define PCI_EXT_CAP_ID_MFVC 0x08 /* Multi-Function Virtual Channel */
#define PCI_EXT_CAP_ID_VC2 0x09 /* Virtual Channel (2nd ID) */
#define PCI_EXT_CAP_ID_RBCB 0x0a /* Root Bridge Control Block */
@@ -1007,6 +1007,12 @@
#define PCI_RCLINK_LINK_ADDR 8 /* Link Entry: Address (64-bit) */
#define PCI_RCLINK_LINK_SIZE 16 /* Link Entry: sizeof */
+/* Root Complex Event Collector Endpoint Association */
+#define PCI_RCEC_EP_CAP_VER(reg) (((reg) >> 16) & 0xf)
+#define PCI_RCEC_BUSN_REG_VER 0x02 /* as per PCIe sec 7.9.10.1 */
+#define PCI_RCEC_RCIEP_BMAP 0x0004 /* as per PCIe sec 7.9.10.2 */
+#define PCI_RCEC_BUSN_REG 0x0008 /* as per PCIe sec 7.9.10.3 */
+
/* PCIe Vendor-Specific Capability */
#define PCI_EVNDR_HEADER 4 /* Vendor-Specific Header */
#define PCI_EVNDR_REGISTERS 8 /* Vendor-Specific Registers */
Index: pciutils-3.5.6/ls-ecaps.c
===================================================================
--- pciutils-3.5.6.orig/ls-ecaps.c 2017-04-29 20:05:07.000000000 +0200
+++ pciutils-3.5.6/ls-ecaps.c 2020-10-29 09:31:24.947599754 +0100
@@ -650,6 +650,61 @@ cap_l1pm(struct device *d, int where)
}
static void
+cap_rcec(struct device *d, int where)
+{
+ printf("Root Complex Event Collector Endpoint Association\n");
+ if (verbose < 2)
+ return;
+
+ if (!config_fetch(d, where, 12))
+ return;
+
+ u32 hdr = get_conf_long(d, where);
+ byte cap_ver = PCI_RCEC_EP_CAP_VER(hdr);
+ u32 bmap = get_conf_long(d, where + PCI_RCEC_RCIEP_BMAP);
+ printf("\t\tRCiEPBitmap: ");
+ if (bmap)
+ {
+ int prevmatched=0;
+ int adjcount=0;
+ int prevdev=0;
+ printf("RCiEP at Device(s):");
+ for (int dev=0; dev < 32; dev++)
+ {
+ if (BITS(bmap, dev, 1))
+ {
+ if (!adjcount)
+ printf("%s %u", (prevmatched) ? "," : "", dev);
+ adjcount++;
+ prevdev=dev;
+ prevmatched=1;
+ }
+ else
+ {
+ if (adjcount > 1)
+ printf("-%u", prevdev);
+ adjcount=0;
+ }
+ }
+ }
+ else
+ printf("%s", (verbose > 2) ? "00000000 [none]" : "[none]");
+ printf("\n");
+
+ if (cap_ver < PCI_RCEC_BUSN_REG_VER)
+ return;
+
+ u32 busn = get_conf_long(d, where + PCI_RCEC_BUSN_REG);
+ u8 lastbusn = BITS(busn, 16, 8);
+ u8 nextbusn = BITS(busn, 8, 8);
+
+ if ((lastbusn == 0x00) && (nextbusn == 0xff))
+ printf("\t\tAssociatedBusNumbers: %s\n", (verbose > 2) ? "ff-00 [none]" : "[none]");
+ else
+ printf("\t\tAssociatedBusNumbers: %02x-%02x\n", nextbusn, lastbusn );
+}
+
+static void
cap_ptm(struct device *d, int where)
{
u32 buff;
@@ -759,8 +814,8 @@ show_ext_caps(struct device *d, int type
case PCI_EXT_CAP_ID_RCILINK:
printf("Root Complex Internal Link <?>\n");
break;
- case PCI_EXT_CAP_ID_RCECOLL:
- printf("Root Complex Event Collector <?>\n");
+ case PCI_EXT_CAP_ID_RCEC:
+ cap_rcec(d, where);
break;
case PCI_EXT_CAP_ID_MFVC:
printf("Multi-Function Virtual Channel <?>\n");
Index: pciutils-3.5.6/setpci.c
===================================================================
--- pciutils-3.5.6.orig/setpci.c 2016-10-03 21:49:09.000000000 +0200
+++ pciutils-3.5.6/setpci.c 2020-10-29 09:34:12.540466140 +0100
@@ -293,7 +293,7 @@ static const struct reg_name pci_reg_nam
{ 0x20004, 0, 0, "ECAP_PB" },
{ 0x20005, 0, 0, "ECAP_RCLINK" },
{ 0x20006, 0, 0, "ECAP_RCILINK" },
- { 0x20007, 0, 0, "ECAP_RCECOLL" },
+ { 0x20007, 0, 0, "ECAP_RCEC" },
{ 0x20008, 0, 0, "ECAP_MFVC" },
{ 0x2000a, 0, 0, "ECAP_RBCB" },
{ 0x2000b, 0, 0, "ECAP_VNDR" },
Index: pciutils-3.5.6/tests/cap-rcec
===================================================================
--- /dev/null 1970-01-01 00:00:00.000000000 +0000
+++ pciutils-3.5.6/tests/cap-rcec 2020-10-29 09:31:24.947599754 +0100
@@ -0,0 +1,299 @@
+6a:00.4 Generic system peripheral [0807]: Intel Corporation Device 0b23
+ Subsystem: Intel Corporation Device 0000
+ Control: I/O- Mem- BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx-
+ Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
+ Interrupt: pin A routed to IRQ 255
+ NUMA node: 0
+ Capabilities: [40] Express (v2) Root Complex Event Collector, MSI 00
+ DevCap: MaxPayload 512 bytes, PhantFunc 0
+ ExtTag- RBE-
+ DevCtl: CorrErr+ NonFatalErr+ FatalErr+ UnsupReq-
+ RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop-
+ MaxPayload 128 bytes, MaxReadReq 128 bytes
+ DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend-
+ RootCap: CRSVisible-
+ RootCtl: ErrCorrectable+ ErrNon-Fatal+ ErrFatal+ PMEIntEna- CRSVisible-
+ RootSta: PME ReqID 0000, PMEStatus- PMEPending-
+ DevCap2: Completion Timeout: Not Supported, TimeoutDis- NROPrPrP- LTR-
+ 10BitTagComp- 10BitTagReq- OBFF Not Supported, ExtFmt- EETLPPrefix-
+ EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
+ FRS-
+ DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis- LTR- OBFF Disabled,
+ Capabilities: [80] Power Management version 3
+ Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-)
+ Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME-
+ Capabilities: [90] MSI: Enable- Count=1/1 Maskable+ 64bit-
+ Address: 00000000 Data: 0000
+ Masking: 00000000 Pending: 00000000
+ Capabilities: [100 v1] Advanced Error Reporting
+ UESta: DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
+ UEMsk: DLP- SDES+ TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq+ ACSViol-
+ UESvrt: DLP+ SDES- TLP+ FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
+ CESta: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr-
+ CEMsk: RxErr- BadTLP- BadDLLP- Rollover- Timeout- AdvNonFatalErr+
+ AERCap: First Error Pointer: 00, ECRCGenCap- ECRCGenEn- ECRCChkCap- ECRCChkEn-
+ MultHdrRecCap- MultHdrRecEn- TLPPfxPres- HdrLogCap-
+ HeaderLog: 00000000 00000000 00000000 00000000
+ RootCmd: CERptEn- NFERptEn- FERptEn-
+ RootSta: CERcvd- MultCERcvd- UERcvd- MultUERcvd-
+ FirstFatal- NonFatalMsg- FatalMsg- IntMsg 0
+ ErrorSrc: ERR_COR: 0000 ERR_FATAL/NONFATAL: 0000
+ Capabilities: [160 v2] Root Complex Event Collector Endpoint Association
+ RCiEPBitmap: RCiEP at Device(s): 1, 6, 8-10, 12, 15
+ AssociatedBusNumbers: 02-08
+00: 86 80 23 0b 00 01 10 00 00 00 07 08 00 00 00 00
+10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+20: 00 00 00 00 00 00 00 00 00 00 00 00 86 80 00 00
+30: 00 00 00 00 40 00 00 00 00 00 00 00 ff 01 00 00
+40: 10 80 a2 00 02 00 00 00 07 00 00 00 00 00 00 00
+50: 00 00 00 00 00 00 00 00 00 00 00 00 07 00 00 00
+60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+80: 01 90 03 00 00 00 00 00 00 00 00 00 00 00 00 00
+90: 05 00 00 01 00 00 00 00 00 00 00 00 00 00 00 00
+a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d0: 31 6a 08 00 00 00 00 00 00 00 00 00 00 00 00 00
+e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+100: 01 00 01 16 00 00 00 00 20 00 10 00 10 30 46 00
+110: 00 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00
+120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+160: 07 00 02 00 00 00 00 00 00 ff 00 00 00 00 00 00
+170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+1a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+1b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+1c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+1d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+1e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+1f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+200: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+210: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+220: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+230: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+240: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+250: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+260: 00 00 00 00 07 00 00 00 00 00 00 00 00 00 00 00
+270: 00 00 00 00 00 00 00 00 07 00 00 00 00 00 00 00
+280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+290: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+2a0: 00 00 00 00 00 00 00 00 20 00 18 00 20 00 18 00
+2b0: 20 00 18 00 00 00 00 00 00 00 00 00 00 00 00 00
+2c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+2d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+2e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+2f0: 00 20 00 00 00 20 00 00 00 20 00 00 00 e0 00 00
+300: 00 e0 00 00 00 e0 00 00 00 e0 00 00 00 e0 00 00
+310: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+320: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+330: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+340: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+350: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+360: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+370: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+390: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+3a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+3b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+3c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+3d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+3e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+3f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+400: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+410: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+430: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+440: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+450: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+460: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+470: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+490: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+4a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+4b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+4c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+4d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+4e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+4f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+500: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+510: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+520: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+530: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+540: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+550: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+560: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+570: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+580: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+590: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+5a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+5b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+5c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+5d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+5e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+5f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+600: 44 00 00 00 91 00 00 00 00 00 00 00 00 00 00 00
+610: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+620: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+630: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+640: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+650: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+660: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+670: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+680: 90 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+690: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+6a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+6b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+6c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+6d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+6e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+6f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+700: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+710: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+720: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+730: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+740: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+750: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+760: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+770: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+780: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+790: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+7a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+7b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+7c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+7d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+7e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+7f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+800: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+810: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+820: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+830: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+840: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+850: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+860: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+870: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+880: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+890: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+8a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+8b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+8c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+8d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+8e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+8f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+900: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+910: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+920: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+930: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+940: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+950: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+960: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+970: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+980: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+990: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+9a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+9b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+9c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+9d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+9e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+9f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+a90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+aa0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ab0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ac0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ad0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ae0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+af0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+b90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ba0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+bb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+bc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+bd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+be0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+bf0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+c90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ca0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+cb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+cc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+cd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ce0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+cf0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+d90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+da0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+db0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+dc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+dd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+de0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+df0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+e90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ea0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+eb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ec0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ed0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ee0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ef0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+f90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+fa0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+fb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+fc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+fd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+fe0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
+ff0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00

87
pciutils-endianh.patch Normal file
View file

@ -0,0 +1,87 @@
diff -urN pciutils-3.3.0.old/lib/sysdep.h pciutils-3.3.0/lib/sysdep.h
--- pciutils-3.3.0.old/lib/sysdep.h 2014-11-18 14:27:01.054393822 +0100
+++ pciutils-3.3.0/lib/sysdep.h 2014-11-18 14:28:43.420561080 +0100
@@ -18,79 +18,9 @@
typedef u8 byte;
typedef u16 word;
-#ifdef PCI_OS_WINDOWS
-#define strcasecmp strcmpi
-#endif
-
-#ifdef PCI_HAVE_LINUX_BYTEORDER_H
-
-#include <asm/byteorder.h>
-#define cpu_to_le16 __cpu_to_le16
-#define cpu_to_le32 __cpu_to_le32
-#define le16_to_cpu __le16_to_cpu
-#define le32_to_cpu __le32_to_cpu
-
-#else
-
-#ifdef PCI_OS_LINUX
#include <endian.h>
-#define BYTE_ORDER __BYTE_ORDER
-#define BIG_ENDIAN __BIG_ENDIAN
-#endif
-
-#ifdef PCI_OS_SUNOS
-#include <sys/byteorder.h>
-#if defined(__i386) && defined(LITTLE_ENDIAN)
-# define BYTE_ORDER LITTLE_ENDIAN
-#elif defined(__sparc) && defined(BIG_ENDIAN)
-# define BYTE_ORDER BIG_ENDIAN
-#else
-#define BIG_ENDIAN 4321
-#endif
-#ifndef BYTE_ORDER
-#ifdef _LITTLE_ENDIAN
-#define BYTE_ORDER 1234
-#else
-#define BYTE_ORDER 4321
-#endif
-#endif /* BYTE_ORDER */
-#endif /* PCI_OS_SUNOS */
-
-#ifdef PCI_OS_WINDOWS
-#ifdef __MINGW32__
- #include <sys/param.h>
-#else
- #include <io.h>
- #define BIG_ENDIAN 4321
- #define LITTLE_ENDIAN 1234
- #define BYTE_ORDER LITTLE_ENDIAN
- #define snprintf _snprintf
-#endif
-#endif
-
-#if BYTE_ORDER == BIG_ENDIAN
-#define cpu_to_le16 swab16
-#define cpu_to_le32 swab32
-#define le16_to_cpu swab16
-#define le32_to_cpu swab32
-
-static inline word swab16(word w)
-{
- return (w << 8) | ((w >> 8) & 0xff);
-}
-
-static inline u32 swab32(u32 w)
-{
- return ((w & 0xff000000) >> 24) |
- ((w & 0x00ff0000) >> 8) |
- ((w & 0x0000ff00) << 8) |
- ((w & 0x000000ff) << 24);
-}
-#else
-#define cpu_to_le16(x) (x)
-#define cpu_to_le32(x) (x)
-#define le16_to_cpu(x) (x)
-#define le32_to_cpu(x) (x)
-#endif
-#endif
+#define cpu_to_le16 htole16
+#define cpu_to_le32 htole32
+#define le16_to_cpu le16toh
+#define le32_to_cpu le32toh

128
pciutils-ocloexec.patch Normal file
View file

@ -0,0 +1,128 @@
Index: pciutils-3.4.0/lib/dump.c
===================================================================
--- pciutils-3.4.0.orig/lib/dump.c
+++ pciutils-3.4.0/lib/dump.c
@@ -64,7 +64,7 @@ dump_init(struct pci_access *a)
if (!name)
a->error("dump: File name not given.");
- if (!(f = fopen(name, "r")))
+ if (!(f = fopen(name, "re")))
a->error("dump: Cannot open %s: %s", name, strerror(errno));
while (fgets(buf, sizeof(buf)-1, f))
{
Index: pciutils-3.4.0/lib/names-cache.c
===================================================================
--- pciutils-3.4.0.orig/lib/names-cache.c
+++ pciutils-3.4.0/lib/names-cache.c
@@ -63,7 +63,7 @@ pci_id_cache_load(struct pci_access *a,
return 0;
}
- f = fopen(name, "rb");
+ f = fopen(name, "rbe");
if (!f)
{
a->debug("Cache file does not exist\n");
@@ -136,7 +136,7 @@ pci_id_cache_flush(struct pci_access *a)
tmpname = pci_malloc(a, strlen(name) + strlen(hostname) + 64);
sprintf(tmpname, "%s.tmp-%s-%d", name, hostname, this_pid);
- f = fopen(tmpname, "wb");
+ f = fopen(tmpname, "wbe");
if (!f)
{
a->warning("Cannot write to %s: %s", name, strerror(errno));
Index: pciutils-3.4.0/lib/names-parse.c
===================================================================
--- pciutils-3.4.0.orig/lib/names-parse.c
+++ pciutils-3.4.0/lib/names-parse.c
@@ -52,7 +52,7 @@ static pci_file pci_open(struct pci_acce
typedef FILE * pci_file;
#define pci_gets(f, l, s) fgets(l, s, f)
#define pci_eof(f) feof(f)
-#define pci_open(a) fopen(a->id_file_name, "r")
+#define pci_open(a) fopen(a->id_file_name, "re")
#define pci_close(f) fclose(f)
#define PCI_ERROR(f, err) if (!err && ferror(f)) err = "I/O error";
#endif
Index: pciutils-3.4.0/lib/proc.c
===================================================================
--- pciutils-3.4.0.orig/lib/proc.c
+++ pciutils-3.4.0/lib/proc.c
@@ -62,7 +62,7 @@ proc_scan(struct pci_access *a)
if (snprintf(buf, sizeof(buf), "%s/devices", pci_get_param(a, "proc.path")) == sizeof(buf))
a->error("File name too long");
- f = fopen(buf, "r");
+ f = fopen(buf, "re");
if (!f)
a->error("Cannot open %s", buf);
while (fgets(buf, sizeof(buf)-1, f))
@@ -129,7 +129,7 @@ proc_setup(struct pci_dev *d, int rw)
if (e < 0 || e >= (int) sizeof(buf))
a->error("File name too long");
a->fd_rw = a->writeable || rw;
- a->fd = open(buf, a->fd_rw ? O_RDWR : O_RDONLY);
+ a->fd = open(buf, (a->fd_rw ? O_RDWR : O_RDONLY) | O_CLOEXEC);
if (a->fd < 0)
{
e = snprintf(buf, sizeof(buf), "%s/%04x:%02x/%02x.%d",
@@ -137,7 +137,7 @@ proc_setup(struct pci_dev *d, int rw)
d->domain, d->bus, d->dev, d->func);
if (e < 0 || e >= (int) sizeof(buf))
a->error("File name too long");
- a->fd = open(buf, a->fd_rw ? O_RDWR : O_RDONLY);
+ a->fd = open(buf, (a->fd_rw ? O_RDWR : O_RDONLY) | O_CLOEXEC);
}
if (a->fd < 0)
a->warning("Cannot open %s", buf);
Index: pciutils-3.4.0/lib/sysfs.c
===================================================================
--- pciutils-3.4.0.orig/lib/sysfs.c
+++ pciutils-3.4.0/lib/sysfs.c
@@ -96,7 +96,7 @@ sysfs_get_string(struct pci_dev *d, char
void (*warn)(char *msg, ...) = (mandatory ? a->error : a->warning);
sysfs_obj_name(d, object, namebuf);
- fd = open(namebuf, O_RDONLY);
+ fd = open(namebuf, O_RDONLY|O_CLOEXEC);
if (fd < 0)
{
if (mandatory || errno != ENOENT)
@@ -139,7 +139,7 @@ sysfs_get_resources(struct pci_dev *d)
int i;
sysfs_obj_name(d, "resource", namebuf);
- file = fopen(namebuf, "r");
+ file = fopen(namebuf, "re");
if (!file)
a->error("Cannot open %s: %s", namebuf, strerror(errno));
for (i = 0; i < 7; i++)
@@ -245,7 +245,7 @@ sysfs_fill_slots(struct pci_access *a)
n = snprintf(namebuf, OBJNAMELEN, "%s/%s/%s", dirname, entry->d_name, "address");
if (n < 0 || n >= OBJNAMELEN)
a->error("File name too long");
- file = fopen(namebuf, "r");
+ file = fopen(namebuf, "re");
/*
* Old versions of Linux had a fakephp which didn't have an 'address'
* file. There's no useful information to be gleaned from these
@@ -331,7 +331,7 @@ sysfs_setup(struct pci_dev *d, int inten
if (a->fd_vpd < 0)
{
sysfs_obj_name(d, "vpd", namebuf);
- a->fd_vpd = open(namebuf, O_RDONLY);
+ a->fd_vpd = open(namebuf, O_RDONLY|O_CLOEXEC);
/* No warning on error; vpd may be absent or accessible only to root */
}
return a->fd_vpd;
@@ -341,7 +341,7 @@ sysfs_setup(struct pci_dev *d, int inten
{
sysfs_obj_name(d, "config", namebuf);
a->fd_rw = a->writeable || intent == SETUP_WRITE_CONFIG;
- a->fd = open(namebuf, a->fd_rw ? O_RDWR : O_RDONLY);
+ a->fd = open(namebuf, (a->fd_rw ? O_RDWR : O_RDONLY) | O_CLOEXEC);
if (a->fd < 0)
a->warning("Cannot open %s", namebuf);
a->fd_pos = 0;

594
pciutils.changes Normal file
View file

@ -0,0 +1,594 @@
* Wed Oct 4 2023 psimons@suse.com
- Apply "lspci-Fixed-buffer-overflows-in-ls-tree.c.patch" to fix a
buffer overflow error that would cause lspci to crash on systems
with complex topologies. [bsc#1215265]
- Add "pciutils.keyring" so that the tarball's signature can be
verified at build time.
- Use "%%license" tag instead of "%%doc" to install the package's
license file.
* Mon Jan 24 2022 vliaskovitis@suse.com
- Add pciutils-Add-PCIe-5.0-data-rate-32-GT-s-support.patch
Add pciutils-Add-PCIe-6.0-data-rate-64-GT-s-support.patch
(bsc#1192862)
* Thu Oct 29 2020 pgajdos@suse.com
- Add decode support for RCECs [jsc#SLE-13735]
- added patches
https://github.com/pciutils/pciutils/commit/e12bd01eea67ca8cf539263124843ba281eb6ecc
+ pciutils-add-decode-support-for-RCECs.patch
* Thu May 21 2020 msuchanek@suse.com
- Fix lspci outputs few of the VPD data fields are displayed as unknown (bsc#1170554, ltc#185587).
Added:
* pciutils-VPD-When-printing-item-IDs-escape-non-ASCII-characte.patch
* pciutils-VPD-Cleanup.patch
* pciutils-Add-decoding-of-vendor-specific-VPD-fields.patch
* Sun Nov 19 2017 aavindraa@gmail.com
- Update to version 3.5.6
* MN VPD keyword is decoded correctly.
* As usual, updated pci.ids to the current snapshot of the
database.
* FreeBSD back-end: read-only access for non-root, support
DragonFly BSD, support extended config space.
* Sat Nov 11 2017 aavindraa@gmail.com
- Update to version 3.5.5
* Better decoding of AER capability.
* "Slot Implemented" flag is decoded for PCI/PCI-X to PCIe bridges.
* Minor fixes of decoding other capabilities.
* As usual, updated pci.ids to the current snapshot of the
database.
- cleanup with spec-cleaner
- switch from ftp to https
- track signature
* Mon Feb 27 2017 mpluskal@suse.com
- Update to version 3.5.4:
* Previous version broke compilation on systems, for which
lib/types.h did not provide a 64-bit integer type. It is
provided everywhere now.
- Changes for version 3.5.3:
* When lspci looks for Linux kernel modules, it uses the default
path to module directory provided by libkmod. Previously,
it tried to construct the path explicitly, which need not
work on all systems.
* Improved formatting of memory and I/O ranges behind a bridge.
* PCIe link capabilities now display GEN4 speed (16GT/s).
* PCIe device capabilities now show bits related to atomic
operations.
- Changes for version 3.5.2:
* The L1 power management capability is now decoded more
thoroughly. Thanks to Rajat Jain for the patch.
* The table of configuration registers used by setpci
had a bug in the definition of SUBSYSTEM_VENDOR_ID.
* Wed May 25 2016 mpluskal@suse.com
- Update to version 3.5.1:
* Fixed symbol versioning of pci_init().
* Fri May 20 2016 mpluskal@suse.com
- Update to version 3.5.0:
* New capabilities decoded: Downstream Port Containment,
Precision Time Measurement. Thanks to Keith Busch and
Jonathan Yong.
* Domain numbers extended to 31 bits. This will be used by the
Linux kernel on some machines in near future.
* Enhanced allocation regions are now decoded on Linux.
* The NetBSD back-end supports PCIe extended configuration space.
* Updated pci.ids to the current snapshot of the database.
* Fri Jan 8 2016 tchvatal@suse.com
- Version update to 3.4.1:
* New capabilities decoded: Process Address Space, Page Request
Interface, Enhanced Allocation. Thanks to David Daney and
David Woodhouse.
* DevCap SlotPowerLimit is now decoded for all components with
upstream ports.
* Sat Nov 21 2015 jengelh@inai.de
- Summary update
* Fri Nov 13 2015 mpluskal@suse.com
- Update to 3.4.0
* On Linux, we report NUMA nodes of devices.
* The sysfs back-end does not die on read errors
of optional attributes. Instead, a warning is produced.
* Fixed several minor bugs.
* Updated pci.ids to the current snapshot of the database.
* Sun Sep 6 2015 mpluskal@suse.com
- Update to 3.3.1
* Removed hacks for backward compatibility with Linux libc5,
which were breaking newer non-glibc Linux systems. Thanks
to Felix Janda.
* Display VirtIO vendor-specific capability. Patch by Gerd
Hoffmann.
* Fixed memory leak in name cache.
* Updated pci.ids to the current snapshot of the database.
* Tue Nov 18 2014 tchvatal@suse.com
- Version bump to 3.3.0:
* Device names exported by BIOS are displayed on Linux.
* On Linux systems, HWDB is used to look up device names
when our ID database gives no match. (More precisely,
HWDB is consulted after local pci.ids, but before using
network to query online pci.ids.) Thanks to Tom Gundersen
for the initial patch.
* Added experimental back-end for OS X / Darwin. Thanks to
Richard Yao for providing it.
* Filters now support matching by device class. Original
patch by Matthew Wilcox, wrappers for ABI compatibility
by me.
* Interrupt Pin and Interrupt Line registers are displayed
for bridge devices, too.
* Several portability bugs have been fixed.
* Several typos have been fixed. Also, use of questionable
constructs in man pages has been reduced.
* PCIe link capabilities now include the ASPMOptComp bit.
* The "CRS Software Visibility" bit is now decoded properly.
* Updated pci.ids to the current snapshot of the database.
- Refresh patch:
* pciutils-endianh.patch
* Mon Aug 18 2014 fcrozat@suse.com
- Add obsoletes/provides to baselibs.conf.
* Tue May 13 2014 tchvatal@suse.com
- Remove COPYING from obs it is in tarball directly
- Version bump to 3.2.1:
* CardBus bridge capabilities are displayed.
* PCIe L1 PM substates are decoded.
* Various bugs were fixed in decoding of PCIe capabilities.
* The sysfs back-end does not spit out unnecessary warnings when
empty slots report only a partial device address. This actually
happens on IBM pSeries.
* Updated pci.ids to the today's snapshot of the database.
- Cleanup with spec-cleaner
* Tue Jul 30 2013 sweet_f_a@gmx.de
- Update to 3.2.0
* On newer Linux systems, we use libkmod to look up kernel
modules (modules.pcimap no longer exists.) To facilitate this,
libpci is able to look up module aliases in sysfs.
* Various minor bug fixes.
* Updated pci.ids to the today's snapshot of the database.
- Update to 3.1.10
* Decoding of LTR/OBFF in PCIe capabilities.
* Various minor bug fixes.
* Updated pci.ids to the today's snapshot of the database.
- rebase patches
- require libkmod
* Mon Apr 15 2013 idonmez@suse.com
- Add Source URL, see https://en.opensuse.org/SourceUrls
* Mon Dec 31 2012 crrodriguez@opensuse.org
- pciutils-endianh.patch Use the documented/optimized byteswapping
routines from endian.h
* Sun Mar 18 2012 jengelh@medozas.de
- Shared library policy: new subpackage libpci3
* Sun Jan 29 2012 tabraham@novell.com
- Update to 3.1.9
* Whereever we mention the PCI ID database, we now refer to
http://pci-ids.ucw.cz/ and the sf.net site is mentioned only
as a mirror. This includes update-pciids.
* Decode PCIe Gen 3 speeds and link status fields
* various minor bug fixes
* Updated pci.ids to the 2012-01-14 snapshot of the database
- Update to 3.1.8
* More capabilities: Transaction Processing Hints, Latency
Tolerance Reporting. Thanks to Jesse Barnes.
* Added BeOS and Haiku ports. Contributed by Francois Revol.
* pciutils.pc now uses Libs.private properly.
* When we format a name and it does not fit in the buffer, we
truncate it instead of returning "buffer too small" instead.
This works on all platforms with sane (i.e., C99-compatible)
snprintf().
* various minor bug fixes
* Mon Nov 14 2011 crrodriguez@opensuse.org
- open all file descriptors with O_CLOEXEC,specially important
on libpci and calling apps may fork() and we end up leaking
information to child processes.
* Mon Mar 21 2011 coolo@novell.com
- licenses package is about to die
* Mon Jun 28 2010 jengelh@medozas.de
- use %%_smp_mflags
* Sat Apr 24 2010 coolo@novell.com
- buildrequire pkg-config to fix provides
* Thu Feb 25 2010 anicka@suse.cz
- update to 3.1.7
* Minor improvements and bug fixes in decoding of the Virtual Channel
capability.
* Released as 3.1.6.
* More capabilities decoded: Virtual Channel (except arbitration
tables), Root Complex Link, Vendor-Specific (header only), SATA HBA.
* All extended capabilities have their version displayed (-vv or more).
* Mon Feb 1 2010 jengelh@medozas.de
- package baselibs.conf
* Fri Jan 22 2010 anicka@suse.cz
- update to 1.3.5
* Updated pci.ids to the today's snapshot of the database.
* When scanning extended capabilities, properly mask the lowest 2 bits,
which are currently reserved. This avoids unaligned access errors on
broken hardware (see tests/broken-ecaps).
* Large bar sizes are displayed in human-readable format (with units).
* Physical slot information is displayed correctly for multi-function cards.
* Fixed a couple of typos everywhere.
* Library: Fixed bugs in freeing of capabilities.
* Windows back-end compiles again.
* Tue Dec 15 2009 jengelh@medozas.de
- enable parallel building
* Thu Dec 10 2009 anicka@suse.cz
- update to 3.1.4
* Updated pci.ids to the today's snapshot of the database.
* Fixed memory and file descriptor leak in the dump back-end.
* The SR-IOV capability decoder now prints the VF BAR's.
* On request of certain company's lawyers, we now include a copy
of the GPL with our package. It seems that the pciutils are getting
mature if the most important bug of the month was this one ;-)
* Tue Nov 3 2009 coolo@novell.com
- updated patches to apply with fuzz=0
* Fri Aug 14 2009 anicka@suse.cz
- add COPYING file to fix (bnc#518238)
- fix last patch
* Mon Aug 10 2009 anicka@suse.cz
- add fclose to dump_init (bnc#529469)
* Mon Aug 3 2009 anicka@suse.cz
- update to 3.1.3
* The VPD parser now reports unknown and vendor-defined items
properly. It also stops on any item in unknown format,
avoiding long output on bogus VPD data.
* The MSI-X table size now matches the spec.
* The Power Management capability now includes the soft reset bit.
* Decoding of the Advanced Features capability has been added.
* The whole package compiles on GNU/kFreeBSD again.
* The procfs back-end is able to cope with /proc/bus/pci
containing names with domains, which occur on sparc64 and
possibly other architectures due to a kernel bug.
* The sysfs back-end no longer complains when a slot address
is missing, which happens with old versions of Linux fakephp.
* The Device Serial Number capability is printed in the right
byte order.
* The MSI and MSI-X capabilities are printed in a prettier way.
* The tree output mode (`lspci -t') shows domain numbers only
at the root, which makes the output more compact.
* Updated documentation on the bus mapping mode (`lspci -M').
* Thu Feb 5 2009 anicka@suse.cz
- update to 3.1.2
* Fixed another silly bug in the command-line parser of setpci.
* The configure script now sets LC_ALL to avoid being fooled by
locale-dependent behavior of `tr'.
* The command-line parser of setpci did sometimes segfault on invalid
input.
* The Cygwin backend now works on Windows Vista.
* Fixed a bug in decoding of the SR-IOV capability.
* Details of some PCIe capabilities are displayed only with -vv.
* When a BAR is reported by the OS, but not by the device (i.e.,
it is marked as [virtual] in lspci), the [disabled] flag is
suppressed, because it does not make sense in such cases.
* The source code of lspci has been split to multiple files, hopefully
making it easier to maintain.
* The library and lspci now know about physical slot names. So far,
they are provided by the sysfs back-end only.
* When a device has the VPD (Vital Product Data) capability and the
VPD data are supplied by the OS, they are decoded and printed in the
verbose mode. This currently works only on Linux with the sysfs
back-end.
* `setpci --version' now works properly.
* `setpci --dumpregs' prints a table of all known names of
registers and capabilities. This replaces the table of registers
in the setpci man page.
* The dry-run mode of setpci gives better feedback.
* The setpci utility is now able to address registers stored in PCI
capabilities (actually it allows a more general form of relative
addressing).
* The library has gained functions for working with PCI capabilities.
* Address Translation Services capability is now decoded.
* `lspci -k' now displays the subsystem ID, too. This makes `-k'
show everything needed to identify the device and the available
drivers, which was called for by many users.
* Fixed spelling of MSI.
* Better support for cross-compilation.
* Fixed printing of the AER capability.
* HT 1.02 capabilities are decoded as HT 1.03.
* Fixed Cygwin build.
* Fixed a minor bug in the configure script, which caused warnings
about redefinition of symbols during compilation.
* Wed Jan 7 2009 olh@suse.de
- obsolete old -XXbit packages (bnc#437293)
* Thu Sep 11 2008 anicka@suse.cz
- update to 3.0.1
* Added a Cygwin port.
* Worked around compatibility problems with various default
settings of wget
* Fixed printing of MSI capabilities.
* Added decoding of several PCI-X capabilities: device/link/slot 2,
Advanced Error Reporting, Access Control Services, Alternative
Routing-ID, Single Root I/O Virtualization.
* Fixed bug in filters which caused them to refuse
vendor/device ID 0xffff.
* Fixed several build problems: builds without PCI_USE_DNS
on Linux and with PCI_USE_DNS on Solaris and *BSD. Static
library mode also compiles again on old versions of GCC.
* Fri Apr 11 2008 mrueckert@suse.de
- move shared libs to /%%{_lib}
- added pciutils-3.0.0_pkgconfig.patch:
clean up the pkgconfig file so we can include it
- package the pkgconfig file
* Thu Apr 10 2008 mrueckert@suse.de
- if we no longer provide the static lib we should at least provide
the symlink to link against libpci
* Thu Apr 10 2008 anicka@suse.cz
- update to 3.0.0
* The makefile system has been reworked. All configuration
settings are now passed to the configure script in environment
variables, allowing for easy tweaking in the top-level Makefile.
All control knobs are now described in the README.
* The libpci can be built as a shared library with properly
restricted symbol exports. Use `make SHARED=yes' to enable that
or `make SHARED=local' for a local testing build (with hardwired
paths to the library, so that it does not need installation).
* Support for resolving of PCI ID's using DNS together with a local
cache of resolved entries has been added. See the `-q' and `-Q'
options of lspci.
* The library now has a generic system of settable parameters, which
also include settings of the DNS resolver and cache. An `-O'
option has been added to lspci and setpci to allow setting
of these options.
* Configuration of the access methods are now specified by the new
parameter system, replacing the pci_access->method_params array.
* Access methods now also have sensible names and help texts and it
is possible to look up method ID by a name.
* An `-A' switch has been added to both lspci and setpci, allowing
to select an arbitrary access method. The `-P' switch (configure
proc backend) has been removed as it is no longer needed
and I do not know any its user.
* Several source files have been split for better maintainability
(most notably the resolving of ID's).
* Man pages and help texts have been updated. A new man page
`pcilib(7)' has been added and description of library options
has been moved there.
* When an unknown device ID is encountered, we print `Device <id>'
instead of `Unknown device <id>'. It uses less space and it also
should reduce the number of inexperienced users complaining that
the device is not supported by the OS. To lookup up OS drivers,
use the `-k' option.
* Makefile: stripping of the binaries during installation can be
overridden by the STRIP variable.
* lib/types.h: We use the integer types from <stdint.h> if the
compiler claims C99 support.
- remove strip patch
* Thu Apr 10 2008 ro@suse.de
- added baselibs.conf file to build xxbit packages
for multilib support
* Wed Apr 9 2008 anicka@suse.cz
- update to 2.2.10
* lspci.c, setpci.c: Cleaned up the list of options.
* lib/names.c: Fix displaying of errors reported by zlib.
Previously, the buffer containing the error message had
been deallocated by gzclose() before the message was printed.
* update-pciids.sh: Added quiet mode (-q). Clean up uncompressed
files left by previous versions of the pciutils.
* update-pciids.man: Mention the -q switch.
* lib/dump.c: Squashed compiler warnings about code with
no effect (there really were surplus *'s).
* Tue Nov 6 2007 anicka@suse.cz
- update to 2.2.9
* lspci.c: Added a new switch `-k' which requests printing
of information on kernel drivers attached to each device
and on kernel modules reporting the ability to handle the
device.
* Makefile, lib/Makefile: Moved -lz from LDFLAGS to LDLIBS.
Also added an explicit pattern rule for linking to make sure
that LDLIBS is used on all platforms.
* pci.ids: Revised class codes to match Conventional PCI 3.0
specs.
* lspci.c: Decode the Debug port capability (per EHCI 0.96 spec).
* lspci.c: Big code cleanup: re-arranged functions in the code,
renamed everything related to capabilities to cap_* and
all options except verbose to opt_*.
* Capability loop detection introduced 2.2.7 did not work
properly with extended capabilities. Fixed.
* Wed Oct 24 2007 anicka@suse.cz
- drop the patch backporting upstream bug in
a machine readable output [#330533]
- fix typo in show_ext_caps in lspci
* Fri Oct 5 2007 anicka@suse.cz
- update to 2.2.7
* lspci.c (show_caps, show_ext_caps): Detect and report loops in
capability lists.
* lspci.c, lib/header.h: Finished decoding of the PCI Express
capability. The extended capabilities remain undecoded for now,
but at least the list of them has been updated to reflect the
current PCI Express 2.0 spec.
* lspci.c, lib/header.h: Decode new bits of traditional registers
as defined by PCIE / PCI-X. This includes discard timers in
the bridge control register and INTx enable/status in device
control/status registers.
* Makefile, lib/Makefile: `ar' and `ranlib' can be overriden to
allow cross-compilation.
* lspci.c (show_ht): Added decoding of Hypertransport MSI
mapping capability
* tests/cap-MSI-mapping: Added a test case.
* Tue Jul 3 2007 anicka@suse.cz
- update to 2.2.6
* Makefile: Added an "install-lib" target.
* Makefile, lib/Makefile: Generate and install pkg-config file
for libpci.
* lib/i386-io-hurd.h: Rewritten for new Hurd kernels.
* Fri May 4 2007 anicka@suse.cz
- update to 2.2.5
* pci.ids: Updated to the current snapshot of the database.
* lspci.c (show_express): Added PCI/PCI-X to PCI-Express
Bridge type.
* pci.ids: Updated to the current snapshot of the database.
* Replaced bzero() by memset() everywhere, it's better to lose
a tiny bit of readability than maintain hacks to make it work
on various systems.
* lib/configure: tr on Solaris is a bit weird and it requires
`[A-Z]' instead of `A-Z'. Fortunately, the extra brackets
don't hurt otherwise.
* lib/types.h, lib/configure: Solaris should use <stdint.h>
to get precise integer types.
* lspci.c: alloca() needs <alloca.h>.
* lib/dump.c: Fixed a couple of bugs in the dump backend which
caused devices with domains or with extended config space
to be read incorrectly. Also, dumps with partial lines are
allowed now.
* lspci.c (scan_device): If an error occurs when reading the
standard config header of a device, report it and ignore the
device and return with exit code 2 at the end.
- remove noabort.diff (implemented by upstream)
* Thu Mar 29 2007 rguenther@suse.de
- add zlib-devel BuildRequires
- require zlib-devel from pciutils-devel package
* Mon Jan 29 2007 anicka@suse.cz
- change dependency from python to perl in update-pciids [#221276]
* Sat Jan 20 2007 garloff@suse.de
- Change update-pciids to download to pci.ids.d/pci.ids.dist
and call merge-pciids if possible. [FATE 301145, bug 221276]
* Fri Oct 13 2006 aj@suse.de
- Fix to build (remove pci.ids.gz as well).
* Fri Oct 13 2006 mjancar@suse.cz
- update to 2.2.4
* many bugfixes and cleanups
- branch separate package for pci.ids
* Mon May 22 2006 schwab@suse.de
- Don't strip binaries.
* Wed Mar 22 2006 kukuk@suse.de
- Remove pciids-suse patch (has to be fixed upstream)
* Wed Mar 22 2006 kukuk@suse.de
- Auto-Update pci.ids
* Wed Jan 25 2006 mls@suse.de
- converted neededforbuild to BuildRequires
* Fri Jan 20 2006 mjancar@suse.cz
- update pci.ids (#144200)
* Fri Jan 13 2006 mjancar@suse.cz
- reintroduce "Class" printed in numeric output (#143042)
* Mon Dec 19 2005 mjancar@suse.cz
- update to 2.2.1
* Fri Aug 26 2005 mjancar@suse.cz
- add types.h to pciutils-devel (#113294)
* Wed Aug 24 2005 mjancar@suse.cz
- update to 2.1.99-test9 (#98896)
- update pci.ids (#104381)
* Mon Mar 14 2005 mjancar@suse.cz
- fix non-ascii characters in pci.ids (#72345)
* Sat Mar 5 2005 schwab@suse.de
- Fix syntax error in pci.ids.
* Tue Feb 22 2005 mjancar@suse.cz
- fix sysfs parsing (#63326)
- update pci.ids
* Fri Sep 17 2004 tcrhak@suse.cz
- updated pci.ids to the latest snapshot (fixes bug #45370)
* Thu May 27 2004 tcrhak@suse.cz
- changed "SGI IO9/IO10 Gigabit Ethernet (Copper)"
to "SGI IO9/IO10 Gigabit Ethernet (Copper)" (bug #40175)
* Wed Apr 28 2004 tcrhak@suse.cz
- updated pci.ids
* Thu Mar 4 2004 tcrhak@suse.cz
- some pci.ids fixes:
* changed SubDevice of Dell Inspiron 2100 internal modem (bug #32842)
* added 1291 - Auxiliary Diva Serial Port (bug #31984)
* added PCI IDs for InfiniBand HCAs (bug #34928)
* Tue Feb 24 2004 tcrhak@suse.cz
- added support for domains to device filter (lspci -s, setpci -s)
(fixes bug #33382, patch sysfs-filter)
- updated pci.ids
* Sat Nov 29 2003 olh@suse.de
- use default owner for pciutils-devel files
* Wed Nov 5 2003 olh@suse.de
- remove pcimodules again, it doesnt do anything right
* Tue Oct 28 2003 olh@suse.de
- add patch for 2.6 /proc/bus/pci layout
http://ftp.linux.org.uk/pub/linux/willy/patches/pciutils-sysfs.diff
* Wed Oct 8 2003 tcrhak@suse.cz
- added pcimodules [bug #31953]
* Mon Aug 25 2003 tcrhak@suse.cz
- updated pci.ids to the latest version from http://pciids.sourceforge.net
* Tue Feb 18 2003 tcrhak@suse.cz
- fixed NIC PCI IDs for Compaq [bug #22795],
patch pciids.diff
- also included the diff for the latest pci.ids
into the patch
* Wed Jan 15 2003 tcrhak@suse.cz
- fixed install paths
* Mon Jan 6 2003 tcrhak@suse.cz
- update to version 2.1.11
- updated pci.ids to the latest version from http://pciids.sourceforge.net
* Tue Sep 17 2002 ro@suse.de
- removed bogus self-provides
* Fri Sep 6 2002 olh@suse.de
- update description of pcnet32 cards (#18892)
* Thu Aug 29 2002 tcrhak@suse.cz
- updated pci.ids to latest version from http://pciids.sourceforge.net
this version contains entries needed by Hammer systems (bug #17549)
* Thu Aug 8 2002 olh@suse.de
- the acenic gigabit card can be either fibre or utp
update pci.ids entry (#17502)
* Tue Jul 30 2002 tcrhak@suse.cz
- updated to version 2.1.10
- updated pci.ids to latest version from http://pciids.sourceforge.net
* Tue Mar 26 2002 tcrhak@suse.cz
- updated pci.ids to latest version from http://pciids.sourceforge.net
* Fri Jan 18 2002 tcrhak@suse.cz
- used macros %%{_lib} and %%{_libdir}
* Tue Jan 8 2002 schwab@suse.de
- Fix warnings.
* Mon Dec 17 2001 tcrhak@suse.cz
- updated pciutils to 2.1.9
- updated pci.ids to latest version from
http://pciids.sourceforge.net/
* Wed Dec 12 2001 grimmer@suse.de
- updated pci.ids to latest version from
http://pciids.sourceforge.net/
- added pci.ids.bz2 as a separate source file and removed
pci.ids.add.dif (now included upstream)
* Mon Sep 24 2001 grimmer@suse.de
- added some missing PCI IDs for LSI Logic Fibre Channel
controllers to pci.ids.add.diff
- corrected typos in pci.ids (Fiber Channel -> Fibre Channel)
- added LSI Logic Inc. to vendor ID 0x1000
* Wed Sep 19 2001 grimmer@suse.de
- added some missing PCI IDs for Compaq NICs to pci.ids.add.diff
see [#8918] for the list
* Mon Sep 10 2001 grimmer@suse.de
- corrected some Intel NIC entries upon request from Intel
- merged pci.ids.riva.diff and the Intel changes in pci.ids.add.diff
* Mon Sep 3 2001 garloff@suse.de
- Riva TnT corrections from snbarth:
* The name of Riva TnT 128 is Riva TnT.
* NVidia/SGS Joint Venture (12d2) never built TNT or later.
* Wed Aug 29 2001 grimmer@suse.de
- merged pci.ids.244ac6.diff and pci.ids.add.diff into a single
patch (again named pci.ids.add.diff) and added some more PCI IDs
collected by Dave Jones <davej@suse.de> from various sources,
including the current pciutils CVS tree.
- beautyfied the spec file a bit (added clean section and defattr
in file list)
* Mon May 21 2001 poeml@suse.de
- add -devel subpackage
* Thu May 10 2001 garloff@suse.de
- Merge pci.ids from 2.4.4ac6
- bzip2 tarball
* Thu May 3 2001 garloff@suse.de
- Also don't die on failing to read data of a normal device,
just complain loudly (and return 2 in the end)
- Updated pci.ids from linux-2.4.4 and added DFE-660.
* Wed Jan 17 2001 garloff@suse.de
- Don't die on failure to read ext. cardbus data. [#5817]
* Sun Dec 17 2000 garloff@suse.de
- Added pci.ids from linux-2.4.0-test12
- Added pci.ids floating around (lkml, RH)
- Added pci.ids for i820, ICH2/-M
* Mon Sep 18 2000 schwab@suse.de
- Add `-Wno-format' to avoid spurious compile errors.
* Thu Aug 17 2000 ro@suse.de
- cleanup srcdir
* Sun Jun 11 2000 olh@suse.de
- update to 2.1.8
* Mon Jan 24 2000 aj@suse.de
- update to 2.1.4, fix build problems with latest glibc, use patch
for make file from Martin Mares.
* Thu Jan 20 2000 aj@suse.de
- update to 2.1.3, /usr/man -> /usr/share/man
* Tue Jan 4 2000 ro@suse.de
- update to 2.1.2
* Mon Oct 25 1999 ro@suse.de
- fixed to compile on axp
* Sat Oct 23 1999 ro@suse.de
- update to 2.1pre8 / using Buildroot
* Mon Sep 13 1999 bs@suse.de
- ran old prepare_spec on spec file to switch to new prepare_spec.
* Thu May 20 1999 ro@suse.de
- update to 2.0
* Wed Mar 31 1999 bs@suse.de
- don't use lx_hack for build
* Mon Feb 22 1999 ro@suse.de
- update to 1.10
* Wed Nov 25 1998 ro@suse.de
- created package, version 1.08

85
pciutils.keyring Normal file
View file

@ -0,0 +1,85 @@
-----BEGIN PGP PUBLIC KEY BLOCK-----
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
+wy3OGqhxFrvSisPD49xVMZ8J5n0SYISHA==
=yy6O
-----END PGP PUBLIC KEY BLOCK-----

102
pciutils.spec Normal file
View file

@ -0,0 +1,102 @@
#
# spec file for package pciutils
#
# Copyright (c) 2022-2023 ZhuningOS
#
%define lname libpci3
Name: pciutils
Version: 3.5.6
Release: 150300.13.6.1
Summary: PCI utilities for the Linux Kernel
License: GPL-2.0+
Group: Hardware/Other
Url: http://atrey.karlin.mff.cuni.cz/~mj/pciutils.shtml
Source: https://www.kernel.org/pub/software/utils/%{name}/%{name}-%{version}.tar.xz
Source1: https://www.kernel.org/pub/software/utils/%{name}/%{name}-%{version}.tar.sign
Source2: baselibs.conf
Source3: pciutils.keyring
Patch0: pciutils-3.2.0_update-dist.patch
Patch1: pciutils-3.1.9_pkgconfig.patch
Patch2: pciutils-ocloexec.patch
Patch3: pciutils-endianh.patch
Patch4: pciutils-VPD-When-printing-item-IDs-escape-non-ASCII-characte.patch
Patch5: pciutils-Add-decoding-of-vendor-specific-VPD-fields.patch
Patch6: pciutils-VPD-Cleanup.patch
# https://github.com/pciutils/pciutils/commit/e12bd01eea67ca8cf539263124843ba281eb6ecc
Patch7: pciutils-add-decode-support-for-RCECs.patch
Patch8: pciutils-Add-PCIe-5.0-data-rate-32-GT-s-support.patch
Patch9: pciutils-Add-PCIe-6.0-data-rate-64-GT-s-support.patch
Patch10: lspci-Fixed-buffer-overflows-in-ls-tree.c.patch
BuildRequires: pkgconfig
BuildRequires: pkgconfig(libkmod)
BuildRequires: pkgconfig(zlib)
Requires: pciutils-ids
%description
lspci: This program displays detailed information about all PCI busses
and devices in the system, replacing the original /proc/pci interface.
setpci: This program allows reading from and writing to PCI device
configuration registers. For example, you can adjust the latency timers
with it.
update-pciids: This program downloads the current version of the
pci.ids file.
%package -n %{lname}
Summary: PCI utility library
Group: System/Libraries
%description -n %{lname}
libpci offers access to the PCI configuration space.
%package devel
Summary: Library and Include Files of the PCI utilities
Group: Development/Libraries/C and C++
Requires: %{lname} = %{version}
%description devel
This package contains the files that are necessary for software
development using the PCI utilities.
%prep
%autosetup -p1
%build
make %{?_smp_mflags} OPT="%{optflags}" PREFIX=%{_prefix} LIBDIR=/%{_lib} SBINDIR=/sbin STRIP="" SHARED="yes"
%install
make install PREFIX=%{buildroot}%{_prefix} SBINDIR=%{buildroot}/sbin \
ROOT=%{buildroot}/ MANDIR=%{buildroot}/%{_mandir} STRIP="" \
SHARED="yes" LIBDIR=%{buildroot}/%{_lib}
mkdir -p %{buildroot}%{_includedir}/pci
cp -p lib/{pci,header,config,types}.h %{buildroot}%{_includedir}/pci/
rm -rf %{buildroot}%{_datadir}/pci.ids*
install -D -m 0644 lib/libpci.pc %{buildroot}%{_libdir}/pkgconfig/libpci.pc
ln -sf /%{_lib}/libpci.so.3 %{buildroot}%{_libdir}/libpci.so
%post -n %{lname} -p /sbin/ldconfig
%postun -n %{lname} -p /sbin/ldconfig
%files
%license COPYING
%doc README
/sbin/lspci
/sbin/setpci
/sbin/update-pciids
%{_mandir}/man7/pcilib.7%{ext_man}
%{_mandir}/man8/lspci.8%{ext_man}
%{_mandir}/man8/setpci.8%{ext_man}
%{_mandir}/man8/update-pciids.8%{ext_man}
%files -n %{lname}
/%{_lib}/libpci.so.*
%files devel
%{_includedir}/pci/
%{_libdir}/libpci.so
%{_libdir}/pkgconfig/libpci.pc
%changelog