⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 if_elc.h

📁 IXP425的BSP代码
💻 H
字号:
/* if_elc.h - SMC 8013WC network interface header */ /* Copyright 1984-1993 Wind River Systems, Inc. *//*modification history--------------------01b,03oct94,hdn  changed TSTART to TSTART[01] for two TX buffer.01d,03nov93,hdn  made RAMSIZE 16Kbytes.01c,23jun93,hdn  added a structure IRQ_TABLE.01b,17jun93,hdn  renamed to if_elc.h. 01a,09jun92,hdn  written. */#ifndef	__INCif_elch#define	__INCif_elch#ifdef __cplusplusextern "C" {#endif#define	SMC8013WC_RAMSIZE	0x4000#define	SMC8013WC_TSTART0	0x00#define	SMC8013WC_TSTART1	0x08#define	SMC8013WC_PSTART	0x10#define	SMC8013WC_PSTOP		0x3ftypedef struct     {    UCHAR rstat;    UCHAR next;    UCHAR lowByteCnt;    UCHAR uppByteCnt;    } ELC_HEADER;typedef struct     {#define collisions	stat[0]#define crcs		stat[1]#define aligns		stat[2]#define missed		stat[3]#define overruns	stat[4]#define disabled	stat[5]#define deferring	stat[6]#define underruns	stat[7]#define aborts		stat[8]#define outofwindow	stat[9]#define heartbeats	stat[10]#define badPacket	stat[11]#define shortPacket	stat[12]#define tnoerror	stat[13]#define rnoerror	stat[14]#define terror		stat[15]#define rerror		stat[16]#define overwrite	stat[17]#define wrapped		stat[18]#define interrupts	stat[19]#define reset		stat[20]#define strayint	stat[21]    UINT stat[23];    } ELC_STAT;typedef struct     {    struct arpcom es_ac;#define es_if		es_ac.ac_if#define es_enaddr	es_ac.ac_enaddr    USHORT bicAddr;    USHORT elcAddr;    UINT memAddr;    UINT memSize;    int intLevel;    int intVec;    int config;    UINT transmitPage[2];    UINT transmitCnt;    ELC_STAT elcStat;    UCHAR next;    UCHAR uppByteCnt;    UCHAR current;    UCHAR imask;    UCHAR istat;    UCHAR tstat;    UCHAR rstat;    UCHAR receiveBuf[0x4000];    int flags;    UINT txreq;    } ELC_SOFTC;typedef struct    {    UCHAR ir2;    UCHAR ir01;    } IRQ_TABLE;#define	CAST/* SMC 83c584 BIC (Bus Interface Controller) */ #define BIC_REG_ADDR_INTERVAL	1#define BIC_ADRS(base,reg)   (CAST (base+(reg*BIC_REG_ADDR_INTERVAL)))#define BIC_MSR(base)		BIC_ADRS(base,0x00)	/* memory select */#define BIC_ICR(base)		BIC_ADRS(base,0x01)	/* interface config */#define BIC_IAR(base)		BIC_ADRS(base,0x02)	/* IO address */#define BIC_BIO(base)		BIC_ADRS(base,0x03)	/* BIOS ROM address */#define BIC_IRR(base)		BIC_ADRS(base,0x04)	/* interrupt request */#define BIC_LAAR(base)		BIC_ADRS(base,0x05)	/* LA address */#define BIC_JUMP(base)		BIC_ADRS(base,0x06)	/* jumpers */#define BIC_GP2(base)		BIC_ADRS(base,0x07)	/* general purpose */#define BIC_LAR0(base)		BIC_ADRS(base,0x08)	/* LAN address */#define BIC_LAR1(base)		BIC_ADRS(base,0x09)	/* LAN address */#define BIC_LAR2(base)		BIC_ADRS(base,0x0a)	/* LAN address */#define BIC_LAR3(base)		BIC_ADRS(base,0x0b)	/* LAN address */#define BIC_LAR4(base)		BIC_ADRS(base,0x0c)	/* LAN address */#define BIC_LAR5(base)		BIC_ADRS(base,0x0d)	/* LAN address */#define BIC_ID(base)		BIC_ADRS(base,0x0e)	/* board ID */#define BIC_CKSM(base)		BIC_ADRS(base,0x0f)	/* checksum *//* MSR: Memory Select Register */#define MSR_RST			0x80#define MSR_MEN			0x40#define MSR_RA18		0x20#define MSR_RA17		0x10#define MSR_RA16		0x08#define MSR_RA15		0x04#define MSR_RA14		0x02#define MSR_RA13		0x01/* ICR: Interface Configuration Register */#define ICR_STO			0x80#define ICR_RIO			0x40#define ICR_RX7			0x20#define ICR_RLA			0x10#define ICR_MSZ			0x08#define ICR_IR2			0x04#define ICR_EAR			0x02#define ICR_BIT16		0x01/* IAR: IO Address Register */#define IAR_IA15		0x80#define IAR_IA14		0x40#define IAR_IA13		0x20#define IAR_IA9			0x10#define IAR_IA8			0x08#define IAR_IA7			0x04#define IAR_IA6			0x02#define IAR_IA5			0x01/* BIO: BIOS ROM Address Register */#define BIO_RS1			0x80#define BIO_RS0			0x40#define BIO_BA18		0x20#define BIO_BA17		0x10#define BIO_BA16		0x08#define BIO_BA15		0x04#define BIO_BA14		0x02#define BIO_INT			0x01/* EAR: EEROM Address Register */#define EAR_EA6			0x80#define EAR_EA5			0x40#define EAR_EA4			0x20#define EAR_EA3			0x10#define EAR_RAM			0x08#define EAR_RPE			0x04#define EAR_RP1			0x02#define EAR_RP			0x01/* IRR: Interrupt Request Register */#define IRR_IEN			0x80#define IRR_IR1			0x40#define IRR_IR0			0x20#define IRR_FLSH		0x10#define IRR_OUT3		0x08#define IRR_OUT2		0x04#define IRR_OUT1		0x02#define IRR_ZWS8		0x01/* LAAR: LA Address  Register */#define LAAR_M16EN		0x80#define LAAR_L16EN		0x40#define LAAR_ZWS16		0x20#define LAAR_LA23		0x10#define LAAR_LA22		0x08#define LAAR_LA21		0x04#define LAAR_LA20		0x02#define LAAR_LA19		0x01/* SMC 83c690 ELC (Ethernet LAN Controller) */ #define ELC_REG_ADDR_INTERVAL	1#define ELC_ADRS(base,reg)   (CAST (base+(reg*ELC_REG_ADDR_INTERVAL)))/* page-0, read */#define ELC_CMD(base)		ELC_ADRS(base,0x00)	/* command */#define ELC_TRINCRL(base)	ELC_ADRS(base,0x01)	/* TRDMA incrementer */#define ELC_TRINCRH(base)	ELC_ADRS(base,0x02)	/* TRDMA incrementer */#define ELC_BOUND(base)		ELC_ADRS(base,0x03)	/* boundary page */#define ELC_TSTAT(base)		ELC_ADRS(base,0x04)	/* transmit status */#define ELC_COLCNT(base)	ELC_ADRS(base,0x05)	/* collision error */#define ELC_INTSTAT(base)	ELC_ADRS(base,0x07)	/* interrupt status */#define ELC_RSTAT(base)		ELC_ADRS(base,0x0c)	/* receive status */#define ELC_ALICNT(base)	ELC_ADRS(base,0x0d)	/* alignment error */#define ELC_CRCCNT(base)	ELC_ADRS(base,0x0e)	/* crc error */#define ELC_MPCNT(base)		ELC_ADRS(base,0x0f)	/* missed packet *//* page-0, write */#define ELC_RSTART(base)	ELC_ADRS(base,0x01)	/* receive start */#define ELC_RSTOP(base)		ELC_ADRS(base,0x02)	/* receive stop */#define ELC_TSTART(base)	ELC_ADRS(base,0x04)	/* transmit start */#define ELC_TCNTL(base)		ELC_ADRS(base,0x05)	/* transmit counter */#define ELC_TCNTH(base)		ELC_ADRS(base,0x06)	/* transmit counter */#define ELC_RBCR0(base)		ELC_ADRS(base,0x0a)	/* remote byte count */#define ELC_RBCR1(base)		ELC_ADRS(base,0x0b)	/* remote byte count */#define ELC_RCON(base)		ELC_ADRS(base,0x0c)	/* receive config */#define ELC_TCON(base)		ELC_ADRS(base,0x0d)	/* transmit config */#define ELC_DCON(base)		ELC_ADRS(base,0x0e)	/* data config */#define ELC_INTMASK(base)	ELC_ADRS(base,0x0f)	/* interrupt mask *//* page-1, read and write */#define ELC_STA0(base)		ELC_ADRS(base,0x01)	/* station address */#define ELC_STA1(base)		ELC_ADRS(base,0x02)	/* station address */#define ELC_STA2(base)		ELC_ADRS(base,0x03)	/* station address */#define ELC_STA3(base)		ELC_ADRS(base,0x04)	/* station address */#define ELC_STA4(base)		ELC_ADRS(base,0x05)	/* station address */#define ELC_STA5(base)		ELC_ADRS(base,0x06)	/* station address */#define ELC_CURR(base)		ELC_ADRS(base,0x07)	/* current page */#define ELC_MAR0(base)		ELC_ADRS(base,0x08)	/* multicast address */#define ELC_MAR1(base)		ELC_ADRS(base,0x09)	/* multicast address */#define ELC_MAR2(base)		ELC_ADRS(base,0x0a)	/* multicast address */#define ELC_MAR3(base)		ELC_ADRS(base,0x0b)	/* multicast address */#define ELC_MAR4(base)		ELC_ADRS(base,0x0c)	/* multicast address */#define ELC_MAR5(base)		ELC_ADRS(base,0x0d)	/* multicast address */#define ELC_MAR6(base)		ELC_ADRS(base,0x0e)	/* multicast address */#define ELC_MAR7(base)		ELC_ADRS(base,0x0f)	/* multicast address *//* page-2, read and write */#define ELC_NEXT(base)		ELC_ADRS(base,0x05)	/* next page */#define ELC_BLOCK(base)		ELC_ADRS(base,0x06)	/* block address */#define ELC_ENH(base)		ELC_ADRS(base,0x07)	/* enable features *//* COMMAND: Command Register */#define CMD_PS1			0x80#define CMD_PS0			0x40#define CMD_CMD5		0x20#define CMD_CMD4		0x10#define CMD_CMD3		0x08#define CMD_TXP			0x04#define CMD_STA			0x02#define CMD_STP			0x01/* RCON: Receive Configuration Register */#define RCON_MON		0x20#define RCON_PROM		0x10#define RCON_GROUP		0x08#define RCON_BROAD		0x04#define RCON_RUNTS		0x02#define RCON_SEP		0x01/* TCON: Transmit Configuration Register */#define TCON_LB1		0x04#define TCON_LB0		0x02#define TCON_CRCN		0x01/* DCON: Data Configuration Register */#define DCON_BSIZE1		0x40#define DCON_BSIZE0		0x20#define DCON_BUS16		0x01/* INTMASK: Interrupt Mask Register */#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/* INTSTAT: Interrupt Status Register */#define ISTAT_RST		0x80#define ISTAT_CNT		0x20#define ISTAT_OVW		0x10#define ISTAT_TXE		0x08#define ISTAT_RXE		0x04#define ISTAT_PTX		0x02#define ISTAT_PRX		0x01/* TSTAT: Transmit Status Register */#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/* RSTAT: Receive Status Register */#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/* ENH: Enable Features */#define ENH_WAIT1		0x80#define ENH_WAIT0		0x40#define ENH_SLOT1		0x10#define ENH_SLOT0		0x08/* flags - software synchronize bit difinitions */#define TXING			0x01#define RXING			0x02#define TXREQ			0x04#ifdef __cplusplus}#endif#endif	/* __INCif_elch */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -