www.pudn.com > S3c2410bsp.zip > ne2000End.h


/* ne2000End.h - Novell/Eagle 2000 network interface header */




#ifndef __INCne2000Endh
#define __INCne2000Endh

#ifdef __cplusplus
extern "C" {
#endif

#include "netinet/if_ether.h"

#define EADDR_LEN		6
#define NE2000_BUFSIZ		(ETHERMTU + SIZEOF_ETHERHEADER + EADDR_LEN)
#define SAVE_SND_NUM		10
#define RECV_PAGE_NUM		58
#define RECV_PAGE_SIZE		256
#define RECV_PAGE_BASE		(0x46)


#define NE2000_CONFIG_PAGE      0x00    /* where the Ethernet address is */
#define NE2000_EADDR_LOC        0x00    /* location within config. page */
#define NE2000_TSTART           0x40
#define NE2000_PSTART           0x46
#define NE2000_PSTOP            0x80

#define ENE_PAGESIZE            256


#define _USE_RECV_DMA_
#define _USE_SND_DMA_
#undef _UNUSE_SND_DMA_

typedef struct
    {
    UCHAR rstat;
    UCHAR next;
    UCHAR lowByteCnt;
    UCHAR uppByteCnt;
    } NE2000_HEADER;

#define ENE_OFFSET 1

#define ENE_CMD		(0x00)	
#define ENE_TRINCRL	(0x01)	
#define ENE_TRINCRH	(0x02)	
#define ENE_BOUND	(0x03)	
#define ENE_TSTAT	(0x04)	
#define ENE_COLCNT	(0x05)	
#define ENE_INTSTAT	(0x07)	
#define ENE_RSTAT	(0x0c)	
#define ENE_ALICNT	(0x0d)	
#define ENE_CRCCNT	(0x0e)	
#define ENE_MPCNT	(0x0f)	


#define ENE_RSTART	(0x01)	
#define ENE_RSTOP	(0x02)	
#define ENE_TSTART	(0x04)	
#define ENE_TCNTL	(0x05)	
#define ENE_TCNTH	(0x06)	
#define ENE_INTSET	(0x07)
#define ENE_RSAR0	(0x08)	
#define ENE_RSAR1	(0x09)	
#define ENE_RBCR0	(0x0a)	
#define ENE_RBCR1	(0x0b)	
#define ENE_RCON	(0x0c)	
#define ENE_TCON	(0x0d)	
#define ENE_DCON	(0x0e)	
#define ENE_INTMASK	(0x0f)	


#define ENE_STA0	(0x01)	
#define ENE_STA1	(0x02)	
#define ENE_STA2	(0x03)	
#define ENE_STA3	(0x04)	
#define ENE_STA4	(0x05)
#define ENE_STA5	(0x06)	
#define ENE_CURR	(0x07)	
#define ENE_MAR0	(0x08)	
#define ENE_MAR1	(0x09)	
#define ENE_MAR2	(0x0a)	
#define ENE_MAR3	(0x0b)	
#define ENE_MAR4	(0x0c)	
#define ENE_MAR5	(0x0d)	
#define ENE_MAR6	(0x0e)	
#define ENE_MAR7	(0x0f)	


#define ENE_NEXT	(0x05)	
#define ENE_BLOCK	(0x06)	
#define ENE_ENH		(0x07)	
#define ENE_DCRR    (0x0e)    
#define ENE_TCRR    (0x0d)   

#define ENE_DATA	(0x10)	
#define ENE_RESET	(0x1f)	


#define CMD_PAGE2		0x80
#define CMD_PAGE1		0x40
#define CMD_PAGE0		0x00
#define CMD_NODMA		0x20
#define CMD_RWRITE		0x10
#define CMD_RREAD		0x08
#define CMD_TXP			0x04
#define CMD_START		0x02
#define CMD_STOP		0x01

#define RCON_MON		0x20
#define RCON_PROM		0x10
#define RCON_GROUP		0x08
#define RCON_BROAD		0x04
#define RCON_RUNTS		0x02
#define RCON_SEP		0x01

#define TCON_LB1		0x04
#define TCON_LB0		0x02
#define TCON_CRCN		0x01
#define TCON_NORMAL		0x00 

#define DCON_BSIZE1		0x40
#define DCON_BSIZE0		0x20
#define DCON_AUTO_INIT		0x10
#define DCON_LOOPBK_OFF		0x08
#define DCON_LOOPBK_ON		0x00
#define DCON_DMA_32		0x04
#define DCON_DMA_16		0x00
#define DCON_BIG_ENDIAN		0x02
#define DCON_LITTLE_ENDIAN	0x00
#define DCON_BUS16		0x01
#define DCON_BUS_8		0x00

#define IM_XDCE			0x40
#define IM_CNTE			0x20
#define IM_OVWE			0x10
#define IM_TXEE			0x08
#define IM_RXEE			0x04
#define IM_PTXE			0x02
#define IM_PRXE			0x01

#define ISTAT_RST		0x80
#define ISTAT_RDC		0x40		
#define ISTAT_CNT		0x20
#define ISTAT_OVW		0x10
#define ISTAT_TXE		0x08
#define ISTAT_RXE		0x04
#define ISTAT_PTX		0x02
#define ISTAT_PRX		0x01

#define TSTAT_OWC		0x80
#define TSTAT_CDH		0x40
#define TSTAT_UNDER		0x20
#define TSTAT_CRL		0x10
#define TSTAT_ABORT		0x08
#define TSTAT_TWC		0x04
#define TSTAT_NDT		0x02
#define TSTAT_PTX		0x01

#define RSTAT_DFR		0x80
#define RSTAT_DIS		0x40
#define RSTAT_GROUP		0x20
#define RSTAT_MPA		0x10
#define RSTAT_OVER		0x08
#define RSTAT_FAE		0x04
#define RSTAT_CRC		0x02
#define RSTAT_PRX		0x01

#define ENH_WAIT1		0x80
#define ENH_WAIT0		0x40
#define ENH_SLOT1		0x10
#define ENH_SLOT0		0x08

#define TXING			0x01
#define RXING			0x02
#define TXREQ			0x04

#define rNE2000_DISRC0		(*(volatile unsigned *)0x4b000000)
#define rNE2000_DISRCC0	(*(volatile unsigned *)0x4b000004)
#define rNE2000_DIDST0		(*(volatile unsigned *)0x4b000008)
#define rNE2000_DIDSTC0	(*(volatile unsigned *)0x4b00000c)
#define rNE2000_DCON0		(*(volatile unsigned *)0x4b000010)
#define rNE2000_DSTAT0		(*(volatile unsigned *)0x4b000014)
#define rNE2000_DCSRC0		(*(volatile unsigned *)0x4b000018)
#define rNE2000_DCDST0		(*(volatile unsigned *)0x4b00001c)
#define rNE2000_DMASKTRIG0	(*(volatile unsigned *)0x4b000020)

#define rNE2000_DISRC3		(*(volatile unsigned *)0x4b0000c0)
#define rNE2000_DISRCC3	(*(volatile unsigned *)0x4b0000c4)
#define rNE2000_DIDST3		(*(volatile unsigned *)0x4b0000c8)
#define rNE2000_DIDSTC3	(*(volatile unsigned *)0x4b0000cc)
#define rNE2000_DCON3		(*(volatile unsigned *)0x4b0000d0)
#define rNE2000_DSTAT3		(*(volatile unsigned *)0x4b0000d4)
#define rNE2000_DCSRC3		(*(volatile unsigned *)0x4b0000d8)
#define rNE2000_DCDST3		(*(volatile unsigned *)0x4b0000dc)
#define rNE2000_DMASKTRIG3	(*(volatile unsigned *)0x4b0000e0)




#ifdef __cplusplus
}
#endif

#endif  /* __INCne2000Endh */