Annotation of XNU/iokit/Drivers/network/drvMaceEnet/MaceEnetRegisters.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Copyright (c) 1998-2000 Apple Computer, Inc. All rights reserved.
                      3:  *
                      4:  * @APPLE_LICENSE_HEADER_START@
                      5:  * 
                      6:  * The contents of this file constitute Original Code as defined in and
                      7:  * are subject to the Apple Public Source License Version 1.1 (the
                      8:  * "License").  You may not use this file except in compliance with the
                      9:  * License.  Please obtain a copy of the License at
                     10:  * http://www.apple.com/publicsource and read it before using this file.
                     11:  * 
                     12:  * This Original Code and all software distributed under the License are
                     13:  * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
                     14:  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
                     15:  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
                     16:  * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
                     17:  * License for the specific language governing rights and limitations
                     18:  * under the License.
                     19:  * 
                     20:  * @APPLE_LICENSE_HEADER_END@
                     21:  */
                     22: /*
                     23:  * Copyright (c) 1995-1996 NeXT Software, Inc.
                     24:  *
                     25:  * Interface definition for the Mace Ethernet controller. 
                     26:  *
                     27:  * HISTORY
                     28:  *
                     29:  * 04-Nov-97   
                     30:  *     Created.
                     31:  */
                     32: 
                     33: #ifndef _MACEENETREGISTERS_H
                     34: #define _MACEENETREGISTERS_H
                     35: 
                     36: // ---------------------------------------------------------------------------------------------
                     37: //     Mace and GC I/O Addresses
                     38: // ---------------------------------------------------------------------------------------------
                     39: #define kTxDMABaseOffset               0x08200                 // offset from I/O Space Base address
                     40: #define kRxDMABaseOffset               0x08300
                     41: #define kControllerBaseOffset          0x11000
                     42: #define kControllerROMOffset           0x19000 
                     43: 
                     44: 
                     45: // ---------------------------------------------------------------------------------------------
                     46: //     Mace Register Numbers & Bit Assignments
                     47: // ---------------------------------------------------------------------------------------------
                     48: /*
                     49:  * Chip Revisions..
                     50:  */
                     51: 
                     52: #define        kMaceRevisionB0         0x0940
                     53: #define        kMaceRevisionA2         0x0941
                     54: 
                     55: /* xmtfc */
                     56: #define kXmtFC                 0x0020                  /* Transmit Frame Control               */
                     57: #define kXmtFCDRtry            0X80                    /* - Disable Retry                      */
                     58: #define kXmtFCDXmtFCS          0x08                    /* - Disable Transmit FCS               */
                     59: #define kXmtFCAPadXmt          0x01                    /* - Auto PAD Transmit                  */
                     60: 
                     61: /* xmtfs */
                     62: #define kXmtFS                 0x0030                  /* Transmit Frame Status                */
                     63: #define kXmtFSXmtSV            0x80                    /* - Transmit Status Valid              */
                     64: #define kXmtFSUFlo             0x40                    /* - Transmit Underflow                 */
                     65: #define kXmtFSLCol             0x20                    /* - Transmit late collision            */
                     66: #define kXmtFSMore             0x10                    /* - Transmit < 1 retry                 */
                     67: #define kXmtFSOne              0x08                    /* - Transmit single retry              */
                     68: #define kXmtFSDefer            0x04                    /* - Transmit deferred                  */
                     69: #define kXmtFSLCar             0x02                    /* - Transmit lost carrier              */
                     70: #define kXmtFSRtry             0x01                    /* - Transmit Unsuccessful              */
                     71: 
                     72: /* xmtrc */
                     73: #define kXmtRC                 0x0040                  /* Transmit Retry Count                 */
                     74: #define kXmtRCExDef            0x80                    /* - ?                                  */
                     75: #define kXmtRCXmrRC            0x0F                    /* - Transmit retry count               */
                     76: 
                     77: /* rcvfc */
                     78: #define kRcvFC                 0x0050                  /* Receive Frame Control                */
                     79: #define kRcvFCLLRcv            0x08                    /* - ?                                  */
                     80: #define kRcvFCMR               0x04                    /* - Match/Reject (not implemented)     */
                     81: #define kRcvFCAStrpRcv         0x01                    /* - Auto Strip Receive Enable          */
                     82: 
                     83: /* rcvfs */
                     84: #define kRcvFS0                        0x0060                  /* Receive Frame Status - Byte 0        */
                     85: #define kRcvFS0RcvCnt          0xFF                    /* - Receive Msg Byte Count (7:0)       */
                     86: 
                     87: #define kRcvFS1                        0x0060                  /* Receive Frame Status - Byte 1        */
                     88: #define kRcvFS1OFlo            0x80                    /* - Receive Overflow                   */
                     89: #define kRcvFS1Clsn            0x40                    /* - Receive Collision                  */
                     90: #define kRcvFS1Fram            0x20                    /* - Receive Framming Error             */
                     91: #define kRcvFS1FCS             0x10                    /* - Receive Frame Check Error          */
                     92: #define kRcvFS1RcvCnt          0x0f                    /* - Receive Msg Byte Count (11:8)      */
                     93: 
                     94: 
                     95: #define kRcvFS2                        0x0060                  /* Receive Frame Status - Byte 2        */
                     96: #define kRcvFS2RntPC           0xFF                    /* - Runt Packet Count                  */
                     97: 
                     98: #define kRcvFS3                        0x0060                  /* Receive Frame Status - Byte 3        */
                     99: #define kRcvFS3RcvCC           0xFF                    /* Receive Collision Count              */
                    100: 
                    101: /* fifofc */
                    102: #define kFifoFC                        0x0070                  /* FIFO Frame Count                     */
                    103: #define kFifoFCXFW             0xc0                    /* - ?                                  */
                    104: #define        kFifoFCXFW8             0x00                    /* - ?                                  */
                    105: #define        kFifoFCXFW16            0x40                    /* - ?                                  */
                    106: #define        kFifoFCXFW32            0x80                    /* - ?                                  */
                    107:  
                    108: #define kFifoFCRFW             0x30                    /* - ?                                  */
                    109: #define        kFifoFCRFW16            0x00                    /* - ?                                  */
                    110: #define        kFifoFCRFW32            0x10                    /* - ?                                  */
                    111: #define        kFifoFCRFW64            0x20                    /* - ?                                  */
                    112: #define kFifoFCXFWU            0x08                    /* - ?                                  */      
                    113: #define kFifoFCRFWU            0x04                    /* - ?                                  */
                    114: #define kFifoFCXBRst           0x02                    /* - ?                                  */
                    115: #define kFifoFCRBRst           0x01                    /* - ?                                  */
                    116: 
                    117: 
                    118: /* ir */
                    119: #define kIntReg                        0x0080                  /* Interrupt Register                   */
                    120: #define kIntRegJab             0x80                    /* - Jabber Error                       */
                    121: #define kIntRegBabl            0x40                    /* - Babble Error                       */
                    122: #define kIntRegCErr            0x20                    /* - Collision Error                    */
                    123: #define kIntRegRcvCCO          0x10                    /* - Receive Collision Count Overflow   */      
                    124: #define kIntRegRntPCO          0x08                    /* - Runt Packet Count Overflow         */
                    125: #define kIntRegMPCO            0x04                    /* - Missed Packet Count Overflow       */
                    126: #define kIntRegRcvInt          0x02                    /* - Receive Interrupt                  */
                    127: #define kIntRegXmtInt          0x01                    /* - Transmit Interrupt                 */
                    128: 
                    129: /* imr */
                    130: #define kIntMask               0x0090                  /* Interrupt Mask Register              */
                    131: #define kIntMaskJab                    0x80                    /* - Mask Jabber Error Int              */
                    132: #define kIntMaskBabl                   0x40                    /* - Mask Babble Error Int              */
                    133: #define kIntMaskCErr           0x20                    /* - Mask Collision Error Int           */
                    134: #define kIntMaskRcvCCO         0x10                    /* - Mask Rcv Coll Ctr Overflow Int     */
                    135: #define kIntMaskRntPCO                 0x08                    /* - Mask Runt Packet Ctr Overflow Int  */
                    136: #define kIntMaskMPCO                   0x04                    /* - Mask Missed Pkt Ctr Overflow Int   */
                    137: #define kIntMaskRcvInt                 0x02                    /* - Mask Receive Int                   */
                    138: #define kIntMaskXmtInt                 0x01                    /* - Mask Transmit Int                  */
                    139: 
                    140: /* pr */
                    141: #define kPollReg               0x00A0                  /* Poll Register                        */
                    142: #define kPollRegXmtSV                  0x80                    /* - Transmit Status Valid              */
                    143: #define kPollRegTDTReq         0x40                    /* - Transmit Data Transfer Request     */
                    144: #define kPollRegRDTReq         0x20                    /* - Receive Data Transfer Request      */
                    145: 
                    146: /* biucc */
                    147: #define kBIUCC                 0x00B0                  /* BUI Configuration Control            */
                    148: #define kBIUCCBSwp             0x40                    /* - Byte Swap Enable                   */
                    149: #define kBIUCCXmtSP            0x30                    /* - Transmit Start Point:              */
                    150: #define kBIUCCXmtSP04          0x00                    /* - 00b = 4 Bytes                      */      
                    151: #define kBIUCCXmtSP16          0x10                    /* - 01b = 16 Bytes                     */
                    152: #define kBIUCCXmtSP64          0x20                    /* - 10b = 64 Bytes                     */
                    153: #define kBIUCCXmtSP112         0x30                    /* - 11b = 112 Bytes                    */
                    154: #define kBIUCCSWRst            0x01                    /* Software Reset                       */
                    155: 
                    156: /* fifocc */
                    157: #define kFifoCC                        0x00C0                  /* FIFO Configuration Control           */
                    158: #define kFifoCCXmtFW           0xC0                    /* - Transmit FIFO Watermark:           */
                    159: #define kFifoCCXmtFW08         0x00                    /* - 00b = 8 Write Cycles               */
                    160: #define kFifoCCXmtFW16         0x40                    /* - 01b = 16 Write Cycles              */
                    161: #define kFifoCCXmtFW32         0x80                    /* - 10b = 32 Write Cycles              */
                    162: 
                    163: #define kFifoCCRcvFW           0x30                    /* - Receive FIFO Watermark:            */
                    164: #define kFifoCCRcvFW16         0x00                    /* - 00b = 16 Bytes                     */
                    165: #define kFifoCCRcvFW32         0x10                    /* - 01b = 32 Bytes                     */
                    166: #define kFifoCCRcvFW64         0x20                    /* - 10b = 64 Bytes                     */
                    167: 
                    168: #define kFifoCCXmtFWRst        0x08                    /* - Transmit FIFO Watermark Reset      */
                    169: #define kFifoCCRcvFWRst        0x04                    /* - Receive FIFO Watermark Reset       */
                    170: #define kFifoCCXmtBRst         0x02                    /* - Transmit Burst Enable              */
                    171: #define kFifoCCRcvBRst         0x01                    /* - Receive Burst Enable               */
                    172: 
                    173: /* maccc */
                    174: #define kMacCC                 0x00D0                  /* MAC Configuration Control            */
                    175: #define kMacCCProm             0x80                    /* - Promiscuous Mode Enable            */
                    176: #define kMacCCDXmt2PD          0x40                    /* - Disable Transmit Two Part Deferral */
                    177: #define kMacCCEMBA             0x20                    /* - Enable Modified Backoff Algorithm  */
                    178: #define kMacCCDRcvPA           0x08                    /* - ?                                  */
                    179: #define kMacCCDRcvBC                   0x04                    /* - ?                                  */
                    180: #define kMacCCEnXmt            0x02                    /* - Transmit Enable                    */
                    181: #define kMacCCEnRcv            0x01                    /* - Receive Enable                     */
                    182: 
                    183: /* plscc */
                    184: #define kPLSCC                 0x00E0                  /* PLS Configuration Control            */
                    185: #define kPLSCCXmtSel           0x08                    /* - Transmit Mode Select               */
                    186: #define kPLSCCPortSel          0x06                    /* - Port Select:                       */
                    187: #define kPLSCCPortSelAUI               0x00                    /* - 00b = AUI                          */
                    188: #define kPLSCCPortSelTenBase           0x02                    /* - 01b = 10BaseT                      */
                    189: #define kPLSCCPortSelDAI        0x04                   /* - 10b = DAI                          */
                    190: #define kPLSCCPortSelGPSI              0x06                    /* - 11b = GPSI                         */
                    191: #define kPLSCCEnSts                    0x01                    /* - Enable Status                      */                      
                    192: 
                    193: /* phycc */
                    194: #define kPHYCC                 0x00F0                  /* PHY Configuration Control            */
                    195: #define kPHYCCLnkFL            0x80                    /* - ?                                  */
                    196: #define kPHYCCDLnkTst          0x40                    /* - ?                                  */
                    197: #define kPHYCCRcvPol           0x20                    /* - ?                                  */
                    198: #define kPHYCCDAPC             0x10                    /* - ?                                  */
                    199: #define kPHYCCLRT              0x08                    /* - ?                                  */
                    200: #define kPHYCCASel             0x04                    /* - ?                                  */
                    201: #define kPHYCCRWake            0x02                    /* - ?                                  */
                    202: #define kPHYCCAWake            0x01                    /* - ?                                  */
                    203: 
                    204: #define kMaceChipId0           0x0100                  /* MACE Chip ID Register (7:0)          */
                    205: #define kMaceChipId1           0x0110                  /* MACE Chip ID Register (15:8)         */
                    206: 
                    207: /* iac */
                    208: #define kIAC                   0x0120                  /* Internal Address Configuration       */
                    209: #define kIACAddrChg            0x80                    /* - ?                                  */
                    210: #define kIACPhyAddr            0x04                    /* - Physical Address Reset             */
                    211: #define kIACLogAddr            0x02                    /* - Logical Address Reset              */
                    212: 
                    213: 
                    214: /* ladrf */
                    215: #define kLADRF                 0x0140                  /* Logical Address Filter - 8 Bytes     */
                    216: 
                    217: /* padr */
                    218: #define kPADR                  0x0150                  /* Physical Address Filter - 6 Bytes    */
                    219: 
                    220: /* kMPC */                     
                    221: #define        kMPC                    0x0180                  /* Missed Packet Count                  */
                    222: 
                    223: /* utr */
                    224: #define kUTR                   0x01D0                  /* User Test Register                   */
                    225: #define kUTRRTRE               0x80                    /* - Reserved Test Register Enable      */
                    226: #define kUTRRTRD               0x40                    /* - Reserved Test Register Disable     */
                    227: #define kUTRRPA                0x20                    /* - Runt Packet Accept                 */
                    228: #define kUTRFColl              0x10                    /* - Force Collision                    */
                    229: #define kUTRRcvFCS                     0x08                    /* - Receive FCS Enable                 */
                    230: 
                    231: #define kUTRLoop               0x06                    /* - Loopback Control:                  */
                    232: #define kUTRLoopNone           0x00                    /* - 00b = None                         */
                    233: #define kUTRLoopExt            0x02                    /* - 01b = External                     */
                    234: #define kUTRLoopInt            0x04                    /* - 10b = Internal (excludes MENDEC)   */
                    235: #define kUTRLoopIntM           0x06                    /* - 11b = Internal (includes MENDEC)   */
                    236: 
                    237: 
                    238: #define TX_RING_LENGTH         (32+1)
                    239: #define RX_RING_LENGTH         (32+1)
                    240: 
                    241: #define NETWORK_BUFSIZE                (ETHERMAXPACKET + ETHERCRC + 8)
                    242: #define TRANSMIT_QUEUE_SIZE            128
                    243: 
                    244: #define WATCHDOG_TIMER_MS      500
                    245: #define TX_KDB_TIMEOUT         1000
                    246: 
                    247: #define TRANSMIT_QUIESCE_uS    200
                    248: #define RECEIVE_QUIESCE_uS     1500
                    249: 
                    250: enum
                    251: {
                    252:     kIRQEnetDev   = 0,
                    253:     kIRQEnetTxDMA = 1,
                    254:     kIRQEnetRxDMA = 2
                    255: };
                    256: 
                    257: enum
                    258: {
                    259:        MEMORY_MAP_ENET_INDEX   = 0,
                    260:        MEMORY_MAP_TXDMA_INDEX  = 1,
                    261:        MEMORY_MAP_RXDMA_INDEX  = 2,
                    262:        MEMORY_MAP_COUNT                = 3
                    263: };
                    264: 
                    265: #endif /* !_MACEENETREGISTERS_H */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.