Module Name: src
Committed By: matt
Date: Sat Feb 15 03:22:27 UTC 2014
Modified Files:
src/sys/dev/pci [matt-nb5-mips64]: if_wm.c pcireg.h ppb.c
Log Message:
sync pcireg.h with HEAD.
update if_wm.c and ppb.c accordingly.
To generate a diff of this commit:
cvs rdiff -u -r1.162.4.3.2.1.2.1 -r1.162.4.3.2.1.2.2 src/sys/dev/pci/if_wm.c
cvs rdiff -u -r1.57.26.1 -r1.57.26.2 src/sys/dev/pci/pcireg.h
cvs rdiff -u -r1.39.18.3 -r1.39.18.4 src/sys/dev/pci/ppb.c
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/if_wm.c
diff -u src/sys/dev/pci/if_wm.c:1.162.4.3.2.1.2.1 src/sys/dev/pci/if_wm.c:1.162.4.3.2.1.2.2
--- src/sys/dev/pci/if_wm.c:1.162.4.3.2.1.2.1 Wed Apr 21 00:27:41 2010
+++ src/sys/dev/pci/if_wm.c Sat Feb 15 03:22:27 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: if_wm.c,v 1.162.4.3.2.1.2.1 2010/04/21 00:27:41 matt Exp $ */
+/* $NetBSD: if_wm.c,v 1.162.4.3.2.1.2.2 2014/02/15 03:22:27 matt Exp $ */
/*
* Copyright (c) 2001, 2002, 2003, 2004 Wasabi Systems, Inc.
@@ -76,7 +76,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: if_wm.c,v 1.162.4.3.2.1.2.1 2010/04/21 00:27:41 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: if_wm.c,v 1.162.4.3.2.1.2.2 2014/02/15 03:22:27 matt Exp $");
#include "bpfilter.h"
#include "rnd.h"
@@ -1162,25 +1162,25 @@ wm_attach(device_t parent, device_t self
* incorrectly.
*/
pcix_cmd = pci_conf_read(pa->pa_pc, pa->pa_tag,
- sc->sc_pcix_offset + PCI_PCIX_CMD);
+ sc->sc_pcix_offset + PCIX_CMD);
pcix_sts = pci_conf_read(pa->pa_pc, pa->pa_tag,
- sc->sc_pcix_offset + PCI_PCIX_STATUS);
+ sc->sc_pcix_offset + PCIX_STATUS);
bytecnt =
- (pcix_cmd & PCI_PCIX_CMD_BYTECNT_MASK) >>
- PCI_PCIX_CMD_BYTECNT_SHIFT;
+ (pcix_cmd & PCIX_CMD_BYTECNT_MASK) >>
+ PCIX_CMD_BYTECNT_SHIFT;
maxb =
- (pcix_sts & PCI_PCIX_STATUS_MAXB_MASK) >>
- PCI_PCIX_STATUS_MAXB_SHIFT;
+ (pcix_sts & PCIX_STATUS_MAXB_MASK) >>
+ PCIX_STATUS_MAXB_SHIFT;
if (bytecnt > maxb) {
aprint_verbose_dev(sc->sc_dev,
"resetting PCI-X MMRBC: %d -> %d\n",
512 << bytecnt, 512 << maxb);
pcix_cmd = (pcix_cmd &
- ~PCI_PCIX_CMD_BYTECNT_MASK) |
- (maxb << PCI_PCIX_CMD_BYTECNT_SHIFT);
+ ~PCIX_CMD_BYTECNT_MASK) |
+ (maxb << PCIX_CMD_BYTECNT_SHIFT);
pci_conf_write(pa->pa_pc, pa->pa_tag,
- sc->sc_pcix_offset + PCI_PCIX_CMD,
+ sc->sc_pcix_offset + PCIX_CMD,
pcix_cmd);
}
}
Index: src/sys/dev/pci/pcireg.h
diff -u src/sys/dev/pci/pcireg.h:1.57.26.1 src/sys/dev/pci/pcireg.h:1.57.26.2
--- src/sys/dev/pci/pcireg.h:1.57.26.1 Sat Dec 24 01:27:25 2011
+++ src/sys/dev/pci/pcireg.h Sat Feb 15 03:22:27 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: pcireg.h,v 1.57.26.1 2011/12/24 01:27:25 matt Exp $ */
+/* $NetBSD: pcireg.h,v 1.57.26.2 2014/02/15 03:22:27 matt Exp $ */
/*
* Copyright (c) 1995, 1996, 1999, 2000
@@ -179,6 +179,7 @@ typedef u_int8_t pci_revision_t;
#define PCI_SUBCLASS_MASS_STORAGE_ATA 0x05
#define PCI_SUBCLASS_MASS_STORAGE_SATA 0x06
#define PCI_SUBCLASS_MASS_STORAGE_SAS 0x07
+#define PCI_SUBCLASS_MASS_STORAGE_NVM 0x08
#define PCI_SUBCLASS_MASS_STORAGE_MISC 0x80
/* 0x02 network subclasses */
@@ -462,6 +463,7 @@ typedef u_int8_t pci_revision_t;
#define PCI_CAP_DEBUGPORT 0x0a
#define PCI_CAP_CPCI_RSRCCTL 0x0b
#define PCI_CAP_HOTPLUG 0x0c
+#define PCI_CAP_SUBVENDOR 0x0d
#define PCI_CAP_AGP8 0x0e
#define PCI_CAP_SECURE 0x0f
#define PCI_CAP_PCIEXPRESS 0x10
@@ -567,128 +569,239 @@ struct pci_msix_table_entry {
* as 32-bit values, offset and shifted appropriately. Make sure you perform
* the appropriate R/M/W cycles!
*/
-#define PCI_PCIX_CMD 0x00
-#define PCI_PCIX_CMD_PERR_RECOVER 0x00010000
-#define PCI_PCIX_CMD_RELAXED_ORDER 0x00020000
-#define PCI_PCIX_CMD_BYTECNT_MASK 0x000c0000
-#define PCI_PCIX_CMD_BYTECNT_SHIFT 18
-#define PCI_PCIX_CMD_BCNT_512 0x00000000
-#define PCI_PCIX_CMD_BCNT_1024 0x00040000
-#define PCI_PCIX_CMD_BCNT_2048 0x00080000
-#define PCI_PCIX_CMD_BCNT_4096 0x000c0000
-#define PCI_PCIX_CMD_SPLTRANS_MASK 0x00700000
-#define PCI_PCIX_CMD_SPLTRANS_1 0x00000000
-#define PCI_PCIX_CMD_SPLTRANS_2 0x00100000
-#define PCI_PCIX_CMD_SPLTRANS_3 0x00200000
-#define PCI_PCIX_CMD_SPLTRANS_4 0x00300000
-#define PCI_PCIX_CMD_SPLTRANS_8 0x00400000
-#define PCI_PCIX_CMD_SPLTRANS_12 0x00500000
-#define PCI_PCIX_CMD_SPLTRANS_16 0x00600000
-#define PCI_PCIX_CMD_SPLTRANS_32 0x00700000
+#define PCIX_CMD 0x00
+#define PCIX_CMD_PERR_RECOVER 0x00010000
+#define PCIX_CMD_RELAXED_ORDER 0x00020000
+#define PCIX_CMD_BYTECNT_MASK 0x000c0000
+#define PCIX_CMD_BYTECNT_SHIFT 18
+#define PCIX_CMD_BCNT_512 0x00000000
+#define PCIX_CMD_BCNT_1024 0x00040000
+#define PCIX_CMD_BCNT_2048 0x00080000
+#define PCIX_CMD_BCNT_4096 0x000c0000
+#define PCIX_CMD_SPLTRANS_MASK 0x00700000
+#define PCIX_CMD_SPLTRANS_1 0x00000000
+#define PCIX_CMD_SPLTRANS_2 0x00100000
+#define PCIX_CMD_SPLTRANS_3 0x00200000
+#define PCIX_CMD_SPLTRANS_4 0x00300000
+#define PCIX_CMD_SPLTRANS_8 0x00400000
+#define PCIX_CMD_SPLTRANS_12 0x00500000
+#define PCIX_CMD_SPLTRANS_16 0x00600000
+#define PCIX_CMD_SPLTRANS_32 0x00700000
/*
* Status. 32 bits at offset 4.
*/
-#define PCI_PCIX_STATUS 0x04
-#define PCI_PCIX_STATUS_FN_MASK 0x00000007
-#define PCI_PCIX_STATUS_DEV_MASK 0x000000f8
-#define PCI_PCIX_STATUS_BUS_MASK 0x0000ff00
-#define PCI_PCIX_STATUS_64BIT 0x00010000
-#define PCI_PCIX_STATUS_133 0x00020000
-#define PCI_PCIX_STATUS_SPLDISC 0x00040000
-#define PCI_PCIX_STATUS_SPLUNEX 0x00080000
-#define PCI_PCIX_STATUS_DEVCPLX 0x00100000
-#define PCI_PCIX_STATUS_MAXB_MASK 0x00600000
-#define PCI_PCIX_STATUS_MAXB_SHIFT 21
-#define PCI_PCIX_STATUS_MAXB_512 0x00000000
-#define PCI_PCIX_STATUS_MAXB_1024 0x00200000
-#define PCI_PCIX_STATUS_MAXB_2048 0x00400000
-#define PCI_PCIX_STATUS_MAXB_4096 0x00600000
-#define PCI_PCIX_STATUS_MAXST_MASK 0x03800000
-#define PCI_PCIX_STATUS_MAXST_1 0x00000000
-#define PCI_PCIX_STATUS_MAXST_2 0x00800000
-#define PCI_PCIX_STATUS_MAXST_3 0x01000000
-#define PCI_PCIX_STATUS_MAXST_4 0x01800000
-#define PCI_PCIX_STATUS_MAXST_8 0x02000000
-#define PCI_PCIX_STATUS_MAXST_12 0x02800000
-#define PCI_PCIX_STATUS_MAXST_16 0x03000000
-#define PCI_PCIX_STATUS_MAXST_32 0x03800000
-#define PCI_PCIX_STATUS_MAXRS_MASK 0x1c000000
-#define PCI_PCIX_STATUS_MAXRS_1K 0x00000000
-#define PCI_PCIX_STATUS_MAXRS_2K 0x04000000
-#define PCI_PCIX_STATUS_MAXRS_4K 0x08000000
-#define PCI_PCIX_STATUS_MAXRS_8K 0x0c000000
-#define PCI_PCIX_STATUS_MAXRS_16K 0x10000000
-#define PCI_PCIX_STATUS_MAXRS_32K 0x14000000
-#define PCI_PCIX_STATUS_MAXRS_64K 0x18000000
-#define PCI_PCIX_STATUS_MAXRS_128K 0x1c000000
-#define PCI_PCIX_STATUS_SCERR 0x20000000
+#define PCIX_STATUS 0x04
+#define PCIX_STATUS_FN_MASK 0x00000007
+#define PCIX_STATUS_DEV_MASK 0x000000f8
+#define PCIX_STATUS_BUS_MASK 0x0000ff00
+#define PCIX_STATUS_64BIT 0x00010000
+#define PCIX_STATUS_133 0x00020000
+#define PCIX_STATUS_SPLDISC 0x00040000
+#define PCIX_STATUS_SPLUNEX 0x00080000
+#define PCIX_STATUS_DEVCPLX 0x00100000
+#define PCIX_STATUS_MAXB_MASK 0x00600000
+#define PCIX_STATUS_MAXB_SHIFT 21
+#define PCIX_STATUS_MAXB_512 0x00000000
+#define PCIX_STATUS_MAXB_1024 0x00200000
+#define PCIX_STATUS_MAXB_2048 0x00400000
+#define PCIX_STATUS_MAXB_4096 0x00600000
+#define PCIX_STATUS_MAXST_MASK 0x03800000
+#define PCIX_STATUS_MAXST_1 0x00000000
+#define PCIX_STATUS_MAXST_2 0x00800000
+#define PCIX_STATUS_MAXST_3 0x01000000
+#define PCIX_STATUS_MAXST_4 0x01800000
+#define PCIX_STATUS_MAXST_8 0x02000000
+#define PCIX_STATUS_MAXST_12 0x02800000
+#define PCIX_STATUS_MAXST_16 0x03000000
+#define PCIX_STATUS_MAXST_32 0x03800000
+#define PCIX_STATUS_MAXRS_MASK 0x1c000000
+#define PCIX_STATUS_MAXRS_1K 0x00000000
+#define PCIX_STATUS_MAXRS_2K 0x04000000
+#define PCIX_STATUS_MAXRS_4K 0x08000000
+#define PCIX_STATUS_MAXRS_8K 0x0c000000
+#define PCIX_STATUS_MAXRS_16K 0x10000000
+#define PCIX_STATUS_MAXRS_32K 0x14000000
+#define PCIX_STATUS_MAXRS_64K 0x18000000
+#define PCIX_STATUS_MAXRS_128K 0x1c000000
+#define PCIX_STATUS_SCERR 0x20000000
/*
* PCI Express; access via capability pointer.
*/
-#define PCI_PCIE_XCAP 0x00 /* Capability List & Capabilities
- * Register
- */
-#define PCI_PCIE_XCAP_MASK __BITS(31, 16)
+#define PCIE_XCAP 0x00 /* Capability List & Capabilities Register */
+#define PCIE_XCAP_MASK __BITS(31, 16)
/* Capability Version */
-#define PCI_PCIE_XCAP_VER_MASK __SHIFTIN(__BITS(3, 0), PCI_PCIE_XCAP_MASK)
-#define PCI_PCIE_XCAP_VER_1_0 __SHIFTIN(1, PCI_PCIE_XCAP_VER_MASK)
-#define PCI_PCIE_XCAP_VER_2_0 __SHIFTIN(2, PCI_PCIE_XCAP_VER_MASK)
-#define PCI_PCIE_XCAP_TYPE_MASK __SHIFTIN(__BITS(7, 4), PCI_PCIE_XCAP_MASK)
-#define PCI_PCIE_XCAP_TYPE_PCIE_DEV __SHIFTIN(0x0, PCI_PCIE_XCAP_TYPE_MASK)
-#define PCI_PCIE_XCAP_TYPE_PCI_DEV __SHIFTIN(0x1, PCI_PCIE_XCAP_TYPE_MASK)
-#define PCI_PCIE_XCAP_TYPE_ROOT __SHIFTIN(0x4, PCI_PCIE_XCAP_TYPE_MASK)
-#define PCI_PCIE_XCAP_TYPE_UP __SHIFTIN(0x5, PCI_PCIE_XCAP_TYPE_MASK)
-#define PCI_PCIE_XCAP_TYPE_DOWN __SHIFTIN(0x6, PCI_PCIE_XCAP_TYPE_MASK)
-#define PCI_PCIE_XCAP_TYPE_PCIE2PCI __SHIFTIN(0x7, PCI_PCIE_XCAP_TYPE_MASK)
-#define PCI_PCIE_XCAP_TYPE_PCI2PCIE __SHIFTIN(0x8, PCI_PCIE_XCAP_TYPE_MASK)
-#define PCI_PCIE_XCAP_SI __SHIFTIN(__BIT(8), PCI_PCIE_XCAP_MASK) /* Slot Implemented */
-#define PCI_PCIE_DCAP 0x04 /* Device Capabilities Register */
-#define PCI_PCIE_DCSR 0x08 /* Device Control & Status Register */
-#define PCI_PCIE_DCSR_MAX_READ_REQ __BITS(14, 12)
-#define PCI_PCIE_DCSR_ENA_NO_SNOOP __BIT(11)
-#define PCI_PCIE_DCSR_CED __BIT(0 + 16)
-#define PCI_PCIE_DCSR_NFED __BIT(1 + 16)
-#define PCI_PCIE_DCSR_FED __BIT(2 + 16)
-#define PCI_PCIE_DCSR_URD __BIT(3 + 16)
-#define PCI_PCIE_LCAP 0x0c
-#define PCI_PCIE_LCSR 0x10 /* Link Control & Status Register */
-#define PCI_PCIE_LCSR_ASPM_L0S __BIT(0)
-#define PCI_PCIE_LCSR_ASPM_L1 __BIT(1)
-#define PCI_PCIE_SLCAP 0x14 /* Slot Capabilities Register */
-#define PCI_PCIE_SLCAP_ABP __BIT(0) /* Attention Button Present */
-#define PCI_PCIE_SLCAP_PCP __BIT(1) /* Power Controller Present */
-#define PCI_PCIE_SLCAP_MSP __BIT(2) /* MRL Sensor Present */
-#define PCI_PCIE_SLCAP_AIP __BIT(3) /* Attention Indicator
- * Present
- */
-#define PCI_PCIE_SLCAP_PIP __BIT(4) /* Power Indicator Present */
-#define PCI_PCIE_SLCAP_HPS __BIT(5) /* Hot-Plug Surprise */
-#define PCI_PCIE_SLCAP_HPC __BIT(6) /* Hot-Plug Capable */
-#define PCI_PCIE_SLCSR 0x18
-#define PCI_PCIE_SLCSR_ABE __BIT(0)
-#define PCI_PCIE_SLCSR_PFE __BIT(1)
-#define PCI_PCIE_SLCSR_MSE __BIT(2)
-#define PCI_PCIE_SLCSR_PDE __BIT(3)
-#define PCI_PCIE_SLCSR_CCE __BIT(4)
-#define PCI_PCIE_SLCSR_HPE __BIT(5)
-#define PCI_PCIE_SLCSR_ABP __BIT(0 + 16)
-#define PCI_PCIE_SLCSR_PFD __BIT(1 + 16)
-#define PCI_PCIE_SLCSR_MSC __BIT(2 + 16)
-#define PCI_PCIE_SLCSR_PDC __BIT(3 + 16)
-#define PCI_PCIE_SLCSR_CC __BIT(4 + 16)
-#define PCI_PCIE_SLCSR_MS __BIT(5 + 16)
-#define PCI_PCIE_SLCSR_PDS __BIT(6 + 16)
-#define PCI_PCIE_SLCSR_LACS __BIT(8 + 16)
-#define PCI_PCIE_RCR 0x1c
-#define PCI_PCIE_RSR 0x20
-#define PCI_PCIE_DCAP2 0x24
-#define PCI_PCIE_DCSR2 0x28
-#define PCI_PCIE_LCAP2 0x2c
-#define PCI_PCIE_LCSR2 0x30
-#define PCI_PCIE_SLCAP2 0x34
-#define PCI_PCIE_SLCSR2 0x38
+#define PCIE_XCAP_VER_MASK __SHIFTIN(__BITS(3, 0), PCIE_XCAP_MASK)
+#define PCIE_XCAP_VER_1_0 __SHIFTIN(1, PCIE_XCAP_VER_MASK)
+#define PCIE_XCAP_VER_2_0 __SHIFTIN(2, PCIE_XCAP_VER_MASK)
+#define PCIE_XCAP_TYPE_MASK __SHIFTIN(__BITS(7, 4), PCIE_XCAP_MASK)
+#define PCIE_XCAP_TYPE_PCIE_DEV __SHIFTIN(0x0, PCIE_XCAP_TYPE_MASK)
+#define PCIE_XCAP_TYPE_PCI_DEV __SHIFTIN(0x1, PCIE_XCAP_TYPE_MASK)
+#define PCIE_XCAP_TYPE_ROOT __SHIFTIN(0x4, PCIE_XCAP_TYPE_MASK)
+#define PCIE_XCAP_TYPE_UP __SHIFTIN(0x5, PCIE_XCAP_TYPE_MASK)
+#define PCIE_XCAP_TYPE_DOWN __SHIFTIN(0x6, PCIE_XCAP_TYPE_MASK)
+#define PCIE_XCAP_TYPE_PCIE2PCI __SHIFTIN(0x7, PCIE_XCAP_TYPE_MASK)
+#define PCIE_XCAP_TYPE_PCI2PCIE __SHIFTIN(0x8, PCIE_XCAP_TYPE_MASK)
+#define PCIE_XCAP_TYPE_ROOT_INTEP __SHIFTIN(0x9, PCIE_XCAP_TYPE_MASK)
+#define PCIE_XCAP_TYPE_ROOT_EVNTC __SHIFTIN(0xa, PCIE_XCAP_TYPE_MASK)
+#define PCIE_XCAP_SI __SHIFTIN(__BIT(8), PCIE_XCAP_MASK) /* Slot Implemented */
+#define PCIE_XCAP_IRQ __SHIFTIN(__BITS(13, 9), PCIE_XCAP_MASK)
+#define PCIE_DCAP 0x04 /* Device Capabilities Register */
+#define PCIE_DCAP_MAX_PAYLOAD __BITS(2, 0) /* Max Payload Size Supported */
+#define PCIE_DCAP_PHANTOM_FUNCS __BITS(4, 3) /* Phantom Functions Supported*/
+#define PCIE_DCAP_EXT_TAG_FIELD __BIT(5) /* Extended Tag Field Support */
+#define PCIE_DCAP_L0S_LATENCY __BITS(8, 6) /* Endpoint L0 Accptbl Latency*/
+#define PCIE_DCAP_L1_LATENCY __BITS(11, 9) /* Endpoint L1 Accptbl Latency*/
+#define PCIE_DCAP_ATTN_BUTTON __BIT(12) /* Attention Indicator Button */
+#define PCIE_DCAP_ATTN_IND __BIT(13) /* Attention Indicator Present*/
+#define PCIE_DCAP_PWR_IND __BIT(14) /* Power Indicator Present */
+#define PCIE_DCAP_ROLE_ERR_RPT __BIT(15) /* Role-Based Error Reporting */
+#define PCIE_DCAP_SLOT_PWR_LIM_VAL __BITS(25, 18) /* Cap. Slot PWR Limit Val */
+#define PCIE_DCAP_SLOT_PWR_LIM_SCALE __BITS(27, 26) /* Cap. SlotPWRLimit Scl */
+#define PCIE_DCAP_FLR __BIT(28) /* Function-Level Reset Cap. */
+#define PCIE_DCSR 0x08 /* Device Control & Status Register */
+#define PCIE_DCSR_ENA_COR_ERR __BIT(0) /* Correctable Error Report En*/
+#define PCIE_DCSR_ENA_NFER __BIT(1) /* Non-Fatal Error Report En. */
+#define PCIE_DCSR_ENA_FER __BIT(2) /* Fatal Error Reporting Enabl*/
+#define PCIE_DCSR_ENA_URR __BIT(3) /* Unsupported Request Rpt En */
+#define PCIE_DCSR_ENA_RELAX_ORD __BIT(4) /* Enable Relaxed Ordering */
+#define PCIE_DCSR_MAX_PAYLOAD __BITS(7, 5) /* Max Payload Size */
+#define PCIE_DCSR_EXT_TAG_FIELD __BIT(8) /* Extended Tag Field Enable */
+#define PCIE_DCSR_PHANTOM_FUNCS __BIT(9) /* Phantom Functions Enable */
+#define PCIE_DCSR_AUX_POWER_PM __BIT(10) /* Aux Power PM Enable */
+#define PCIE_DCSR_ENA_NO_SNOOP __BIT(11) /* Enable No Snoop */
+#define PCIE_DCSR_MAX_READ_REQ __BITS(14, 12) /* Max Read Request Size */
+#define PCIE_DCSR_BRDG_CFG_RETRY __BIT(15) /* Bridge Config Retry Enable */
+#define PCIE_DCSR_INITIATE_FLR __BIT(15) /* Initiate Function-Level Rst*/
+#define PCIE_DCSR_CED __BIT(0 + 16) /* Correctable Error Detected */
+#define PCIE_DCSR_NFED __BIT(1 + 16) /* Non-Fatal Error Detected */
+#define PCIE_DCSR_FED __BIT(2 + 16) /* Fatal Error Detected */
+#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_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 */
+#define PCIE_LCAP_ASPM __BITS(11, 10) /* Active State Link PM Supp. */
+#define PCIE_LCAP_L0S_EXIT __BITS(14, 12) /* L0s Exit Latency */
+#define PCIE_LCAP_L1_EXIT __BITS(17, 15) /* L1 Exit Latency */
+#define PCIE_LCAP_CLOCK_PM __BIT(18) /* Clock Power Management */
+#define PCIE_LCAP_SURPRISE_DOWN __BIT(19) /* Surprise Down Err Rpt Cap. */
+#define PCIE_LCAP_DL_ACTIVE __BIT(20) /* Data Link Layer Link Active*/
+#define PCIE_LCAP_LINK_BW_NOTIFY __BIT(21) /* Link BW Notification Capabl*/
+#define PCIE_LCAP_ASPM_COMPLIANCE __BIT(22) /* ASPM Optionally Compliance */
+#define PCIE_LCAP_PORT __BITS(31, 24) /* Port Number */
+#define PCIE_LCSR 0x10 /* Link Control & Status Register */
+#define PCIE_LCSR_ASPM_L0S __BIT(0) /* Active State PM Control L0s*/
+#define PCIE_LCSR_ASPM_L1 __BIT(1) /* Active State PM Control L1 */
+#define PCIE_LCSR_RCB __BIT(3) /* Read Completion Boundry Ctl*/
+#define PCIE_LCSR_LINK_DIS __BIT(4) /* Link Disable */
+#define PCIE_LCSR_RETRAIN __BIT(5) /* Retrain Link */
+#define PCIE_LCSR_COMCLKCFG __BIT(6) /* Common Clock Configuration */
+#define PCIE_LCSR_EXTNDSYNC __BIT(7) /* Extended Synch */
+#define PCIE_LCSR_ENCLKPM __BIT(8) /* Enable Clock Power Managmt */
+#define PCIE_LCSR_HAWD __BIT(9) /* HW Autonomous Width Disable*/
+#define PCIE_LCSR_LBMIE __BIT(10) /* Link BW Management Intr En */
+#define PCIE_LCSR_LABIE __BIT(11) /* Link Autonomous BW Intr En */
+#define PCIE_LCSR_LINKSPEED __BITS(19, 16) /* Link Speed */
+#define PCIE_LCSR_NLW __BITS(25, 20) /* Negotiated Link Width */
+#define PCIE_LCSR_LINKTRAIN_ERR __BIT(10 + 16) /* Link Training Error */
+#define PCIE_LCSR_LINKTRAIN __BIT(11 + 16) /* Link Training */
+#define PCIE_LCSR_SLOTCLKCFG __BIT(12 + 16) /* Slot Clock Configuration */
+#define PCIE_LCSR_DLACTIVE __BIT(13 + 16) /* Data Link Layer Link Active*/
+#define PCIE_LCSR_LINK_BW_MGMT __BIT(14 + 16) /* Link BW Management Status */
+#define PCIE_LCSR_LINK_AUTO_BW __BIT(15 + 16) /* Link Autonomous BW Status */
+#define PCIE_SLCAP 0x14 /* Slot Capabilities Register */
+#define PCIE_SLCAP_ABP __BIT(0) /* Attention Button Present */
+#define PCIE_SLCAP_PCP __BIT(1) /* Power Controller Present */
+#define PCIE_SLCAP_MSP __BIT(2) /* MRL Sensor Present */
+#define PCIE_SLCAP_AIP __BIT(3) /* Attention Indicator Present*/
+#define PCIE_SLCAP_PIP __BIT(4) /* Power Indicator Present */
+#define PCIE_SLCAP_HPS __BIT(5) /* Hot-Plug Surprise */
+#define PCIE_SLCAP_HPC __BIT(6) /* Hot-Plug Capable */
+#define PCIE_SLCAP_SPLV __BITS(14, 7) /* Slot Power Limit Value */
+#define PCIE_SLCAP_SPLS __BITS(16, 15) /* Slot Power Limit Scale */
+#define PCIE_SLCAP_EIP __BIT(17) /* Electromechanical Interlock*/
+#define PCIE_SLCAP_NCCS __BIT(18) /* No Command Completed Supp. */
+#define PCIE_SLCAP_PSN __BITS(31, 19) /* Physical Slot Number */
+#define PCIE_SLCSR 0x18 /* Slot Control & Status Register */
+#define PCIE_SLCSR_ABE __BIT(0) /* Attention Button Pressed En*/
+#define PCIE_SLCSR_PFE __BIT(1) /* Power Button Pressed Enable*/
+#define PCIE_SLCSR_MSE __BIT(2) /* MRL Sensor Changed Enable */
+#define PCIE_SLCSR_PDE __BIT(3) /* Presence Detect Changed Ena*/
+#define PCIE_SLCSR_CCE __BIT(4) /* Command Completed Intr. En */
+#define PCIE_SLCSR_HPE __BIT(5) /* Hot Plug Interrupt Enable */
+#define PCIE_SLCSR_AIC __BITS(7, 6) /* Attention Indicator Control*/
+#define PCIE_SLCSR_PIC __BITS(9, 8) /* Power Indicator Control */
+#define PCIE_SLCSR_PCC __BIT(10) /* Power Controller Control */
+#define PCIE_SLCSR_EIC __BIT(11) /* Electromechanical Interlock*/
+#define PCIE_SLCSR_DLLSCE __BIT(12) /* DataLinkLayer State Changed*/
+#define PCIE_SLCSR_ABP __BIT(0 + 16) /* Attention Button Pressed */
+#define PCIE_SLCSR_PFD __BIT(1 + 16) /* Power Fault Detected */
+#define PCIE_SLCSR_MSC __BIT(2 + 16) /* MRL Sensor Changed */
+#define PCIE_SLCSR_PDC __BIT(3 + 16) /* Presence Detect Changed */
+#define PCIE_SLCSR_CC __BIT(4 + 16) /* Command Completed */
+#define PCIE_SLCSR_MS __BIT(5 + 16) /* MRL Sensor State */
+#define PCIE_SLCSR_PDS __BIT(6 + 16) /* Presence Detect State */
+#define PCIE_SLCSR_EIS __BIT(7 + 16) /* Electromechanical Interlock*/
+#define PCIE_SLCSR_LACS __BIT(8 + 16) /* Data Link Layer State Chg. */
+#define PCIE_RCR 0x1c /* Root Control & Capabilities Reg. */
+#define PCIE_RCR_SERR_CER __BIT(0) /* SERR on Correctable Err. En*/
+#define PCIE_RCR_SERR_NFER __BIT(1) /* SERR on Non-Fatal Error En */
+#define PCIE_RCR_SERR_FER __BIT(2) /* SERR on Fatal Error Enable */
+#define PCIE_RCR_PME_IE __BIT(3) /* PME Interrupt Enable */
+#define PCIE_RSR 0x20 /* Root Status Register */
+#define PCIE_RSR_PME_REQESTER __BITS(15, 0) /* PME Requester ID */
+#define PCIE_RSR_PME_STAT __BIT(16) /* PME Status */
+#define PCIE_RSR_PME_PEND __BIT(17) /* PME Pending */
+#define PCIE_DCAP2 0x24 /* Device Capabilities 2 Register */
+#define PCIE_DCAP2_COMPT_RANGE __BITS(3,0) /* Compl. Timeout Ranges Supp */
+#define PCIE_DCAP2_COMPT_DIS __BIT(4) /* Compl. Timeout Disable Supp*/
+#define PCIE_DCAP2_ARI_FWD __BIT(5) /* ARI Forward Supported */
+#define PCIE_DCAP2_ATOM_ROUT __BIT(6) /* AtomicOp Routing Supported */
+#define PCIE_DCAP2_32ATOM __BIT(7) /* 32bit AtomicOp Compl. Supp */
+#define PCIE_DCAP2_64ATOM __BIT(8) /* 64bit AtomicOp Compl. Supp */
+#define PCIE_DCAP2_128CAS __BIT(9) /* 128bit Cas Completer Supp. */
+#define PCIE_DCAP2_NO_ROPR_PASS __BIT(10) /* No RO-enabled PR-PR Passng */
+#define PCIE_DCAP2_LTR_MEC __BIT(11) /* LTR Mechanism Supported */
+#define PCIE_DCAP2_TPH_COMP __BITS(13, 12) /* TPH Completer Supported */
+#define PCIE_DCAP2_OBFF __BITS(19, 18) /* OBPF */
+#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_DCSR2 0x28 /* Device Control & Status 2 Register */
+#define PCIE_DCSR2_COMPT_VAL __BITS(3, 0) /* Completion Timeout Value */
+#define PCIE_DCSR2_COMPT_DIS __BIT(4) /* Completion Timeout Disable */
+#define PCIE_DCSR2_ARI_FWD __BIT(5) /* ARI Forwarding Enable */
+#define PCIE_DCSR2_ATOM_REQ __BIT(6) /* AtomicOp Requester Enable */
+#define PCIE_DCSR2_ATOM_EBLK __BIT(7) /* AtomicOp Egress Blocking */
+#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_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 */
+#define PCIE_LCAP2_CROSSLNK __BIT(8) /* Crosslink Supported */
+#define PCIE_LCSR2 0x30 /* Link Control & Status 2 Register */
+#define PCIE_LCSR2_TGT_LSPEED __BITS(3, 0) /* Target Link Speed */
+#define PCIE_LCSR2_ENT_COMPL __BIT(4) /* Enter Compliance */
+#define PCIE_LCSR2_HW_AS_DIS __BIT(5) /* HW Autonomous Speed Disabl */
+#define PCIE_LCSR2_SEL_DEEMP __BIT(6) /* Selectable De-emphasis */
+#define PCIE_LCSR2_TX_MARGIN __BITS(9, 7) /* Transmit Margin */
+#define PCIE_LCSR2_EN_MCOMP __BIT(10) /* Enter Modified Compliance */
+#define PCIE_LCSR2_COMP_SOS __BIT(11) /* Compliance SOS */
+#define PCIE_LCSR2_COMP_DEEMP __BITS(15, 12) /* Compliance Present/De-emph */
+#define PCIE_LCSR2_DEEMP_LVL __BIT(0 + 16) /* Current De-emphasis Level */
+#define PCIE_LCSR2_EQ_COMPL __BIT(1 + 16) /* Equalization Complete */
+#define PCIE_LCSR2_EQP1_SUC __BIT(2 + 16) /* Equaliz Phase 1 Successful */
+#define PCIE_LCSR2_EQP2_SUC __BIT(3 + 16) /* Equaliz Phase 2 Successful */
+#define PCIE_LCSR2_EQP3_SUC __BIT(4 + 16) /* Equaliz Phase 3 Successful */
+#define PCIE_LCSR2_LNKEQ_REQ __BIT(5 + 16) /* Link Equalization Request */
+
+#define PCIE_SLCAP2 0x34 /* Slot Capabilities 2 Register */
+#define PCIE_SLCSR2 0x38 /* Slot Control & Status 2 Register */
/*
* Interrupt Configuration Register; contains interrupt pin and line.
Index: src/sys/dev/pci/ppb.c
diff -u src/sys/dev/pci/ppb.c:1.39.18.3 src/sys/dev/pci/ppb.c:1.39.18.4
--- src/sys/dev/pci/ppb.c:1.39.18.3 Sat Dec 24 01:28:02 2011
+++ src/sys/dev/pci/ppb.c Sat Feb 15 03:22:27 2014
@@ -1,4 +1,4 @@
-/* $NetBSD: ppb.c,v 1.39.18.3 2011/12/24 01:28:02 matt Exp $ */
+/* $NetBSD: ppb.c,v 1.39.18.4 2014/02/15 03:22:27 matt Exp $ */
/*
* Copyright (c) 1996, 1998 Christopher G. Demetriou. All rights reserved.
@@ -31,7 +31,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: ppb.c,v 1.39.18.3 2011/12/24 01:28:02 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: ppb.c,v 1.39.18.4 2014/02/15 03:22:27 matt Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -43,9 +43,9 @@ __KERNEL_RCSID(0, "$NetBSD: ppb.c,v 1.39
#include <dev/pci/ppbreg.h>
#include <dev/pci/pcidevs.h>
-#define PCI_PCIE_SLCSR_NOTIFY_MASK \
- (PCI_PCIE_SLCSR_ABE | PCI_PCIE_SLCSR_PFE | PCI_PCIE_SLCSR_MSE | \
- PCI_PCIE_SLCSR_PDE | PCI_PCIE_SLCSR_CCE | PCI_PCIE_SLCSR_HPE)
+#define PCIE_SLCSR_NOTIFY_MASK \
+ (PCIE_SLCSR_ABE | PCIE_SLCSR_PFE | PCIE_SLCSR_MSE | \
+ PCIE_SLCSR_PDE | PCIE_SLCSR_CCE | PCIE_SLCSR_HPE)
struct ppb_softc {
device_t sc_dev; /* generic device glue */
@@ -94,52 +94,52 @@ ppb_fix_pcie(device_t self)
return; /* Not a PCIe device */
aprint_normal_dev(self, "PCI Express ");
- switch (reg & PCI_PCIE_XCAP_VER_MASK) {
- case PCI_PCIE_XCAP_VER_1_0:
+ switch (reg & PCIE_XCAP_VER_MASK) {
+ case PCIE_XCAP_VER_1_0:
aprint_normal("1.0");
break;
- case PCI_PCIE_XCAP_VER_2_0:
+ case PCIE_XCAP_VER_2_0:
aprint_normal("2.0");
break;
default:
aprint_normal_dev(self,
"version unsupported (0x%" PRIxMAX ")\n",
- __SHIFTOUT(reg, PCI_PCIE_XCAP_VER_MASK));
+ __SHIFTOUT(reg, PCIE_XCAP_VER_MASK));
return;
}
aprint_normal(" <");
- switch (reg & PCI_PCIE_XCAP_TYPE_MASK) {
- case PCI_PCIE_XCAP_TYPE_PCIE_DEV:
+ switch (reg & PCIE_XCAP_TYPE_MASK) {
+ case PCIE_XCAP_TYPE_PCIE_DEV:
aprint_normal("PCI-E Endpoint device");
break;
- case PCI_PCIE_XCAP_TYPE_PCI_DEV:
+ case PCIE_XCAP_TYPE_PCI_DEV:
aprint_normal("Legacy PCI-E Endpoint device");
break;
- case PCI_PCIE_XCAP_TYPE_ROOT:
+ case PCIE_XCAP_TYPE_ROOT:
aprint_normal("Root Port of PCI-E Root Complex");
break;
- case PCI_PCIE_XCAP_TYPE_UP:
+ case PCIE_XCAP_TYPE_UP:
aprint_normal("Upstream Port of PCI-E Switch");
break;
- case PCI_PCIE_XCAP_TYPE_DOWN:
+ case PCIE_XCAP_TYPE_DOWN:
aprint_normal("Downstream Port of PCI-E Switch");
break;
- case PCI_PCIE_XCAP_TYPE_PCIE2PCI:
+ case PCIE_XCAP_TYPE_PCIE2PCI:
aprint_normal("PCI-E to PCI/PCI-X Bridge");
break;
- case PCI_PCIE_XCAP_TYPE_PCI2PCIE:
+ case PCIE_XCAP_TYPE_PCI2PCIE:
aprint_normal("PCI/PCI-X to PCI-E Bridge");
break;
default:
aprint_normal("Device/Port Type 0x%" PRIxMAX,
- __SHIFTOUT(reg, PCI_PCIE_XCAP_TYPE_MASK));
+ __SHIFTOUT(reg, PCIE_XCAP_TYPE_MASK));
break;
}
- switch (reg & PCI_PCIE_XCAP_TYPE_MASK) {
- case PCI_PCIE_XCAP_TYPE_ROOT:
- case PCI_PCIE_XCAP_TYPE_DOWN:
- case PCI_PCIE_XCAP_TYPE_PCI2PCIE:
+ switch (reg & PCIE_XCAP_TYPE_MASK) {
+ case PCIE_XCAP_TYPE_ROOT:
+ case PCIE_XCAP_TYPE_DOWN:
+ case PCIE_XCAP_TYPE_PCI2PCIE:
reg = pci_conf_read(sc->sc_pc, sc->sc_tag, off + 0x0c);
u_int mlw = (reg >> 4) & 0x1f;
u_int mls = (reg >> 0) & 0x0f;
@@ -162,12 +162,12 @@ ppb_fix_pcie(device_t self)
break;
}
- reg = pci_conf_read(sc->sc_pc, sc->sc_tag, off + PCI_PCIE_SLCSR);
- if (reg & PCI_PCIE_SLCSR_NOTIFY_MASK) {
+ reg = pci_conf_read(sc->sc_pc, sc->sc_tag, off + PCIE_SLCSR);
+ if (reg & PCIE_SLCSR_NOTIFY_MASK) {
aprint_debug_dev(self, "disabling notification events\n");
- reg &= ~PCI_PCIE_SLCSR_NOTIFY_MASK;
+ reg &= ~PCIE_SLCSR_NOTIFY_MASK;
pci_conf_write(sc->sc_pc, sc->sc_tag,
- off + PCI_PCIE_SLCSR, reg);
+ off + PCIE_SLCSR, reg);
}
}