summaryrefslogtreecommitdiffstats
path: root/uClinux-2.4.20-uc1/drivers/net/w90n745_mac.h
diff options
context:
space:
mode:
Diffstat (limited to 'uClinux-2.4.20-uc1/drivers/net/w90n745_mac.h')
-rwxr-xr-xuClinux-2.4.20-uc1/drivers/net/w90n745_mac.h708
1 files changed, 354 insertions, 354 deletions
diff --git a/uClinux-2.4.20-uc1/drivers/net/w90n745_mac.h b/uClinux-2.4.20-uc1/drivers/net/w90n745_mac.h
index 684f7bd..c1833f1 100755
--- a/uClinux-2.4.20-uc1/drivers/net/w90n745_mac.h
+++ b/uClinux-2.4.20-uc1/drivers/net/w90n745_mac.h
@@ -1,354 +1,354 @@
-/****************************************************************************
- * *
- * Copyright (c) 2005 - 2007 Winbond Electronics Corp. All rights reserved. *
- * *
- ****************************************************************************/
-
-/****************************************************************************
- *
- * FILENAME
- * w90n745_mac.h
- *
- * VERSION
- * 1.0
- *
- * DESCRIPTION
- * The head file for MAC driver on POS-TAX Board
- *
- * DATA STRUCTURES
- * None
- *
- * FUNCTIONS
- * None
- *
- * HISTORY
- * 2005/08/01 Ver 1.0
- *
- * AUTHOR
- * PC34 Lsshi
- *
- * REMARK
- * None
- *************************************************************************/
-#ifndef _W90N745_MAC_H_
-#define _W90N745_MAC_H_
-
-#define NON_CACHE_FLAG 0x80000000
-
-#define MAC_OFFSET 0x0
-#define MAC_0_OFFSET MAC_OFFSET
-
-// Advanced Interrupt Controller Registers
-#define AIC_SCR_EMCTX0 (VPint(AIC_SCR17))
-#define AIC_SCR_EMCRX0 (VPint(AIC_SCR18))
-
-//CAM Registers
-#define CAMCMR (MAC_OFFSET) //CAM Command Regiser
-#define CAMEN (MAC_OFFSET+0x4)//CAM ennable regiser
-#define CAM0M (MAC_OFFSET+0x8)//CAM1 Most significant Word register
-#define CAM0L (MAC_OFFSET+0xc)//CAM1 Least Significant Word Register
-#define CAM_ENTRY_SIZE 0x8 //CAM entry size
-#define CAM_ENTRIES 0x16 //CAM entries
-
-//MAC Regiseters
-#define MIEN (MAC_OFFSET+0xac) //MAC Interrupt Enable Register
-#define MCMDR (MAC_OFFSET+0x90) //MAC Command Regiser
-#define MIID (MAC_OFFSET+0x94) //MII Management Data Register
-#define MIIDA (MAC_OFFSET+0x98) //MII Management Data Control and Address Register
-#define MPCNT (MAC_OFFSET+0xb8) //Missed Packet Counter Register
-
-//DMA Registers
-#define TXDLSA (MAC_OFFSET+0x88) //Transmit Descriptor Link List Start Address Regiser
-#define RXDLSA (MAC_OFFSET+0x8c) //Receive Descriptor LInk List Start Addresss Register
-#define DMARFC (MAC_OFFSET+0xa8) //DMA Receive Frame Control Register
-#define TSDR (MAC_OFFSET+0xa0) //Transmit Start Demand Register
-#define RSDR (MAC_OFFSET+0xa4) //Recevie Start Demand Register
-#define FIFOTHD (MAC_OFFSET+0x9c) //FIFO Threshold Adjustment Register
-
-//EMC Status Register
-#define MISTA (MAC_OFFSET+0xb0) //MAC Interrupter Status Register
-#define MGSTA (MAC_OFFSET+0xb4) //MAC General Status Register
-#define MRPC (MAC_OFFSET+0xbc) //MAC Receive Pauese counter register
-#define MRPCC (MAC_OFFSET+0xc0) //MAC Receive Pauese Current Count Regiser
-#define MREPC (MAC_OFFSET+0xc4) //MAC Remote pause count retister
-
-//DMA Registers
-#define DMARFS (MAC_OFFSET+0xc8) //DMA Receive Frame Status Register
-#define CTXDSA (MAC_OFFSET+0xcc) //Current Transmit Descriptor Start Addresss Register
-#define CTXBSA (MAC_OFFSET+0xd0) //Current Transmit Buffer Start Address Regiser
-#define CRXDSA (MAC_OFFSET+0xd4) //Current Receive Descriptor start Address regiser
-#define CRXBSA (MAC_OFFSET+0xd8) //Current Receive Buffer Start Address Regiser
-
-//Debug Mode Receive Finite State Machine Registers
-#define RXFSM (MAC_OFFSET+0x200)
-#define TXFSM (MAC_OFFSET+0x204)
-#define FSM0 (MAC_OFFSET+0x208)
-#define FSM1 (MAC_OFFSET+0x20c)
-
-//Descriptor
-typedef struct
-{
- volatile unsigned long SL;
- volatile unsigned long buffer;
- volatile unsigned long reserved;
- volatile unsigned long next;
-}RXBD;
-
-
-typedef struct
-{
- volatile unsigned long mode;
- volatile unsigned long buffer;
- volatile unsigned long SL;
- volatile unsigned long next;
-}TXBD;
-
-
-// CAM Command Register(CAMCMR)
-#define CAM_AUP 0x0001 // Accept Packets with Unicast Address
-#define CAM_AMP 0x0002 // Accept Packets with Multicast Address
-#define CAM_ABP 0x0004 // Accept Packets with Broadcast Address
-#define CAM_CCAM 0x0008 // 0: Accept Packets CAM Recognizes and Reject Others
- // 1: Reject Packets CAM Recognizes and Accept Others
-#define CAM_ECMP 0x0010 // Enable CAM Compare
-//ownership bit
-#define RX_OWNERSHIP_CPU (0x0<<30)
-#define RX_OWNERSHIP_DMA (2<<30)
-
-#define TX_OWNERSHIP_CPU (0x0<<30)
-#define TX_OWNERSHIP_DMA (2<<30)
-
-// RX Frame Descriptor's Owner bit
-#define RXfOwnership_DMA 0x80000000 // 10 = DMA
-#define RXfOwnership_CPU 0x3fffffff // 00 = CPU
-
-// TX Frame Descriptor's Owner bit
-#define TXfOwnership_DMA 0x80000000 // 1 = DMA
-#define TXfOwnership_CPU 0x7fffffff // 0 = CPU
-
-// Tx Frame Descriptor's Control bits
-#define MACTxIntEn 0x04
-#define CRCMode 0x02
-#define NoCRCMode 0x00
-#define PaddingMode 0x01
-#define NoPaddingMode 0x00
-
-//received descriptor status
-#define RXDS_RXINTR (1<<16) //set if reception of packet caused an interrupt condition
-#define RXDS_CRCE (1<<17) // set if crc error
-#define RXDS_PTLE (1<<19) //set if received frame longer than 1518 bytes
-#define RXDS_RXGD (1<<20) // receiving good packet
-#define RXDS_ALIE (1<<21) //Alignment Error
-#define RXDS_RP (1<<22) //runt packet
-#define RXDS_Inverse (1<<26) //current hit entry is setting on inverse mode
-#define RXDS_PortHit (1<<27) //port hit
-#define RXDS_IPHit (1<<28) //ip hit
-#define RXDS_Hit (1<<29) //hit
-
-//Tx ownership bit
-#define TX_OWNERSHIP_CPU (0x0<<31)
-#define TX_OWNERSHIP_DMA (0x1<<31)
-//tx mode
-#define TX_MODE_PAD 0x1 //pad
-#define TX_MODE_CRC (0x1<<1) //crc mode
-#define TX_MODE_IE (0x1<<2) //interrupt enable
-
-//Tx status
-#define TXDS_TXINTR (1<<16) //Interruput on Transmit
-#define TXDS_DEF (1<<17) //Transmit defered
-#define TXDS_TXCP (1<<19) //Transmit Completion
-#define TXDS_EXDEF (1<<20) //exceed deferal
-#define TXDS_NCS (1<<21) //No Carrier Sense Error
-#define TXDS_TXABT (1<<22) //transimtting aborted
-#define TXDS_LC (1<<23) //late collision
-#define TXDS_TXHA (1<<24) //transmitting halted
-#define TXDS_PAU (1<<25) //Paused
-#define TXDS_SQE (1<<26) //SQE error
-#define TXDS_CCNT (0xf<<27) //transmit collision count
-//cam command regiser
-#define CAMCMR_AUP 0x1 //Accept unicast packet
-#define CAMCMR_AMP (0x1<<1) //Accpet multicast packet
-#define CAMCMR_ABP (0x1<<2) //Accept broadcast packet
-#define CAMCMR_CCAM (0x1<<3) //complement CAM
-#define CAMCMR_ECMP (0x1<<4) //Enable CAM compare
-
-
-// MAC MII Management Data Control and Address Register(MIIDA)
-#define MDCCR 0x00300000 // MDC clock rating
-#define PHYAD 0x00000100 // PHY Address
-#define PHYWR 0x00010000 // Write Operation
-#define PHYBUSY 0x00020000 // Busy Bit
-#define PHYPreSP 0x00040000 // Preamble Suppress
-
-// PHY(DM9161) Register Description
-#define PHY_CNTL_REG 0x00
-#define PHY_STATUS_REG 0x01
-#define PHY_ID1_REG 0x02
-#define PHY_ID2_REG 0x03
-#define PHY_ANA_REG 0x04
-#define PHY_ANLPA_REG 0x05
-#define PHY_ANE_REG 0x06
-
-#define PHY_DSC_REG 0x10
-#define PHY_DSCS_REG 0x11
-#define PHY_10BTCS_REG 0x12
-#define PHY_SINT_REG 0x15
-#define PHY_SREC_REG 0x16
-#define PHY_DISC_REG 0x17
-
-//PHY Control Register
-#define RESET_PHY (1 << 15)
-#define ENABLE_LOOPBACK (1 << 14)
-#define DR_100MB (1 << 13)
-#define ENABLE_AN (1 << 12)
-#define PHY_MAC_ISOLATE (1 << 10)
-#define RESTART_AN (1 << 9)
-#define PHY_FULLDUPLEX (1 << 8)
-#define PHY_COL_TEST (1 << 7)
-
-
-// MAC Interrupt Enable Register(MIEN)
-#define EnRXINTR 0x00000001 // Enable Interrupt on Receive Interrupt
-#define EnCRCE 0x00000002 // Enable CRC Error Interrupt
-#define EnRXOV 0x00000004 // Enable Receive FIFO Overflow Interrupt
-#define EnPTLE 0x00000008 // Enable Packet Too Long Interrupt
-#define EnRXGD 0x00000010 // Enable Receive Good Interrupt
-#define EnALIE 0x00000020 // Enable Alignment Error Interrupt
-#define EnRP 0x00000040 // Enable Runt Packet on Receive Interrupt
-#define EnMMP 0x00000080 // Enable More Missed Packets Interrupt
-#define EnDFO 0x00000100 // Enable DMA receive frame over maximum size Interrupt
-#define EnDEN 0x00000200 // Enable DMA early notification Interrupt
-#define EnRDU 0x00000400 // Enable Receive Descriptor Unavailable Interrupt
-#define EnRxBErr 0x00000800 // Enable Receive Bus ERROR interrupt
-#define EnCFR 0x00004000 // Enable Control Frame Receive Interrupt
-#define EnTXINTR 0x00010000 // Enable Interrupt on Transmit Interrupt
-#define EnTXEMP 0x00020000 // Enable Transmit FIFO Empty Interrupt
-#define EnTXCP 0x00040000 // Enable Transmit Completion Interrupt
-#define EnEXDEF 0x00080000 // Enable Defer Interrupt
-#define EnNCS 0x00100000 // Enable No Carrier Sense Interrupt
-#define EnTXABT 0x00200000 // Enable Transmit Abort Interrupt
-#define EnLC 0x00400000 // Enable Late Collision Interrupt
-#define EnTDU 0x00800000 // Enable Transmit Descriptor Unavailable Interrupt
-#define EnTxBErr 0x01000000 // Enable Transmit Bus ERROR Interrupt
-
-// PHY Status Register
-#define AN_COMPLETE (1 << 5)
-
-// PHY Auto-negotiation Advertisement Register
-
-#define MODE_DR100_FULL 3
-#define MODE_DR100_HALF 2
-#define MODE_DR10_FULL 1
-#define MODE_DR10_HALF 0
-
-
-#define DR100_TX_FULL (1 << 8)
-#define DR100_TX_HALF (1 << 7)
-#define DR10_TX_FULL (1 << 6)
-#define DR10_TX_HALF (1 << 5)
-#define IEEE_802_3_CSMA_CD 1
-
-
-
-//MAC Interrupt Enable Register
-#define MIEN_EnRXINTR 1
-#define MIEN_EnCRCE (1<<1)
-#define MIEN_EnRXOV (1<<2)
-#define MIEN_EnPTLE (1<<3)
-#define MIEN_EnRXGD (1<<4)
-#define MIEN_EnALIE (1<<5)
-#define MIEN_EnRP (1<<6)
-#define MIEN_EnMMP (1<<7)
-#define MIEN_EnDFO (1<<8)
-#define MIEN_EnDEN (1<<9)
-#define MIEN_EnRDU (1<<10)
-#define MIEN_EnRXBErr (1<<11)
-#define MIEN_EnCFR (1<<14)
-#define MIEN_EnTXINTR (1<<16)
-#define MIEN_EnTXEMP (1<<17)
-#define MIEN_EnTXCP (1<<18)
-#define MIEN_EnEXDEF (1<<19)
-#define MIEN_EnNCS (1<<20)
-#define MIEN_EnTXABT (1<<21)
-#define MIEN_EnLC (1<<22)
-#define MIEN_EnTDU (1<<23)
-#define MIEN_EnTxBErr (1<<24)
-//MAC Command Regiser
-#define MCMDR_RXON 1
-#define MCMDR_ALP (1<<1)
-#define MCMDR_ARP (1<<2)
-#define MCMDR_ACP (1<<3)
-#define MCMDR_AEP (1<<4)
-#define MCMDR_SPCRC (1<<5)
-#define MCMDR_TXON (1<<8)
-#define MCMDR_NDEF (1<<9)
-#define MCMDR_SDPZ (1<<16)
-#define MCMDR_EnSQE (1<<17)
-#define MCMDR_FDUP (1<<18)
-#define MCMDR_EnMDC (1<<19)
-#define MCMDR_OPMOD (1<<20)
-#define MCMDR_LBK (1<<21)
-//#define MCMDR_EnMII (1<<22)
-//#define MCMDR_LAN (1<<23)
-#define SWR (1<<24)//lsshi add 2005-4-22 12:07
-
-
-//MAC MII Management Data Control and Address Register
-#define MIIDA_PHYRAD 1
-#define MIIDA_PHYAD (1<<8)
-#define MIIDA_WR (1<<16)
-#define MIIDA_BUSY (1<<17)
-#define MIIDA_PreSP (1<<18)
-#define MIIDA_MDCON (1<<19)
-#define MIIDA_MDCCR (1<<20)
-
-//FIFO Threshold Adjustment Register
-#define FIFOTHD_RxTHD 1
-#define FIFOTHD_TxTHD (1<<8)
-#define FIFOTHD_SWR (1<<16)
-#define FIFOTHD_Blength (1<<20)
-//MAC Interrupt Status Register
-#define MISTA_RXINTR 1
-#define MISTA_CRCE (1<<1)
-#define MISTA_RXOV (1<<2)
-#define MISTA_PTLE (1<<3)
-#define MISTA_RXGD (1<<4)
-#define MISTA_ALIE (1<<5)
-#define MISTA_RP (1<<6)
-#define MISTA_MMP (1<<7)
-#define MISTA_DFOI (1<<8)
-#define MISTA_DENI (1<<9)
-#define MISTA_RDU (1<<10)
-#define MISTA_RxBErr (1<<11)
-#define MISTA_CFR (1<<14)
-#define MISTA_TXINTR (1<<16)
-#define MISTA_TXEMP (1<<17)
-#define MISTA_TXCP (1<<18)
-#define MISTA_EXDEF (1<<19)
-#define MISTA_NCS (1<<20)
-#define MISTA_TXABT (1<<21)
-#define MISTA_LC (1<<22)
-#define MISTA_TDU (1<<23)
-#define MISTA_TxBErr (1<<24)
-
-//MAC General Status Register
-#define MGSTA_CFR 1
-#define MGSTA_RXHA (1<<1)
-#define MGSTA_RFFull (1<<2) ////RxFIFO is full lsshi 2005-4-22 12:09
-#define MGSTA_DEF (1<<4)
-#define MGSTA_PAU (1<<5)
-#define MGSTA_SQE (1<<6)
-#define MGSTA_TXHA (1<<7)
-
-
-#define n745_WriteReg(reg,val,which) (*((volatile unsigned int *)(MAC_BASE+(which)*0x800+reg))=(val))
-#define n745_ReadReg(reg,which) (*((volatile unsigned int *)(MAC_BASE+reg+(which)*0x800)))
-
-#define n745_WriteCam0(which,x,lsw,msw) \
- n745_WriteReg(CAM0L+(x)*CAM_ENTRY_SIZE,lsw,which);\
- n745_WriteReg(CAM0M+(x)*CAM_ENTRY_SIZE,msw,which);\
-
-
-#define MDCCR1 0x00a00000 // MDC clock rating
-
-#endif
+/****************************************************************************
+ * *
+ * Copyright (c) 2005 - 2007 Winbond Electronics Corp. All rights reserved. *
+ * *
+ ****************************************************************************/
+
+/****************************************************************************
+ *
+ * FILENAME
+ * w90n745_mac.h
+ *
+ * VERSION
+ * 1.0
+ *
+ * DESCRIPTION
+ * The head file for MAC driver on POS-TAX Board
+ *
+ * DATA STRUCTURES
+ * None
+ *
+ * FUNCTIONS
+ * None
+ *
+ * HISTORY
+ * 2005/08/01 Ver 1.0
+ *
+ * AUTHOR
+ * PC34 Lsshi
+ *
+ * REMARK
+ * None
+ *************************************************************************/
+#ifndef _W90N745_MAC_H_
+#define _W90N745_MAC_H_
+
+#define NON_CACHE_FLAG 0x80000000
+
+#define MAC_OFFSET 0x0
+#define MAC_0_OFFSET MAC_OFFSET
+
+// Advanced Interrupt Controller Registers
+#define AIC_SCR_EMCTX0 (VPint(AIC_SCR17))
+#define AIC_SCR_EMCRX0 (VPint(AIC_SCR18))
+
+//CAM Registers
+#define CAMCMR (MAC_OFFSET) //CAM Command Regiser
+#define CAMEN (MAC_OFFSET+0x4)//CAM ennable regiser
+#define CAM0M (MAC_OFFSET+0x8)//CAM1 Most significant Word register
+#define CAM0L (MAC_OFFSET+0xc)//CAM1 Least Significant Word Register
+#define CAM_ENTRY_SIZE 0x8 //CAM entry size
+#define CAM_ENTRIES 0x16 //CAM entries
+
+//MAC Regiseters
+#define MIEN (MAC_OFFSET+0xac) //MAC Interrupt Enable Register
+#define MCMDR (MAC_OFFSET+0x90) //MAC Command Regiser
+#define MIID (MAC_OFFSET+0x94) //MII Management Data Register
+#define MIIDA (MAC_OFFSET+0x98) //MII Management Data Control and Address Register
+#define MPCNT (MAC_OFFSET+0xb8) //Missed Packet Counter Register
+
+//DMA Registers
+#define TXDLSA (MAC_OFFSET+0x88) //Transmit Descriptor Link List Start Address Regiser
+#define RXDLSA (MAC_OFFSET+0x8c) //Receive Descriptor LInk List Start Addresss Register
+#define DMARFC (MAC_OFFSET+0xa8) //DMA Receive Frame Control Register
+#define TSDR (MAC_OFFSET+0xa0) //Transmit Start Demand Register
+#define RSDR (MAC_OFFSET+0xa4) //Recevie Start Demand Register
+#define FIFOTHD (MAC_OFFSET+0x9c) //FIFO Threshold Adjustment Register
+
+//EMC Status Register
+#define MISTA (MAC_OFFSET+0xb0) //MAC Interrupter Status Register
+#define MGSTA (MAC_OFFSET+0xb4) //MAC General Status Register
+#define MRPC (MAC_OFFSET+0xbc) //MAC Receive Pauese counter register
+#define MRPCC (MAC_OFFSET+0xc0) //MAC Receive Pauese Current Count Regiser
+#define MREPC (MAC_OFFSET+0xc4) //MAC Remote pause count retister
+
+//DMA Registers
+#define DMARFS (MAC_OFFSET+0xc8) //DMA Receive Frame Status Register
+#define CTXDSA (MAC_OFFSET+0xcc) //Current Transmit Descriptor Start Addresss Register
+#define CTXBSA (MAC_OFFSET+0xd0) //Current Transmit Buffer Start Address Regiser
+#define CRXDSA (MAC_OFFSET+0xd4) //Current Receive Descriptor start Address regiser
+#define CRXBSA (MAC_OFFSET+0xd8) //Current Receive Buffer Start Address Regiser
+
+//Debug Mode Receive Finite State Machine Registers
+#define RXFSM (MAC_OFFSET+0x200)
+#define TXFSM (MAC_OFFSET+0x204)
+#define FSM0 (MAC_OFFSET+0x208)
+#define FSM1 (MAC_OFFSET+0x20c)
+
+//Descriptor
+typedef struct
+{
+ volatile unsigned long SL;
+ volatile unsigned long buffer;
+ volatile unsigned long reserved;
+ volatile unsigned long next;
+}RXBD;
+
+
+typedef struct
+{
+ volatile unsigned long mode;
+ volatile unsigned long buffer;
+ volatile unsigned long SL;
+ volatile unsigned long next;
+}TXBD;
+
+
+// CAM Command Register(CAMCMR)
+#define CAM_AUP 0x0001 // Accept Packets with Unicast Address
+#define CAM_AMP 0x0002 // Accept Packets with Multicast Address
+#define CAM_ABP 0x0004 // Accept Packets with Broadcast Address
+#define CAM_CCAM 0x0008 // 0: Accept Packets CAM Recognizes and Reject Others
+ // 1: Reject Packets CAM Recognizes and Accept Others
+#define CAM_ECMP 0x0010 // Enable CAM Compare
+//ownership bit
+#define RX_OWNERSHIP_CPU (0x0<<30)
+#define RX_OWNERSHIP_DMA (2<<30)
+
+#define TX_OWNERSHIP_CPU (0x0<<30)
+#define TX_OWNERSHIP_DMA (2<<30)
+
+// RX Frame Descriptor's Owner bit
+#define RXfOwnership_DMA 0x80000000 // 10 = DMA
+#define RXfOwnership_CPU 0x3fffffff // 00 = CPU
+
+// TX Frame Descriptor's Owner bit
+#define TXfOwnership_DMA 0x80000000 // 1 = DMA
+#define TXfOwnership_CPU 0x7fffffff // 0 = CPU
+
+// Tx Frame Descriptor's Control bits
+#define MACTxIntEn 0x04
+#define CRCMode 0x02
+#define NoCRCMode 0x00
+#define PaddingMode 0x01
+#define NoPaddingMode 0x00
+
+//received descriptor status
+#define RXDS_RXINTR (1<<16) //set if reception of packet caused an interrupt condition
+#define RXDS_CRCE (1<<17) // set if crc error
+#define RXDS_PTLE (1<<19) //set if received frame longer than 1518 bytes
+#define RXDS_RXGD (1<<20) // receiving good packet
+#define RXDS_ALIE (1<<21) //Alignment Error
+#define RXDS_RP (1<<22) //runt packet
+#define RXDS_Inverse (1<<26) //current hit entry is setting on inverse mode
+#define RXDS_PortHit (1<<27) //port hit
+#define RXDS_IPHit (1<<28) //ip hit
+#define RXDS_Hit (1<<29) //hit
+
+//Tx ownership bit
+#define TX_OWNERSHIP_CPU (0x0<<31)
+#define TX_OWNERSHIP_DMA (0x1<<31)
+//tx mode
+#define TX_MODE_PAD 0x1 //pad
+#define TX_MODE_CRC (0x1<<1) //crc mode
+#define TX_MODE_IE (0x1<<2) //interrupt enable
+
+//Tx status
+#define TXDS_TXINTR (1<<16) //Interruput on Transmit
+#define TXDS_DEF (1<<17) //Transmit defered
+#define TXDS_TXCP (1<<19) //Transmit Completion
+#define TXDS_EXDEF (1<<20) //exceed deferal
+#define TXDS_NCS (1<<21) //No Carrier Sense Error
+#define TXDS_TXABT (1<<22) //transimtting aborted
+#define TXDS_LC (1<<23) //late collision
+#define TXDS_TXHA (1<<24) //transmitting halted
+#define TXDS_PAU (1<<25) //Paused
+#define TXDS_SQE (1<<26) //SQE error
+#define TXDS_CCNT (0xf<<27) //transmit collision count
+//cam command regiser
+#define CAMCMR_AUP 0x1 //Accept unicast packet
+#define CAMCMR_AMP (0x1<<1) //Accpet multicast packet
+#define CAMCMR_ABP (0x1<<2) //Accept broadcast packet
+#define CAMCMR_CCAM (0x1<<3) //complement CAM
+#define CAMCMR_ECMP (0x1<<4) //Enable CAM compare
+
+
+// MAC MII Management Data Control and Address Register(MIIDA)
+#define MDCCR 0x00300000 // MDC clock rating
+#define PHYAD 0x00000100 // PHY Address
+#define PHYWR 0x00010000 // Write Operation
+#define PHYBUSY 0x00020000 // Busy Bit
+#define PHYPreSP 0x00040000 // Preamble Suppress
+
+// PHY(DM9161) Register Description
+#define PHY_CNTL_REG 0x00
+#define PHY_STATUS_REG 0x01
+#define PHY_ID1_REG 0x02
+#define PHY_ID2_REG 0x03
+#define PHY_ANA_REG 0x04
+#define PHY_ANLPA_REG 0x05
+#define PHY_ANE_REG 0x06
+
+#define PHY_DSC_REG 0x10
+#define PHY_DSCS_REG 0x11
+#define PHY_10BTCS_REG 0x12
+#define PHY_SINT_REG 0x15
+#define PHY_SREC_REG 0x16
+#define PHY_DISC_REG 0x17
+
+//PHY Control Register
+#define RESET_PHY (1 << 15)
+#define ENABLE_LOOPBACK (1 << 14)
+#define DR_100MB (1 << 13)
+#define ENABLE_AN (1 << 12)
+#define PHY_MAC_ISOLATE (1 << 10)
+#define RESTART_AN (1 << 9)
+#define PHY_FULLDUPLEX (1 << 8)
+#define PHY_COL_TEST (1 << 7)
+
+
+// MAC Interrupt Enable Register(MIEN)
+#define EnRXINTR 0x00000001 // Enable Interrupt on Receive Interrupt
+#define EnCRCE 0x00000002 // Enable CRC Error Interrupt
+#define EnRXOV 0x00000004 // Enable Receive FIFO Overflow Interrupt
+#define EnPTLE 0x00000008 // Enable Packet Too Long Interrupt
+#define EnRXGD 0x00000010 // Enable Receive Good Interrupt
+#define EnALIE 0x00000020 // Enable Alignment Error Interrupt
+#define EnRP 0x00000040 // Enable Runt Packet on Receive Interrupt
+#define EnMMP 0x00000080 // Enable More Missed Packets Interrupt
+#define EnDFO 0x00000100 // Enable DMA receive frame over maximum size Interrupt
+#define EnDEN 0x00000200 // Enable DMA early notification Interrupt
+#define EnRDU 0x00000400 // Enable Receive Descriptor Unavailable Interrupt
+#define EnRxBErr 0x00000800 // Enable Receive Bus ERROR interrupt
+#define EnCFR 0x00004000 // Enable Control Frame Receive Interrupt
+#define EnTXINTR 0x00010000 // Enable Interrupt on Transmit Interrupt
+#define EnTXEMP 0x00020000 // Enable Transmit FIFO Empty Interrupt
+#define EnTXCP 0x00040000 // Enable Transmit Completion Interrupt
+#define EnEXDEF 0x00080000 // Enable Defer Interrupt
+#define EnNCS 0x00100000 // Enable No Carrier Sense Interrupt
+#define EnTXABT 0x00200000 // Enable Transmit Abort Interrupt
+#define EnLC 0x00400000 // Enable Late Collision Interrupt
+#define EnTDU 0x00800000 // Enable Transmit Descriptor Unavailable Interrupt
+#define EnTxBErr 0x01000000 // Enable Transmit Bus ERROR Interrupt
+
+// PHY Status Register
+#define AN_COMPLETE (1 << 5)
+
+// PHY Auto-negotiation Advertisement Register
+
+#define MODE_DR100_FULL 3
+#define MODE_DR100_HALF 2
+#define MODE_DR10_FULL 1
+#define MODE_DR10_HALF 0
+
+
+#define DR100_TX_FULL (1 << 8)
+#define DR100_TX_HALF (1 << 7)
+#define DR10_TX_FULL (1 << 6)
+#define DR10_TX_HALF (1 << 5)
+#define IEEE_802_3_CSMA_CD 1
+
+
+
+//MAC Interrupt Enable Register
+#define MIEN_EnRXINTR 1
+#define MIEN_EnCRCE (1<<1)
+#define MIEN_EnRXOV (1<<2)
+#define MIEN_EnPTLE (1<<3)
+#define MIEN_EnRXGD (1<<4)
+#define MIEN_EnALIE (1<<5)
+#define MIEN_EnRP (1<<6)
+#define MIEN_EnMMP (1<<7)
+#define MIEN_EnDFO (1<<8)
+#define MIEN_EnDEN (1<<9)
+#define MIEN_EnRDU (1<<10)
+#define MIEN_EnRXBErr (1<<11)
+#define MIEN_EnCFR (1<<14)
+#define MIEN_EnTXINTR (1<<16)
+#define MIEN_EnTXEMP (1<<17)
+#define MIEN_EnTXCP (1<<18)
+#define MIEN_EnEXDEF (1<<19)
+#define MIEN_EnNCS (1<<20)
+#define MIEN_EnTXABT (1<<21)
+#define MIEN_EnLC (1<<22)
+#define MIEN_EnTDU (1<<23)
+#define MIEN_EnTxBErr (1<<24)
+//MAC Command Regiser
+#define MCMDR_RXON 1
+#define MCMDR_ALP (1<<1)
+#define MCMDR_ARP (1<<2)
+#define MCMDR_ACP (1<<3)
+#define MCMDR_AEP (1<<4)
+#define MCMDR_SPCRC (1<<5)
+#define MCMDR_TXON (1<<8)
+#define MCMDR_NDEF (1<<9)
+#define MCMDR_SDPZ (1<<16)
+#define MCMDR_EnSQE (1<<17)
+#define MCMDR_FDUP (1<<18)
+#define MCMDR_EnMDC (1<<19)
+#define MCMDR_OPMOD (1<<20)
+#define MCMDR_LBK (1<<21)
+//#define MCMDR_EnMII (1<<22)
+//#define MCMDR_LAN (1<<23)
+#define SWR (1<<24)//lsshi add 2005-4-22 12:07
+
+
+//MAC MII Management Data Control and Address Register
+#define MIIDA_PHYRAD 1
+#define MIIDA_PHYAD (1<<8)
+#define MIIDA_WR (1<<16)
+#define MIIDA_BUSY (1<<17)
+#define MIIDA_PreSP (1<<18)
+#define MIIDA_MDCON (1<<19)
+#define MIIDA_MDCCR (1<<20)
+
+//FIFO Threshold Adjustment Register
+#define FIFOTHD_RxTHD 1
+#define FIFOTHD_TxTHD (1<<8)
+#define FIFOTHD_SWR (1<<16)
+#define FIFOTHD_Blength (1<<20)
+//MAC Interrupt Status Register
+#define MISTA_RXINTR 1
+#define MISTA_CRCE (1<<1)
+#define MISTA_RXOV (1<<2)
+#define MISTA_PTLE (1<<3)
+#define MISTA_RXGD (1<<4)
+#define MISTA_ALIE (1<<5)
+#define MISTA_RP (1<<6)
+#define MISTA_MMP (1<<7)
+#define MISTA_DFOI (1<<8)
+#define MISTA_DENI (1<<9)
+#define MISTA_RDU (1<<10)
+#define MISTA_RxBErr (1<<11)
+#define MISTA_CFR (1<<14)
+#define MISTA_TXINTR (1<<16)
+#define MISTA_TXEMP (1<<17)
+#define MISTA_TXCP (1<<18)
+#define MISTA_EXDEF (1<<19)
+#define MISTA_NCS (1<<20)
+#define MISTA_TXABT (1<<21)
+#define MISTA_LC (1<<22)
+#define MISTA_TDU (1<<23)
+#define MISTA_TxBErr (1<<24)
+
+//MAC General Status Register
+#define MGSTA_CFR 1
+#define MGSTA_RXHA (1<<1)
+#define MGSTA_RFFull (1<<2) ////RxFIFO is full lsshi 2005-4-22 12:09
+#define MGSTA_DEF (1<<4)
+#define MGSTA_PAU (1<<5)
+#define MGSTA_SQE (1<<6)
+#define MGSTA_TXHA (1<<7)
+
+
+#define n745_WriteReg(reg,val,which) (*((volatile unsigned int *)(MAC_BASE+(which)*0x800+reg))=(val))
+#define n745_ReadReg(reg,which) (*((volatile unsigned int *)(MAC_BASE+reg+(which)*0x800)))
+
+#define n745_WriteCam0(which,x,lsw,msw) \
+ n745_WriteReg(CAM0L+(x)*CAM_ENTRY_SIZE,lsw,which);\
+ n745_WriteReg(CAM0M+(x)*CAM_ENTRY_SIZE,msw,which);\
+
+
+#define MDCCR1 0x00a00000 // MDC clock rating
+
+#endif