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
95 * Look for received data. If data is found then uip_buf is assigned to the
\r
96 * new data and the length of the data is returned. If no data is found then
\r
97 * uip_buf is not updated and 0 is returned.
\r
99 unsigned long ulGetEMACRxData( void );
\r
102 * Send usTxDataLen bytes from uip_buf.
\r
104 void vSendEMACTxData( unsigned short usTxDataLen );
\r
107 * Prepare the Ethernet hardware ready for TCP/IP comms.
\r
109 long lEMACInit(void);
\r