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

📄 at91rm9200_emac.h

📁 ARM板驱动程序源代码
💻 H
字号:
/* ----------------------------------------------------------------------------*//*          ATMEL Microcontroller Software Support  -  ROUSSET  -*//* ----------------------------------------------------------------------------*//*  The software is delivered "AS IS" without warranty or condition of any*//*  kind, either express, implied or statutory. This includes without*//*  limitation any warranty or condition with respect to merchantability or*//*  fitness for any particular purpose, or against the infringements of*//*  intellectual property rights of others.*//* ----------------------------------------------------------------------------*//* File Name           : AT91RM9200.h*//* Object              : AT91RM9200 / EMAC definitions*//* Generated           : AT91 SW Application Group  01/17/2003 (13:41:21)*//* ----------------------------------------------------------------------------*/#ifndef AT91RM9200_EMAC_H#define AT91RM9200_EMAC_H/* ******************************************************************************//*              SOFTWARE API DEFINITION  FOR Ethernet MAC*//* ******************************************************************************/#ifndef __ASSEMBLY__typedef struct _AT91S_EMAC {	AT91_REG	 EMAC_CTL; 	/* Network Control Register*/	AT91_REG	 EMAC_CFG; 	/* Network Configuration Register*/	AT91_REG	 EMAC_SR; 	/* Network Status Register*/	AT91_REG	 EMAC_TAR; 	/* Transmit Address Register*/	AT91_REG	 EMAC_TCR; 	/* Transmit Control Register*/	AT91_REG	 EMAC_TSR; 	/* Transmit Status Register*/	AT91_REG	 EMAC_RBQP; 	/* Receive Buffer Queue Pointer*/	AT91_REG	 Reserved0[1]; 		AT91_REG	 EMAC_RSR; 	/* Receive Status Register*/	AT91_REG	 EMAC_ISR; 	/* Interrupt Status Register*/	AT91_REG	 EMAC_IER; 	/* Interrupt Enable Register*/	AT91_REG	 EMAC_IDR; 	/* Interrupt Disable Register*/	AT91_REG	 EMAC_IMR; 	/* Interrupt Mask Register*/	AT91_REG	 EMAC_MAN; 	/* PHY Maintenance Register*/	AT91_REG	 Reserved1[2]; 		AT91_REG	 EMAC_FRA; 	/* Frames Transmitted OK Register*/	AT91_REG	 EMAC_SCOL; 	/* Single Collision Frame Register*/	AT91_REG	 EMAC_MCOL; 	/* Multiple Collision Frame Register*/	AT91_REG	 EMAC_OK; 	/* Frames Received OK Register*/	AT91_REG	 EMAC_SEQE; 	/* Frame Check Sequence Error Register*/	AT91_REG	 EMAC_ALE; 	/* Alignment Error Register*/	AT91_REG	 EMAC_DTE; 	/* Deferred Transmission Frame Register*/	AT91_REG	 EMAC_LCOL; 	/* Late Collision Register*/	AT91_REG	 EMAC_ECOL; 	/* Excessive Collision Register*/	AT91_REG	 EMAC_CSE; 	/* Carrier Sense Error Register*/	AT91_REG	 EMAC_TUE; 	/* Transmit Underrun Error Register*/	AT91_REG	 EMAC_CDE; 	/* Code Error Register*/	AT91_REG	 EMAC_ELR; 	/* Excessive Length Error Register*/	AT91_REG	 EMAC_RJB; 	/* Receive Jabber Register*/	AT91_REG	 EMAC_USF; 	/* Undersize Frame Register*/	AT91_REG	 EMAC_SQEE; 	/* SQE Test Error Register*/	AT91_REG	 EMAC_DRFC; 	/* Discarded RX Frame Register*/	AT91_REG	 Reserved2[3]; 		AT91_REG	 EMAC_HSH; 	/* Hash Address High[63:32]*/	AT91_REG	 EMAC_HSL; 	/* Hash Address Low[31:0]*/	AT91_REG	 EMAC_SA1L; 	/* Specific Address 1 Low, First 4 bytes*/	AT91_REG	 EMAC_SA1H; 	/* Specific Address 1 High, Last 2 bytes*/	AT91_REG	 EMAC_SA2L; 	/* Specific Address 2 Low, First 4 bytes*/	AT91_REG	 EMAC_SA2H; 	/* Specific Address 2 High, Last 2 bytes*/	AT91_REG	 EMAC_SA3L; 	/* Specific Address 3 Low, First 4 bytes*/	AT91_REG	 EMAC_SA3H; 	/* Specific Address 3 High, Last 2 bytes*/	AT91_REG	 EMAC_SA4L; 	/* Specific Address 4 Low, First 4 bytes*/	AT91_REG	 EMAC_SA4H; 	/* Specific Address 4 High, Last 2 bytesr*/} AT91S_EMAC, *AT91PS_EMAC;#endif/* -------- EMAC_CTL : (EMAC Offset: 0x0)  --------*/#define AT91C_EMAC_LB         ( 0x1 <<  0) /* (EMAC) Loopback. Optional. When set, loopback signal is at high level.*/#define AT91C_EMAC_LBL        ( 0x1 <<  1) /* (EMAC) Loopback local.*/#define AT91C_EMAC_RE         ( 0x1 <<  2) /* (EMAC) Receive enable.*/#define AT91C_EMAC_TE         ( 0x1 <<  3) /* (EMAC) Transmit enable.*/#define AT91C_EMAC_MPE        ( 0x1 <<  4) /* (EMAC) Management port enable.*/#define AT91C_EMAC_CSR        ( 0x1 <<  5) /* (EMAC) Clear statistics registers.*/#define AT91C_EMAC_ISR        ( 0x1 <<  6) /* (EMAC) Increment statistics registers.*/#define AT91C_EMAC_WES        ( 0x1 <<  7) /* (EMAC) Write enable for statistics registers.*/#define AT91C_EMAC_BP         ( 0x1 <<  8) /* (EMAC) Back pressure.*//* -------- EMAC_CFG : (EMAC Offset: 0x4) Network Configuration Register --------*/#define AT91C_EMAC_SPD        ( 0x1 <<  0) /* (EMAC) Speed.*/#define AT91C_EMAC_FD         ( 0x1 <<  1) /* (EMAC) Full duplex.*/#define AT91C_EMAC_BR         ( 0x1 <<  2) /* (EMAC) Bit rate.*/#define AT91C_EMAC_CAF        ( 0x1 <<  4) /* (EMAC) Copy all frames.*/#define AT91C_EMAC_NBC        ( 0x1 <<  5) /* (EMAC) No broadcast.*/#define AT91C_EMAC_MTI        ( 0x1 <<  6) /* (EMAC) Multicast hash enable*/#define AT91C_EMAC_UNI        ( 0x1 <<  7) /* (EMAC) Unicast hash enable.*/#define AT91C_EMAC_BIG        ( 0x1 <<  8) /* (EMAC) Receive 1522 bytes.*/#define AT91C_EMAC_EAE        ( 0x1 <<  9) /* (EMAC) External address match enable.*/#define AT91C_EMAC_CLK        ( 0x3 << 10) /* (EMAC)*/#define 	AT91C_EMAC_CLK_HCLK_8               ( 0x0 << 10) /* (EMAC) HCLK divided by 8*/#define 	AT91C_EMAC_CLK_HCLK_16              ( 0x1 << 10) /* (EMAC) HCLK divided by 16*/#define 	AT91C_EMAC_CLK_HCLK_32              ( 0x2 << 10) /* (EMAC) HCLK divided by 32*/#define 	AT91C_EMAC_CLK_HCLK_64              ( 0x3 << 10) /* (EMAC) HCLK divided by 64*/#define AT91C_EMAC_RTY        ( 0x1 << 12) /* (EMAC)*/#define AT91C_EMAC_RMII       ( 0x1 << 13) /* (EMAC)*//* -------- EMAC_SR : (EMAC Offset: 0x8) Network Status Register --------*/#define AT91C_EMAC_MDIO       ( 0x1 <<  1) /* (EMAC)*/#define AT91C_EMAC_IDLE       ( 0x1 <<  2) /* (EMAC)*//* -------- EMAC_TCR : (EMAC Offset: 0x10) Transmit Control Register --------*/#define AT91C_EMAC_LEN        ( 0x7FF <<  0) /* (EMAC)*/#define AT91C_EMAC_NCRC       ( 0x1 << 15) /* (EMAC)*//* -------- EMAC_TSR : (EMAC Offset: 0x14) Transmit Control Register --------*/#define AT91C_EMAC_OVR        ( 0x1 <<  0) /* (EMAC)*/#define AT91C_EMAC_COL        ( 0x1 <<  1) /* (EMAC)*/#define AT91C_EMAC_RLE        ( 0x1 <<  2) /* (EMAC)*/#define AT91C_EMAC_TXIDLE     ( 0x1 <<  3) /* (EMAC)*/#define AT91C_EMAC_BNQ        ( 0x1 <<  4) /* (EMAC)*/#define AT91C_EMAC_COMP       ( 0x1 <<  5) /* (EMAC)*/#define AT91C_EMAC_UND        ( 0x1 <<  6) /* (EMAC)*//* -------- EMAC_RSR : (EMAC Offset: 0x20) Receive Status Register --------*/#define AT91C_EMAC_BNA        ( 0x1 <<  0) /* (EMAC)*/#define AT91C_EMAC_REC        ( 0x1 <<  1) /* (EMAC)*//* -------- EMAC_ISR : (EMAC Offset: 0x24) Interrupt Status Register --------*/#define AT91C_EMAC_DONE       ( 0x1 <<  0) /* (EMAC)*/#define AT91C_EMAC_RCOM       ( 0x1 <<  1) /* (EMAC)*/#define AT91C_EMAC_RBNA       ( 0x1 <<  2) /* (EMAC)*/#define AT91C_EMAC_TOVR       ( 0x1 <<  3) /* (EMAC)*/#define AT91C_EMAC_TUND       ( 0x1 <<  4) /* (EMAC)*/#define AT91C_EMAC_RTRY       ( 0x1 <<  5) /* (EMAC)*/#define AT91C_EMAC_TBRE       ( 0x1 <<  6) /* (EMAC)*/#define AT91C_EMAC_TCOM       ( 0x1 <<  7) /* (EMAC)*/#define AT91C_EMAC_TIDLE      ( 0x1 <<  8) /* (EMAC)*/#define AT91C_EMAC_LINK       ( 0x1 <<  9) /* (EMAC)*/#define AT91C_EMAC_ROVR       ( 0x1 << 10) /* (EMAC)*/#define AT91C_EMAC_HRESP      ( 0x1 << 11) /* (EMAC)*//* -------- EMAC_IER : (EMAC Offset: 0x28) Interrupt Enable Register --------*//* -------- EMAC_IDR : (EMAC Offset: 0x2c) Interrupt Disable Register --------*//* -------- EMAC_IMR : (EMAC Offset: 0x30) Interrupt Mask Register --------*//* -------- EMAC_MAN : (EMAC Offset: 0x34) PHY Maintenance Register --------*/#define AT91C_EMAC_DATA       ( 0xFFFF <<  0) /* (EMAC)*/#define AT91C_EMAC_CODE       ( 0x3 << 16) /* (EMAC)*/#define         AT91C_EMAC_CODE_802_3 ( 0x2 << 16) /* (EMAC) Write Operation*/#define AT91C_EMAC_REGA       ( 0x1F << 18) /* (EMAC)*/#define AT91C_EMAC_PHYA       ( 0x1F << 23) /* (EMAC)*/#define AT91C_EMAC_RW         ( 0x3 << 28) /* (EMAC)*/#define         AT91C_EMAC_RW_R       ( 0x2 << 28) /* (EMAC) Read Operation*/#define         AT91C_EMAC_RW_W       ( 0x1 << 28) /* (EMAC) Write Operation*/#define AT91C_EMAC_HIGH       ( 0x1 << 30) /* (EMAC)*/#define AT91C_EMAC_LOW        ( 0x1 << 31) /* (EMAC)*/#define SIZE_BD                         8                   /* Size of Buffer Descriptor */#define SIZE_FB                         2048                /* Size of Free Buffer */#define NBD_RBD_ETH                     6                   /* 2 ^ 6 = 64 */#define NBD_TBD_ETH                     6                   /* 2 ^ 6 = 64 */#define NUM_RBD_ETH                     (1 << NBD_RBD_ETH)#define NUM_TBD_ETH                     (1 << NBD_TBD_ETH)#define NUM_BD_ETH                      (NUM_RBD_ETH + NUM_TBD_ETH)#define RBD_SIZE_ETH                    (SIZE_BD * NUM_RBD_ETH)#define TBD_SIZE_ETH                    (SIZE_BD * NUM_TBD_ETH)   #define BD_SIZE_ETH                     (RBD_SIZE_ETH + TBD_SIZE_ETH)#define RFB_SIZE_ETH                    (SIZE_FB * NUM_RBD_ETH)#define TFB_SIZE_ETH                    (SIZE_FB * NUM_TBD_ETH)#define FB_SIZE_ETH                     ((RFB_SIZE_ETH * 2) + TFB_SIZE_ETH)#define BD_BASE_ETH                     (USER_BASE_ADRS)#define FB_BASE_ETH                     ( BD_BASE_ETH + (BD_SIZE_ETH*ETH_MAX_UNITS) ) #define FB_END                          (FB_BASE_ETH + (FB_SIZE_ETH* ETH_MAX_UNITS) )#endif

⌨️ 快捷键说明

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