Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/dev/pci - pci_conf_print_pwrbdgt_base_power(): From 0xf3...
details: https://anonhg.NetBSD.org/src/rev/32013b149514
branches: trunk
changeset: 348478:32013b149514
user: msaitoh <msaitoh%NetBSD.org@localhost>
date: Thu Oct 20 04:11:02 2016 +0000
description:
- pci_conf_print_pwrbdgt_base_power(): From 0xf3 to 0xff of the Base power are
reserved above 300W (PCI 3.0 Errata).
- Emergency Power Reduction mechanism with PWRBRK signal ECN.
- Extended Message Data for MSI ECN.
- Fix typo in comment.
diffstat:
sys/dev/pci/pci_subr.c | 37 ++++++++++++++++++++++++++++++++++---
sys/dev/pci/pcireg.h | 10 ++++++++--
2 files changed, 42 insertions(+), 5 deletions(-)
diffs (139 lines):
diff -r 888e69c2aadc -r 32013b149514 sys/dev/pci/pci_subr.c
--- a/sys/dev/pci/pci_subr.c Thu Oct 20 04:06:53 2016 +0000
+++ b/sys/dev/pci/pci_subr.c Thu Oct 20 04:11:02 2016 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: pci_subr.c,v 1.151 2016/10/19 04:23:37 msaitoh Exp $ */
+/* $NetBSD: pci_subr.c,v 1.152 2016/10/20 04:11:02 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.151 2016/10/19 04:23:37 msaitoh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pci_subr.c,v 1.152 2016/10/20 04:11:02 msaitoh Exp $");
#ifdef _KERNEL_OPT
#include "opt_pci.h"
@@ -1080,6 +1080,8 @@
mme > 0 ? "on" : "off", 1 << mme, mme > 0 ? "s" : "");
onoff("64 Bit Address Capable", ctl, PCI_MSI_CTL_64BIT_ADDR);
onoff("Per-Vector Masking Capable", ctl, PCI_MSI_CTL_PERVEC_MASK);
+ onoff("Extended Message Data Capable", ctl, PCI_MSI_CTL_EXTMDATA_CAP);
+ onoff("Extended Message Data Enable", ctl, PCI_MSI_CTL_EXTMDATA_EN);
printf(" Message Address %sregister: 0x%08x\n",
ctl & PCI_MSI_CTL_64BIT_ADDR ? "(lower) " : "", *regs++);
if (ctl & PCI_MSI_CTL_64BIT_ADDR) {
@@ -1594,6 +1596,8 @@
onoff("Unsupported Request Detected", reg, PCIE_DCSR_URD);
onoff("Aux Power Detected", reg, PCIE_DCSR_AUX_PWR);
onoff("Transaction Pending", reg, PCIE_DCSR_TRANSACTION_PND);
+ onoff("Emergency Power Reduction Detected", reg,
+ PCIE_DCSR_EMGPWRREDD);
if (check_link) {
/* Link Capability Register */
@@ -1862,6 +1866,23 @@
onoff("End-End TLP Prefix Supported", reg, PCIE_DCAP2_EETLP_PREF);
printf(" Max End-End TLP Prefixes: %u\n",
(unsigned int)(reg & PCIE_DCAP2_MAX_EETLP) >> 22);
+ printf(" Emergency Power Reduction Supported: ");
+ switch (__SHIFTOUT(reg, PCIE_DCAP2_EMGPWRRED)) {
+ case 0x0:
+ printf("Not supported\n");
+ break;
+ case 0x1:
+ printf("Device Specific mechanism\n");
+ break;
+ case 0x2:
+ printf("Form Factor spec or Device Specific mechanism\n");
+ break;
+ case 0x3:
+ printf("Reserved\n");
+ break;
+ }
+ onoff("Emergency Power Reduction Initialization Required", reg,
+ PCIE_DCAP2_EMGPWRRED_INI);
onoff("FRS Supported", reg, PCIE_DCAP2_FRS);
/* Device Control 2 */
@@ -1876,6 +1897,8 @@
onoff("IDO Request Enabled", reg, PCIE_DCSR2_IDO_REQ);
onoff("IDO Completion Enabled", reg, PCIE_DCSR2_IDO_COMP);
onoff("LTR Mechanism Enabled", reg, PCIE_DCSR2_LTR_MEC);
+ onoff("Emergency Power Reduction Request", reg,
+ PCIE_DCSR2_EMGPWRRED_REQ);
printf(" OBFF: ");
switch ((reg & PCIE_DCSR2_OBFF_EN) >> 13) {
case 0x0:
@@ -2478,8 +2501,12 @@
case 0xf2:
return "275W < x <= 300W";
default:
- return "Unknown";
+ break;
}
+ if (reg >= 0xf3)
+ return "reserved for above 300W";
+
+ return "Unknown";
}
static const char *
@@ -2513,6 +2540,10 @@
return "Idle";
case 0x03:
return "Sustained";
+ case 0x04:
+ return "Sustained (Emergency Power Reduction)";
+ case 0x05:
+ return "Maximum (Emergency Power Reduction)";
case 0x07:
return "Maximun";
default:
diff -r 888e69c2aadc -r 32013b149514 sys/dev/pci/pcireg.h
--- a/sys/dev/pci/pcireg.h Thu Oct 20 04:06:53 2016 +0000
+++ b/sys/dev/pci/pcireg.h Thu Oct 20 04:11:02 2016 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: pcireg.h,v 1.115 2016/10/19 04:23:37 msaitoh Exp $ */
+/* $NetBSD: pcireg.h,v 1.116 2016/10/20 04:11:02 msaitoh Exp $ */
/*
* Copyright (c) 1995, 1996, 1999, 2000
@@ -637,6 +637,8 @@
#define PCI_MSI_PENDING 0x14 /* Vector Pending register */
#define PCI_MSI_CTL_MASK __BITS(31, 16)
+#define PCI_MSI_CTL_EXTMDATA_EN __SHIFTIN(__BIT(10), PCI_MSI_CTL_MASK)
+#define PCI_MSI_CTL_EXTMDATA_CAP __SHIFTIN(__BIT(9), PCI_MSI_CTL_MASK)
#define PCI_MSI_CTL_PERVEC_MASK __SHIFTIN(__BIT(8), PCI_MSI_CTL_MASK)
#define PCI_MSI_CTL_64BIT_ADDR __SHIFTIN(__BIT(7), PCI_MSI_CTL_MASK)
#define PCI_MSI_CTL_MME_MASK __SHIFTIN(__BITS(6, 4), PCI_MSI_CTL_MASK)
@@ -920,6 +922,7 @@
#define PCIE_DCSR_URD __BIT(3 + 16) /* Unsupported Req. Detected */
#define PCIE_DCSR_AUX_PWR __BIT(4 + 16) /* Aux Power Detected */
#define PCIE_DCSR_TRANSACTION_PND __BIT(5 + 16) /* Transaction Pending */
+#define PCIE_DCSR_EMGPWRREDD __BIT(6 + 16) /* Emg. Pwr. Reduct. Detected */
#define PCIE_LCAP 0x0c /* Link Capabilities Register */
#define PCIE_LCAP_MAX_SPEED __BITS(3, 0) /* Max Link Speed */
#define PCIE_LCAP_MAX_WIDTH __BITS(9, 4) /* Maximum Link Width */
@@ -1015,6 +1018,8 @@
#define PCIE_DCAP2_EXTFMT_FLD __BIT(20) /* Extended Fmt Field Support */
#define PCIE_DCAP2_EETLP_PREF __BIT(21) /* End-End TLP Prefix Support */
#define PCIE_DCAP2_MAX_EETLP __BITS(23, 22) /* Max End-End TLP Prefix Sup */
+#define PCIE_DCAP2_EMGPWRRED __BITS(25, 24) /* Emergency Power Reduc. Sup */
+#define PCIE_DCAP2_EMGPWRRED_INI __BIT(26) /* Emrg. Pwr. Reduc. Ini. Req */
#define PCIE_DCAP2_FRS __BIT(31) /* FRS Supported */
#define PCIE_DCSR2 0x28 /* Device Control & Status 2 Register */
#define PCIE_DCSR2_COMPT_VAL __BITS(3, 0) /* Completion Timeout Value */
@@ -1025,7 +1030,8 @@
#define PCIE_DCSR2_IDO_REQ __BIT(8) /* IDO Request Enable */
#define PCIE_DCSR2_IDO_COMP __BIT(9) /* IDO Completion Enable */
#define PCIE_DCSR2_LTR_MEC __BIT(10) /* LTR Mechanism Enable */
-#define PCIE_DCSR2_OBFF_EN __BITS(14, 13) /* OBPF Enable */
+#define PCIE_DCSR2_EMGPWRRED_REQ __BIT(11) /* Emergency Power Reduc. Req */
+#define PCIE_DCSR2_OBFF_EN __BITS(14, 13) /* OBFF Enable */
#define PCIE_DCSR2_EETLP __BIT(15) /* End-End TLP Prefix Blcking */
#define PCIE_LCAP2 0x2c /* Link Capabilities 2 Register */
#define PCIE_LCAP2_SUP_LNKSV __BITS(7, 1) /* Supported Link Speeds Vect */
Home |
Main Index |
Thread Index |
Old Index