Module Name: src
Committed By: sborrill
Date: Tue Oct 30 09:32:32 UTC 2018
Modified Files:
src/sys/dev/pci [netbsd-8]: pci_subr.c pcireg.h
Log Message:
Pull up the following revisions(s) (requested by msaitoh in ticket #1074):
sys/dev/pci/pci_subr.c: revision 1.204-1.206
sys/dev/pci/pcireg.h: revision 1.141-1.142
Root Complex Event Collector Bus Number Association ECN.
- If capability version is 2 (or greater), decode RCEC Associated Bus Numbers
register.
- Don't print TPH requester's ST Table Size if the ST table location field
is not PCI_TPH_REQ_STTBLLOC_TPHREQ because the size field is only applicable
for PCI_TPH_REQ_STTBLLOC_TPHREQ case.
- Add comment.
To generate a diff of this commit:
cvs rdiff -u -r1.183.2.7 -r1.183.2.8 src/sys/dev/pci/pci_subr.c
cvs rdiff -u -r1.130.2.6 -r1.130.2.7 src/sys/dev/pci/pcireg.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/dev/pci/pci_subr.c
diff -u src/sys/dev/pci/pci_subr.c:1.183.2.7 src/sys/dev/pci/pci_subr.c:1.183.2.8
--- src/sys/dev/pci/pci_subr.c:1.183.2.7 Sun Sep 23 17:40:37 2018
+++ src/sys/dev/pci/pci_subr.c Tue Oct 30 09:32:32 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: pci_subr.c,v 1.183.2.7 2018/09/23 17:40:37 martin Exp $ */
+/* $NetBSD: pci_subr.c,v 1.183.2.8 2018/10/30 09:32:32 sborrill Exp $ */
/*
* Copyright (c) 1997 Zubin D. Dittia. All rights reserved.
@@ -40,7 +40,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pci_subr.c,v 1.183.2.7 2018/09/23 17:40:37 martin Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pci_subr.c,v 1.183.2.8 2018/10/30 09:32:32 sborrill Exp $");
#ifdef _KERNEL_OPT
#include "opt_pci.h"
@@ -3061,6 +3061,18 @@ pci_conf_print_rcec_assoc_cap(const pcir
reg = regs[o2i(extcapoff + PCI_RCEC_ASSOC_ASSOCBITMAP)];
printf(" Association Bitmap for Root Complex Integrated Devices:"
" 0x%08x\n", reg);
+
+ if (PCI_EXTCAPLIST_VERSION(regs[o2i(extcapoff)]) >= 2) {
+ reg = regs[o2i(extcapoff + PCI_RCEC_ASSOC_ASSOCBUSNUM)];
+ printf(" RCEC Associated Bus Numbers register: 0x%08x\n",
+ reg);
+ printf(" RCEC Next Bus: %u\n",
+ (unsigned int)__SHIFTOUT(reg,
+ PCI_RCEC_ASSOCBUSNUM_RCECNEXT));
+ printf(" RCEC Last Bus: %u\n",
+ (unsigned int)__SHIFTOUT(reg,
+ PCI_RCEC_ASSOCBUSNUM_RCECLAST));
+ }
}
/* XXX pci_conf_print_mfvc_cap */
@@ -3526,7 +3538,7 @@ static void
pci_conf_print_tph_req_cap(const pcireg_t *regs, int extcapoff)
{
pcireg_t reg;
- int size, i, j;
+ int size = 0, i, j;
uint8_t sttbloc;
printf("\n TPH Requester Extended Capability\n");
@@ -3540,8 +3552,10 @@ pci_conf_print_tph_req_cap(const pcireg_
sttbloc = __SHIFTOUT(reg, PCI_TPH_REQ_CAP_STTBLLOC);
printf(" ST Table Location: %s\n",
pci_conf_print_tph_req_cap_sttabloc(sttbloc));
- size = __SHIFTOUT(reg, PCI_TPH_REQ_CAP_STTBLSIZ) + 1;
- printf(" ST Table Size: %d\n", size);
+ if (sttbloc == PCI_TPH_REQ_STTBLLOC_TPHREQ) {
+ size = __SHIFTOUT(reg, PCI_TPH_REQ_CAP_STTBLSIZ) + 1;
+ printf(" ST Table Size: %d\n", size);
+ }
reg = regs[o2i(extcapoff + PCI_TPH_REQ_CTL)];
printf(" TPH Requester Control register: 0x%08x\n", reg);
@@ -4700,19 +4714,19 @@ pci_conf_print(
/* device-dependent header */
printf(" Device-dependent header:\n");
pci_conf_print_regs(regs, endoff, PCI_CONF_SIZE);
- printf("\n");
#ifdef _KERNEL
+ printf("\n");
if (printfn)
(*printfn)(pc, tag, regs);
else
printf(" Don't know how to pretty-print device-dependent header.\n");
- printf("\n");
#endif /* _KERNEL */
if (regs[o2i(PCI_EXTCAPLIST_BASE)] == 0xffffffff ||
regs[o2i(PCI_EXTCAPLIST_BASE)] == 0)
return;
+ printf("\n");
#ifdef _KERNEL
pci_conf_print_extcaplist(pc, tag, regs);
#else
Index: src/sys/dev/pci/pcireg.h
diff -u src/sys/dev/pci/pcireg.h:1.130.2.6 src/sys/dev/pci/pcireg.h:1.130.2.7
--- src/sys/dev/pci/pcireg.h:1.130.2.6 Sun Sep 23 17:40:37 2018
+++ src/sys/dev/pci/pcireg.h Tue Oct 30 09:32:32 2018
@@ -1,4 +1,4 @@
-/* $NetBSD: pcireg.h,v 1.130.2.6 2018/09/23 17:40:37 martin Exp $ */
+/* $NetBSD: pcireg.h,v 1.130.2.7 2018/10/30 09:32:32 sborrill Exp $ */
/*
* Copyright (c) 1995, 1996, 1999, 2000
@@ -1186,8 +1186,8 @@ struct pci_msix_table_entry {
uint32_t pci_msix_vector_control;
};
#define PCI_MSIX_VECTCTL_MASK __BIT(0)
-#define PCI_MSIX_VECTCTL_STLO __BITS(23, 16)
-#define PCI_MSIX_VECTCTL_STUP __BITS(31, 24)
+#define PCI_MSIX_VECTCTL_STLO __BITS(23, 16) /* ST lower */
+#define PCI_MSIX_VECTCTL_STUP __BITS(31, 24) /* ST upper */
/* Max number of MSI-X vectors. See PCI-SIG specification. */
#define PCI_MSIX_MAX_VECTORS 2048
@@ -1699,7 +1699,10 @@ struct pci_rom {
* Extended capability ID: 0x0007
* Root Complex Event Collector Association
*/
-#define PCI_RCEC_ASSOC_ASSOCBITMAP 0x04
+#define PCI_RCEC_ASSOC_ASSOCBITMAP 0x04 /* Association Bitmap */
+#define PCI_RCEC_ASSOC_ASSOCBUSNUM 0x08 /* Associcated Bus Number */
+#define PCI_RCEC_ASSOCBUSNUM_RCECNEXT __BITS(15, 8) /* RCEC Next Bus */
+#define PCI_RCEC_ASSOCBUSNUM_RCECLAST __BITS(23, 16) /* RCEC Last Bus */
/*
* Extended capability ID: 0x0008