gmac_sl2312.h

来自「某个ARM9板子的实际bootloader 对裁剪」· C头文件 代码 · 共 750 行 · 第 1/2 页

H
750
字号
		unsigned int m_rx_pause_on	:  1;	/* received pause on frame interrupt mask */		unsigned int m_tx_pause_on  :  1;	/* transmit pause on frame interrupt mask */		unsigned int m_rx_pause_off :  1;	/* received pause off frame interrupt mask */		unsigned int m_tx_pause_off	:  1;	/* received pause off frame interrupt mask */		unsigned int m_rx_overrun	:  1;   /* GMAC Rx FIFO overrun interrupt mask */		unsigned int m_link_change	:  1;	/* GMAC link changed Interrupt mask for RGMII mode */#else		unsigned int m_link_change	:  1;	/* GMAC link changed Interrupt mask for RGMII mode */		unsigned int m_rx_overrun	:  1;   /* GMAC Rx FIFO overrun interrupt mask */		unsigned int m_tx_pause_off	:  1;	/* received pause off frame interrupt mask */		unsigned int m_rx_pause_off :  1;	/* received pause off frame interrupt mask */		unsigned int m_tx_pause_on  :  1;	/* transmit pause on frame interrupt mask */		unsigned int m_rx_pause_on	:  1;	/* received pause on frame interrupt mask */		unsigned int m_cnt_full		:  1;	/* MIB counters half full interrupt mask */		unsigned int         		:  1;	/* Tx fail interrupt mask */		unsigned int loop_back		:  1;	/* loopback TxDMA to RxDMA */		unsigned int 				:  3;		unsigned int            	:  1;		unsigned int        		:  1;		unsigned int link_change	:  1;	/* GMAC link changed Interrupt for RGMII mode */		unsigned int rx_overrun		:  1;   /* GMAC Rx FIFO overrun interrupt */		unsigned int tx_pause_off	:  1;	/* received pause off frame interrupt */		unsigned int rx_pause_off   :  1;	/* received pause off frame interrupt */		unsigned int tx_pause_on	:  1;	/* transmit pause on frame interrupt */		unsigned int rx_pause_on	:  1;	/* received pause on frame interrupt */		unsigned int cnt_full		:  1;	/* MIB counters half full interrupt */		unsigned int        		:  1; 	/* Tx fail interrupt */		unsigned int rs_eofi		:  1;	/* RxDMA end of frame interrupt */		unsigned int rs_eodi		:  1;	/* RxDMA end of descriptor interrupt */		unsigned int rs_perr		:  1;   /* Rx Descriptor protocol error */		unsigned int rs_derr		:  1;   /* AHB Bus Error while rx */		unsigned int rs_finish		:  1;   /* finished rx interrupt */		unsigned int ts_eofi		:  1;   /* TxDMA end of frame interrupt */		unsigned int ts_eodi		:  1;	/* TxDMA end of descriptor interrupt */		unsigned int ts_perr		:  1;   /* Tx Descriptor protocol error */		unsigned int ts_derr		:  1;   /* AHB Bus Error while tx */		unsigned int ts_finish		:  1;	/* finished tx interrupt */#endif	} bits;} GMAC_DMA_STATUS_T;typedef union{	unsigned int bits32;	struct bit2_ff08	{#if (BIG_ENDIAN==1)		unsigned int td_start		:  1;	/* Start DMA transfer */		unsigned int td_continue	:  1;   /* Continue DMA operation */		unsigned int td_chain_mode	:  1;	/* Descriptor Chain Mode;1-Descriptor Chain mode, 0-Direct DMA mode*/		unsigned int 				:  1;		unsigned int td_prot		:  4;	/* TxDMA protection control */		unsigned int td_burst_size  :  2;	/* TxDMA max burst size for every AHB request */		unsigned int td_bus		    :  2;	/* peripheral bus width;0x->8 bits,10->16 bits,11->32 bits */		unsigned int td_endian		:  1;	/* AHB Endian. 0-little endian; 1-big endian */		unsigned int td_finish_en   :  1;	/* DMA Finish Event Interrupt Enable;1-enable;0-mask */		unsigned int td_fail_en 	:  1;	/* DMA Fail Interrupt Enable;1-enable;0-mask */		unsigned int td_perr_en 	:  1;	/* Protocol Failure Interrupt Enable;1-enable;0-mask */		unsigned int td_eod_en  	:  1;	/* End of Descriptor interrupt Enable;1-enable;0-mask */		unsigned int td_eof_en      :  1;   /* End of frame interrupt Enable;1-enable;0-mask */		unsigned int 				: 14;#else		unsigned int 				: 14;		unsigned int td_eof_en      :  1;   /* End of frame interrupt Enable;1-enable;0-mask */		unsigned int td_eod_en  	:  1;	/* End of Descriptor interrupt Enable;1-enable;0-mask */		unsigned int td_perr_en 	:  1;	/* Protocol Failure Interrupt Enable;1-enable;0-mask */		unsigned int td_fail_en 	:  1;	/* DMA Fail Interrupt Enable;1-enable;0-mask */		unsigned int td_finish_en   :  1;	/* DMA Finish Event Interrupt Enable;1-enable;0-mask */		unsigned int td_endian		:  1;	/* AHB Endian. 0-little endian; 1-big endian */		unsigned int td_bus		    :  2;	/* peripheral bus width;0x->8 bits,10->16 bits,11->32 bits */		unsigned int td_burst_size  :  2;	/* TxDMA max burst size for every AHB request */		unsigned int td_prot		:  4;	/* TxDMA protection control */		unsigned int 				:  1;		unsigned int td_chain_mode	:  1;	/* Descriptor Chain Mode;1-Descriptor Chain mode, 0-Direct DMA mode*/		unsigned int td_continue	:  1;   /* Continue DMA operation */		unsigned int td_start		:  1;	/* Start DMA transfer */#endif	} bits;} GMAC_TXDMA_CTRL_T;typedef union{	unsigned int bits32;	struct bit2_ff0c	{#if (BIG_ENDIAN==1)		unsigned int td_first_des_ptr	: 28;/* first descriptor address */		unsigned int td_busy			:  1;/* 1-TxDMA busy; 0-TxDMA idle */		unsigned int 					:  3;#else		unsigned int 					:  3;		unsigned int td_busy			:  1;/* 1-TxDMA busy; 0-TxDMA idle */		unsigned int td_first_des_ptr	: 28;/* first descriptor address */#endif	} bits;} GMAC_TXDMA_FIRST_DESC_T;typedef union{	unsigned int bits32;	struct bit2_ff10	{#if (BIG_ENDIAN==1)		unsigned int ndar			: 28;	/* next descriptor address */		unsigned int eofie			:  1;	/* end of frame interrupt enable */		unsigned int    			:  1;		unsigned int sof_eof		:  2;#else		unsigned int sof_eof		:  2;		unsigned int    			:  1;		unsigned int eofie			:  1;	/* end of frame interrupt enable */		unsigned int ndar			: 28;	/* next descriptor address */#endif	} bits;} GMAC_TXDMA_CURR_DESC_T;typedef union{	unsigned int bits32;	struct bit2_ff14	{#if (BIG_ENDIAN==1)		unsigned int rd_start		:  1;	/* Start DMA transfer */		unsigned int rd_continue	:  1;   /* Continue DMA operation */		unsigned int rd_chain_mode	:  1;	/* Descriptor Chain Mode;1-Descriptor Chain mode, 0-Direct DMA mode*/		unsigned int 				:  1;		unsigned int rd_prot		:  4;	/* DMA protection control */		unsigned int rd_burst_size  :  2;	/* DMA max burst size for every AHB request */		unsigned int rd_bus		    :  2;	/* peripheral bus width;0x->8 bits,10->16 bits,11->32 bits */		unsigned int rd_endian		:  1;	/* AHB Endian. 0-little endian; 1-big endian */		unsigned int rd_finish_en   :  1;	/* DMA Finish Event Interrupt Enable;1-enable;0-mask */		unsigned int rd_fail_en  	:  1;	/* DMA Fail Interrupt Enable;1-enable;0-mask */		unsigned int rd_perr_en 	:  1;	/* Protocol Failure Interrupt Enable;1-enable;0-mask */		unsigned int rd_eod_en  	:  1;	/* End of Descriptor interrupt Enable;1-enable;0-mask */		unsigned int rd_eof_en      :  1;   /* End of frame interrupt Enable;1-enable;0-mask */		unsigned int 				: 14;#else		unsigned int 				: 14;		unsigned int rd_eof_en      :  1;   /* End of frame interrupt Enable;1-enable;0-mask */		unsigned int rd_eod_en  	:  1;	/* End of Descriptor interrupt Enable;1-enable;0-mask */		unsigned int rd_perr_en 	:  1;	/* Protocol Failure Interrupt Enable;1-enable;0-mask */		unsigned int rd_fail_en  	:  1;	/* DMA Fail Interrupt Enable;1-enable;0-mask */		unsigned int rd_finish_en   :  1;	/* DMA Finish Event Interrupt Enable;1-enable;0-mask */		unsigned int rd_endian		:  1;	/* AHB Endian. 0-little endian; 1-big endian */		unsigned int rd_bus		    :  2;	/* peripheral bus width;0x->8 bits,10->16 bits,11->32 bits */		unsigned int rd_burst_size  :  2;	/* DMA max burst size for every AHB request */		unsigned int rd_prot		:  4;	/* DMA protection control */		unsigned int 				:  1;		unsigned int rd_chain_mode	:  1;	/* Descriptor Chain Mode;1-Descriptor Chain mode, 0-Direct DMA mode*/		unsigned int rd_continue	:  1;   /* Continue DMA operation */		unsigned int rd_start		:  1;	/* Start DMA transfer */#endif	} bits;} GMAC_RXDMA_CTRL_T;typedef union{	unsigned int bits32;	struct bit2_ff18	{#if (BIG_ENDIAN==1)		unsigned int rd_first_des_ptr	: 28;/* first descriptor address */		unsigned int rd_busy			:  1;/* 1-RxDMA busy; 0-RxDMA idle */		unsigned int 					:  3;#else		unsigned int 					:  3;		unsigned int rd_busy			:  1;/* 1-RxDMA busy; 0-RxDMA idle */		unsigned int rd_first_des_ptr	: 28;/* first descriptor address */#endif	} bits;} GMAC_RXDMA_FIRST_DESC_T;typedef union{	unsigned int bits32;	struct bit2_ff1c	{#if (BIG_ENDIAN==1)		unsigned int ndar			: 28;	/* next descriptor address */		unsigned int eofie			:  1;	/* end of frame interrupt enable */		unsigned int    			:  1;		unsigned int sof_eof		:  2;#else		unsigned int sof_eof		:  2;		unsigned int    			:  1;		unsigned int eofie			:  1;	/* end of frame interrupt enable */		unsigned int ndar			: 28;	/* next descriptor address */#endif	} bits;} GMAC_RXDMA_CURR_DESC_T;/********************************************//*          Descriptor Format               *//********************************************/typedef struct descriptor_t{	union frame_control_t	{		unsigned int bits32;		struct bits_0000		{#if (BIG_ENDIAN==1)			unsigned int own 		: 1;	/* owner bit. 0-CPU, 1-DMA */			unsigned int derr		: 1;	/* data error during processing this descriptor */			unsigned int perr		: 1;	/* protocol error during processing this descriptor */			unsigned int csum_state : 3;	/* checksum error status */			unsigned int vlan_tag   : 1;    /* 802.1q vlan tag packet */			unsigned int frame_state: 3;    /* reference Rx Status1 */			unsigned int desc_count : 6;	/* number of descriptors used for the current frame */			unsigned int buffer_size:16;	/* transfer buffer size associated with current description*/#else			unsigned int buffer_size:16;	/* transfer buffer size associated with current description*/			unsigned int desc_count : 6;	/* number of descriptors used for the current frame */			unsigned int frame_state: 3;    /* reference Rx Status1 */			unsigned int vlan_tag   : 1;    /* 802.1q vlan tag packet */			unsigned int csum_state : 3;	/* checksum error status */			unsigned int perr		: 1;	/* protocol error during processing this descriptor */			unsigned int derr		: 1;	/* data error during processing this descriptor */			unsigned int own 		: 1;	/* owner bit. 0-CPU, 1-DMA */#endif		} bits_rx;		struct bits_0001		{#if (BIG_ENDIAN==1)			unsigned int own 		: 1;	/* owner bit. 0-CPU, 1-DMA */			unsigned int derr		: 1;	/* data error during processing this descriptor */			unsigned int perr		: 1;	/* protocol error during processing this descriptor */			unsigned int            : 6;			unsigned int success_tx : 1;    /* successful transmitted */			unsigned int desc_count : 6;	/* number of descriptors used for the current frame */			unsigned int buffer_size:16;	/* transfer buffer size associated with current description*/#else			unsigned int buffer_size:16;	/* transfer buffer size associated with current description*/			unsigned int desc_count : 6;	/* number of descriptors used for the current frame */			unsigned int success_tx : 1;    /* successful transmitted */			unsigned int            : 6;			unsigned int perr		: 1;	/* protocol error during processing this descriptor */			unsigned int derr		: 1;	/* data error during processing this descriptor */			unsigned int own 		: 1;	/* owner bit. 0-CPU, 1-DMA */#endif        } bits_tx_in;		struct bits_0002		{#if (BIG_ENDIAN==1)			unsigned int own 		: 1;	/* owner bit. 0-CPU, 1-DMA */			unsigned int derr		: 1;	/* data error during processing this descriptor */			unsigned int perr		: 1;	/* protocol error during processing this descriptor */			unsigned int            : 2;			unsigned int udp_csum_en: 1;    /* TSS UDP checksum enable */			unsigned int tcp_csum_en: 1;    /* TSS TCP checksum enable */			unsigned int ipv6_tx_en : 1;    /* TSS IPv6 TX enable */			unsigned int ip_csum_en : 1;    /* TSS IPv4 IP Header checksum enable */			unsigned int vlan_enable: 1;    /* VLAN TIC insertion enable */			unsigned int desc_count : 6;	/* number of descriptors used for the current frame */			unsigned int buffer_size:16;	/* transfer buffer size associated with current description*/#else			unsigned int buffer_size:16;	/* transfer buffer size associated with current description*/			unsigned int desc_count : 6;	/* number of descriptors used for the current frame */			unsigned int vlan_enable: 1;    /* VLAN TIC insertion enable */			unsigned int ip_csum_en : 1;    /* TSS IPv4 IP Header checksum enable */			unsigned int ipv6_tx_en : 1;    /* TSS IPv6 TX enable */			unsigned int tcp_csum_en: 1;    /* TSS TCP checksum enable */			unsigned int udp_csum_en: 1;    /* TSS UDP checksum enable */			unsigned int            : 2;			unsigned int perr		: 1;	/* protocol error during processing this descriptor */			unsigned int derr		: 1;	/* data error during processing this descriptor */			unsigned int own 		: 1;	/* owner bit. 0-CPU, 1-DMA */#endif        } bits_tx_out;	} frame_ctrl;	union flag_status_t	{		unsigned int bits32;		struct bits_0004		{#if (BIG_ENDIAN==1)            unsigned int priority   : 3;    /* user priority extracted from receiving frame*/            unsigned int cfi        : 1;	/* cfi extracted from receiving frame*/			unsigned int vlan_id    :12;	/* VLAN ID extracted from receiving frame */			unsigned int frame_count:16;	/* received frame byte count,include CRC,not include VLAN TIC */#else			unsigned int frame_count:16;	/* received frame byte count,include CRC,not include VLAN TIC */			unsigned int vlan_id    :12;	/* VLAN ID extracted from receiving frame */            unsigned int cfi        : 1;	/* cfi extracted from receiving frame*/            unsigned int priority   : 3;    /* user priority extracted from receiving frame*/#endif		} bits_rx_status;		struct bits_0005		{#if (BIG_ENDIAN==1)            unsigned int priority   : 3;    /* user priority to transmit*/            unsigned int cfi        : 1;	/* cfi to transmit*/			unsigned int vlan_id    :12;	/* VLAN ID to transmit */			unsigned int frame_count:16;    /* total tx frame byte count */#else			unsigned int frame_count:16;    /* total tx frame byte count */			unsigned int vlan_id    :12;	/* VLAN ID to transmit */            unsigned int cfi        : 1;	/* cfi to transmit*/            unsigned int priority   : 3;    /* user priority to transmit*/#endif		} bits_tx_flag;	} flag_status;	unsigned int buf_adr;	/* data buffer address */	union next_desc_t	{		unsigned int next_descriptor;		struct bits_000c		{#if (BIG_ENDIAN==1)			unsigned int ndar		:28;	/* next descriptor address */			unsigned int eofie		: 1;	/* end of frame interrupt enable */			unsigned int    		: 1;			unsigned int sof_eof	: 2;	/* 00-the linking descriptor   01-the last descriptor of a frame*/			                                /* 10-the first descriptor of a frame    11-only one descriptor for a frame*/#else			unsigned int sof_eof	: 2;	/* 00-the linking descriptor   01-the last descriptor of a frame*/			                                /* 10-the first descriptor of a frame    11-only one descriptor for a frame*/			unsigned int    		: 1;			unsigned int eofie		: 1;	/* end of frame interrupt enable */			unsigned int ndar		:28;	/* next descriptor address */#endif		} bits;	} next_desc;} GMAC_DESCRIPTOR_T;typedef struct gmac_conf {	struct net_device *dev;	int portmap;	int vid;	int flag;     /* 1: active  0: non-active */} sys_gmac_conf;		 typedef struct gmac_private {	unsigned char       *tx_bufs;	/* Tx bounce buffer region. */	unsigned char       *rx_bufs;	GMAC_DESCRIPTOR_T	*tx_desc;	/* point to virtual TX descriptor address*/	GMAC_DESCRIPTOR_T	*rx_desc;	/* point to virtual RX descriptor address*/	GMAC_DESCRIPTOR_T	*tx_cur_desc;	/* point to current TX descriptor */	GMAC_DESCRIPTOR_T	*rx_cur_desc;	/* point to current RX descriptor */	GMAC_DESCRIPTOR_T   *tx_finished_desc;	GMAC_DESCRIPTOR_T   *rx_finished_desc;	unsigned long       cur_tx;	unsigned int        cur_rx;	/* Index into the Rx buffer of next Rx pkt. */	unsigned int        tx_flag;	unsigned long       dirty_tx;	unsigned char       *tx_buf[TX_DESC_NUM];	/* Tx bounce buffers */	dma_addr_t          tx_desc_dma; /* physical TX descriptor address */	dma_addr_t          rx_desc_dma;	/* physical RX descriptor address */	dma_addr_t          tx_bufs_dma; /* physical TX descriptor address */	dma_addr_t          rx_bufs_dma; /* physical RX descriptor address *///    struct net_device_stats  stats;//    spinlock_t          lock;} GMAC_INFO_T;;struct reg_ioctl_data {    unsigned int    reg_addr;   /* the register address */    unsigned int    val_in;     /* data write to the register */    unsigned int    val_out;    /* data read from the register */};#endif //_GMAC_SL2312_H

⌨️ 快捷键说明

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