[BACK]Return to if_bcereg.h CVS log [TXT][DIR] Up to [local] / sys / dev / pci

Annotation of sys/dev/pci/if_bcereg.h, Revision 1.1

1.1     ! nbrk        1: /* $OpenBSD: if_bcereg.h,v 1.3 2006/11/08 01:32:00 brad Exp $ */
        !             2: /* $NetBSD: if_bcereg.h,v 1.3 2003/09/29 01:53:02 mrg Exp $     */
        !             3:
        !             4: /*
        !             5:  * Copyright (c) 2003 Clifford Wright. All rights reserved.
        !             6:  *
        !             7:  * Redistribution and use in source and binary forms, with or without
        !             8:  * modification, are permitted provided that the following conditions
        !             9:  * are met:
        !            10:  * 1. Redistributions of source code must retain the above copyright
        !            11:  *    notice, this list of conditions and the following disclaimer.
        !            12:  * 2. Redistributions in binary form must reproduce the above copyright
        !            13:  *    notice, this list of conditions and the following disclaimer in the
        !            14:  *    documentation and/or other materials provided with the distribution.
        !            15:  * 3. The name of the author may not be used to endorse or promote products
        !            16:  *    derived from this software without specific prior written permission.
        !            17:  *
        !            18:  * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
        !            19:  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
        !            20:  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
        !            21:  * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
        !            22:  * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
        !            23:  * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
        !            24:  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
        !            25:  * AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
        !            26:  * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
        !            27:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
        !            28:  * SUCH DAMAGE.
        !            29:  */
        !            30:
        !            31: /* Broadcom BCM440x */
        !            32:
        !            33: /* PCI registers defined in the PCI 2.2 spec. */
        !            34: #define BCE_PCI_BAR0                   0x10
        !            35:
        !            36: /* Sonics SB register access */
        !            37: #define BCE_REG_WIN                    0x80
        !            38: #define BCE_SONICS_WIN                 0x18002000
        !            39:
        !            40: /* Sonics PCI control */
        !            41: #define BCE_SPCI_TR2                   0x0108  /* Sonics to PCI translation
        !            42:                                                 * 2 */
        !            43: /* bit defines */
        !            44: #define SBTOPCI_PREF                   0x4     /* prefetch enable */
        !            45: #define SBTOPCI_BURST                  0x8     /* burst enable */
        !            46: #define BCE_SBINTVEC                   0x0f94
        !            47: /* interrupt bits */
        !            48: #define SBIV_ENET0                     0x02    /* enable for enet 0 */
        !            49: #define SBIV_ENET1                     0x40    /* enable for enet 1 */
        !            50:
        !            51:
        !            52: /* Host Interface Registers */
        !            53:
        !            54: #define BCE_DEVCTL                     0x0000  /* device control */
        !            55: /* device control bits */
        !            56: #define BCE_DC_IP                      0x00000400      /* internal phy present */
        !            57: #define BCE_DC_ER                      0x00008000      /* ephy reset */
        !            58: /* Interrupt Control */
        !            59: #define BCE_INT_STS                    0x0020
        !            60: #define BCE_INT_MASK                   0x0024
        !            61: /* bits for both status, and mask */
        !            62: #define I_TO                           0x00000080      /* general timeout */
        !            63: #define I_PC                           0x00000400      /* descriptor error */
        !            64: #define I_PD                           0x00000800      /* data error */
        !            65: #define I_DE                           0x00001000      /* desc. protocol error */
        !            66: #define I_RU                           0x00002000      /* rx desc. underflow */
        !            67: #define I_RO                           0x00004000      /* rx fifo overflow */
        !            68: #define I_XU                           0x00008000      /* tx fifo underflow */
        !            69: #define I_RI                           0x00010000      /* receive interrupt */
        !            70: #define I_XI                           0x01000000      /* transmit interrupt */
        !            71:
        !            72: /* Ethernet MAC Control */
        !            73: #define BCE_MACCTL                     0x00A8  /* ethernet mac control */
        !            74: /* mac control bits */
        !            75: #define BCE_EMC_CRC32_ENAB             0x00000001      /* crc32 generation */
        !            76: #define BCE_EMC_PDOWN                  0x00000004      /* PHY powerdown */
        !            77: #define BCE_EMC_EDET                   0x00000008      /* PHY energy detect */
        !            78: #define BCE_EMC_LED                    0x000000e0      /* PHY LED control */
        !            79:
        !            80: /* DMA Interrupt control */
        !            81: #define BCE_DMAI_CTL                   0x0100
        !            82:
        !            83: /* DMA registers */
        !            84: #define BCE_DMA_TXCTL                  0x0200  /* transmit control */
        !            85: /* transmit control bits */
        !            86: #define XC_XE                          0x1     /* transmit enable */
        !            87: #define XC_LE                          0x4     /* loopback enable */
        !            88: #define BCE_DMA_TXADDR                 0x0204  /* tx ring base address */
        !            89: #define BCE_DMA_DPTR                   0x0208  /* last tx descriptor */
        !            90: #define BCE_DMA_TXSTATUS               0x020C  /* active desc, etc */
        !            91: #define BCE_DMA_RXCTL                  0x0210  /* enable, etc */
        !            92: #define BCE_DMA_RXADDR                 0x0214  /* rx ring base address */
        !            93: #define BCE_DMA_RXDPTR                 0x0218  /* last descriptor */
        !            94: #define BCE_DMA_RXSTATUS               0x021C  /* active desc, etc */
        !            95: /* receive status bits */
        !            96: #define RS_CD_MASK                     0x0fff  /* current descriptor pointer */
        !            97: #define RS_DMA_IDLE                    0x2000  /* DMA is idle */
        !            98: #define RS_ERROR                       0xf0000 /* had an error */
        !            99:
        !           100: /* Ethernet MAC control registers */
        !           101: #define BCE_RX_CTL                     0x0400  /* receive config */
        !           102: /* config bits */
        !           103: #define ERC_DB                         0x00000001      /* disable broadcast */
        !           104: #define ERC_AM                         0x00000002      /* rx all multicast */
        !           105: #define ERC_PE                         0x00000008      /* promiscuous enable */
        !           106:
        !           107: #define BCE_RX_MAX                     0x0404  /* max packet length */
        !           108: #define BCE_TX_MAX                     0x0408
        !           109: #define BCE_MI_CTL                     0x0410
        !           110: #define BCE_MI_COMM                    0x0414
        !           111: #define BCE_MI_STS                     0x041C
        !           112: /* mii status bits */
        !           113: #define BCE_MIINTR                     0x00000001      /* mii mdio interrupt */
        !           114:
        !           115: #define BCE_FILT_LOW                   0x0420  /* mac low 4 bytes */
        !           116: #define BCE_FILT_HI                    0x0424  /* mac hi 2 bytes */
        !           117: #define BCE_FILT_CTL                   0x0428  /* packet filter ctrl */
        !           118: #define BCE_ENET_CTL                   0x042C
        !           119: /* bits for mac control */
        !           120: #define EC_EE                          0x00000001      /* emac enable */
        !           121: #define EC_ED                          0x00000002      /* disable emac */
        !           122: #define EC_ES                          0x00000004      /* soft reset emac */
        !           123: #define EC_EP                          0x00000008      /* external phy */
        !           124: #define BCE_TX_CTL                     0x0430
        !           125: /* bits for transmit control */
        !           126: #define EXC_FD                         0x00000001      /* full duplex */
        !           127: #define BCE_TX_WATER                   0x0434  /* tx watermark */
        !           128:
        !           129: /* statistics counters */
        !           130: #define BCE_RX_PKTS                    0x058C
        !           131:
        !           132: /* SiliconBackplane registers */
        !           133: #define BCE_SBIMSTATE                  0x0f90
        !           134: #define BCE_SBTMSTATELOW               0x0f98
        !           135: #define BCE_SBTMSTATEHI                        0x0f9C
        !           136: #define SBTML_RESET                    0x1     /* reset */
        !           137: #define SBTML_REJ                      0x2     /* reject */
        !           138: #define SBTML_CLK                      0x10000 /* clock enable */
        !           139: #define SBTML_FGC                      0x20000 /* force gated clocks on */
        !           140:
        !           141: /* MI communication register */
        !           142: #define BCE_MICOMM_DATA                        0x0000FFFF
        !           143:
        !           144: #define BCE_MIREG(x)                   ((x & 0x1F) << 18)
        !           145: #define BCE_MIPHY(x)                   ((x & 0x1F) << 23)
        !           146:
        !           147: /* SPROM constants */
        !           148: #define BCE_SPROM_BASE                 0x1000
        !           149: #define BCE_PHY                                (BCE_SPROM_BASE + 0x5A) /* MII Address */
        !           150: #define        BCE_ENET0                       (BCE_SPROM_BASE + 0x4F)
        !           151: #define        BCE_ENET1                       (BCE_SPROM_BASE + 0x4E)
        !           152: #define        BCE_ENET2                       (BCE_SPROM_BASE + 0x51)
        !           153: #define        BCE_ENET3                       (BCE_SPROM_BASE + 0x50)
        !           154: #define        BCE_ENET4                       (BCE_SPROM_BASE + 0x53)
        !           155: #define        BCE_ENET5                       (BCE_SPROM_BASE + 0x52)
        !           156:
        !           157: #define  SBIM_INBAND_ERROR             0x20000
        !           158: #define  SBIM_TIMEOUT                  0x40000
        !           159: #define  SBIM_ERRORBITS                        (SBIM_INBAND_ERROR|SBIM_TIMEOUT)

CVSweb