Module Name: src Committed By: msaitoh Date: Wed May 24 06:51:27 UTC 2017
Modified Files: src/sys/dev/pci: pci_subr.c pcireg.h Log Message: Decode TPH Requester Control register. To generate a diff of this commit: cvs rdiff -u -r1.181 -r1.182 src/sys/dev/pci/pci_subr.c cvs rdiff -u -r1.128 -r1.129 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.181 src/sys/dev/pci/pci_subr.c:1.182 --- src/sys/dev/pci/pci_subr.c:1.181 Mon May 22 04:21:20 2017 +++ src/sys/dev/pci/pci_subr.c Wed May 24 06:51:27 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: pci_subr.c,v 1.181 2017/05/22 04:21:20 msaitoh Exp $ */ +/* $NetBSD: pci_subr.c,v 1.182 2017/05/24 06:51:27 msaitoh 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.181 2017/05/22 04:21:20 msaitoh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: pci_subr.c,v 1.182 2017/05/24 06:51:27 msaitoh Exp $"); #ifdef _KERNEL_OPT #include "opt_pci.h" @@ -3410,6 +3410,40 @@ pci_conf_print_tph_req_cap(const pcireg_ (unsigned char)__SHIFTOUT(reg, PCI_TPH_REQ_CAP_STTBLLOC))); 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); + printf(" ST Mode Select: "); + switch (__SHIFTOUT(reg, PCI_TPH_REQ_CTL_STSEL)) { + case PCI_TPH_REQ_CTL_STSEL_NO: + printf("No ST Mode\n"); + break; + case PCI_TPH_REQ_CTL_STSEL_IV: + printf("Interrupt Vector Mode\n"); + break; + case PCI_TPH_REQ_CTL_STSEL_DS: + printf("Device Specific Mode\n"); + break; + default: + printf("(reserved vaule)\n"); + break; + } + printf(" TPH Requester Enable: "); + switch (__SHIFTOUT(reg, PCI_TPH_REQ_CTL_TPHREQEN)) { + case PCI_TPH_REQ_CTL_TPHREQEN_NO: /* 0x0 */ + printf("Not permitted\n"); + break; + case PCI_TPH_REQ_CTL_TPHREQEN_TPH: + printf("TPH and not Extended TPH\n"); + break; + case PCI_TPH_REQ_CTL_TPHREQEN_ETPH: + printf("TPH and Extended TPH"); + break; + default: + printf("(reserved vaule)\n"); + break; + } + for (i = 0; i < size ; i += 2) { reg = regs[o2i(extcapoff + PCI_TPH_REQ_STTBL + i / 2)]; for (j = 0; j < 2 ; j++) { Index: src/sys/dev/pci/pcireg.h diff -u src/sys/dev/pci/pcireg.h:1.128 src/sys/dev/pci/pcireg.h:1.129 --- src/sys/dev/pci/pcireg.h:1.128 Fri Apr 21 09:01:52 2017 +++ src/sys/dev/pci/pcireg.h Wed May 24 06:51:27 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: pcireg.h,v 1.128 2017/04/21 09:01:52 msaitoh Exp $ */ +/* $NetBSD: pcireg.h,v 1.129 2017/05/24 06:51:27 msaitoh Exp $ */ /* * Copyright (c) 1995, 1996, 1999, 2000 @@ -1856,8 +1856,15 @@ struct pci_rom { #define PCI_TPH_REQ_CAP_STTBLLOC __BITS(10, 9) /* ST Table Location */ #define PCI_TPH_REQ_CAP_STTBLSIZ __BITS(26, 16) /* ST Table Size */ #define PCI_TPH_REQ_CTL 0x08 /* TPH Requester Control */ -#define PCI_TPH_REQ_CTL_STSEL _BITS(2, 0) /* ST Mode Select */ -#define PCI_TPH_REQ_CTL_TPHREQEN _BITS(9, 8) /* TPH Requester Enable */ +#define PCI_TPH_REQ_CTL_STSEL __BITS(2, 0) /* ST Mode Select */ +#define PCI_TPH_REQ_CTL_STSEL_NO 0 /* No ST Mode */ +#define PCI_TPH_REQ_CTL_STSEL_IV 1 /* Interrupt Vector Mode */ +#define PCI_TPH_REQ_CTL_STSEL_DS 2 /* Device Specific Mode */ +#define PCI_TPH_REQ_CTL_TPHREQEN __BITS(9, 8) /* TPH Requester Enable */ +#define PCI_TPH_REQ_CTL_TPHREQEN_NO 0 /* Not permitted */ +#define PCI_TPH_REQ_CTL_TPHREQEN_TPH 1 /* TPH and no extended TPH */ +#define PCI_TPH_REQ_CTL_TPHREQEN_RSVD 2 /* Reserved */ +#define PCI_TPH_REQ_CTL_TPHREQEN_ETPH 3 /* TPH and Extended TPH */ #define PCI_TPH_REQ_STTBL 0x0c /* TPH ST Table */ /*