3 * @purpose: Ethernet Device Definitions
\r
5 * @date: 24. Feb. 2009
\r
6 *----------------------------------------------------------------------------
\r
8 * Copyright (C) 2009 ARM Limited. All rights reserved.
\r
10 * ARM Limited (ARM) is supplying this software for use with Cortex-M3
\r
11 * processor based microcontrollers. This file can be freely distributed
\r
12 * within development tools that are supporting such ARM based processors.
\r
14 * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED
\r
15 * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
\r
16 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
\r
17 * ARM SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR
\r
18 * CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
\r
29 /*----------------------------------------------------------------------------
\r
30 Ethernet Device Defines
\r
31 *----------------------------------------------------------------------------*/
\r
32 #define EthDev_ADDR_SIZE 6 /*!< Ethernet Address size in bytes */
\r
33 #define EthDev_MTU_SIZE 1514 /*!< Maximum Transmission Unit */
\r
36 /*----------------------------------------------------------------------------
\r
37 Ethernet Device Configuration and Control Command Defines
\r
38 *----------------------------------------------------------------------------*/
\r
40 EthDev_LINK_DOWN = 0, /*!< Ethernet link not established */
\r
41 EthDev_LINK_UP = 1, /*!< Ethernet link established */
\r
45 EthDev_SPEED_10M = 0, /*!< 10.0 Mbps link speed */
\r
46 EthDev_SPEED_100M = 1, /*!< 100.0 Mbps link speed */
\r
47 EthDev_SPEED_1000M = 2, /*!< 1.0 Gbps link speed */
\r
51 EthDev_DUPLEX_HALF = 0, /*!< Link half duplex */
\r
52 EthDev_DUPLEX_FULL = 1, /*!< Link full duplex */
\r
56 EthDev_MODE_AUTO = 0,
\r
57 EthDev_MODE_10M_FULL = 1,
\r
58 EthDev_MODE_10M_HALF = 2,
\r
59 EthDev_MODE_100M_FULL = 3,
\r
60 EthDev_MODE_100M_HALF = 4,
\r
61 EthDev_MODE_1000M_FULL = 5,
\r
62 EthDev_MODE_1000M_HALF = 6,
\r
66 EthDev_LINK Link : 1;
\r
67 EthDev_DUPLEX Duplex : 1;
\r
68 EthDev_SPEED Speed : 2;
\r
72 /*----------------------------------------------------------------------------
\r
73 Ethernet Device IO Block Structure
\r
74 *----------------------------------------------------------------------------*/
\r
77 /* Initialized by the user application before call to Init. */
\r
79 unsigned char HwAddr[EthDev_ADDR_SIZE];
\r
80 void *(*RxFrame) (int size);
\r
81 void (*RxFrameReady) (int size);
\r
83 /* Initialized by Ethernet driver. */
\r
85 int (*UnInit) (void);
\r
86 int (*SetMCFilter)(int NumHwAddr, unsigned char *pHwAddr);
\r
87 int (*TxFrame) (void *pData, int size);
\r
88 void (*Lock) (void);
\r
89 void (*UnLock) (void);
\r
90 EthDev_STATUS (*LinkChk) (void);
\r
94 portBASE_TYPE Init_EMAC(void);
\r
95 unsigned short ReadFrameBE_EMAC(void);
\r
96 void CopyToFrame_EMAC(void *Source, unsigned int Size);
\r
97 void CopyFromFrame_EMAC(void *Dest, unsigned short Size);
\r
98 void DummyReadFrame_EMAC(unsigned short Size);
\r
99 unsigned short StartReadFrame(void);
\r
100 void EndReadFrame(void);
\r
101 unsigned int CheckFrameReceived(void);
\r
102 void RequestSend(void);
\r
103 unsigned int Rdy4Tx(void);
\r
104 void DoSend_EMAC(unsigned short FrameSize);
\r
105 void vEMACWaitForInput( void );
\r
106 unsigned int uiGetEMACRxData( unsigned char *ucBuffer );
\r