mac8947.h

来自「source code of armboot for s3c4510」· C头文件 代码 · 共 1,048 行 · 第 1/2 页

H
1,048
字号
#ifndef	__MAC8947h#define		__MAC8947h/* Big endian or little endian big = 1, little = 0 */#define BIG_ENDIAN			0/*FOR VxWorks*//*#define PACK_RESERVED		(__attribute__((__packed__)))*/#define PACK_RESERVED/**********BDMA control registers **************///s3c4510 have one DMA Ethernet(BDMA),hill 2007.09.07#define	BDMA_CHANNELA_BASE			0x03ff000+0x9000#define	MAC_CHANNELA_BASE			0x03ff000+0xA000/**********BDMA control registers **************/#define BDMATXCON 				0x0000#define BDMARXCON 				0x0004#define BDMATXPTR 				0x0008#define BDMARXPTR 				0x000C#define BDMARXLSZ 				0x0010#define BDMASTAT				0x0014#define CAM_Reg(x)     			0x0100 + (x * 0x4)#define	CAM_BASE				0x0100#define BDMATXBUF      			0x0200#define BDMARXBUF      			0x0800/***********MAC control registers**************/#define MACCON					0x0000#define CAMCON					0x0004#define MACTXCON				0x0008#define MACTXSTAT				0x000C#define MACRXCON				0x0010#define MACRXSTAT				0x0014#define STADATA					0x0018#define STACON					0x001C#define CAMEN					0x0028#define EMISSCNT				0x003C#define EPZCNT					0x0040#define ERMPZCNT				0x0044#define ETXSTAT					0x0040#define MACRXDESTR     			0x0064#define MACRXSTATEM    			0x0090#define MACRXFIFO      			0x0200struct FD_TX_CONTROL_PACKED{#if BIG_ENDIAN	ulong reserved_bit:25;	ulong wa_bit:2;	ulong a_bit:1;	ulong l_bit:1;	ulong t_bit:1;	ulong c_bit:1;	ulong p_bit:1;#else	ulong p_bit:1;	ulong c_bit:1;	ulong t_bit:1;	ulong l_bit:1;	ulong a_bit:1;	ulong wa_bit:2;	ulong reserved_bit:25;#endif}PACK_RESERVED;typedef struct FD_TX_CONTROL_PACKED FD_TX_CONTROL;struct FD_TX_FRAMEDATA_PACKED{#if BIG_ENDIAN	ulong o_bit:1;	ulong frameDataPtr:31;#else	ulong frameDataPtr:31;	ulong o_bit:1;#endif}PACK_RESERVED;typedef struct FD_TX_FRAMEDATA_PACKED FD_TX_FRAME_DATA;struct FD_TX_STATUS_LENGTH_PACKED{#if BIG_ENDIAN	ulong txHalted:1;	ulong comp:1;	ulong txPar:1;	ulong lateColl:1;	ulong sqeErr:1;	ulong ncArr:1;	ulong deferAl:1;	ulong underRun:1;	ulong intTx:1;	ulong paused:1;	ulong txDefer:1;	ulong exColl:1;	ulong txCollCnt:4;	ulong frameLength:16;#else	ulong frameLength:16;	ulong txCollCnt:4;	ulong exColl:1;	ulong txDefer:1;	ulong paused:1;	ulong intTx:1;	ulong underRun:1;	ulong deferAl:1;	ulong ncArr:1;	ulong sqeErr:1;	ulong lateColl:1;	ulong txPar:1;	ulong comp:1;	ulong txHalted:1;#endif}PACK_RESERVED;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;}PACK_RESERVED;typedef struct TRANSMIT_FRAME_DESC_PACKED TRANSMIT_FRAME_DESC;struct FD_RX_FRAME_DATA_PACKED{#if BIG_ENDIAN	ulong o_bit:1;	ulong frameDataPtr:31;#else	ulong frameDataPtr:31;	ulong o_bit:1;#endif}PACK_RESERVED;typedef struct FD_RX_FRAME_DATA_PACKED FD_RX_FRAME_DATA;struct FD_RX_STATUS_LENGTH_PACKED{#if BIG_ENDIAN	ulong rxHalted:1;	ulong good:1;	ulong rxPar:1;	ulong empty2:1;	ulong longErr:1;	ulong overFlow:1;	ulong crcErr:1;	ulong alignErr:1;	ulong rx10Stat:1;	ulong intRx:1;	ulong ctlRcv:1;	ulong empty1:1;	ulong ovMax:1;	ulong empty0:3;	ulong frameLength:16;#else	ulong frameLength:16;	ulong empty0:3;	ulong ovMax:1;	ulong empty1:1;	ulong ctlRcv:1;	ulong intRx:1;	ulong rx10Stat:1;	ulong alignErr:1;	ulong crcErr:1;	ulong overFlow:1;	ulong longErr:1;	ulong empty2:1;	ulong rxPar:1;	ulong good:1;	ulong rxHalted:1;#endif}PACK_RESERVED;typedef struct FD_RX_STATUS_LENGTH_PACKED FD_RX_STATUS_LENGTH;struct RECEIVE_FRAME_DESC_PACKED			/* receive frame descriptor */{	FD_RX_FRAME_DATA rxFrameData;	ulong reserved;	FD_RX_STATUS_LENGTH rxStatusLength;	struct RECEIVE_FRAME_DESC_PACKED *nextRxFrameDesc;}PACK_RESERVED;typedef struct RECEIVE_FRAME_DESC_PACKED RECEIVE_FRAME_DESC;struct BDMARXCON_PACKED{#if BIG_ENDIAN	ulong reserved_0:14;	ulong erlyNotifyIntr:1;	ulong buffEmptyIntr:1;	ulong reset:1;	ulong enable:1;	ulong wordAlign:2;	ulong big_LittleEndian:1;	ulong maxSizeOverIntrEnb:1;	ulong notOwnerIntrEnb:1;	ulong nullListIntrEnb:1;	ulong recvFrameIntrEnb:1;	ulong memAddrsInc_Dec:1;	ulong stop_skipFrame:1;	ulong burstSize:5;#else	ulong burstSize:5;	ulong stop_skipFrame:1;	ulong memAddrsInc_Dec:1;	ulong recvFrameIntrEnb:1;	ulong nullListIntrEnb:1;	ulong notOwnerIntrEnb:1;	ulong maxSizeOverIntrEnb:1;	ulong big_LittleEndian:1;	ulong wordAlign:2;	ulong enable:1;	ulong reset:1;	ulong buffEmptyIntr:1;	ulong erlyNotifyIntr:1;	ulong reserved_0:14;#endif}PACK_RESERVED;union UNION_BDMARXCON{	struct BDMARXCON_PACKED	rxCon_reg;	ulong rxCon_resetval;}PACK_RESERVED;typedef union UNION_BDMARXCON uBDMARXCON;struct BDMATXCON_PACKED{#if BIG_ENDIAN	ulong reserved_1:16;	ulong reset:1;	ulong enable:1;	ulong macTxStartLevel:3;	ulong buffEmptyIntrEnb:1;	ulong notOwnerIntrEnb:1;	ulong nullListIntrEnb:1;	ulong sendCntrlPacketIntrEnb:1;	ulong reserved_0:1;	ulong stop_skipFrame:1;	ulong burstSize:5;#else	ulong burstSize:5;	ulong stop_skipFrame:1;	ulong reserved_0:1;	ulong sendCntrlPacketIntrEnb:1;	ulong nullListIntrEnb:1;	ulong notOwnerIntrEnb:1;	ulong buffEmptyIntrEnb:1;	ulong macTxStartLevel:3;	ulong enable:1;	ulong reset:1;	ulong reserved_1:16;#endif}PACK_RESERVED;union UNION_BDMATXCON	{		struct BDMATXCON_PACKED	txCon_reg;		ulong txCon_resetval;	}PACK_RESERVED;typedef union UNION_BDMATXCON uBDMATXCON;struct BDMARXLSZ_PACKED{#if BIG_ENDIAN	ulong bdmaRxFrameLength:16;	ulong bdmaRxMaxSize:16;#else	ulong bdmaRxMaxSize:16;	ulong bdmaRxFrameLength:16;#endif}PACK_RESERVED;union UNION_BDMARXLSZ{		struct BDMARXLSZ_PACKED	rxLsz_reg;		ulong rxLsz_resetval;}PACK_RESERVED;typedef union UNION_BDMARXLSZ uBDMARXLSZ;struct BDMASTAT_PACKED{#if BIG_ENDIAN	ulong bdmaTxReserved_1:11;	ulong bdmaTxBuffEmpty:1;	ulong bdmaTxReserved_0:1;	ulong bdmaTxNotOwner:1;	ulong bdmaTxNullList:1;	ulong bdmaTxCompleteToSendCntrlPacket:1;	ulong bdmaRxNumofFrames_Buff:8;	ulong bdmaRxOneMoreFrame:1;	ulong bdmaRxReserved:1;	ulong bdmaRxEarlyNotify:1;	ulong bdmaRxBuffEmpty:1;	ulong bdmaRxMaxSizeOver:1;	ulong bdmaRxNotOwner:1;	ulong bdmaRxNullList:1;	ulong bdmaRxDoneEveryRxFrame:1;#else	ulong bdmaRxDoneEveryRxFrame:1;	ulong bdmaRxNullList:1;	ulong bdmaRxNotOwner:1;	ulong bdmaRxMaxSizeOver:1;	ulong bdmaRxBuffEmpty:1;	ulong bdmaRxEarlyNotify:1;	ulong bdmaRxReserved:1;	ulong bdmaRxOneMoreFrame:1;	ulong bdmaRxNumofFrames_Buff:8;	ulong bdmaTxCompleteToSendCntrlPacket:1;	ulong bdmaTxNullList:1;	ulong bdmaTxNotOwner:1;	ulong bdmaTxReserved_0:1;	ulong bdmaTxBuffEmpty:1;	ulong bdmaTxReserved_1:11;#endif}PACK_RESERVED;union UNION_BDMASTAT{		struct BDMASTAT_PACKED	stat_reg;		ulong stat_resetval;}PACK_RESERVED;typedef union UNION_BDMASTAT uBDMASTAT;struct MACCON_PACKED{#if BIG_ENDIAN	ulong reserved_4:16;	ulong linkStatus:1;	ulong reserved_3:1;	ulong enMissRoll:1;	ulong mdc_off:1;	ulong reserved_2:1;	ulong missRoll:1;	ulong reserved_1:2;	ulong loop10:1;	ulong mii_off:1;	ulong reserved_0:1;	ulong macLoop:1;	ulong fullDup:1;	ulong swReset:1;	ulong haltImm:1;	ulong haltRequest:1;#else	ulong haltRequest:1;	ulong haltImm:1;	ulong swReset:1;	ulong fullDup:1;	ulong macLoop:1;	ulong reserved_0:1;	ulong mii_off:1;	ulong loop10:1;	ulong reserved_1:2;	ulong missRoll:1;	ulong reserved_2:1;	ulong mdc_off:1;	ulong enMissRoll:1;	ulong reserved_3:1;	ulong linkStatus:1;	ulong reserved_4:16;#endif}PACK_RESERVED;union UNION_MACCON{	struct MACCON_PACKED	macCon_reg;	ulong macCon_resetval;}PACK_RESERVED;typedef union UNION_MACCON uMACCON;struct CAMCON_PACKED{#if BIG_ENDIAN	ulong reserved_0:27;	ulong cmpEnable:1;	ulong negCam:1;	ulong broadcastAccept:1;	ulong groupAccept:1;	ulong stationAccept:1;#else	ulong stationAccept:1;	ulong groupAccept:1;	ulong broadcastAccept:1;	ulong negCam:1;	ulong cmpEnable:1;	ulong reserved_0:27;#endif}PACK_RESERVED;union UNION_CAMCON{	struct CAMCON_PACKED	camCon_reg;	ulong camCon_resetval;}PACK_RESERVED;typedef union UNION_CAMCON uCAMCON;struct MACTXCON_PACKED{#if BIG_ENDIAN	ulong reserved_0:17;	ulong enableCompletion:1;	ulong enableTxParity:1;	ulong enableLateCollison:1;	ulong enableExcessCollision:1;	ulong enableNoCarrier:1;	ulong enableDeferral:1;	ulong enableUnderRun:1;	ulong sqeTestModeEnable:1;	ulong sendPause:1;	ulong noDefer:1;	ulong fastBackOff:1;	ulong suppressCRC:1;	ulong suppressPadding:1;	ulong transmitHaltReq:1;	ulong transmitEnable:1;#else	ulong transmitEnable:1;	ulong transmitHaltReq:1;	ulong suppressPadding:1;	ulong suppressCRC:1;	ulong fastBackOff:1;	ulong noDefer:1;	ulong sendPause:1;	ulong sqeTestModeEnable:1;	ulong enableUnderRun:1;	ulong enableDeferral:1;	ulong enableNoCarrier:1;	ulong enableExcessCollision:1;	ulong enableLateCollison:1;	ulong enableTxParity:1;	ulong enableCompletion:1;	ulong reserved_0:17;#endif}PACK_RESERVED;union UNION_MACTXCON{	struct MACTXCON_PACKED	macTxCon_reg;	ulong macTxCon_resetval;}PACK_RESERVED;typedef union UNION_MACTXCON uMACTXCON;struct MACTXSTAT_PACKED{#if BIG_ENDIAN	ulong reserved_0:16;	ulong transmissionHalted:1;	ulong completion:1;	ulong transmitParityError:1;	ulong lateCollision:1;	ulong sqe:1;	ulong noCarrier:1;	ulong deferral:1;	ulong underRun:1;	ulong intrOnTransmit:1;	ulong paused:1;	ulong transmitDeferred:1;	ulong excessiveCollision:1;	ulong transmitCollCount:4;#else	ulong transmitCollCount:4;	ulong excessiveCollision:1;	ulong transmitDeferred:1;	ulong paused:1;	ulong intrOnTransmit:1;	ulong underRun:1;	ulong deferral:1;	ulong noCarrier:1;	ulong sqe:1;	ulong lateCollision:1;	ulong transmitParityError:1;	ulong completion:1;	ulong transmissionHalted:1;	ulong reserved_0:16;#endif}PACK_RESERVED;union UNION_MACTXSTAT{	struct MACTXSTAT_PACKED	macTxStat_reg;	ulong macTxStat_resetval;}PACK_RESERVED;typedef union UNION_MACTXSTAT uMACTXSTAT;struct MACRXCON_PACKED{#if BIG_ENDIAN	ulong reserved_2:17;	ulong enableGood:1;	ulong enableReceiveParity:1;	ulong reserved_1:1;	ulong enableLongError:1;	ulong enableOverFlow:1;	ulong enableCRCError:1;	ulong enableAlignment:1;	ulong reserved_0:1;	ulong ignoreCRCValue:1;	ulong passCtrlPacket:1;	ulong stripCRCVal:1;	ulong shortEnable:1;	ulong longEnable:1;	ulong receiveHaltReq:1;	ulong receiveEnable:1;#else	ulong receiveEnable:1;	ulong receiveHaltReq:1;	ulong longEnable:1;	ulong shortEnable:1;	ulong stripCRCVal:1;	ulong passCtrlPacket:1;	ulong ignoreCRCValue:1;	ulong reserved_0:1;	ulong enableAlignment:1;	ulong enableCRCError:1;	ulong enableOverFlow:1;	ulong enableLongError:1;

⌨️ 快捷键说明

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