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

📄 sngks32cend.h

📁 Vxworks下BSP源码
💻 H
📖 第 1 页 / 共 3 页
字号:
/* sngks32cEnd.h - END style Ethernet interface header for Samsung ks32c *//* Copyright 1984-2002 Wind River Systems, Inc. */#include "copyright_wrs.h"/*modification history--------------------01d,14feb02,m_h  error code field in END_DEVICE01c,27sep01,m_h  big endian support01b,26apr01,m_h  convert tabs to spaces for readability01a,12apr01,m_h  created from snds100 template.*/#ifndef __INCsngks32cEndh#define __INCsngks32cEndh#ifdef __cplusplusextern "C" {#endif#include "end.h"#include "netBufLib.h"#include "sngks32c.h"/* 	EMAC PIO pins config ---about  PIOA	*/#define AT91C_PIOA_PDR  	0xFFFFF404	 /*  (PIOA) PIO Disable Register	*/#define AT91C_PIOA_ASR   	0xFFFFF470 	 /*  (PIOA) Select A Register		*/#define AT91C_PIO_PA7        ((unsigned int) 1 <<  7) /* Pin Controlled by PA7 */#define AT91C_PA7_ETXCK_EREFCK ((unsigned int) 1 << 7) /*  Ethernet MAC Transmit Clock/Reference Clock */#define AT91C_PIO_PA8        ((unsigned int) 1 <<  8) /* Pin Controlled by PA8 */#define AT91C_PA8_ETXEN    ((unsigned int) AT91C_PIO_PA8) /*  Ethernet MAC Transmit Enable */#define AT91C_PIO_PA9        ((unsigned int) 1 <<  9) /* Pin Controlled by PA9 */#define AT91C_PA9_ETX0     ((unsigned int) AT91C_PIO_PA9) /*  Ethernet MAC Transmit Data 0 */#define AT91C_PIO_PA10       ((unsigned int) 1 << 10) /* Pin Controlled by PA10 */#define AT91C_PA10_ETX1     ((unsigned int) AT91C_PIO_PA10) /*  Ethernet MAC Transmit Data 1 */#define AT91C_PIO_PA11       ((unsigned int) 1 << 11) /* Pin Controlled by PA11 */#define AT91C_PA11_ECRS_ECRSDV ((unsigned int) AT91C_PIO_PA11) /*  Ethernet MAC Carrier Sense/Carrier Sense and Data Valid */#define AT91C_PIO_PA12       ((unsigned int) 1 << 12) /* Pin Controlled by PA12 */#define AT91C_PA12_ERX0     ((unsigned int) AT91C_PIO_PA12) /*  Ethernet MAC Receive Data 0 */#define AT91C_PIO_PA13       ((unsigned int) 1 << 13) /* Pin Controlled by PA13 */#define AT91C_PA13_ERX1     ((unsigned int) AT91C_PIO_PA13) /*  Ethernet MAC Receive Data 1 */#define AT91C_PIO_PA14       ((unsigned int) 1 << 14) /* Pin Controlled by PA14 */#define AT91C_PA14_ERXER    ((unsigned int) AT91C_PIO_PA14) /*  Ethernet MAC Receive Error */#define AT91C_PIO_PA15       ((unsigned int) 1 << 15) /* Pin Controlled by PA15 */#define AT91C_PA15_EMDC     ((unsigned int) AT91C_PIO_PA15) /*  Ethernet MAC Management Data Clock */#define AT91C_PIO_PA16       ((unsigned int) 1 << 16) /* Pin Controlled by PA16 */#define AT91C_PA16_EMDIO    ((unsigned int) AT91C_PIO_PA16) /*  Ethernet MAC Management Data Input/Output *//** PHY definitions **/#define PHY_CONTROL_REG 	0#define PHY_ADDR 			0#define _AUTO_NEGOTIATE 	0x1000#define _10_MB_HDX 			0#define _100_MB_FDX 		0x2100#define _100_MB_HDX 		0x2000#define _10_MB_FDX			 0x100#define PHY_STS1_REG	       1#define PHY_STS2_REG	   	17/* enable big/little endian register bits with this macro */#if (_BYTE_ORDER == _LITTLE_ENDIAN)#define ATMEND_ENDIAN 1#else#define ATMEND_ENDIAN 0#endif#if 0/** the following describes the  structure for the * transmit and receive frame descriptors.*/#if (_BYTE_ORDER == _LITTLE_ENDIAN)struct FD_TX_CONTROL_PACKED    {    UINT32 p_bit:1;    UINT32 c_bit:1;    UINT32 t_bit:1;    UINT32 l_bit:1;    UINT32 a_bit:1;    UINT32 wa_bit:2;    UINT32 reserved_bit:25;    }__attribute__((__packed__));#else /*(_BYTE_ORDER == _LITTLE_ENDIAN)*/struct FD_TX_CONTROL_PACKED    {    UINT32 reserved_bit:25;    UINT32 wa_bit:2;    UINT32 a_bit:1;    UINT32 l_bit:1;    UINT32 t_bit:1;    UINT32 c_bit:1;    UINT32 p_bit:1;    }__attribute__((__packed__));#endif /*(_BYTE_ORDER == _LITTLE_ENDIAN)*/typedef struct FD_TX_CONTROL_PACKED FD_TX_CONTROL;#if (_BYTE_ORDER == _LITTLE_ENDIAN)struct FD_TX_FRAMEDATA_PACKED    {    UINT32 frameDataPtr:31;    UINT32 o_bit:1;    }__attribute__((__packed__));#else /*(_BYTE_ORDER == _LITTLE_ENDIAN)*/struct FD_TX_FRAMEDATA_PACKED    {    UINT32 o_bit:1;    UINT32 frameDataPtr:31;    }__attribute__((__packed__));#endif /*(_BYTE_ORDER == _LITTLE_ENDIAN)*/typedef struct FD_TX_FRAMEDATA_PACKED FD_TX_FRAME_DATA;#if (_BYTE_ORDER == _LITTLE_ENDIAN)struct FD_TX_STATUS_LENGTH_PACKED    {    UINT32 frameLength:16;    UINT32 txCollCnt:4;    UINT32 exColl:1;    UINT32 txDefer:1;    UINT32 paused:1;    UINT32 intTx:1;    UINT32 underRun:1;    UINT32 deferAl:1;    UINT32 ncArr:1;    UINT32 sqeErr:1;    UINT32 lateColl:1;    UINT32 txPar:1;    UINT32 comp:1;    UINT32 txHalted:1;    }__attribute__((__packed__));#else /*(_BYTE_ORDER == _LITTLE_ENDIAN)*/struct FD_TX_STATUS_LENGTH_PACKED    {    UINT32 txHalted:1;    UINT32 comp:1;    UINT32 txPar:1;    UINT32 lateColl:1;    UINT32 sqeErr:1;    UINT32 ncArr:1;    UINT32 deferAl:1;    UINT32 underRun:1;    UINT32 intTx:1;    UINT32 paused:1;    UINT32 txDefer:1;    UINT32 exColl:1;    UINT32 txCollCnt:4;    UINT32 frameLength:16;    }__attribute__((__packed__));#endif /*(_BYTE_ORDER == _LITTLE_ENDIAN)*/typedef struct FD_TX_STATUS_LENGTH_PACKED FD_TX_STATUS_LENGTH;struct TRANSMIT_FRAME_DESC_PACKED    {    FD_TX_FRAME_DATA txFrameData;    FD_TX_CONTROL txControl;    FD_TX_STATUS_LENGTH txStatusLength;    struct TRANSMIT_FRAME_DESC_PACKED *nextTxFrameDesc;    }__attribute__((__packed__));typedef struct TRANSMIT_FRAME_DESC_PACKED TRANSMIT_FRAME_DESC;#if (_BYTE_ORDER == _LITTLE_ENDIAN)struct FD_RX_FRAME_DATA_PACKED    {    UINT32 frameDataPtr:31;    UINT32 o_bit:1;    }__attribute__((__packed__));#else /*(_BYTE_ORDER == _LITTLE_ENDIAN)*/struct FD_RX_FRAME_DATA_PACKED    {    UINT32 o_bit:1;    UINT32 frameDataPtr:31;    }__attribute__((__packed__));#endif /*(_BYTE_ORDER == _LITTLE_ENDIAN)*/typedef struct FD_RX_FRAME_DATA_PACKED FD_RX_FRAME_DATA;#if (_BYTE_ORDER == _LITTLE_ENDIAN)struct FD_RX_STATUS_LENGTH_PACKED    {    UINT32 frameLength:16;    UINT32 empty0:3;    UINT32 ovMax:1;    UINT32 empty1:1;    UINT32 ctlRcv:1;    UINT32 intRx:1;    UINT32 rx10Stat:1;    UINT32 alignErr:1;    UINT32 crcErr:1;    UINT32 overFlow:1;    UINT32 longErr:1;    UINT32 empty2:1;    UINT32 rxPar:1;    UINT32 good:1;    UINT32 rxHalted:1;    }__attribute__((__packed__));#else /*(_BYTE_ORDER == _LITTLE_ENDIAN)*/struct FD_RX_STATUS_LENGTH_PACKED    {    UINT32 rxHalted:1;    UINT32 good:1;    UINT32 rxPar:1;    UINT32 empty2:1;    UINT32 longErr:1;    UINT32 overFlow:1;    UINT32 crcErr:1;    UINT32 alignErr:1;    UINT32 rx10Stat:1;    UINT32 intRx:1;    UINT32 ctlRcv:1;    UINT32 empty1:1;    UINT32 ovMax:1;    UINT32 empty0:3;    UINT32 frameLength:16;    }__attribute__((__packed__));#endif /*(_BYTE_ORDER == _LITTLE_ENDIAN)*/typedef struct FD_RX_STATUS_LENGTH_PACKED FD_RX_STATUS_LENGTH;struct RECEIVE_FRAME_DESC_PACKED            /* receive frame descriptor */    {    FD_RX_FRAME_DATA rxFrameData;    UINT32 reserved;    FD_RX_STATUS_LENGTH rxStatusLength;    struct RECEIVE_FRAME_DESC_PACKED *nextRxFrameDesc;    }__attribute__((__packed__));typedef struct RECEIVE_FRAME_DESC_PACKED RECEIVE_FRAME_DESC;#if (_BYTE_ORDER == _LITTLE_ENDIAN)struct BDMARXCON_PACKED    {    UINT32 burstSize:5;    UINT32 stop_skipFrame:1;    UINT32 memAddrsInc_Dec:1;    UINT32 recvFrameIntrEnb:1;    UINT32 nullListIntrEnb:1;    UINT32 notOwnerIntrEnb:1;    UINT32 maxSizeOverIntrEnb:1;    UINT32 big_LittleEndian:1;    UINT32 wordAlign:2;    UINT32 enable:1;    UINT32 reset:1;    UINT32 buffEmptyIntr:1;    UINT32 erlyNotifyIntr:1;    UINT32 reserved_0:14;    }__attribute__((__packed__));#else /*(_BYTE_ORDER == _LITTLE_ENDIAN)*/struct BDMARXCON_PACKED    {    UINT32 reserved_0:14;    UINT32 erlyNotifyIntr:1;    UINT32 buffEmptyIntr:1;    UINT32 reset:1;    UINT32 enable:1;    UINT32 wordAlign:2;    UINT32 big_LittleEndian:1;    UINT32 maxSizeOverIntrEnb:1;    UINT32 notOwnerIntrEnb:1;    UINT32 nullListIntrEnb:1;    UINT32 recvFrameIntrEnb:1;    UINT32 memAddrsInc_Dec:1;    UINT32 stop_skipFrame:1;    UINT32 burstSize:5;    }__attribute__((__packed__));#endif /*(_BYTE_ORDER == _LITTLE_ENDIAN)*/union UNION_BDMARXCON    {        struct BDMARXCON_PACKED    rxCon_reg;        UINT32 rxCon_resetval;    }__attribute__((__packed__));typedef union UNION_BDMARXCON BDMARXCON;#if (_BYTE_ORDER == _LITTLE_ENDIAN)struct BDMATXCON_PACKED    {    UINT32 burstSize:5;    UINT32 stop_skipFrame:1;    UINT32 reserved_0:1;    UINT32 sendCntrlPacketIntrEnb:1;    UINT32 nullListIntrEnb:1;    UINT32 notOwnerIntrEnb:1;    UINT32 buffEmptyIntrEnb:1;    UINT32 macTxStartLevel:3;    UINT32 enable:1;    UINT32 reset:1;    UINT32 reserved_1:16;    }__attribute__((__packed__));#else /*(_BYTE_ORDER == _LITTLE_ENDIAN)*/struct BDMATXCON_PACKED    {    UINT32 reserved_1:16;    UINT32 reset:1;    UINT32 enable:1;    UINT32 macTxStartLevel:3;    UINT32 buffEmptyIntrEnb:1;    UINT32 notOwnerIntrEnb:1;    UINT32 nullListIntrEnb:1;    UINT32 sendCntrlPacketIntrEnb:1;    UINT32 reserved_0:1;    UINT32 stop_skipFrame:1;    UINT32 burstSize:5;    }__attribute__((__packed__));#endif /*(_BYTE_ORDER == _LITTLE_ENDIAN)*/union UNION_BDMATXCON    {        struct BDMATXCON_PACKED    txCon_reg;        UINT32 txCon_resetval;    }__attribute__((__packed__));typedef union UNION_BDMATXCON BDMATXCON;#if (_BYTE_ORDER == _LITTLE_ENDIAN)struct BDMARXPTR_PACKED    {    UINT32 bdmaRxPointer:27;  /* extra bit holds non-cache region */    UINT32 reserved:5;    }__attribute__((__packed__));#else /*(_BYTE_ORDER == _LITTLE_ENDIAN)*/struct BDMARXPTR_PACKED    {    UINT32 reserved:5;    UINT32 bdmaRxPointer:27;  /* extra bit holds non-cache region */    }__attribute__((__packed__));#endif /*(_BYTE_ORDER == _LITTLE_ENDIAN)*/union UNION_BDMARXPTR    {        struct BDMARXPTR_PACKED    rxPtr_reg;        UINT32 rxPtr_resetval;    }__attribute__((__packed__));typedef union UNION_BDMARXPTR BDMARXPTR;#if (_BYTE_ORDER == _LITTLE_ENDIAN)struct BDMATXPTR_PACKED    {    UINT32 bdmaTxPointer:27;  /* extra bit holds non-cache region */    UINT32 reserved:5;    }__attribute__((__packed__));#else /*(_BYTE_ORDER == _LITTLE_ENDIAN)*/struct BDMATXPTR_PACKED    {    UINT32 reserved:5;    UINT32 bdmaTxPointer:27;  /* extra bit holds non-cache region */    }__attribute__((__packed__));#endif /*(_BYTE_ORDER == _LITTLE_ENDIAN)*/union UNION_BDMATXPTR    {        struct BDMATXPTR_PACKED    txPtr_reg;        UINT32 txPtr_resetval;    }__attribute__((__packed__));typedef union UNION_BDMATXPTR BDMATXPTR;#if (_BYTE_ORDER == _LITTLE_ENDIAN)struct BDMARXLSZ_PACKED    {    UINT32 bdmaRxMaxSize:16;    UINT32 bdmaRxFrameLength:16;    }__attribute__((__packed__));#else /*(_BYTE_ORDER == _LITTLE_ENDIAN)*/struct BDMARXLSZ_PACKED    {    UINT32 bdmaRxFrameLength:16;    UINT32 bdmaRxMaxSize:16;    }__attribute__((__packed__));#endif /*(_BYTE_ORDER == _LITTLE_ENDIAN)*/union UNION_BDMARXLSZ    {        struct BDMARXLSZ_PACKED    rxLsz_reg;        UINT32 rxLsz_resetval;    }__attribute__((__packed__));typedef union UNION_BDMARXLSZ BDMARXLSZ;#if (_BYTE_ORDER == _LITTLE_ENDIAN)struct BDMASTAT_PACKED    {    UINT32 bdmaRxDoneEveryRxFrame:1;

⌨️ 快捷键说明

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