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); } }