Annotation of XNU/iokit/Drivers/network/drvPPCUniN/UniNEnetRegisters.h, revision 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 Apple Computer
        !            24:  *
        !            25:  * Interface definition for the Sun GEM (UniN) Ethernet controller.
        !            26:  *
        !            27:  *
        !            28:  */
        !            29: 
        !            30: /*
        !            31:  *      Miscellaneous defines...
        !            32:  */
        !            33: #define CACHE_LINE_SIZE         32                                              /* Bytes */
        !            34: 
        !            35: #define RX_RING_LENGTH          128                                             /* Packet descriptors */
        !            36: 
        !            37: #define TX_RING_LENGTH          128                                             /* Packet descriptors */
        !            38: #define TX_MAX_MBUFS            (TX_RING_LENGTH / 2)
        !            39: 
        !            40: #define NETWORK_BUFSIZE         (((ETHERMAXPACKET + ETHERCRC) + 7) & ~7)
        !            41: 
        !            42: #define TRANSMIT_QUEUE_SIZE     256
        !            43: 
        !            44: #define WATCHDOG_TIMER_MS       300
        !            45: #define TX_KDB_TIMEOUT          1000
        !            46: 
        !            47: #define PCI_PERIOD_33MHz        30
        !            48: #define PCI_PERIOD_66MHz        15
        !            49: #define RX_INT_LATENCY_uS       250             
        !            50: 
        !            51: /*
        !            52:  *      Register lengths 
        !            53:  */
        !            54: #define kGEMLength_1                            0x00010000
        !            55: #define kGEMLength_2                            0x00020000
        !            56: #define kGEMLength_4                            0x00040000
        !            57: 
        !            58: 
        !            59: /*
        !            60:  *      Receive/Transmit descriptor
        !            61:  *
        !            62:  */
        !            63: typedef struct _GEMRxDescriptor
        !            64: {
        !            65:     u_int16_t           tcpPseudoChecksum;
        !            66:     u_int16_t           frameDataSize;
        !            67:     u_int32_t           flags;
        !            68:     u_int32_t           bufferAddrLo;
        !            69:     u_int32_t           bufferAddrHi;
        !            70: } GEMRxDescriptor;
        !            71: 
        !            72: /*
        !            73:  *    Note: Own is in the high bit of frameDataSize field
        !            74:  */
        !            75: #define kGEMRxDescFrameSize_Mask                0x7FFF
        !            76: #define kGEMRxDescFrameSize_Own                 0x8000
        !            77: 
        !            78: /*
        !            79:  * Rx flags field
        !            80:  */
        !            81: #define kGEMRxDescFlags_HashValueBit            0x00001000
        !            82: #define kGEMRxDescFlags_HashValueMask           0x0FFFF000
        !            83: #define kGEMRxDescFlags_HashPass                0x10000000
        !            84: #define kGEMRxDescFlags_AlternateAddr           0x20000000
        !            85: #define kGEMRxDescFlags_BadCRC                  0x40000000
        !            86: 
        !            87: 
        !            88: typedef struct _GEMTxDescriptor
        !            89: {
        !            90:     u_int32_t           flags0;
        !            91:     u_int32_t           flags1;
        !            92:     u_int32_t           bufferAddrLo;
        !            93:     u_int32_t           bufferAddrHi;
        !            94: } GEMTxDescriptor;
        !            95: 
        !            96: /*
        !            97:  * 
        !            98:  */
        !            99: #define kGEMTxDescFlags0_BufferSizeMask         0x00007FFF
        !           100: #define kGEMTxDescFlags0_BufferSizeBit          0x00000001
        !           101: #define kGEMTxDescFlags0_ChecksumStartMask      0x00FF8000
        !           102: #define kGEMTxDescFlags0_ChecksumStartBit       0x00008000
        !           103: #define kGEMTxDescFlags0_ChecksumStuffMask      0x1F000000
        !           104: #define kGEMTxDescFlags0_ChecksupStuffBit       0x01000000
        !           105: #define kGEMTxDescFlags0_ChecksumEnable         0x20000000
        !           106: #define kGEMTxDescFlags0_EndOfFrame             0x40000000
        !           107: #define kGEMTxDescFlags0_StartOfFrame           0x80000000
        !           108: 
        !           109: #define kGEMTxDescFlags1_Int                    0x00000001
        !           110: #define kGEMTxDescFlags1_NoCRC                  0x00000002
        !           111: 
        !           112: /*
        !           113:  *      Global Resources
        !           114:  */
        !           115: #define kGEMSEBState                            (0x0000 | kGEMLength_1)
        !           116: #define kGEMSEBState_ArbStateMask               0x03
        !           117: #define kGEMSEBState_RxWon                      0x04
        !           118: 
        !           119: 
        !           120: #define kGEMConfig                              (0x0004 | kGEMLength_2)
        !           121: #define kGEMConfig_InfiniteBurst                0x0001
        !           122: #define kGEMConfig_TxDMALimitMask               0x003E
        !           123: #define kGEMConfig_TxDMALimitBit                0x0002
        !           124: #define kGEMConfig_RxDMALimitMask               0x07C0
        !           125: #define kGEMConfig_RxDMALimitBit                0x0040
        !           126: 
        !           127: #define kGEMBurstSize                           (CACHE_LINE_SIZE / 8)           
        !           128: 
        !           129: #define kGEMInterruptStatus                     (0x000C | kGEMLength_4)
        !           130: #define kGEMInterruptStatus_TxInt               0x00000001
        !           131: #define kGEMInterruptStatus_TxAll               0x00000002
        !           132: #define kGEMInterruptStatus_TxDone              0x00000004
        !           133: #define kGEMInterruptStatus_RxDone              0x00000010
        !           134: #define kGEMInterruptStatus_RxEmpty             0x00000020
        !           135: #define kGEMInterruptStatus_RxTagError          0x00000040
        !           136: #define kGEMInterruptStatus_PCSInt              0x00002000
        !           137: #define kGEMInterruptStatus_TxMacInt            0x00004000
        !           138: #define kGEMInterruptStatus_RxMacInt            0x00008000
        !           139: #define kGEMInterruptStatus_MacControlInt       0x00010000
        !           140: #define kGEMInterruptStatus_MIFInt              0x00020000
        !           141: #define kGEMInterruptStatus_PCIErrorInt         0x00040000
        !           142: #define kGEMInterruptStatus_Mask                0x0007FFFF
        !           143: 
        !           144: #define kGEMInterruptMask                       (0x0010 | kGEMLength_4)
        !           145: #define kGEMInterruptMask_TxInt                 0x00000001
        !           146: #define kGEMInterruptMask_TxAll                 0x00000002
        !           147: #define kGEMInterruptMask_TxDone                0x00000004
        !           148: #define kGEMInterruptMask_RxDone                0x00000010
        !           149: #define kGEMInterruptMask_RxEmpty               0x00000020
        !           150: #define kGEMInterruptMask_RxTagError            0x00000040
        !           151: #define kGEMInterruptMask_PCSInt                0x00002000
        !           152: #define kGEMInterruptMask_TxMacInt              0x00004000
        !           153: #define kGEMInterruptMask_RxMacInt              0x00008000
        !           154: #define kGEMInterruptMask_MacControlInt         0x00010000
        !           155: #define kGEMInterruptMask_MIFInt                0x00020000
        !           156: #define kGEMInterruptMask_PCIErrorInt           0x00040000
        !           157: 
        !           158: #define kGEMInterruptAck                        (0x0014 | kGEMLength_4)
        !           159: #define kGEMInterruptAck_TxInt                  0x00000001
        !           160: #define kGEMInterruptAck_TxAll                  0x00000002
        !           161: #define kGEMInterruptAck_TxDone                 0x00000004
        !           162: #define kGEMInterruptAck_RxDone                 0x00000010
        !           163: #define kGEMInterruptAck_RxEmpty                0x00000020
        !           164: #define kGEMInterrupAck_RxTagError              0x00000040
        !           165: 
        !           166: #define kGEMInterruptAltStatus                  (0x001C | kGEMLength_4)
        !           167: #define kGEMInterruptAltStatus_TxInt            0x00000001
        !           168: #define kGEMInterruptAltStatus_TxAll            0x00000002
        !           169: #define kGEMInterruptAltStatus_TxDone           0x00000004
        !           170: #define kGEMInterruptAltStatus_RxDone           0x00000010
        !           171: #define kGEMInterruptAltStatus_RxEmpty          0x00000020
        !           172: #define kGEMInterruptAltStatus_RxTagError       0x00000040
        !           173: #define kGEMInterruptAltStatus_PCSInt           0x00002000
        !           174: #define kGEMInterruptAltStatus_TxMacInt         0x00004000
        !           175: #define kGEMInterruptAltStatus_RxMacInt         0x00008000
        !           176: #define kGEMInterruptAltStatus_MacControlInt    0x00010000
        !           177: #define kGEMInterruptAltStatus_MIFInt           0x00020000
        !           178: #define kGEMInterruptAltStatus_PCIErrorInt      0x00040000
        !           179: 
        !           180: #define kGEMPCIErrorStatus                      (0x1000 | kGEMLength_1)
        !           181: #define kGEMPCIErrorStatus_BadAck64             0x01
        !           182: #define kGEMPCIErrorStatus_TransactTimeout      0x02
        !           183: #define kGEMPCIErrorStatus_Other                0x04            
        !           184: 
        !           185: #define kGEMPCIErrorMask                        (0x1004 | kGEMLength_1)
        !           186: #define kGEMPCIErrorMask_BadAck64               0x01
        !           187: #define kGEMPCIErrorMask_TransactTimeout        0x02
        !           188: #define kGEMPCIErrorMask_Other                  0x04            
        !           189: 
        !           190: #define kGEMBIFConfig                           (0x1008 | kGEMLength_1)
        !           191: #define kGEMBIFConfig_SlowClk                   0x01
        !           192: #define kGEMBIFConfig_64BitDisable              0x04
        !           193: #define kGEMBIFConfig_66Mhz                     0x08
        !           194: 
        !           195: #define kGEMBIFDiagnostic                       (0x100C | kGEMLength_4)
        !           196: #define kGEMBIFDiagnostic_PCIBurstStateMask     0x007F0000
        !           197: #define kGEMBIFDiagnostic_PCIBurstStateBit      0x00010000
        !           198: #define kGEMBIFDiagnostic_BIFStateMachineMask   0xFF000000
        !           199: #define kGEMBIFDiagnostic_BIFStateMachineBit    0x01000000
        !           200: 
        !           201: #define kGEMSoftwareReset                       (0x1010 | kGEMLength_1)
        !           202: #define kGEMSoftwareReset_TxReset               0x01
        !           203: #define kGEMSoftwareReset_RxReset               0x02
        !           204: #define kGEMSoftwareReset_PhyReset              0x04
        !           205: 
        !           206: /*
        !           207:  *      Transmit DMA Registers
        !           208:  */
        !           209: #define kGEMTxKick                              (0x2000 | kGEMLength_2)
        !           210: 
        !           211: #define kGEMTxConfig                            (0x2004 | kGEMLength_4)
        !           212: #define kGEMTxConfig_TxDMAEnable                0x00000001
        !           213: #define kGEMTxConfig_TxDescRingSizeMask         0x0000001E
        !           214: #define kGEMTxConfig_TxDescRingSizeBit          0x00000002
        !           215: #define kGEMTxConfig_TxRingSizeMin              32
        !           216: #define kGEMTxConfig_TxFIFOPioSel               0x00000020
        !           217: #define kGEMTxConfig_TxFIFOThresholdMask        0x000FFC00
        !           218: #define kGEMTxConfig_TxFIFOThresholdBit         0x00000400
        !           219: #define kGEMTxConfig_PacedMode                  0x00100000
        !           220: 
        !           221: #define kGEMTxConfig_TxFIFOThresholdDefault     0x7FF
        !           222: 
        !           223: #define kGEMTxDescBaseLo                        (0x2008 | kGEMLength_4)
        !           224: #define kGEMTxDescBaseHi                        (0x200C | kGEMLength_4)
        !           225: 
        !           226: #define kGEMTxFIFOWritePtr                      (0x2014 | kGEMLength_2)
        !           227: #define kGEMTxFIFOShadowWritePtr                (0x2018 | kGEMLength_2)
        !           228: 
        !           229: #define kGEMTxFIFOReadPtr                       (0x201C | kGEMLength_2)
        !           230: #define kGEMTxFIFOShadowReadPtr                 (0x2020 | kGEMLength_2)
        !           231: 
        !           232: #define kGEMTxFIFOPktCounter                    (0x2024 | kGEMLength_2)
        !           233: 
        !           234: #define kGEMTxStateMachine                      (0x2028 | kGEMLength_4)
        !           235: #define kGEMTxStateMachine_ChainStateMask       0x000003FF
        !           236: #define kGEMTxStateMachine_ChainStateBit        0x00000001
        !           237: #define kGEMTxStateMachine_ChecksumStateMask    0x00000C00
        !           238: #define kGEMTxStateMachine_ChecksumStateBit     0x00000400
        !           239: #define kGEMTxStateMachine_FIFOLoadStateMask    0x0001F000
        !           240: #define kGEMTxStateMachine_FIFOLoadStateBit     0x00001000
        !           241: #define kGEMTxStateMachine_FIFOUnloadStateMask  0x003C0000
        !           242: #define kGEMTxStateMachine_FIFOUnloadStateBit   0x00040000
        !           243: 
        !           244: #define kGEMTxDataPtrLo                         (0x2030 | kGEMLength_4)
        !           245: #define kGEMTxDataPtrHi                         (0x2034 | kGEMLength_4)
        !           246: 
        !           247: #define kGEMTxCompletion                        (0x2100 | kGEMLength_2)
        !           248: 
        !           249: #define kGEMTxFIFOAddr                          (0x2104 | kGEMLength_2)
        !           250: #define kGEMTxFIFOTag                           (0x2108 | kGEMLength_1)
        !           251: #define kGEMTxFIFODataLo                        (0x210C | kGEMLength_4)
        !           252: #define kGEMTxFIFODataHiTag1                    (0x2110 | kGEMLength_4)
        !           253: #define kGEMTxFIFODataHiTag0                    (0x2114 | kGEMLength_4)
        !           254: 
        !           255: #define kGEMTxFIFOSize                          (0x2118 | kGEMLength_2)
        !           256: #define kGEMTxFIFOSize_Units                    64
        !           257: 
        !           258: /*
        !           259:  *      Receive DMA Registers
        !           260:  */
        !           261: #define kGEMRxConfig                            (0x4000 | kGEMLength_4)
        !           262: #define kGEMRxConfig_RxDMAEnable                0x00000001
        !           263: #define kGEMRxConfig_RxDescRingSizeMask         0x0000001E              
        !           264: #define kGEMRxConfig_RxDescRingSizeBit          0x00000002
        !           265: #define kGEMRxConfig_RxRingSizeMin              32
        !           266: #define kGEMRxConfig_BatchDisable               0x00000020
        !           267: #define kGEMRxConfig_FirstByteOffsetMask        0x00001C00              
        !           268: #define kGEMRxConfig_FirstByteOffsetBit         0x00000400
        !           269: #define kGEMRxConfig_ChecksumStartOffsetMask    0x000FE000              
        !           270: #define kGEMRxConfig_ChecksumStartOffsetBit     0x00002000
        !           271: #define kGEMRxConfig_RxDMAThresholdMask         0x07000000
        !           272: #define kGEMRxConfig_RxDMAThresholdBit          0x01000000
        !           273: #define kGEMRxConfig_RxDMAThresholdMin          64
        !           274: 
        !           275: #define kGEMRxConfig_RxDMAThresholdDefault      1               /* (128)  Log2(RxDMAThresh) - 6 */
        !           276: 
        !           277: #define kGEMRxDescBaseLo                        (0x4004 | kGEMLength_4)
        !           278: #define kGEMRxDescBaseHi                        (0x4008 | kGEMLength_4)
        !           279: 
        !           280: #define kGEMRxFIFOWritePtr                      (0x400C | kGEMLength_2)
        !           281: #define kGEMRxFIFOShadowWritePtr                (0x4010 | kGEMLength_2)
        !           282: #define kGEMRxFIFOReadPtr                       (0x4014 | kGEMLength_2)
        !           283: #define kGEMRxFIFOPktCounter                    (0x4018 | kGEMLength_2)
        !           284: 
        !           285: #define kGEMRxStateMachine                      (0x401C | kGEMLength_4)
        !           286: #define kGEMRxStateMachine_UnloadDataStateMask  0x0000000F
        !           287: #define kGEMRxStateMachine_UnloadDataStateBit   0x00000001
        !           288: #define kGEMRxStateMachine_UnloadDescStateMask  0x000000F0
        !           289: #define kGEMRxStateMachine_UnloadDescStateBit   0x00000010
        !           290: #define kGEMRxStateMachine_FlowControlStateMask 0x00000F00
        !           291: #define kGEMRxStateMachine_FlowControlStateBit  0x00000100
        !           292: #define kGEMRxStateMachine_PackStateMask        0x00003C00
        !           293: #define kGEMRxStateMachine_PackStateBit         0x00000400
        !           294: #define kGEMRxStateMachine_LoadStateMask        0x0003C000
        !           295: #define kGEMRxStateMachine_LoadStateBit         0x00004000
        !           296: 
        !           297: 
        !           298: #define kGEMRxPauseThresholds                   (0x4020 | kGEMLength_4)
        !           299: #define kGEMRxPauseThresholds_OffMask           0x000001FF
        !           300: #define kGEMRxPauseThresholds_OffBit            0x00000001
        !           301: #define kGEMRxPauseThresholds_OnMask            0x001FF000
        !           302: #define kGEMRxPauseThresholds_OnBit             0x00001000
        !           303: 
        !           304: #define kGEMRxPauseThresholds_Units             64
        !           305: 
        !           306: #define kGEMRxDataPtrLo                         (0x4024 | kGEMLength_4)
        !           307: #define kGEMRxDataPtrHi                         (0x4028 | kGEMLength_4)
        !           308: 
        !           309: #define kGEMRxKick                              (0x4100 | kGEMLength_2)
        !           310: 
        !           311: #define kGEMRxCompletion                        (0x4104 | kGEMLength_2)
        !           312: 
        !           313: #define kGEMRxIntBlanking                       (0x4108 | kGEMLength_4)
        !           314: #define kGEMRxIntBlanking_NumPktMask            0x000001FF
        !           315: #define kGEMRxIntBlanking_NumPktBit             0x00000001
        !           316: #define kGEMRxIntBlanking_TimeMask              0x000FF000
        !           317: #define kGEMRxIntBlanking_TimeBit               0x00001000
        !           318: #define kGEMRxIntBlanking_Units                 2048
        !           319: 
        !           320: #define kGEMRxFIFOAddr                          (0x410C | kGEMLength_2)
        !           321: #define kGEMRxFIFOTag                           (0x4110 | kGEMLength_1)
        !           322: #define kGEMRxDataLo                            (0x4114 | kGEMLength_4)
        !           323: #define kGEMRxDataHiTag0                        (0x4118 | kGEMLength_4)
        !           324: #define kGEMRxDataHiTag1                        (0x411C | kGEMLength_4)
        !           325: 
        !           326: #define kGEMRxFIFOSize                          (0x4120 | kGEMLength_2)
        !           327: #define kGEMRxFIFOSize_Units                    64
        !           328: 
        !           329: 
        !           330: /*
        !           331:  *      MAC Registers
        !           332:  */
        !           333: #define kGEMMacTxResetCmd                       (0x6000 | kGEMLength_1)
        !           334: #define kGEMMacTxResetCmd_Reset                 0x01
        !           335: 
        !           336: #define kGEMMacRxResetCmd                       (0x6004 | kGEMLength_1)
        !           337: #define kGEMMacRxResetCmd_Reset                 0x01
        !           338: 
        !           339: #define kGEMMacSendPauseCmd                     (0x6008 | kGEMLength_4)
        !           340: #define kGEMMacSendPauseCmd_TimeMask            0x0000FFFF
        !           341: #define kGEMMacSendPauseCmd_Bit                 0x00000001
        !           342: #define kGEMMacSendPauseCmd_SendPause           0x00010000
        !           343: #define kGEMMacSendPauseCmd_Default             0x1BF0
        !           344: 
        !           345: #define kGEMMacTxStatus                         (0x6010 | kGEMLength_2)
        !           346: #define kGEMMacTxStatus_FrameSent               0x0001
        !           347: #define kGEMMacTxStatus_TxUnderrun              0x0002
        !           348: #define kGEMMacTxStatus_MaxPktError             0x0004
        !           349: #define kGEMMacTxStatus_NormalCollsnOverflow    0x0008
        !           350: #define kGEMMacTxStatus_ExcessCollsnOverflow    0x0010
        !           351: #define kGEMMacTxStatus_LateCollsnOverflow      0x0020
        !           352: #define kGEMMacTxStatus_FirstCollsnOverflow     0x0040
        !           353: #define kGEMMacTxStatus_DeferTimerOverflow      0x0080
        !           354: #define kGEMMacTxStatus_PeakAttemptsOverflow    0x0100
        !           355: 
        !           356: #define kGEMMacRxStatus                         (0x6014 | kGEMLength_2)
        !           357: #define kGEMMacRxStatus_FrameReceived           0x0001
        !           358: #define kGEMMacRxStatus_RxFIFOOverflow          0x0002
        !           359: #define kGEMMacRxStatus_FrameCounterOverflow    0x0004
        !           360: #define kGEMMacRxStatus_AlignErrorOverflow      0x0008
        !           361: #define kGEMMacRxStatus_CRCErrorOverflow        0x0010
        !           362: #define kGEMMacRxStatus_LengthErrorOverflow     0x0020
        !           363: #define kGEMMacRxStatus_CodeErrorOverflow       0x0040
        !           364: 
        !           365: #define kGEMMacControlStatus                    (0x6018 | kGEMLength_4)
        !           366: #define kGEMMacControlStatus_PauseReceived      0x00000001
        !           367: #define kGEMMacControlStatus_PauseState         0x00000002
        !           368: #define kGEMMacControlStatus_NotPausedState     0x00000004
        !           369: #define kGEMMacControlStatus_PauseTimeMask      0xFFFF0000
        !           370: #define kGEMMacControlStatus_PauseTimeBit       0x00010000
        !           371: 
        !           372: #define kGEMMacTxMask                           (0x6020 | kGEMLength_2)
        !           373: #define kGEMMacTxMask_FrameSent                 0x0001
        !           374: #define kGEMMacTxMask_TxUnderrun                0x0002
        !           375: #define kGEMMacTxMask_MaxPktError               0x0004
        !           376: #define kGEMMacTxMask_NormalCollsnOverflow      0x0008
        !           377: #define kGEMMacTxMask_ExcessCollsnOverflow      0x0010
        !           378: #define kGEMMacTxMask_LateCollsnOverflow        0x0020
        !           379: #define kGEMMacTxMask_FirstCollsnOverflow       0x0040
        !           380: #define kGEMMacTxMask_DeferTimerOverflow        0x0080
        !           381: #define kGEMMacTxMask_PeakAttemptsOverflow      0x0100
        !           382: 
        !           383: #define kGEMMacTxMaskDefault                    0xFFFF
        !           384: 
        !           385: #define kGEMMacRxMask                           (0x6024 | kGEMLength_2)
        !           386: #define kGEMMacRxMask_FrameReceived             0x0001
        !           387: #define kGEMMacRxMask_RxFIFOOverflow            0x0002
        !           388: #define kGEMMacRxMask_FrameCounterOverflow      0x0004
        !           389: #define kGEMMacRxMask_AlignErrorOverflow        0x0008
        !           390: #define kGEMMacRxMask_CRCErrorOverflow          0x0010
        !           391: #define kGEMMacRxMask_LengthErrorOverflow       0x0020
        !           392: #define kGEMMacRxMask_CodeErrorOverflow         0x0040
        !           393: 
        !           394: #define kGEMMacRxMaskDefault                    0xFFFF
        !           395: 
        !           396: #define kGEMMacControlMask                      (0x6028 | kGEMLength_1)
        !           397: #define kGEMMacControlMask_PauseReceived        0x01
        !           398: #define kGEMMacControlMask_PauseState           0x02
        !           399: #define kGEMMacControlMask_NotPausedState       0x04
        !           400: 
        !           401: #define kGEMMacControlMaskDefault               0xFF
        !           402: 
        !           403: 
        !           404: #define kGEMMacTxMacConfig                      (0x6030 | kGEMLength_2)
        !           405: #define kGEMMacTxMacConfig_TxMacEnable          0x0001
        !           406: #define kGEMMacTxMacConfig_IgnoreCarrierSense   0x0002
        !           407: #define kGEMMacTxMacConfig_IgnoreCollsn         0x0004
        !           408: #define kGEMMacTxMacConfig_EnableIPG0           0x0008
        !           409: #define kGEMMacTxMacConfig_NeverGiveUp          0x0010
        !           410: #define kGEMMacTxMacConfig_NeverGiveUpNoLimit   0x0020
        !           411: #define kGEMMacTxMacConfig_NoBackoff            0x0040
        !           412: #define kGEMMacTxMacConfig_SlowDown             0x0080
        !           413: #define kGEMMacTxMacConfig_NoFCS                0x0100
        !           414: #define kGEMMacTxMacConfig_TxCarrierExt         0x0200
        !           415: 
        !           416: 
        !           417: #define kGEMMacRxMacConfig                      (0x6034 | kGEMLength_2)
        !           418: #define kGEMMacRxMacConfig_RxMacEnable          0x0001
        !           419: #define kGEMMacRxMacConfig_StripPad             0x0002
        !           420: #define kGEMMacRxMacConfig_StripFCS             0x0004
        !           421: #define kGEMMacRxMacConfig_ReceiveAll           0x0008
        !           422: #define kGEMMacRxMacConfig_ReceiveAllMulticast  0x0010
        !           423: #define kGEMMacRxMacConfig_HashFilterEnable     0x0020
        !           424: #define kGEMMacRxMacConfig_AddrFilterEnable     0x0040
        !           425: #define kGEMMacRxMacConfig_PassErrorFrames      0x0080
        !           426: #define kGEMMacRxMacConfig_RxCarrierExt         0x0100
        !           427: 
        !           428: 
        !           429: #define kGEMMacControlConfig                    (0x6038 | kGEMLength_1)
        !           430: #define kGEMMacControlConfig_SendPauseEnable    0x01
        !           431: #define kGEMMacControlConfig_ReceivePauseEnable 0x02
        !           432: #define kGEMMacControlConfig_PassControlFrames  0x04
        !           433: 
        !           434: #define kGEMMacXIFConfig                        (0x603C | kGEMLength_1)
        !           435: #define kGEMMacXIFConfig_TxMIIOutputEnable      0x01
        !           436: #define kGEMMacXIFConfig_MIIIntLoopback         0x02
        !           437: #define kGEMMacXIFConfig_DisableEcho            0x04
        !           438: #define kGEMMacXIFConfig_GMIIMode               0x08
        !           439: #define kGEMMacXIFConfig_MIIBufferEnable        0x10
        !           440: #define kGEMMacXIFConfig_LinkLed                0x20
        !           441: #define kGEMMacXIFConfig_FullDuplexLed          0x40
        !           442: 
        !           443: #define kGEMMacInterPktGap0                     (0x6040 | kGEMLength_1)
        !           444: #define kGEMMacInterPktGap0_Default             0x00
        !           445: 
        !           446: #define kGEMMacInterPktGap1                     (0x6044 | kGEMLength_1)
        !           447: #define kGEMMacInterPktGap1_Default             0x08
        !           448: 
        !           449: #define kGEMMacInterPktGap2                     (0x6048 | kGEMLength_1)
        !           450: #define kGEMMacInterPktGap2_Default             0x04
        !           451: 
        !           452: #define kGEMMacSlotTime                         (0x604C | kGEMLength_2)
        !           453: #define kGEMMacSlotTime_Default                 0x0040
        !           454: 
        !           455: #define kGEMMacMinFrameSize                     (0x6050 | kGEMLength_2)
        !           456: #define kGEMMacMinFrameSize_Default             0x0040
        !           457: 
        !           458: #define kGEMMacMaxFrameSize                     (0x6054 | kGEMLength_2)
        !           459: #define kGEMMacMaxFrameSize_Default             0x05EE
        !           460: #define kGEMMacMaxFrameSize_Aligned            ((kGEMMacMaxFrameSize_Default + 7) & ~7)
        !           461: 
        !           462: #define kGEMMacPASize                           (0x6058 | kGEMLength_2)
        !           463: #define kGEMMacPASize_Default                   0x07
        !           464: 
        !           465: #define kGEMMacJamSize                          (0x605C | kGEMLength_1)
        !           466: #define kGEMMacJamSize_Default                  0x04
        !           467: 
        !           468: #define kGEMMacAttemptLimit                     (0x6060 | kGEMLength_1)
        !           469: #define kGEMMacAttemptLimit_Default             0x10
        !           470: 
        !           471: #define kGEMMacTypeControl                      (0x6064 | kGEMLength_2)
        !           472: #define kGEMMacTypeControl_Default              0x8808
        !           473: 
        !           474: #define kGEMMacAddr                             (0x6080 | kGEMLength_2)
        !           475: #define kGEMMacAddr6_Default                    0x0001
        !           476: #define kGEMMacAddr7_Default                    0xC200
        !           477: #define kGEMMacAddr8_Default                    0x0180
        !           478: 
        !           479: #define kGEMMacAddrFilter                       (0x60A4 | kGEMLength_2)
        !           480: 
        !           481: #define kGEMMacAddrFilterMask1                  (0x60B0 | kGEMLength_1)
        !           482: 
        !           483: #define kGEMMacAddrFilterMask0                  (0x60B4 | kGEMLength_2)
        !           484: 
        !           485: #define kGEMMacHashTable                        (0x60C0 | kGEMLength_2)
        !           486: 
        !           487: #define kGEMMacCollisions                       (0x6100 | kGEMLength_2)
        !           488: #define kGEMMacSingleCollision                  (0x6104 | kGEMLength_2)
        !           489: #define kGEMMacExcessCollisions                 (0x6108 | kGEMLength_2)
        !           490: #define kGEMMacLateCollisions                   (0x610C | kGEMLength_2)
        !           491: 
        !           492: #define kGEMMacDeferTimer                       (0x6110 | kGEMLength_2)
        !           493: 
        !           494: #define kGEMMacPeakAttempts                     (0x6114 | kGEMLength_2)
        !           495: 
        !           496: #define kGEMMacRxFrameCounter                   (0x6118 | kGEMLength_2)
        !           497: 
        !           498: #define kGEMMacRxLengthErrors                   (0x611C | kGEMLength_2)
        !           499: 
        !           500: #define kGEMMacRxAlignErrors                    (0x6120 | kGEMLength_2)
        !           501: 
        !           502: #define kGEMMacRxFCSErrors                      (0x6124 | kGEMLength_2)
        !           503: 
        !           504: #define kGEMMacRxCodeErrors                     (0x6128 | kGEMLength_2)
        !           505: 
        !           506: #define kGEMMacRandomSeed                       (0x6130 | kGEMLength_2)
        !           507: 
        !           508: #define kGEMMacStateMachine                     (0x6134 | kGEMLength_1)
        !           509: 
        !           510: 
        !           511: /*
        !           512:  *       MIF Registers
        !           513:  */
        !           514: #define kGEMMIFCLock                            (0x6200 | kGEMLength_1)
        !           515: #define kGEMMIFClock_One                        0x01
        !           516: 
        !           517: #define kGEMMIFData                             (0x6204 | kGEMLength_1)
        !           518: #define kGEMMIFData_One                         0x01
        !           519: 
        !           520: #define kGEMMIFOutputEnable                     (0x6208 | kGEMLength_1)
        !           521: #define kGEMMIFOutputEnable_Enable              0x01
        !           522: 
        !           523: #define kGEMMIFFrame                            (0x620C | kGEMLength_4)
        !           524: #define kGEMMIFFrame_StartFrameMask             0xC0000000
        !           525: #define kGEMMIFFrame_StartFrameBit              0x40000000
        !           526: #define kGEMMIFFrame_OpcodeMask                 0x30000000                      
        !           527: #define kGEMMIFFrame_OpcodeBit                  0x10000000
        !           528: #define kGEMMIFFrame_PhyAddrMask                0x0F800000                                      
        !           529: #define kGEMMIFFrame_PhyAddrBit                 0x00800000
        !           530: #define kGEMMIFFrame_RegAddrMask                0x007C0000
        !           531: #define kGEMMIFFrame_RegAddrBit                 0x00040000
        !           532: #define kGEMMIFFrame_TurnAroundMSB              0x00020000
        !           533: #define kGEMMIFFrame_TurnAroundLSB              0x00010000
        !           534: #define kGEMMIFFrame_DataMask                   0x0000FFFF
        !           535: #define kGEMMIFFrame_DataBit                    0x00000001
        !           536: 
        !           537: #define kGEMMIFConfig                           (0x6210 | kGEMLength_2)
        !           538: #define kGEMMIFConfig_PhySelect                 0x0001
        !           539: #define kGEMMIFConfig_PollEnable                0x0002
        !           540: #define kGEMMIFConfig_BitShiftMode              0x0004
        !           541: #define kGEMMIFConfig_PollRegAddrMask           0x00F8          
        !           542: #define kGEMMIFConfig_PollRegAddrBit            0x0008
        !           543: #define kGEMMIFConfig_ReadMDI_0                 0x0100
        !           544: #define kGEMMIFConfig_ReadMDI_1                 0x0200
        !           545: #define kGEMMIFConfig_PollPhyAddrMask           0x7C00
        !           546: #define kGEMMIFConfig_PollPhyAddrBit            0x0400
        !           547: 
        !           548: #define kGEMMIFMask                             (0x6214 | kGEMLength_2)
        !           549: 
        !           550: #define kGEMMIFStatus                           (0x6218 | kGEMLength_4)
        !           551: #define kGEMMIFStatus_PollDataMask              0xFFFF0000 
        !           552: #define kGEMMIFStatus_PollDataBit               0x00010000 
        !           553: #define kGEMMIFStatus_PollStatusMask            0x0000FFFF 
        !           554: #define kGEMMIFStatus_PollStatusBit             0x00000001 
        !           555: 
        !           556: #define kGEMMIFStateMachine                     (0x621C | kGEMLength_1)
        !           557: #define kGEMMIFStateMachine_ControlStateMask    0x07
        !           558: #define kGEMMIFStateMachine_ControlStateBit     0x01
        !           559: #define kGEMMIFStateMachine_ExecuteStateMask    0x60
        !           560: #define kGEMMIFStateMachine_ExecuteStateBit     0x20
        !           561: 
        !           562: /*
        !           563:  *      PCS/Serdes
        !           564:  */
        !           565: #define kGEMPCSControl                          (0x9000 | kGEMLength_2)
        !           566: #define kGEMPCSControl_1000Mbs                  0x0040  
        !           567: #define kGEMPCSControl_CollsnTest               0x0080  
        !           568: #define kGEMPCSControl_DuplexMode               0x0100  
        !           569: #define kGEMPCSControl_RestartAutoNegot         0x0200          
        !           570: #define kGEMPCSControl_Isolate                  0x0400  
        !           571: #define kGEMPCSControl_PowerDown                0x0800  
        !           572: #define kGEMPCSControl_EnableAutoNegot          0x1000  
        !           573: #define kGEMPCSControl_100Mbs                   0x2000  
        !           574: #define kGEMPCSControl_Reset                    0x8000  
        !           575: 
        !           576: #define kGEMPCSStatus                           (0x9004 | kGEMLength_2)
        !           577: #define kGEMPCSStatus_ExtendedCap               0x0001
        !           578: #define kGEMPCSStatus_JabberDetect              0x0002
        !           579: #define kGEMPCSStatus_LinkStatusUp              0x0004
        !           580: #define kGEMPCSStatus_AutoNegotCap              0x0008
        !           581: #define kGEMPCSStatus_RemoteFault               0x0010
        !           582: #define kGEMPCSStatus_AutoNegotComplete         0x0020
        !           583: #define kGEMPCSStatus_ExtStatus                 0x0100
        !           584: 
        !           585: #define kGEMPCSAdvert                           (0x9008 | kGEMLength_2)
        !           586: #define kGEMPCSAdvert_FullDuplexCap             0x0020 
        !           587: #define kGEMPCSAdvert_HalfDuplexCap             0x0040 
        !           588: #define kGEMPCSAdvert_SymPauseCap               0x0080 
        !           589: #define kGEMPCSAdvert_AsymPauseCap              0x0100 
        !           590: #define kGEMPCSAdvert_RemoteFaultMask           0x3000 
        !           591: #define kGEMPCSAdvert_RemoteFaultBit            0x1000 
        !           592: #define kGEMPCSAdvert_Ack                       0x4000 
        !           593: #define kGEMPCSAdvert_NextPage                  0x8000 
        !           594: 
        !           595: #define kGEMPCSLPAbility                        (0x900C | kGEMLength_2)
        !           596: #define kGEMPCSLPAbility_FullDuplexCap          0x0020 
        !           597: #define kGEMPCSLPAbility_HalfDuplexCap          0x0040 
        !           598: #define kGEMPCSLPAbility_SymPauseCap            0x0080 
        !           599: #define kGEMPCSLPAbility_AsymPauseCap           0x0100 
        !           600: #define kGEMPCSLPAbility_RemoteFaultMask        0x3000 
        !           601: #define kGEMPCSLPAbility_RemoteFaultBit         0x1000 
        !           602: #define kGEMPCSLPAbility_Ack                    0x4000 
        !           603: #define kGEMPCSLPAbility_NextPage               0x8000 
        !           604: 
        !           605: #define kGEMPCSConfig                           (0x9010 | kGEMLength_1)
        !           606: #define kGEMPCSConfig_Enable                    0x01
        !           607: #define kGEMPCSConfig_SignalDetOverride         0x02
        !           608: #define kGEMPCSConfig_SignalDetInvert           0x04
        !           609: #define kGEMPCSConfig_JitterStudyMask           0x18
        !           610: #define kGEMPCSConfig_JitterStudyBit            0x08
        !           611: 
        !           612: #define kGEMPCSStateMachine                     (0x9014 | kGEMLength_4)
        !           613: #define kGEMPCSStateMachine_TxControlStateMask  0x0000000F
        !           614: #define kGEMPCSStateMachine_TxControlStateBit   0x00000001
        !           615: #define kGEMPCSStateMachine_RxControlStateMask  0x000000F0
        !           616: #define kGEMPCSStateMachine_RxControlStateBit   0x00000010
        !           617: #define kGEMPCSStateMachine_WordSyncStateMask   0x00000700
        !           618: #define kGEMPCSStateMachine_WordSyncStateBit    0x00000100
        !           619: #define kGEMPCSStateMachine_SeqDetectStateMask  0x00001800
        !           620: #define kGEMPCSStateMachine_SeqDetectStateBit   0x00000800
        !           621: #define kGEMPCSStateMachine_LinkConfigStateMask 0x0001E000
        !           622: #define kGEMPCSStateMachine_LinkConfigStateBit  0x00002000
        !           623: #define kGEMPCSStateMachine_LinkLostCCodes      0x10000000
        !           624: #define kGEMPCSStateMachine_LinkLostSync        0x20000000
        !           625: #define kGEMPCSStateMachine_LinkLostSignalDet   0x40000000
        !           626: 
        !           627: #define kGEMPCSInterruptStatus                  (0x9018 | kGEMLength_1)
        !           628: #define kGEMPCSInterruptStatus_LinkStatusChg    0x04
        !           629: 
        !           630: #define kGEMPCSDatapathMode                     (0x9050 | kGEMLength_1)
        !           631: #define kGEMPCSDatapathMode_XMode               0x01
        !           632: #define kGEMPCSDatapathMode_ExtSERDESMode       0x02
        !           633: #define kGEMPCSDatapathMode_GMIIMode            0x04
        !           634: #define kGEMPCSDatapathMode_GMIIOutputEnable    0x08
        !           635: 
        !           636: #define kGEMPCSSerdesControl                    (0x9054 | kGEMLength_1)
        !           637: #define kGEMPCSSerdesControl_DisableLoopback    0x01
        !           638: #define kGEMPCSSerdesControl_EnableSyncDet      0x02
        !           639: #define kGEMPCSSerdesControl_LockRefClk         0x04
        !           640: 
        !           641: #define kGEMPCSSerdesOutputSelect               (0x9058 | kGEMLength_1)
        !           642: #define kGEMPCSSerdesOutputSelect_PROMAddrMask  0x03
        !           643: #define kGEMPCSSerdesOutputSelect_PROMAddrBit   0x01
        !           644: 
        !           645: #define kGEMPCSSerdesState                      (0x905C | kGEMLength_1)
        !           646: #define kGEMPCSSerdesState_StateMask            0x03
        !           647: #define kGEMPCSSerdesState_Bit                  0x01
        !           648: 

unix.superglobalmegacorp.com

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