BMacEnetRegisters.h [plain text]
#ifndef _BMACENETREGISTERS_H
#define _BMACENETREGISTERS_H
#define kHeathrowFCR 0x0038 // FCR offset from Heathrow Base Address
#define kEnetEnabledBits 0x60000000 // mask to enable Enet Xcvr/Controller
#define kResetEnetCell 0x80000000 // mask used to reset Enet cell
#define kClearResetEnetCell 0x7fffffff // mask used to clear reset Enet cell
#define kDisableEnet 0x1fffffff // mask to disable Enet Xcvr/Controller
#define kTxDMABaseOffset 0x08200 // offset from Heathrow Base address
#define kRxDMABaseOffset 0x08300
#define kControllerBaseOffset 0x11000
#define kXIFC 0x0000
#define kTxOutputEnable 0x0001
#define kMIILoopbackBits 0x0006
#define kMIIBufferEnable 0x0008
#define kSQETestEnable 0x0010
#define kSTAT 0x0200
#define kINTDISABLE 0x0210
#define kIntFrameReceived 0x0001
#define kIntRxFrameCntExp 0x0002
#define kIntRxAlignCntExp 0x0004
#define kIntRxCRCCntExp 0x0008
#define kIntRxLenCntExp 0x0010
#define kIntRxOverFlow 0x0020
#define kIntRxCodeViolation 0x0040
#define kIntSQETestError 0x0080
#define kIntFrameSent 0x0100
#define kIntTxUnderrun 0x0200
#define kIntTxMaxSizeError 0x0400
#define kIntTxNormalCollExp 0x0800
#define kIntTxExcessCollExp 0x1000
#define kIntTxLateCollExp 0x2000
#define kIntTxNetworkCollExp 0x4000
#define kIntTxDeferTimerExp 0x8000
#define kNormalIntEvents ~(0xFFFF & ( kIntFrameSent | kIntTxUnderrun) )
#if EXTRA_INTERRUPTS
#define kXtraInterrupts ~(0xFFFF & (kIntFrameReceived | kIntRxFrameCntExp \
| kIntFrameSent | kIntTxUnderrun | kIntFrameSent) )
#endif
#define kNoEventsMask 0xFFFF
#define kTXRST 0x0420
#define kTxResetBit 0x0001
#define kTXCFG 0x0430
#define kTxMACEnable 0x0001
#define kTxThreshold 0x0004
#define kTxSlowDown 0x0020
#define kTxIgnoreCollision 0x0040
#define kTxDisableFCS 0x0080
#define kTxNoBackoff 0x0100
#define kTxFullDuplex 0x0200
#define kTxNeverGiveUp 0x0400
#define kIPG1 0x0440
#define kIPG2 0x0450
#define kALIMIT 0x0460
#define kSLOT 0x0470
#define kPALEN 0x0480
#define kPAPAT 0x0490
#define kTXSFD 0x04A0
#define kJAM 0x04B0
#define kTXMAX 0x04C0
#define kTXMIN 0x04D0
#define kPAREG 0x04E0
#define kDCNT 0x04F0
#define kNCCNT 0x0500
#define kNTCNT 0x0510
#define kEXCNT 0x0520
#define kLTCNT 0x0530
#define kRSEED 0x0540
#define kTXSM 0x0550
#define kRXRST 0x0620
#define kRxResetValue 0x0000
#define kRXCFG 0x0630
#define kRxMACEnable 0x0001
#define kReservedValue 0x0004
#define kRxPromiscEnable 0x0040
#define kRxCRCEnable 0x0100
#define kRxRejectOwnPackets 0x0200
#define kRxHashFilterEnable 0x0800
#define kRxAddrFilterEnable 0x1000
#define kRXMAX 0x0640
#define kRXMIN 0x0650
#define kMADD2 0x0660
#define kMADD1 0x0670
#define kMADD0 0x0680
#define kFRCNT 0x0690
#define kLECNT 0x06A0
#define kAECNT 0x06B0
#define kFECNT 0x06C0
#define kRXSM 0x06D0
#define kRXCV 0x06E0
#define kHASH3 0x0700
#define kHASH2 0x0710
#define kHASH1 0x0720
#define kHASH0 0x0730
#define kAFR2 0x0740
#define kAFR1 0x0750
#define kAFR0 0x0760
#define kAFCR 0x0770
#define kEnableAllCompares 0x0fff
#define kTXFIFOCSR 0x0100
#define kTxFIFOEnable 0x0001
#define kTxFIFO128 0x0000
#define kTxFIFO2048 0x001e
#define kTXTH 0x0110
#define kRXFIFOCSR 0x0120
#define kRxFIFOEnable kTxFIFOEnable
#define kRxFIFO128 kTxFIFO128
#define kRxFIFO2048 kTxFIFO2048
#define kMEMADD 0x0130
#define kMEMDATAHI 0x0140
#define kMEMDATALO 0x0150
#define kXCVRIF 0x0160
#define kCOLActiveLow 0x0002
#define kSerialMode 0x0004
#define kClkBit 0x0008
#define kLinkStatus 0x0100
#define kCHIPID 0x0170
#define kCHIPID_Heathrow 0xB0
#define kCHIPID_Paddington 0xC0
#define kCHIPID_PaddingtonXmitStreaming 0xC4
#define kMIFCSR 0x0180
#define kMIFCSR_Clock 0x0001
#define kMIFCSR_DataOut 0x0002
#define kMIFCSR_DataOutEnable 0x0004
#define kMIFCSR_DataIn 0x0008
#define kSROMCSR 0x0190
#define kTXPNTR 0x01A0
#define kRXPNTR 0x01B0
#define kRxAbortBit 0x8000 // status bit in BMac status for rx packets
#define kRxLengthMask 0x3FFF // bits that determine length of rx packets
#define TX_RING_LENGTH 33
#define RX_RING_LENGTH 33
#define TX_PKTS_PER_INT 10
#define NETWORK_BUFSIZE (ETHERMAXPACKET + ETHERCRC + 2)
#define TRANSMIT_QUEUE_SIZE 1024
#define WATCHDOG_TIMER_MS 500
#define TX_KDB_TIMEOUT 1000
#define TRANSMIT_QUIESCE_uS 200
#define RECEIVE_QUIESCE_uS 1500
enum
{
kIRQEnetDev = 0,
kIRQEnetTxDMA = 1,
kIRQEnetRxDMA = 2
};
enum
{
MEMORY_MAP_ENET_INDEX = 0,
MEMORY_MAP_TXDMA_INDEX = 1,
MEMORY_MAP_RXDMA_INDEX = 2,
MEMORY_MAP_HEATHROW_INDEX = 3,
MEMORY_MAP_COUNT = 4
};
#endif