The Design and Implementation of the FreeBSD Operating System, Second Edition
Now available: The Design and Implementation of the FreeBSD Operating System (Second Edition)


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]

FreeBSD/Linux Kernel Cross Reference
sys/dev/ic/mtd803reg.h

Version: -  FREEBSD  -  FREEBSD-13-STABLE  -  FREEBSD-13-0  -  FREEBSD-12-STABLE  -  FREEBSD-12-0  -  FREEBSD-11-STABLE  -  FREEBSD-11-0  -  FREEBSD-10-STABLE  -  FREEBSD-10-0  -  FREEBSD-9-STABLE  -  FREEBSD-9-0  -  FREEBSD-8-STABLE  -  FREEBSD-8-0  -  FREEBSD-7-STABLE  -  FREEBSD-7-0  -  FREEBSD-6-STABLE  -  FREEBSD-6-0  -  FREEBSD-5-STABLE  -  FREEBSD-5-0  -  FREEBSD-4-STABLE  -  FREEBSD-3-STABLE  -  FREEBSD22  -  l41  -  OPENBSD  -  linux-2.6  -  MK84  -  PLAN9  -  xnu-8792 
SearchContext: -  none  -  3  -  10 

    1 /* $NetBSD: mtd803reg.h,v 1.3 2008/04/28 20:23:50 martin Exp $ */
    2 
    3 /*-
    4  * Copyright (c) 2002 The NetBSD Foundation, Inc.
    5  * All rights reserved.
    6  *
    7  * This code is derived from software contributed to The NetBSD Foundation
    8  * by Peter Bex <Peter.Bex@student.kun.nl>.
    9  *
   10  * Redistribution and use in source and binary forms, with or without
   11  * modification, are permitted provided that the following conditions
   12  * are met:
   13  * 1. Redistributions of source code must retain the above copyright
   14  *    notice, this list of conditions and the following disclaimer.
   15  * 2. Redistributions in binary form must reproduce the above copyright
   16  *    notice, this list of conditions and the following disclaimer in the
   17  *    documentation and/or other materials provided with the distribution.
   18  *
   19  * THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
   20  * ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
   21  * TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
   22  * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
   23  * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
   24  * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
   25  * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
   26  * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
   27  * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   28  * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
   29  * POSSIBILITY OF SUCH DAMAGE.
   30  */
   31 
   32 /* Command and Status Register */
   33 #define MTD_PAR0                0x00            /* Physical address 0-3 */
   34 #define MTD_PAR1                0x04            /* Physical address 4-5 */
   35 #define MTD_MAR0                0x08            /* Multicast address 0-3 */
   36 #define MTD_MAR1                0x0c            /* Multicast address 4-7 */
   37 #define MTD_FAR0                0x10            /* Flowctrl address 0-3 */
   38 #define MTD_FAR1                0x14            /* Flowctrl address 4-5 */
   39 #define MTD_RXTXR               0x18            /* Receive-transmit config */
   40 #define MTD_BCR                 0x1c            /* Bus command */
   41 #define MTD_TXPDR               0x20            /* Transmit polling demand */
   42 #define MTD_RXPDR               0x24            /* Receive polling demand */
   43 #define MTD_RCWP                0x28            /* Receive word pointer */
   44 #define MTD_TXLBA               0x2c            /* Transmit list base addr */
   45 #define MTD_RXLBA               0x30            /* Receive list base addr */
   46 #define MTD_ISR                 0x34            /* Interrupt Status Register */
   47 #define MTD_IMR                 0x38            /* Interrupt Mask Register */
   48 #define MTD_FHLT                0x3c            /* Flow ctrl high/low thresh */
   49 #define MTD_MIIMGT              0x40            /* ROM and MII management */
   50 #define MTD_TALLY               0x44            /* Tally ctr for CRC & MPA */
   51 #define MTD_TSR                 0x48            /* Tally ctr for TSR */
   52 #define MTD_PHYBASE             0x4c            /* PHY status & control */
   53 #define MTD_OUI                 0x50            /* OUI register */
   54 #define MTD_LPAR                0x54            /* Link Partner, Advertisement */
   55 #define MTD_WUECSR              0x5c            /* Wake-up Events CSR */
   56 
   57 #define MTD_ALL_ADDR            0xffffffff      /* Mask all addresses */
   58 #define MTD_TXPDR_DEMAND        0xffffffff      /* Demand transmit polling */
   59 #define MTD_RXPDR_DEMAND        0xffffffff      /* Demand receive polling */
   60 
   61 /* PHY registers */
   62 /* Basic mode control register */
   63 #define MTD_PHY_BMCR            0x00
   64 
   65 /* Bus Command Register */
   66 #define MTD_BCR_RSRVD1          0xfffffc00      /* Bits [31:10] are reserved */
   67 #define MTD_BCR_PROG            0x00000200      /* Programming */
   68 #define MTD_BCR_RLE             0x00000100      /* Read Line command Enable */
   69 #define MTD_BCR_RME             0x00000080      /* Read Multiple cmd Enable */
   70 #define MTD_BCR_WIE             0x00000040      /* Write and Inval. cmd Enab. */
   71 #define MTD_BCR_BLEN1           0x00000000      /* 1 dword burst length */
   72 #define MTD_BCR_BLEN4           0x00000008      /* 4 dwords burst length */
   73 #define MTD_BCR_BLEN8           0x00000010      /* 8 dwords burst length */
   74 #define MTD_BCR_BLEN16          0x00000018      /* 16 dwords burst length */
   75 #define MTD_BCR_BLEN32          0x00000020      /* 32 dwords burst length */
   76 #define MTD_BCR_BLEN64          0x00000028      /* 64 dwords burst length */
   77 #define MTD_BCR_BLEN128         0x00000030      /* 128 dwords burst length */
   78 #define MTD_BCR_BLEN512         0x00000038      /* 512 dwords burst length */
   79 #define MTD_BCR_RSVRD0          0x00000006      /* Bits [2:1] are reserved */
   80 #define MTD_BCR_RESET           0x00000001      /* Software reset */
   81 
   82 #define MTD_TIMEOUT             1000            /* Timeout when resetting */
   83 
   84 /* Transmit configuration register */
   85 #define MTD_TX_RUN              0x80000000      /* Transmit running status */
   86 #define MTD_TX_RSRVD1           0x60000000      /* Bits [14:13] are reserved */
   87 #define MTD_TX_BACKOPT          0x10000000      /* Optional backoff */
   88 #define MTD_TX_FASTBACK         0x08000000      /* Fast back-off */
   89 #define MTD_TX_RSRVD0           0x04000000      /* Bit 10 is reserved */
   90 #define MTD_TX_ENH              0x02000000      /* Enhanced mode */
   91 #define MTD_TX_FCTL             0x01000000      /* Transmit fctl packet enable*/
   92 #define MTD_TX_64               0x00000000      /* 64 bytes */
   93 #define MTD_TX_32               0x00200000      /* 32 bytes */
   94 #define MTD_TX_128              0x00400000      /* 128 bytes */
   95 #define MTD_TX_256              0x00600000      /* 256 bytes */
   96 #define MTD_TX_512              0x00800000      /* 512 bytes */
   97 #define MTD_TX_768              0x00a00000      /* 768 bytes */
   98 #define MTD_TX_1024             0x00c00000      /* 1024 bytes */
   99 #define MTD_TX_STFWD            0x00e00000      /* Store and forward */
  100 #define MTD_TX_FDPLX            0x00100000      /* Full duplex mode */
  101 #define MTD_TX_SPD10            0x00080000      /* Port speed is 10M */
  102 #define MTD_TX_ENABLE           0x00040000      /* Transmit enable */
  103 #define MTD_TX_LPBACK           0x00020000      /* Loopback mode bit 1 */
  104 #define MTD_TX_LPBACKZERO       0x00010000      /* Loopback mode bit 0 */
  105 
  106 /* Receive configuration register */
  107 #define MTD_RX_RUN              0x00008000      /* Receive running status */
  108 #define MTD_RX_EARLY            0x00004000      /* Early interrupt enable */
  109 #define MTD_RX_FCTL             0x00002000      /* Receive fctl packet enable */
  110 #define MTD_RX_FANA             0x00001000      /* Fctl address undefined(n/a)*/
  111 #define MTD_RX_BLEN             0x00000800      /* Receive burst len enable */
  112 #define MTD_RX_512              0x00000700      /* 512 words */
  113 #define MTD_RX_128              0x00000600      /* 128 words */
  114 #define MTD_RX_64               0x00000500      /* 64 words */
  115 #define MTD_RX_32               0x00000400      /* 32 words */
  116 #define MTD_RX_16               0x00000300      /* 16 words */
  117 #define MTD_RX_8                0x00000200      /* 8 words */
  118 #define MTD_RX_4                0x00000100      /* 4 words */
  119 #define MTD_RX_1                0x00000000      /* 1 word */
  120 #define MTD_RX_PROM             0x00000080      /* Promiscuous mode */
  121 #define MTD_RX_ABROAD           0x00000040      /* Accept broadcast */
  122 #define MTD_RX_AMULTI           0x00000020      /* Accept multicast */
  123 #define MTD_RX_ARP              0x00000008      /* Receive runt packet */
  124 #define MTD_RX_ALP              0x00000004      /* Receive long packet */
  125 #define MTD_RX_ERRP             0x00000002      /* Receive error packet */
  126 #define MTD_RX_ENABLE           0x00000001      /* Receive enable */
  127 
  128 /* Interrupt Status Register */
  129 #define MTD_ISR_RSRVD1          0xfff80000      /* Bits [31:19] are reserved */
  130 #define MTD_ISR_PDF             0x00040000      /* Parallel Detection Fault */
  131 #define MTD_ISR_RFCON           0x00020000      /* Receive FCtl xON packet */
  132 #define MRD_ISR_RFCOFF          0x00010000      /* Receive FCtl xOFF packet */
  133 #define MTD_ISR_LSC             0x00008000      /* Link Status Change */
  134 #define MTD_ISR_ANC             0x00004000      /* Autonegotiation complete */
  135 #define MTD_ISR_FBUSERR         0x00002000      /* Fatal bus error */
  136 #define MTD_ISR_PARERR          0x00000000      /* Parity error */
  137 #define MTD_ISR_MASTERR         0x00000800      /* Master error */
  138 #define MTD_ISR_TARERR          0x00001000      /* Target error */
  139 #define MTD_ISR_TXUNDER         0x00000400      /* Transmit underflow */
  140 #define MTD_ISR_RXOVER          0x00000200      /* Receive overflow */
  141 #define MTD_ISR_TXEARLY         0x00000100      /* Transmit early int */
  142 #define MTD_ISR_RXEARLY         0x00000080      /* Receive early int */
  143 #define MTD_ISR_CTROVER         0x00000040      /* Counter overflow */
  144 #define MTD_ISR_RXBUN           0x00000020      /* Receive buffer n/a */
  145 #define MTD_ISR_TXBUN           0x00000010      /* Transmit buffer n/a */
  146 #define MTD_ISR_TXIRQ           0x00000008      /* Transmit interrupt */
  147 #define MTD_ISR_RXIRQ           0x00000004      /* Receive interrupt */
  148 #define MTD_ISR_RXERR           0x00000002      /* Receive error */
  149 #define MTD_ISR_RSRVD0          0x00000001      /* Bit 1 is reserved */
  150 
  151 #define MTD_ISR_MASK            MTD_ISR_TXIRQ | MTD_ISR_RXIRQ | MTD_ISR_RXBUN \
  152                                 | MTD_ISR_RXERR | MTD_ISR_PDF \
  153                                 | MTD_ISR_FBUSERR | MTD_ISR_TXUNDER \
  154                                 | MTD_ISR_RXOVER | MTD_ISR_PARERR \
  155                                 | MTD_ISR_MASTERR | MTD_ISR_TARERR
  156 
  157 #define MTD_ISR_ENABLE          0xffffffff      /* Enable interrupts */
  158 
  159 /* Interrupt Mask Register. Essentially the same as ISR */
  160 #define MTD_IMR_RSRVD2          0xfff80000      /* Bits [31:19] are reserved */
  161 #define MTD_IMR_PDF             0x00040000      /* Parallel Detection Fault */
  162 #define MTD_IMR_RFCON           0x00020000      /* Receive FCtl xON packet */
  163 #define MRD_IMR_RFCOFF          0x00010000      /* Receive FCtl xOFF packet */
  164 #define MTD_IMR_LSC             0x00008000      /* Link Status Change */
  165 #define MTD_IMR_ANC             0x00004000      /* Autonegotiation complete */
  166 #define MTD_IMR_FBUSERR         0x00002000      /* Fatal bus error */
  167 #define MTD_IMR_RSRVD1          0x00001800      /* Bits [12:11] are reserved */
  168 #define MTD_IMR_TXUNDER         0x00000400      /* Transmit underflow */
  169 #define MTD_IMR_RXOVER          0x00000200      /* Receive overflow */
  170 #define MTD_IMR_TXEARLY         0x00000100      /* Transmit early int */
  171 #define MTD_IMR_RXEARLY         0x00000080      /* Receive early int */
  172 #define MTD_IMR_CTROVER         0x00000040      /* Counter overflow */
  173 #define MTD_IMR_RXBUN           0x00000020      /* Receive buffer n/a */
  174 #define MTD_IMR_TXBUN           0x00000010      /* Transmit buffer n/a */
  175 #define MTD_IMR_TXIRQ           0x00000008      /* Transmit interrupt */
  176 #define MTD_IMR_RXIRQ           0x00000004      /* Receive interrupt */
  177 #define MTD_IMR_RXERR           0x00000002      /* Receive error */
  178 #define MTD_IMR_RSRVD0          0x00000001      /* Bit 1 is reserved */
  179 
  180 #define MTD_IMR_MASK            MTD_IMR_TXIRQ | MTD_IMR_RXIRQ | MTD_IMR_RXBUN \
  181                                 | MTD_IMR_RXERR | MTD_IMR_PDF \
  182                                 | MTD_IMR_FBUSERR | MTD_IMR_TXUNDER \
  183                                 | MTD_IMR_RXOVER \
  184 
  185 /* Tally counters for CRC and MPA */
  186 #define MTD_TALLY_CRCOVER       0x80000000      /* CRC tally ctr overflow */
  187 #define MTD_TALLY_NCRCERR       0x7fff0000      /* Number of CRC errors */
  188 #define MTD_TALLY_MPAOVER       0x00008000      /* MPA tally ctr overflow */
  189 #define MTD_TALLY_NMPAERR       0x00007fff      /* Number of MPA errors */
  190 
  191 /* Tally counters for Transmit Status Report */
  192 #define MTD_TSR_NABORT          0xff000000      /* Number of aborted packets */
  193 #define MTD_TSR_NLCOL           0x00ff0000      /* Number of late collisions */
  194 #define MTD_TSR_NRETRY          0x0000ffff      /* Number of transm. retries */
  195 
  196 /* Wake-Up Events Control and Status Register */
  197 #define MTD_WUECSR_RSRVD1       0xfffff000      /* Bits [31:12] are reserved */
  198 #define MTD_WUECSR_FRCWKUP      0x00000800      /* Force Wake Up LAN mode */
  199 #define MTD_WUECSR_STATCHG      0x00000400      /* Status Change enable */
  200 #define MTD_WUECSR_AGU          0x00000200      /* Accept Global Unicast */
  201 #define MTD_WUECSR_WUPOP        0x00000100      /* Wake Up Pin Output Pattern */
  202 #define MTD_WUECSR_WUPPROP      0x00000080      /* Wake Up Pin Property */
  203 #define MTD_WUECSR_LCD          0x00000040      /* Link Change Detected */
  204 #define MTD_WUECSR_MPR          0x00000020      /* Magic Packet Received */
  205 #define MTD_WUECSR_WUFR         0x00000010      /* Wake Up Frame Received */
  206 #define MTD_WUECSR_RSRVD0       0x00000008      /* Unspecified! */
  207 #define MTD_WUECSR_LCE          0x00000004      /* Link Change Enable */
  208 #define MTD_WUECSR_MPE          0x00000002      /* Magic Packet Enable */
  209 #define MTD_WUECSR_WUFE         0x00000001      /* Wake Up Frame Enable */
  210 
  211 
  212 /*
  213  * Note: We should probably move the following info to a new PHY driver.
  214  * Or maybe remove them anyway, but we might need them someday so leave them
  215  *  here for now.
  216  */
  217 /* PHY Control and Status Register */
  218 #define MTD_PHY_T4              0x80000000      /* T4 operation capability */
  219 #define MTD_PHY_TXFD            0x40000000      /* 100-TX Full Duplex cap. */
  220 #define MTD_PHY_TXHD            0x20000000      /* 100-TX Half Duplex cap. */
  221 #define MTD_PHY_TPFD            0x10000000      /* 10-TP Full Duplex cap. */
  222 #define MTD_PHY_TPHD            0x08000000      /* 10-TP Half Duplex cap. */
  223 #define MTD_PHY_RSRVD2          0x07c00000      /* Bits [16:22] are reserved */
  224 #define MTD_PHY_ANC             0x00200000      /* Autonegotiation complete */
  225 #define MTD_PHY_RMTFAULT        0x00100000      /* Remote fault */
  226 #define MTD_PHY_AUTONEG         0x00080000      /* Autonegotiation */
  227 #define MTD_PHY_LINK            0x00040000      /* Link status */
  228 #define MTD_PHY_JABBER          0x00020000      /* Jabber detected */
  229 #define MTD_PHY_EXTREG          0x00010000      /* Extended register exists */
  230 #define MTD_PHY_RESET           0x00008000      /* Reset PHY registers */
  231 #define MTD_PHY_LPBACK          0x00004000      /* Loopback select */
  232 #define MTD_PHY_SPEED           0x00002000      /* Speed select */
  233 #define MTD_PHY_ANEN            0x00001000      /* Autoneg enable */
  234 #define MTD_PHY_POWDWN          0x00000800      /* Power-down */
  235 #define MTD_PHY_RSRVD1          0x00000400      /* Bit 10 is reserved */
  236 #define MTD_PHY_RESTAN          0x00000200      /* Restart Autoneg */
  237 #define MTD_PHY_DUPLEX          0x00000100      /* Duplex select */
  238 #define MTD_PHY_COLTST          0x00000080      /* Collision test enable */
  239 #define MTD_PHY_RSRVD0          0x0000007f      /* Bits [6:0] are reserved */
  240 
  241 /* OUI register */
  242 #define MTD_OUI_HIGH            0xfc000000      /* OUI High register (0x34) */
  243 #define MTD_OUI_PARTNO          0x02f00000      /* Part number (0x0) */
  244 #define MTD_OUI_REVISION        0x000f0000      /* Revision number (0x0) */
  245 #define MTD_OUI_LOW             0x0000ffff      /* OUI Low register (0x0302) */
  246 
  247 /* Link Partner Ability Register and Advertisement Register */
  248 #define MTD_LPAR_LP_NEXTPAGE    0x80000000      /* Next page */
  249 #define MTD_LPAR_LP_ACK         0x40000000      /* Acknowledge */
  250 #define MTD_LPAR_LP_RMTFAULT    0x20000000      /* Remote fault detected */
  251 #define MTD_LPAR_RSRVD1         0x1c000000      /* Bits [28:26] are reserved */
  252 #define MTD_LPAR_LP_T4          0x02000000      /* Capable of T4 operation */
  253 #define MTD_LPAR_LP_TXFD        0x01000000      /* Cap. of 100-TX Full Duplex */
  254 #define MTD_LPAR_LP_TXHD        0x00800000      /* Cap. of 100-TX Half Duplex */
  255 #define MTD_LPAR_LP_TPFD        0x00400000      /* Cap. of 10-TP Full Duplex */
  256 #define MTD_LPAR_LP_TPHD        0x00200000      /* Cap. of 10-TP Half Duplex */
  257 #define MTD_LPAR_SELECTOR1      0x001f0000      /* Selector field 1 */
  258 #define MTD_LPAR_AD_NEXTPAGE    0x00008000      /* Next page */
  259 #define MTD_LPAR_AD_ACK         0x00004000      /* Acknowledge */
  260 #define MTD_LPAR_AD_RMTFAULT    0x00002000      /* Remote fault detected */
  261 #define MTD_LPAR_RSRVD0         0x00001c00      /* Bits [12:10] are reserved */
  262 #define MTD_LPAR_AD_T4          0x00000200      /* Capable of T4 operation */
  263 #define MTD_LPAR_AD_TXFD        0x00000100      /* Cap. of 100-TX Full Duplex */
  264 #define MTD_LPAR_AD_TXHD        0x00000080      /* Cap. of 100-TX Half Duplex */
  265 #define MTD_LPAR_AD_TPFD        0x00000040      /* Cap. of 10-TP Full Duplex */
  266 #define MTD_LPAR_AD_TPHD        0x00000020      /* Cap. of 10-TP Half Duplex */
  267 #define MTD_LPAR_SELECTOR0      0x0000001f      /* Selector field 0 */

Cache object: 3aacf28acf21e28e5929e96d71999342


[ source navigation ] [ diff markup ] [ identifier search ] [ freetext search ] [ file search ] [ list types ] [ track identifier ]


This page is part of the FreeBSD/Linux Linux Kernel Cross-Reference, and was automatically generated using a modified version of the LXR engine.