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

📄 pnic169end.h

📁 VxWorks下的PowerPC 824X系列CPU的bSP包!
💻 H
📖 第 1 页 / 共 3 页
字号:
/* pnic169End.h - NETGEAR PNIC Ethernet LAN Controller 169 interface header *//* Copyright 1984-2001 Wind River Systems, Inc. *//*modification history--------------------01a,08mar01,g_h  written from dec21x4xEnd.c*/#ifndef __INCpnic169Endh#define __INCpnic169Endh#ifdef __cplusplusextern "C" {#endif#include "end.h"#include "cacheLib.h"#include "netBufLib.h"extern END_OBJ *	pnic169EndLoad (char *initString);  /*declared here to be global.*/#define PNICPCI_REG_OFFSET		0x08	/* quad word aligned */#if (_BYTE_ORDER == _BIG_ENDIAN)#define PCISWAP(x)		LONGSWAP(x)#define PCISWAP_SHORT(x)	(MSB(x) | LSB(x) << 8)#define SROM_SHORT(pX)		(*(UINT8*)(pX) << 8 | *((UINT8*)(pX)+1))#else#define PCISWAP(x)		(x)			#define	PCISWAP_SHORT(x)	(x)#define SROM_SHORT(pX)		(*(UINT8*)(pX) | *((UINT8*)(pX)+1) << 8)#endif /* _BYTE_ORDER == _BIG_ENDIAN *//* NetGear PNIC169 PCI specific definitions */ #define PNIC_PCI_VENDORID       0x11AD  /* PCI vendor ID */#define PNIC_PCI_DEVICEID       0x0002  /* PCI device ID *//* * Receive Message Descriptor Entry. * Four words per entry.  Number of entries must be a power of two. */typedef struct rDesc    {    ULONG	rDesc0;		/* status and ownership */    ULONG	rDesc1;		/* control & buffer count */    ULONG	rDesc2;		/* buffer address 1 */    ULONG	rDesc3;		/* buffer address 2 */    } PNIC_RD;/* * Transmit Message Descriptor Entry. * Four words per entry.  Number of entries must be a power of two. */typedef struct tDesc    {    ULONG	tDesc0;		/* status and ownership */    ULONG	tDesc1;		/* control & buffer count */    ULONG	tDesc2;		/* buffer address 1 */    ULONG	tDesc3;		/* buffer address 2 */    } PNIC_TD;#define PNIC_MAX_UNITS	1	/* max number of pnic units (only support one unit) */#define MIN_RDS		5	/* 5 buffers reasonable minimum */	#define MIN_TDS		5	/* 5 buffers reasonable minimum */#define NUM_RDS_DEF	64	/* default number of Recv descriptors */#define NUM_TDS_DEF	64	/* default number of Xmit descriptors */#define NUM_LOAN	128	/* number of loaner buffers *//* define CSRs and descriptors */#define CSR0	0		/* csr 0 */#define CSR1	1		/* csr 1 */#define CSR2	2		/* csr 2 */#define CSR3	3		/* csr 3 */#define CSR4	4		/* csr 4 */#define CSR5	5		/* csr 5 */#define CSR6	6		/* csr 6 */#define CSR7	7		/* csr 7 */#define CSR8	8		/* csr 8 */#define CSR9	9		/* csr 9 */#define CSR10	10		/* csr 10 */#define CSR11	11		/* csr 11 */#define CSR12	12		/* csr 12 */#define CSR13	13		/* csr 13 */#define CSR14	14		/* csr 14 */#define CSR15	15		/* csr 15 */#define CSR20	20		/* csr 20 */#define RDESC0	0		/* recv desc 0 */#define RDESC1	1		/* recv desc 1 */#define RDESC2	2		/* recv desc 2 */#define RDESC3	3		/* recv desc 3 */#define TDESC0	0		/* xmit desc 0 */#define TDESC1	1		/* xmit desc 1 */#define TDESC2	2		/* xmit desc 2 */#define TDESC3	3		/* xmit desc 3 */	/* command status register read write */#define CSR(base,x)		((ULONG)(base) + ((PNICPCI_REG_OFFSET) * (x)))#define READ_CSR(base,x)	(PCISWAP(*((ULONG *)CSR((base),(x)))))#define WRITE_CSR(base,x,val)	(*((ULONG *)CSR((base),(x))) = PCISWAP((val)))/* recv xmit descriptor read write */#define DESC(base,x)		((ULONG)(base) + (4 * (x)))#define READ_DESC(base,x)	(PCISWAP(*((ULONG *)(DESC((base),(x))))))#define WRITE_DESC(base,x,val)	(*((ULONG *)(DESC((base),(x)))) = PCISWAP((val)))/* Definitions for fields and bits in the PNIC_DEVICE *//* CSR0 Bus Mode Register */#define CSR0_169_WIE	0x01000000  /* write & invalidate enable pnic169 */#define CSR0_169_RLE	0x00800000  /* read line enable pnic169 */#define	CSR0_169_RML	0x00200000	/* pci read multiple - pnic169 */#define CSR0_169_DBO	0x00100000  /* descriptor byte ordering - pnic169 */#define CSR0_TAP_NO	    0x00000000	/* no xmit auto polling */#define CSR0_TAP_200	0x00020000	/* xmit poll every 200 usecs */#define CSR0_TAP_800	0x00040000	/* xmit poll every 800 usecs */#define CSR0_TAP_1600	0x00060000	/* xmit poll every 1.6 millsecs */#define	CSR0_TAP_12	    0x00080000	/* xmit poll every 12.8 usecs - pnic169 */#define	CSR0_TAP_25	    0x000A0000	/* xmit poll every 25.6 usecs - pnic169 */#define	CSR0_TAP_51	    0x000C0000	/* xmit poll every 51.2 usecs - pnic169 */#define	CSR0_TAP_102	0x000E0000	/* xmit poll every 102.4 usecs- pnic169 */#define CSR0_DAS	    0x00010000	/* Diagnostic Address Space */#define CSR0_CAL_NO	    0x00000000	/* cache address alignment not used */#define CSR0_CAL_08	    0x00004000	/* 08 longword boundary aligned */#define CSR0_CAL_16	    0x00008000	/* 16 longword boundary aligned */#define CSR0_CAL_32	    0x0000c000	/* 32 longword boundary aligned */#define	CSR0_PBL_UL	    0x00000000	/* dma burst len - unlimited */#define	CSR0_PBL_01	    0x00000100	/* dma burst len -  1 lword */#define	CSR0_PBL_02	    0x00000200	/* dma burst len -  2 lwords */#define	CSR0_PBL_04	    0x00000400	/* dma burst len -  4 lwords */#define	CSR0_PBL_08	    0x00000800	/* dma burst len -  8 lwords */#define	CSR0_PBL_16	    0x00001000	/* dma burst len - 16 lwords */#define	CSR0_PBL_32	    0x00002000	/* dma burst len - 32 lwords */#define CSR0_BLE	    0x00000080	/* Big/little endian */#define CSR0_BAR	    0x00000002	/* Bus arbitration */#define CSR0_SWR	    0x00000001	/* software reset */#define CSR0_PBL_MSK	0x00003F00	/* Dma burst length mask */#define CSR0_PBL_VAL(x)	(((x) << 8) & CSR0_PBL_MSK)#define CSR0_DSL_MSK	0x0000007C	/* Descriptor skip length */#define CSR0_DSL_VAL(x) (((x) << 2) & CSR0_DSL_MSK)#define CSR0_TAP_MSK	0x00060000#define CSR0_BLE_MSK	0x00000080#define	CSR0_CAL_MSK	0x0000c000/* CSR1 Transmit Poll Demand Register */#define CSR1_TPD	0x00000001	/* Transmit poll demand *//* CSR2 Recieve Poll Demand Register */#define CSR2_RPD	0x00000001	/* Transmit poll demand *//* CSR3 Receive List Base address Register */#define CSR3_RDBA_MSK	0xFFFFFFFC	/* long word aligned */#define CSR3_RDBA_VAL(x) ((x) & CSR3_RDBA_MSK)/* CSR4 Transmit List Base address Register */#define CSR4_TDBA_MSK	0xFFFFFFFC	/* long word aligned */#define CSR4_TDBA_VAL(x) ((x) & CSR4_TDBA_MSK)/* CSR5 Status register */#define CSR5_169_LC	0x08000000  /* link changed - 169 */#define CSR5_169_GPI	0x04000000  /* GP port interrupt  - 169 */#define CSR5_ERR_PE	    0x00000000	/* parity error */#define CSR5_ERR_MA	    0x00800000	/* Master abort */#define CSR5_ERR_TA	    0x01000000	/* target abort */#define CSR5_TPS_ST	    0x00000000	/* Stopped */#define CSR5_TPS_RFTD	0x00100000	/* Running Fetch xmit descriptor */#define CSR5_TPS_RWET	0x00200000	/* Running Wait for end of Xmission */#define CSR5_TPS_RRBM	0x00300000	/* Running Read buff from memory */#define CSR5_TPS_RSP	0x00500000	/* Running Set up packet */#define CSR5_TPS_STFU	0x00600000	/* Suspended xmit FIFO underflow */#define CSR5_TPS_RCTD	0x00700000	/* Running Close xmit descriptor */#define CSR5_RPS_ST	    0x00000000	/* stopped reset or stop rcv command */#define CSR5_RPS_RFRD	0x00020000	/* Running Fetch rcv descriptor */#define CSR5_RPS_RCEP	0x00040000	/* Running Check end of rcv packet */#define CSR5_RPS_RWRP	0x00060000	/* Running Wait for rcv packet */#define CSR5_RPS_SURB	0x00080000	/* Suspended - unavailable rcv buff */#define CSR5_RPS_RCRD	0x000A0000	/* Running close rcv descriptor */#define CSR5_RPS_RFFF	0x000C0000	/* flush frame from rcv FIFO */#define CSR5_RPS_RQRF	0x000E0000	/* queue the rcv frame into rcv buff */#define CSR5_NIS	    0x00010000	/* normal interrupt summary */#define CSR5_AIS	    0x00008000	/* abnormal interrupt summary */#define CSR5_169_ERI   0x00004000  /* early receive interrupt - 169 */#define CSR5_SE		    0x00002000	/* system error */#define CSR5_169_LNF	0x00001000	/* link fail - 169 */#define CSR5_169_FD	0x00000800	/* Full duplex short frm rxd - 169 */#define	CSR5_169_TMR	0x00000800	/* GP timer expired - 169 */#define CSR5_169_AT	0x00000400	/* AUI / 10BaseT Pin - 169 */#define	CSR5_169_ETI	0x00000400	/* Early Tx intrrupt - 169 */#define CSR5_RWT	    0x00000200	/* rcv watchdog time-out */#define CSR5_RPS	    0x00000100	/* rcv process stopped */#define CSR5_RU		    0x00000080	/* rcv buffer unavailable */#define CSR5_RI		    0x00000040	/* rcv interrupt */#define CSR5_UNF	    0x00000020	/* xmit underflow */#define CSR5_169_LNP	0x00000010  /* link pass - 169 */#define CSR5_TJT	    0x00000008	/* xmit jabber time-out */#define CSR5_TU		    0x00000004	/* xmit buffer unavailable */#define CSR5_TPS	    0x00000002	/* Xmit Process stopped */#define CSR5_TI		    0x00000001	/* xmit interrupt */#define CSR5_RPS_MSK	0x000E0000	/* Rcv process state mask */#define CSR5_TPS_MSK	0x00700000	/* Xmit process state mask */#define CSR5_ERR_MSK	0x03800000	/* error mask *//* CSR6 Operation Mode Register */#define	CSR6_169_SC	0x80000000	/* special capture effect enable */#define	CSR6_169_RA	0x40000000	/* receive all */#define	CSR6_169_MB1	0x02000000	/* must be 1 */#define	CSR6_169_SCR	0x01000000	/* scrambler mode */#define	CSR6_169_PCS	0x00800000	/* PCS function */#define	CSR6_169_TTM	0x00400000	/* tx threshold mode */#define	CSR6_169_SF	0x00200000	/* store and forward */#define	CSR6_169_HBD	0x00080000	/* heartbeat disable */#define	CSR6_169_PS	0x00040000	/* port select */#define	CSR6_CAE	    0x00020000	/* capture effect enable */#define	CSR6_169_BP	0x00010000	/* back pressure - 169 */#define	CSR6_THR_072	0x00000000	/* threshold bytes 72 */#define	CSR6_THR_096	0x00004000	/* threshold bytes 96 */#define	CSR6_THR_128	0x00008000	/* threshold bytes 128 */#define	CSR6_THR_160	0x0000C000	/* threshold bytes 160 */#define	CSR6_ST		    0x00002000	/* start/stop Xmit command */#define	CSR6_FC		    0x00001000	/* Force collision mode */#define CSR6_OM_EXT     0x00000800  /* external loopback mode */#define	CSR6_OM_INT	    0x00000400	/* internal loopback mode */#define	CSR6_OM_NOR	    0x00000000	/* normal mode */#define	CSR6_FD		    0x00000200	/* Full Duplex mode */#define	CSR6_169_FKD	0x00000100	/* Flaky oscillator disable - 169 */#define	CSR6_PM		    0x00000080	/* Pass all multicast */#define	CSR6_PR		    0x00000040	/* promiscuous mode */#define	CSR6_SB		    0x00000020	/* Start/Stop Back off counter */#define	CSR6_IF		    0x00000010	/* inverse filtering [RO] */

⌨️ 快捷键说明

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