Annotation of XNU/iokit/Drivers/network/drvPPCBMac/BMacEnetRegisters.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) 1998-1999 by Apple Computer, Inc., All rights reserved.
                     24:  *
                     25:  * Interface definition for the BigMac Ethernet controller. 
                     26:  *
                     27:  * HISTORY
                     28:  *
                     29:  */
                     30: 
                     31: #ifndef _BMACENETREGISTERS_H
                     32: #define _BMACENETREGISTERS_H
                     33: 
                     34: // ---------------------------------------------------------------------------------------------
                     35: // Heathrow (F)eature (C)ontrol (R)egister Addresses
                     36: // ---------------------------------------------------------------------------------------------
                     37: #define kHeathrowFCR                   0x0038                  // FCR offset from Heathrow Base Address
                     38: #define kEnetEnabledBits               0x60000000              // mask to enable Enet Xcvr/Controller
                     39: #define kResetEnetCell                 0x80000000              // mask used to reset Enet cell
                     40: #define kClearResetEnetCell            0x7fffffff              // mask used to clear reset Enet cell
                     41: #define kDisableEnet                   0x1fffffff              // mask to disable Enet Xcvr/Controller
                     42: 
                     43: 
                     44: // ---------------------------------------------------------------------------------------------
                     45: //     BMAC & Heathrow I/O Addresses
                     46: // ---------------------------------------------------------------------------------------------
                     47: #define kTxDMABaseOffset               0x08200                 // offset from Heathrow Base address
                     48: #define kRxDMABaseOffset               0x08300
                     49: #define kControllerBaseOffset          0x11000 
                     50: 
                     51: 
                     52: // ---------------------------------------------------------------------------------------------
                     53: //     BigMac Register Numbers & Bit Assignments
                     54: // ---------------------------------------------------------------------------------------------
                     55: #define kXIFC                          0x0000 
                     56: #define        kTxOutputEnable                 0x0001          
                     57: #define        kMIILoopbackBits                0x0006          
                     58: #define        kMIIBufferEnable                0x0008          
                     59: #define        kSQETestEnable                  0x0010          
                     60: #define kSTAT                          0x0200
                     61: #define kINTDISABLE                    0x0210
                     62: #define        kIntFrameReceived               0x0001          
                     63: #define        kIntRxFrameCntExp               0x0002          
                     64: #define        kIntRxAlignCntExp               0x0004          
                     65: #define        kIntRxCRCCntExp                 0x0008          
                     66: #define        kIntRxLenCntExp                 0x0010          
                     67: #define        kIntRxOverFlow                  0x0020          
                     68: #define        kIntRxCodeViolation             0x0040          
                     69: #define        kIntSQETestError                0x0080          
                     70: #define        kIntFrameSent                   0x0100          
                     71: #define        kIntTxUnderrun                  0x0200          
                     72: #define        kIntTxMaxSizeError              0x0400          
                     73: #define        kIntTxNormalCollExp             0x0800          
                     74: #define        kIntTxExcessCollExp             0x1000          
                     75: #define        kIntTxLateCollExp               0x2000          
                     76: #define        kIntTxNetworkCollExp            0x4000          
                     77: #define        kIntTxDeferTimerExp             0x8000
                     78: #define        kNormalIntEvents                ~(0xFFFF & ( kIntFrameSent | kIntTxUnderrun) )
                     79: #if EXTRA_INTERRUPTS
                     80:        #define kXtraInterrupts         ~(0xFFFF & (kIntFrameReceived | kIntRxFrameCntExp \
                     81:                                                                        | kIntFrameSent | kIntTxUnderrun | kIntFrameSent) )
                     82: #endif
                     83: #define        kNoEventsMask           0xFFFF          
                     84: #define kTXRST                         0x0420                          
                     85: #define        kTxResetBit                     0x0001          
                     86: #define kTXCFG                         0x0430                          
                     87: #define        kTxMACEnable            0x0001
                     88: #define kTxThreshold           0x0004
                     89: #define kTxSlowDown                    0x0020
                     90: #define kTxIgnoreCollision             0x0040
                     91: #define kTxDisableFCS                  0x0080
                     92: #define kTxNoBackoff                   0x0100
                     93: #define kTxFullDuplex                  0x0200                          
                     94: #define        kTxNeverGiveUp                  0x0400  
                     95: #define kIPG1                          0x0440                  
                     96: #define kIPG2                          0x0450                          
                     97: #define kALIMIT                                0x0460                          
                     98: #define kSLOT                          0x0470                          
                     99: #define kPALEN                         0x0480                  
                    100: #define kPAPAT                         0x0490                          
                    101: #define kTXSFD                         0x04A0          
                    102: #define kJAM                           0x04B0                  
                    103: #define kTXMAX                         0x04C0          
                    104: #define kTXMIN                         0x04D0                  
                    105: #define kPAREG                         0x04E0                          
                    106: #define kDCNT                          0x04F0                          
                    107: #define kNCCNT                         0x0500                          
                    108: #define kNTCNT                         0x0510                  
                    109: #define kEXCNT                         0x0520                  
                    110: #define kLTCNT                         0x0530                          
                    111: #define kRSEED                         0x0540          
                    112: #define kTXSM                          0x0550                          
                    113: #define kRXRST                         0x0620                          
                    114: #define        kRxResetValue                   0x0000          
                    115: #define kRXCFG                         0x0630                                  
                    116: #define        kRxMACEnable                    0x0001          
                    117: #define        kReservedValue                  0x0004          
                    118: #define        kRxPromiscEnable                0x0040          
                    119: #define        kRxCRCEnable                    0x0100          
                    120: #define        kRxRejectOwnPackets             0x0200
                    121: #define        kRxHashFilterEnable             0x0800          
                    122: #define        kRxAddrFilterEnable             0x1000          
                    123: #define kRXMAX                         0x0640                          
                    124: #define kRXMIN                         0x0650                  
                    125: #define kMADD2                         0x0660                  
                    126: #define kMADD1                         0x0670                  
                    127: #define kMADD0                         0x0680                          
                    128: #define kFRCNT                         0x0690                          
                    129: #define kLECNT                         0x06A0                  
                    130: #define kAECNT                         0x06B0                          
                    131: #define kFECNT                         0x06C0                          
                    132: #define kRXSM                          0x06D0                          
                    133: #define kRXCV                          0x06E0                  
                    134: #define kHASH3                         0x0700                          
                    135: #define kHASH2                         0x0710                                  
                    136: #define kHASH1                         0x0720                                  
                    137: #define kHASH0                         0x0730
                    138: #define kAFR2                          0x0740
                    139: #define kAFR1                          0x0750  
                    140: #define kAFR0                          0x0760  
                    141: #define kAFCR                          0x0770  
                    142: #define        kEnableAllCompares              0x0fff
                    143: #define kTXFIFOCSR                     0x0100  
                    144: #define        kTxFIFOEnable                   0x0001          
                    145: #define        kTxFIFO128                      0x0000
                    146: #define kTxFIFO2048                     0x001e         
                    147: #define kTXTH                          0x0110                  
                    148: #define kRXFIFOCSR                     0x0120                          
                    149: #define        kRxFIFOEnable                   kTxFIFOEnable           
                    150: #define        kRxFIFO128                      kTxFIFO128
                    151: #define kRxFIFO2048                     kTxFIFO2048                    
                    152: #define kMEMADD                                0x0130                          
                    153: #define kMEMDATAHI                     0x0140                  
                    154: #define kMEMDATALO                     0x0150                          
                    155: #define kXCVRIF                                0x0160                          
                    156: #define        kCOLActiveLow                   0x0002
                    157: #define        kSerialMode                     0x0004
                    158: #define        kClkBit                         0x0008
                    159: #define        kLinkStatus                     0x0100
                    160: #define kCHIPID                                0x0170
                    161: #define kCHIPID_Heathrow               0xB0
                    162: #define kCHIPID_Paddington             0xC0
                    163: #define kCHIPID_PaddingtonXmitStreaming 0xC4                           
                    164: 
                    165: #define kMIFCSR                                0x0180
                    166: #define kMIFCSR_Clock                  0x0001
                    167: #define kMIFCSR_DataOut                        0x0002
                    168: #define kMIFCSR_DataOutEnable          0x0004
                    169: #define kMIFCSR_DataIn                 0x0008                          
                    170: #define kSROMCSR                       0x0190                          
                    171: #define kTXPNTR                                0x01A0                          
                    172: #define kRXPNTR                                0x01B0                          
                    173: 
                    174: // ---------------------------------------------------------------------------------------------
                    175: //     Misc. Bit definitions for BMac Status word
                    176: // ---------------------------------------------------------------------------------------------
                    177: #define kRxAbortBit                    0x8000                  // status bit in BMac status for rx packets
                    178: #define kRxLengthMask          0x3FFF                  // bits that determine length of rx packets
                    179: 
                    180: 
                    181: #define TX_RING_LENGTH         33
                    182: #define RX_RING_LENGTH         33
                    183: 
                    184: #define TX_PKTS_PER_INT                10
                    185: 
                    186: #define NETWORK_BUFSIZE                (ETHERMAXPACKET + ETHERCRC + 2)
                    187: #define TRANSMIT_QUEUE_SIZE            1024
                    188: 
                    189: #define WATCHDOG_TIMER_MS      500
                    190: #define TX_KDB_TIMEOUT         1000
                    191: 
                    192: #define TRANSMIT_QUIESCE_uS    200
                    193: #define RECEIVE_QUIESCE_uS     1500
                    194: 
                    195: 
                    196: enum
                    197: {
                    198:     kIRQEnetDev   = 0,
                    199:     kIRQEnetTxDMA = 1,
                    200:     kIRQEnetRxDMA = 2
                    201: };
                    202: 
                    203: enum
                    204: {
                    205:        MEMORY_MAP_ENET_INDEX           = 0,
                    206:        MEMORY_MAP_TXDMA_INDEX          = 1,
                    207:        MEMORY_MAP_RXDMA_INDEX          = 2,
                    208:        MEMORY_MAP_HEATHROW_INDEX       = 3,
                    209:        MEMORY_MAP_COUNT                        = 4
                    210: };
                    211: 
                    212: #endif /* !_BMACENETREGISTERS_H */

unix.superglobalmegacorp.com

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