]> git.sur5r.net Git - freertos/blob - Demo/Common/drivers/ST/STM32F10xFWLib/inc/stm32fxxx_eth_map.h
New driver files for Connectivity Line.
[freertos] / Demo / Common / drivers / ST / STM32F10xFWLib / inc / stm32fxxx_eth_map.h
1 /******************** (C) COPYRIGHT 2008 STMicroelectronics ********************\r
2 * File Name          : stm32fxxx_eth_map.h\r
3 * Author             : MCD Application Team\r
4 * Version            : VX.Y.Z\r
5 * Date               : mm/dd/2008\r
6 * Description        : This file contains all ETHERNET peripheral register's\r
7 *                      definitions and memory mapping.\r
8 ********************************************************************************\r
9 * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS\r
10 * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.\r
11 * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,\r
12 * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE\r
13 * CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING\r
14 * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.\r
15 *******************************************************************************/\r
16 \r
17 /* Define to prevent recursive inclusion -------------------------------------*/\r
18 #ifndef __STM32FXXX_ETH_MAP_H\r
19 #define __STM32FXXX_ETH_MAP_H\r
20 \r
21 #ifndef EXT\r
22   #define EXT extern\r
23 #endif /* EXT */\r
24 \r
25 /* Includes ------------------------------------------------------------------*/\r
26 \r
27 #include "stm32fxxx_eth_conf.h"\r
28 #include "stm32f10x_type.h"\r
29 \r
30 /* Exported types ------------------------------------------------------------*/\r
31 /******************************************************************************/\r
32 /*                Ethernet Peripheral registers structures                    */\r
33 /******************************************************************************/\r
34 \r
35 typedef struct\r
36 {\r
37   vu32 MACCR;\r
38   vu32 MACFFR;\r
39   vu32 MACHTHR;\r
40   vu32 MACHTLR;\r
41   vu32 MACMIIAR;\r
42   vu32 MACMIIDR;\r
43   vu32 MACFCR;\r
44   vu32 MACVLANTR;\r
45   vu32 RESERVED0[2];\r
46   vu32 MACRWUFFR;\r
47   vu32 MACPMTCSR;\r
48   vu32 RESERVED1[2];\r
49   vu32 MACSR;\r
50   vu32 MACIMR;\r
51   vu32 MACA0HR;\r
52   vu32 MACA0LR;\r
53   vu32 MACA1HR;\r
54   vu32 MACA1LR;\r
55   vu32 MACA2HR;\r
56   vu32 MACA2LR;\r
57   vu32 MACA3HR;\r
58   vu32 MACA3LR;\r
59 } ETH_MAC_TypeDef;\r
60 \r
61 typedef struct\r
62 {\r
63   vu32 MMCCR;\r
64   vu32 MMCRIR;\r
65   vu32 MMCTIR;\r
66   vu32 MMCRIMR;\r
67   vu32 MMCTIMR;\r
68   vu32 RESERVED0[14];\r
69   vu32 MMCTGFSCCR;\r
70   vu32 MMCTGFMSCCR;\r
71   vu32 RESERVED1[5];\r
72   vu32 MMCTGFCR;\r
73   vu32 RESERVED2[10];\r
74   vu32 MMCRFCECR;\r
75   vu32 MMCRFAER;\r
76   vu32 RESERVED3[10];\r
77   vu32 MMCRGUFCR;\r
78 } ETH_MMC_TypeDef;\r
79 \r
80 typedef struct\r
81 {\r
82   vu32 PTPTSCR;\r
83   vu32 PTPSSIR;\r
84   vu32 PTPTSHR;\r
85   vu32 PTPTSLR;\r
86   vu32 PTPTSHUR;\r
87   vu32 PTPTSLUR;\r
88   vu32 PTPTSAR;\r
89   vu32 PTPTTHR;\r
90   vu32 PTPTTLR;\r
91 } ETH_PTP_TypeDef;\r
92 \r
93 typedef struct\r
94 {\r
95   vu32 DMABMR;\r
96   vu32 DMATPDR;\r
97   vu32 DMARPDR;\r
98   vu32 DMARDLAR;\r
99   vu32 DMATDLAR;\r
100   vu32 DMASR;\r
101   vu32 DMAOMR;\r
102   vu32 DMAIER;\r
103   vu32 DMAMFBOCR;\r
104   vu32 RESERVED0[9];\r
105   vu32 DMACHTDR;\r
106   vu32 DMACHRDR;\r
107   vu32 DMACHTBAR;\r
108   vu32 DMACHRBAR;\r
109 } ETH_DMA_TypeDef;\r
110 \r
111 /******************************************************************************/\r
112 /*                Ethernet MAC Registers bits definitions                     */\r
113 /******************************************************************************/\r
114 //#define  IPNAME_REGNAME_BITNAME   /* BIT MASK */\r
115 \r
116 /* Bit definition for Ethernet MAC Control Register register */\r
117 #define ETH_MACCR_WD      ((u32)0x00800000)  /* Watchdog disable */\r
118 #define ETH_MACCR_JD      ((u32)0x00400000)  /* Jabber disable */\r
119 #define ETH_MACCR_JFE     ((u32)0x00100000)  /* Jumbo frame enable */\r
120 #define ETH_MACCR_IFG     ((u32)0x000E0000)  /* Inter-frame gap */\r
121   #define ETH_MACCR_IFG_96Bit     ((u32)0x00000000)  /* Minimum IFG between frames during transmission is 96Bit */\r
122   #define ETH_MACCR_IFG_88Bit     ((u32)0x00020000)  /* Minimum IFG between frames during transmission is 88Bit */\r
123   #define ETH_MACCR_IFG_80Bit     ((u32)0x00040000)  /* Minimum IFG between frames during transmission is 80Bit */\r
124   #define ETH_MACCR_IFG_72Bit     ((u32)0x00060000)  /* Minimum IFG between frames during transmission is 72Bit */\r
125   #define ETH_MACCR_IFG_64Bit     ((u32)0x00080000)  /* Minimum IFG between frames during transmission is 64Bit */\r
126   #define ETH_MACCR_IFG_56Bit     ((u32)0x000A0000)  /* Minimum IFG between frames during transmission is 56Bit */\r
127   #define ETH_MACCR_IFG_48Bit     ((u32)0x000C0000)  /* Minimum IFG between frames during transmission is 48Bit */\r
128   #define ETH_MACCR_IFG_40Bit     ((u32)0x000E0000)  /* Minimum IFG between frames during transmission is 40Bit */\r
129 #define ETH_MACCR_CSD     ((u32)0x00010000)  /* Carrier sense disable (during transmission) */\r
130 #define ETH_MACCR_FES     ((u32)0x00004000)  /* Fast ethernet speed */\r
131 #define ETH_MACCR_ROD     ((u32)0x00002000)  /* Receive own disable */\r
132 #define ETH_MACCR_LM      ((u32)0x00001000)  /* loopback mode */\r
133 #define ETH_MACCR_DM      ((u32)0x00000800)  /* Duplex mode */\r
134 #define ETH_MACCR_IPCO    ((u32)0x00000400)  /* IP Checksum offload */\r
135 #define ETH_MACCR_RD      ((u32)0x00000200)  /* Retry disable */\r
136 #define ETH_MACCR_APCS    ((u32)0x00000080)  /* Automatic Pad/CRC stripping */\r
137 #define ETH_MACCR_BL      ((u32)0x00000060)  /* Back-off limit: random integer number (r) of slot time delays before rescheduling\r
138                                                        a transmission attempt during retries after a collision: 0 =< r <2^k */\r
139   #define ETH_MACCR_BL_10    ((u32)0x00000000)  /* k = min (n, 10) */\r
140   #define ETH_MACCR_BL_8     ((u32)0x00000020)  /* k = min (n, 8) */\r
141   #define ETH_MACCR_BL_4     ((u32)0x00000040)  /* k = min (n, 4) */\r
142   #define ETH_MACCR_BL_1     ((u32)0x00000060)  /* k = min (n, 1) */\r
143 #define ETH_MACCR_DC      ((u32)0x00000010)  /* Defferal check */\r
144 #define ETH_MACCR_TE      ((u32)0x00000008)  /* Transmitter enable */\r
145 #define ETH_MACCR_RE      ((u32)0x00000004)  /* Receiver enable */\r
146 \r
147 /* Bit definition for Ethernet MAC Frame Filter Register */\r
148 #define ETH_MACFFR_RA     ((u32)0x80000000)  /* Receive all */\r
149 #define ETH_MACFFR_HPF    ((u32)0x00000400)  /* Hash or perfect filter */\r
150 #define ETH_MACFFR_SAF    ((u32)0x00000200)  /* Source address filter enable */\r
151 #define ETH_MACFFR_SAIF   ((u32)0x00000100)  /* SA inverse filtering */\r
152 #define ETH_MACFFR_PCF    ((u32)0x000000C0)  /* Pass control frames: 3 cases */\r
153   #define ETH_MACFFR_PCF_BlockAll                ((u32)0x00000040)  /* MAC filters all control frames from reaching the application */\r
154   #define ETH_MACFFR_PCF_ForwardAll              ((u32)0x00000080)  /* MAC forwards all control frames to application even if they fail the Address Filter */\r
155   #define ETH_MACFFR_PCF_ForwardPassedAddrFilter ((u32)0x000000C0)  /* MAC forwards control frames that pass the Address Filter. */\r
156 #define ETH_MACFFR_BFD    ((u32)0x00000020)  /* Broadcast frame disable */\r
157 #define ETH_MACFFR_PAM    ((u32)0x00000010)  /* Pass all mutlicast */\r
158 #define ETH_MACFFR_DAIF   ((u32)0x00000008)  /* DA Inverse filtering */\r
159 #define ETH_MACFFR_HM     ((u32)0x00000004)  /* Hash multicast */\r
160 #define ETH_MACFFR_HU     ((u32)0x00000002)  /* Hash unicast */\r
161 #define ETH_MACFFR_PM     ((u32)0x00000001)  /* Promiscuous mode */\r
162 \r
163 /* Bit definition for Ethernet MAC Hash Table High Register */\r
164 #define ETH_MACHTHR_HTH   ((u32)0xFFFFFFFF)  /* Hash table high */\r
165 \r
166 /* Bit definition for Ethernet MAC Hash Table Low Register */\r
167 #define ETH_MACHTLR_HTL   ((u32)0xFFFFFFFF)  /* Hash table low */\r
168 \r
169 /* Bit definition for Ethernet MAC MII Address Register */\r
170 #define ETH_MACMIIAR_PA   ((u32)0x0000F800)  /* Physical layer address */\r
171 #define ETH_MACMIIAR_MR   ((u32)0x000007C0)  /* MII register in the selected PHY */\r
172 #define ETH_MACMIIAR_CR   ((u32)0x0000001C)  /* CR clock range: 6 cases */\r
173   #define ETH_MACMIIAR_CR_Div42   ((u32)0x00000000)  /* HCLK:60-72 MHz; MDC clock= HCLK/42 */\r
174   #define ETH_MACMIIAR_CR_Div16   ((u32)0x00000008)  /* HCLK:20-35 MHz; MDC clock= HCLK/16 */\r
175   #define ETH_MACMIIAR_CR_Div26   ((u32)0x0000000C)  /* HCLK:35-60 MHz; MDC clock= HCLK/26 */\r
176 #define ETH_MACMIIAR_MW   ((u32)0x00000002)  /* MII write */\r
177 #define ETH_MACMIIAR_MB   ((u32)0x00000001)  /* MII busy */\r
178 \r
179 /* Bit definition for Ethernet MAC MII Data Register */\r
180 #define ETH_MACMIIDR_MD   ((u32)0x0000FFFF)  /* MII data: read/write data from/to PHY */\r
181 \r
182 /* Bit definition for Ethernet MAC Flow Control Register */\r
183 #define ETH_MACFCR_PT     ((u32)0xFFFF0000)  /* Pause time */\r
184 #define ETH_MACFCR_ZQPD   ((u32)0x00000080)  /* Zero-quanta pause disable */\r
185 #define ETH_MACFCR_PLT    ((u32)0x00000030)  /* Pause low threshold: 4 cases */\r
186   #define ETH_MACFCR_PLT_Minus4   ((u32)0x00000000)  /* Pause time minus 4 slot times */\r
187   #define ETH_MACFCR_PLT_Minus28  ((u32)0x00000010)  /* Pause time minus 28 slot times */\r
188   #define ETH_MACFCR_PLT_Minus144 ((u32)0x00000020)  /* Pause time minus 144 slot times */\r
189   #define ETH_MACFCR_PLT_Minus256 ((u32)0x00000030)  /* Pause time minus 256 slot times */\r
190 #define ETH_MACFCR_UPFD   ((u32)0x00000008)  /* Unicast pause frame detect */\r
191 #define ETH_MACFCR_RFCE   ((u32)0x00000004)  /* Receive flow control enable */\r
192 #define ETH_MACFCR_TFCE   ((u32)0x00000002)  /* Transmit flow control enable */\r
193 #define ETH_MACFCR_FCBBPA ((u32)0x00000001)  /* Flow control busy/backpressure activate */\r
194 \r
195 /* Bit definition for Ethernet MAC VLAN Tag Register */\r
196 #define ETH_MACVLANTR_VLANTC ((u32)0x00010000)  /* 12-bit VLAN tag comparison */\r
197 #define ETH_MACVLANTR_VLANTI ((u32)0x0000FFFF)  /* VLAN tag identifier (for receive frames) */\r
198 \r
199 /* Bit definition for Ethernet MAC Remote Wake-UpFrame Filter Register */\r
200 #define ETH_MACRWUFFR_D   ((u32)0xFFFFFFFF)  /* Wake-up frame filter register data */\r
201 /* Eight sequential Writes to this address (offset 0x28) will write all Wake-UpFrame Filter Registers.\r
202    Eight sequential Reads from this address (offset 0x28) will read all Wake-UpFrame Filter Registers. */\r
203 /* Wake-UpFrame Filter Reg0 : Filter 0 Byte Mask\r
204    Wake-UpFrame Filter Reg1 : Filter 1 Byte Mask\r
205    Wake-UpFrame Filter Reg2 : Filter 2 Byte Mask\r
206    Wake-UpFrame Filter Reg3 : Filter 3 Byte Mask\r
207    Wake-UpFrame Filter Reg4 : RSVD - Filter3 Command - RSVD - Filter2 Command -\r
208                               RSVD - Filter1 Command - RSVD - Filter0 Command\r
209    Wake-UpFrame Filter Re5 : Filter3 Offset - Filter2 Offset - Filter1 Offset - Filter0 Offset\r
210    Wake-UpFrame Filter Re6 : Filter1 CRC16 - Filter0 CRC16\r
211    Wake-UpFrame Filter Re7 : Filter3 CRC16 - Filter2 CRC16 */\r
212 \r
213 /* Bit definition for Ethernet MAC PMT Control and Status Register */\r
214 #define ETH_MACPMTCSR_WFFRPR ((u32)0x80000000)  /* Wake-Up Frame Filter Register Pointer Reset */\r
215 #define ETH_MACPMTCSR_GU     ((u32)0x00000200)  /* Global Unicast */\r
216 #define ETH_MACPMTCSR_WFR    ((u32)0x00000040)  /* Wake-Up Frame Received */\r
217 #define ETH_MACPMTCSR_MPR    ((u32)0x00000020)  /* Magic Packet Received */\r
218 #define ETH_MACPMTCSR_WFE    ((u32)0x00000004)  /* Wake-Up Frame Enable */\r
219 #define ETH_MACPMTCSR_MPE    ((u32)0x00000002)  /* Magic Packet Enable */\r
220 #define ETH_MACPMTCSR_PD     ((u32)0x00000001)  /* Power Down */\r
221 \r
222 /* Bit definition for Ethernet MAC Status Register */\r
223 #define ETH_MACSR_TSTS      ((u32)0x00000200)  /* Time stamp trigger status */\r
224 #define ETH_MACSR_MMCTS     ((u32)0x00000040)  /* MMC transmit status */\r
225 #define ETH_MACSR_MMMCRS    ((u32)0x00000020)  /* MMC receive status */\r
226 #define ETH_MACSR_MMCS      ((u32)0x00000010)  /* MMC status */\r
227 #define ETH_MACSR_PMTS      ((u32)0x00000008)  /* PMT status */\r
228 \r
229 /* Bit definition for Ethernet MAC Interrupt Mask Register */\r
230 #define ETH_MACIMR_TSTIM     ((u32)0x00000200)  /* Time stamp trigger interrupt mask */\r
231 #define ETH_MACIMR_PMTIM     ((u32)0x00000008)  /* PMT interrupt mask */\r
232 \r
233 /* Bit definition for Ethernet MAC Address0 High Register */\r
234 #define ETH_MACA0HR_MACA0H   ((u32)0x0000FFFF)  /* MAC address0 high */\r
235 \r
236 /* Bit definition for Ethernet MAC Address0 Low Register */\r
237 #define ETH_MACA0LR_MACA0L   ((u32)0xFFFFFFFF)  /* MAC address0 low */\r
238 \r
239 /* Bit definition for Ethernet MAC Address1 High Register */\r
240 #define ETH_MACA1HR_AE       ((u32)0x80000000)  /* Address enable */\r
241 #define ETH_MACA1HR_SA       ((u32)0x40000000)  /* Source address */\r
242 #define ETH_MACA1HR_MBC      ((u32)0x3F000000)  /* Mask byte control: bits to mask for comparison of the MAC Address bytes */\r
243   #define ETH_MACA1HR_MBC_HBits15_8    ((u32)0x20000000)  /* Mask MAC Address high reg bits [15:8] */\r
244   #define ETH_MACA1HR_MBC_HBits7_0     ((u32)0x10000000)  /* Mask MAC Address high reg bits [7:0] */\r
245   #define ETH_MACA1HR_MBC_LBits31_24   ((u32)0x08000000)  /* Mask MAC Address low reg bits [31:24] */\r
246   #define ETH_MACA1HR_MBC_LBits23_16   ((u32)0x04000000)  /* Mask MAC Address low reg bits [23:16] */\r
247   #define ETH_MACA1HR_MBC_LBits15_8    ((u32)0x02000000)  /* Mask MAC Address low reg bits [15:8] */\r
248   #define ETH_MACA1HR_MBC_LBits7_0     ((u32)0x01000000)  /* Mask MAC Address low reg bits [7:0] */\r
249 #define ETH_MACA1HR_MACA1H   ((u32)0x0000FFFF)  /* MAC address1 high */\r
250 \r
251 /* Bit definition for Ethernet MAC Address1 Low Register */\r
252 #define ETH_MACA1LR_MACA1L   ((u32)0xFFFFFFFF)  /* MAC address1 low */\r
253 \r
254 /* Bit definition for Ethernet MAC Address2 High Register */\r
255 #define ETH_MACA2HR_AE       ((u32)0x80000000)  /* Address enable */\r
256 #define ETH_MACA2HR_SA       ((u32)0x40000000)  /* Source address */\r
257 #define ETH_MACA2HR_MBC      ((u32)0x3F000000)  /* Mask byte control */\r
258   #define ETH_MACA2HR_MBC_HBits15_8    ((u32)0x20000000)  /* Mask MAC Address high reg bits [15:8] */\r
259   #define ETH_MACA2HR_MBC_HBits7_0     ((u32)0x10000000)  /* Mask MAC Address high reg bits [7:0] */\r
260   #define ETH_MACA2HR_MBC_LBits31_24   ((u32)0x08000000)  /* Mask MAC Address low reg bits [31:24] */\r
261   #define ETH_MACA2HR_MBC_LBits23_16   ((u32)0x04000000)  /* Mask MAC Address low reg bits [23:16] */\r
262   #define ETH_MACA2HR_MBC_LBits15_8    ((u32)0x02000000)  /* Mask MAC Address low reg bits [15:8] */\r
263   #define ETH_MACA2HR_MBC_LBits7_0     ((u32)0x01000000)  /* Mask MAC Address low reg bits [70] */\r
264 #define ETH_MACA2HR_MACA2H   ((u32)0x0000FFFF)  /* MAC address1 high */\r
265 \r
266 /* Bit definition for Ethernet MAC Address2 Low Register */\r
267 #define ETH_MACA2LR_MACA2L   ((u32)0xFFFFFFFF)  /* MAC address2 low */\r
268 \r
269 /* Bit definition for Ethernet MAC Address3 High Register */\r
270 #define ETH_MACA3HR_AE       ((u32)0x80000000)  /* Address enable */\r
271 #define ETH_MACA3HR_SA       ((u32)0x40000000)  /* Source address */\r
272 #define ETH_MACA3HR_MBC      ((u32)0x3F000000)  /* Mask byte control */\r
273   #define ETH_MACA2HR_MBC_HBits15_8    ((u32)0x20000000)  /* Mask MAC Address high reg bits [15:8] */\r
274   #define ETH_MACA2HR_MBC_HBits7_0     ((u32)0x10000000)  /* Mask MAC Address high reg bits [7:0] */\r
275   #define ETH_MACA2HR_MBC_LBits31_24   ((u32)0x08000000)  /* Mask MAC Address low reg bits [31:24] */\r
276   #define ETH_MACA2HR_MBC_LBits23_16   ((u32)0x04000000)  /* Mask MAC Address low reg bits [23:16] */\r
277   #define ETH_MACA2HR_MBC_LBits15_8    ((u32)0x02000000)  /* Mask MAC Address low reg bits [15:8] */\r
278   #define ETH_MACA2HR_MBC_LBits7_0     ((u32)0x01000000)  /* Mask MAC Address low reg bits [70] */\r
279 #define ETH_MACA3HR_MACA3H   ((u32)0x0000FFFF)  /* MAC address3 high */\r
280 \r
281 /* Bit definition for Ethernet MAC Address3 Low Register */\r
282 #define ETH_MACA3LR_MACA3L   ((u32)0xFFFFFFFF)  /* MAC address3 low */\r
283 \r
284 /******************************************************************************/\r
285 /*                Ethernet MMC Registers bits definition                      */\r
286 /******************************************************************************/\r
287 \r
288 /* Bit definition for Ethernet MMC Contol Register */\r
289 #define ETH_MMCCR_MCF        ((u32)0x00000008)  /* MMC Counter Freeze */\r
290 #define ETH_MMCCR_ROR        ((u32)0x00000004)  /* Reset on Read */\r
291 #define ETH_MMCCR_CSR        ((u32)0x00000002)  /* Counter Stop Rollover */\r
292 #define ETH_MMCCR_CR         ((u32)0x00000001)  /* Counters Reset */\r
293 \r
294 /* Bit definition for Ethernet MMC Receive Interrupt Register */\r
295 #define ETH_MMCRIR_RGUFS     ((u32)0x00020000)  /* Set when Rx good unicast frames counter reaches half the maximum value */\r
296 #define ETH_MMCRIR_RFAES     ((u32)0x00000040)  /* Set when Rx alignment error counter reaches half the maximum value */\r
297 #define ETH_MMCRIR_RFCES     ((u32)0x00000020)  /* Set when Rx crc error counter reaches half the maximum value */\r
298 \r
299 /* Bit definition for Ethernet MMC Transmit Interrupt Register */\r
300 #define ETH_MMCTIR_TGFS      ((u32)0x00200000)  /* Set when Tx good frame count counter reaches half the maximum value */\r
301 #define ETH_MMCTIR_TGFMSCS   ((u32)0x00008000)  /* Set when Tx good multi col counter reaches half the maximum value */\r
302 #define ETH_MMCTIR_TGFSCS    ((u32)0x00004000)  /* Set when Tx good single col counter reaches half the maximum value */\r
303 \r
304 /* Bit definition for Ethernet MMC Receive Interrupt Mask Register */\r
305 #define ETH_MMCRIMR_RGUFM    ((u32)0x00020000)  /* Mask the interrupt when Rx good unicast frames counter reaches half the maximum value */\r
306 #define ETH_MMCRIMR_RFAEM    ((u32)0x00000040)  /* Mask the interrupt when when Rx alignment error counter reaches half the maximum value */\r
307 #define ETH_MMCRIMR_RFCEM    ((u32)0x00000020)  /* Mask the interrupt when Rx crc error counter reaches half the maximum value */\r
308 \r
309 /* Bit definition for Ethernet MMC Transmit Interrupt Mask Register */\r
310 #define ETH_MMCTIMR_TGFM     ((u32)0x00200000)  /* Mask the interrupt when Tx good frame count counter reaches half the maximum value */\r
311 #define ETH_MMCTIMR_TGFMSCM  ((u32)0x00008000)  /* Mask the interrupt when Tx good multi col counter reaches half the maximum value */\r
312 #define ETH_MMCTIMR_TGFSCM   ((u32)0x00004000)  /* Mask the interrupt when Tx good single col counter reaches half the maximum value */\r
313 \r
314 /* Bit definition for Ethernet MMC Transmitted Good Frames after Single Collision Counter Register */\r
315 #define ETH_MMCTGFSCCR_TGFSCC     ((u32)0xFFFFFFFF)  /* Number of successfully transmitted frames after a single collision in Half-duplex mode. */\r
316 \r
317 /* Bit definition for Ethernet MMC Transmitted Good Frames after More than a Single Collision Counter Register */\r
318 #define ETH_MMCTGFMSCCR_TGFMSCC   ((u32)0xFFFFFFFF)  /* Number of successfully transmitted frames after more than a single collision in Half-duplex mode. */\r
319 \r
320 /* Bit definition for Ethernet MMC Transmitted Good Frames Counter Register */\r
321 #define ETH_MMCTGFCR_TGFC    ((u32)0xFFFFFFFF)  /* Number of good frames transmitted. */\r
322 \r
323 /* Bit definition for Ethernet MMC Received Frames with CRC Error Counter Register */\r
324 #define ETH_MMCRFCECR_RFCEC  ((u32)0xFFFFFFFF)  /* Number of frames received with CRC error. */\r
325 \r
326 /* Bit definition for Ethernet MMC Received Frames with Alignement Error Counter Register */\r
327 #define ETH_MMCRFAECR_RFAEC  ((u32)0xFFFFFFFF)  /* Number of frames received with alignment (dribble) error */\r
328 \r
329 /* Bit definition for Ethernet MMC Received Good Unicast Frames Counter Register */\r
330 #define ETH_MMCRGUFCR_RGUFC  ((u32)0xFFFFFFFF)  /* Number of good unicast frames received. */\r
331 \r
332 /******************************************************************************/\r
333 /*               Ethernet PTP Registers bits definition                       */\r
334 /******************************************************************************/\r
335 \r
336 /* Bit definition for Ethernet PTP Time Stamp Contol Register */\r
337 #define ETH_PTPTSCR_TSARU    ((u32)0x00000020)  /* Addend register update */\r
338 #define ETH_PTPTSCR_TSITE    ((u32)0x00000010)  /* Time stamp interrupt trigger enable */\r
339 #define ETH_PTPTSCR_TSSTU    ((u32)0x00000008)  /* Time stamp update */\r
340 #define ETH_PTPTSCR_TSSTI    ((u32)0x00000004)  /* Time stamp initialize */\r
341 #define ETH_PTPTSCR_TSFCU    ((u32)0x00000002)  /* Time stamp fine or coarse update */\r
342 #define ETH_PTPTSCR_TSE      ((u32)0x00000001)  /* Time stamp enable */\r
343 \r
344 /* Bit definition for Ethernet PTP Sub-Second Increment Register */\r
345 #define ETH_PTPSSIR_STSSI    ((u32)0x000000FF)  /* System time Sub-second increment value */\r
346 \r
347 /* Bit definition for Ethernet PTP Time Stamp High Register */\r
348 #define ETH_PTPTSHR_STS      ((u32)0xFFFFFFFF)  /* System Time second */\r
349 \r
350 /* Bit definition for Ethernet PTP Time Stamp Low Register */\r
351 #define ETH_PTPTSLR_STPNS    ((u32)0x80000000)  /* System Time Positive or negative time */\r
352 #define ETH_PTPTSLR_STSS     ((u32)0x7FFFFFFF)  /* System Time sub-seconds */\r
353 \r
354 /* Bit definition for Ethernet PTP Time Stamp High Update Register */\r
355 #define ETH_PTPTSHUR_TSUS    ((u32)0xFFFFFFFF)  /* Time stamp update seconds */\r
356 \r
357 /* Bit definition for Ethernet PTP Time Stamp Low Update Register */\r
358 #define ETH_PTPTSLUR_TSUPNS  ((u32)0x80000000)  /* Time stamp update Positive or negative time */\r
359 #define ETH_PTPTSLUR_TSUSS   ((u32)0x7FFFFFFF)  /* Time stamp update sub-seconds */\r
360 \r
361 /* Bit definition for Ethernet PTP Time Stamp Addend Register */\r
362 #define ETH_PTPTSAR_TSA      ((u32)0xFFFFFFFF)  /* Time stamp addend */\r
363 \r
364 /* Bit definition for Ethernet PTP Target Time High Register */\r
365 #define ETH_PTPTTHR_TTSH     ((u32)0xFFFFFFFF)  /* Target time stamp high */\r
366 \r
367 /* Bit definition for Ethernet PTP Target Time Low Register */\r
368 #define ETH_PTPTTLR_TTSL     ((u32)0xFFFFFFFF)  /* Target time stamp low */\r
369 \r
370 /******************************************************************************/\r
371 /*                 Ethernet DMA Registers bits definition                     */\r
372 /******************************************************************************/\r
373 \r
374 /* Bit definition for Ethernet DMA Bus Mode Register */\r
375 #define ETH_DMABMR_AAB       ((u32)0x02000000)  /* Address-Aligned beats */\r
376 #define ETH_DMABMR_FPM        ((u32)0x01000000)  /* 4xPBL mode */\r
377 #define ETH_DMABMR_USP       ((u32)0x00800000)  /* Use separate PBL */\r
378 #define ETH_DMABMR_RDP       ((u32)0x007E0000)  /* RxDMA PBL */\r
379   /* Values to be confirmed: maybe they are inversed */\r
380   #define ETH_DMABMR_RDP_1Beat    ((u32)0x00020000)  /* maximum number of beats to be transferred in one RxDMA transaction is 1 */\r
381   #define ETH_DMABMR_RDP_2Beat    ((u32)0x00040000)  /* maximum number of beats to be transferred in one RxDMA transaction is 2 */\r
382   #define ETH_DMABMR_RDP_4Beat    ((u32)0x00080000)  /* maximum number of beats to be transferred in one RxDMA transaction is 4 */\r
383   #define ETH_DMABMR_RDP_8Beat    ((u32)0x00100000)  /* maximum number of beats to be transferred in one RxDMA transaction is 8 */\r
384   #define ETH_DMABMR_RDP_16Beat   ((u32)0x00200000)  /* maximum number of beats to be transferred in one RxDMA transaction is 16 */\r
385   #define ETH_DMABMR_RDP_32Beat   ((u32)0x00400000)  /* maximum number of beats to be transferred in one RxDMA transaction is 32 */\r
386   #define ETH_DMABMR_RDP_4xPBL_4Beat   ((u32)0x01020000)  /* maximum number of beats to be transferred in one RxDMA transaction is 4 */\r
387   #define ETH_DMABMR_RDP_4xPBL_8Beat   ((u32)0x01040000)  /* maximum number of beats to be transferred in one RxDMA transaction is 8 */\r
388   #define ETH_DMABMR_RDP_4xPBL_16Beat  ((u32)0x01080000)  /* maximum number of beats to be transferred in one RxDMA transaction is 16 */\r
389   #define ETH_DMABMR_RDP_4xPBL_32Beat  ((u32)0x01100000)  /* maximum number of beats to be transferred in one RxDMA transaction is 32 */\r
390   #define ETH_DMABMR_RDP_4xPBL_64Beat  ((u32)0x01200000)  /* maximum number of beats to be transferred in one RxDMA transaction is 64 */\r
391   #define ETH_DMABMR_RDP_4xPBL_128Beat ((u32)0x01400000)  /* maximum number of beats to be transferred in one RxDMA transaction is 128 */\r
392 #define ETH_DMABMR_FB        ((u32)0x00010000)  /* Fixed Burst */\r
393 #define ETH_DMABMR_RTPR      ((u32)0x0000C000)  /* Rx Tx priority ratio */\r
394   #define ETH_DMABMR_RTPR_1_1     ((u32)0x00000000)  /* Rx Tx priority ratio */\r
395   #define ETH_DMABMR_RTPR_2_1     ((u32)0x00004000)  /* Rx Tx priority ratio */\r
396   #define ETH_DMABMR_RTPR_3_1     ((u32)0x00008000)  /* Rx Tx priority ratio */\r
397   #define ETH_DMABMR_RTPR_4_1     ((u32)0x0000C000)  /* Rx Tx priority ratio */\r
398 #define ETH_DMABMR_PBL    ((u32)0x00003F00)  /* Programmable burst length */\r
399   /* Values to be confirmed: maybe they are inversed */\r
400   #define ETH_DMABMR_PBL_1Beat    ((u32)0x00000100)  /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 1 */\r
401   #define ETH_DMABMR_PBL_2Beat    ((u32)0x00000200)  /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 2 */\r
402   #define ETH_DMABMR_PBL_4Beat    ((u32)0x00000400)  /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 4 */\r
403   #define ETH_DMABMR_PBL_8Beat    ((u32)0x00000800)  /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 8 */\r
404   #define ETH_DMABMR_PBL_16Beat   ((u32)0x00001000)  /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 16 */\r
405   #define ETH_DMABMR_PBL_32Beat   ((u32)0x00002000)  /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 32 */\r
406   #define ETH_DMABMR_PBL_4xPBL_4Beat   ((u32)0x01000100)  /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 4 */\r
407   #define ETH_DMABMR_PBL_4xPBL_8Beat   ((u32)0x01000200)  /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 8 */\r
408   #define ETH_DMABMR_PBL_4xPBL_16Beat  ((u32)0x01000400)  /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 16 */\r
409   #define ETH_DMABMR_PBL_4xPBL_32Beat  ((u32)0x01000800)  /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 32 */\r
410   #define ETH_DMABMR_PBL_4xPBL_64Beat  ((u32)0x01001000)  /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 64 */\r
411   #define ETH_DMABMR_PBL_4xPBL_128Beat ((u32)0x01002000)  /* maximum number of beats to be transferred in one TxDMA (or both) transaction is 128 */\r
412 #define ETH_DMABMR_DSL       ((u32)0x0000007C)  /* Descriptor Skip Length */\r
413 #define ETH_DMABMR_DA        ((u32)0x00000002)  /* DMA arbitration scheme */\r
414 #define ETH_DMABMR_SR        ((u32)0x00000001)  /* Software reset */\r
415 \r
416 /* Bit definition for Ethernet DMA Transmit Poll Demand Register */\r
417 #define ETH_DMATPDR_TPD      ((u32)0xFFFFFFFF)  /* Transmit poll demand */\r
418 \r
419 /* Bit definition for Ethernet DMA Receive Poll Demand Register */\r
420 #define ETH_DMARPDR_RPD      ((u32)0xFFFFFFFF)  /* Receive poll demand  */\r
421 \r
422 /* Bit definition for Ethernet DMA Receive Descriptor List Address Register */\r
423 #define ETH_DMARDLAR_SRL     ((u32)0xFFFFFFFF)  /* Start of receive list */\r
424 \r
425 /* Bit definition for Ethernet DMA Transmit Descriptor List Address Register */\r
426 #define ETH_DMATDLAR_STL     ((u32)0xFFFFFFFF)  /* Start of transmit list */\r
427 \r
428 /* Bit definition for Ethernet DMA Status Register */\r
429 #define ETH_DMASR_TSTS       ((u32)0x20000000)  /* Time-stamp trigger status */\r
430 #define ETH_DMASR_PMTS       ((u32)0x10000000)  /* PMT status */\r
431 #define ETH_DMASR_MMCS       ((u32)0x08000000)  /* MMC status */\r
432 #define ETH_DMASR_EBS        ((u32)0x03800000)  /* Error bits status */\r
433   /* combination with EBS[2:0] for GetFlagStatus function */\r
434   #define ETH_DMASR_EBS_DescAccess      ((u32)0x02000000)  /* Error bits 0-data buffer, 1-desc. access */\r
435   #define ETH_DMASR_EBS_ReadTransf      ((u32)0x01000000)  /* Error bits 0-write trnsf, 1-read transfr */\r
436   #define ETH_DMASR_EBS_DataTransfTx    ((u32)0x00800000)  /* Error bits 0-Rx DMA, 1-Tx DMA */\r
437 #define ETH_DMASR_TPS         ((u32)0x00700000)  /* Transmit process state */\r
438   #define ETH_DMASR_TPS_Stopped         ((u32)0x00000000)  /* Stopped - Reset or Stop Tx Command issued  */\r
439   #define ETH_DMASR_TPS_Fetching        ((u32)0x00100000)  /* Running - fetching the Tx descriptor */\r
440   #define ETH_DMASR_TPS_Waiting         ((u32)0x00200000)  /* Running - waiting for status */\r
441   #define ETH_DMASR_TPS_Reading         ((u32)0x00300000)  /* Running - reading the data from host memory */\r
442   #define ETH_DMASR_TPS_Suspended       ((u32)0x00600000)  /* Suspended - Tx Descriptor unavailabe */\r
443   #define ETH_DMASR_TPS_Closing         ((u32)0x00700000)  /* Running - closing Rx descriptor */\r
444 #define ETH_DMASR_RPS         ((u32)0x000E0000)  /* Receive process state */\r
445   #define ETH_DMASR_RPS_Stopped         ((u32)0x00000000)  /* Stopped - Reset or Stop Rx Command issued */\r
446   #define ETH_DMASR_RPS_Fetching        ((u32)0x00020000)  /* Running - fetching the Rx descriptor */\r
447   #define ETH_DMASR_RPS_Waiting         ((u32)0x00060000)  /* Running - waiting for packet */\r
448   #define ETH_DMASR_RPS_Suspended       ((u32)0x00080000)  /* Suspended - Rx Descriptor unavailable */\r
449   #define ETH_DMASR_RPS_Closing         ((u32)0x000A0000)  /* Running - closing descriptor */\r
450   #define ETH_DMASR_RPS_Queuing         ((u32)0x000E0000)  /* Running - queuing the recieve frame into host memory */\r
451 #define ETH_DMASR_NIS        ((u32)0x00010000)  /* Normal interrupt summary */\r
452 #define ETH_DMASR_AIS        ((u32)0x00008000)  /* Abnormal interrupt summary */\r
453 #define ETH_DMASR_ERS        ((u32)0x00004000)  /* Early receive status */\r
454 #define ETH_DMASR_FBES       ((u32)0x00002000)  /* Fatal bus error status */\r
455 #define ETH_DMASR_ETS        ((u32)0x00000400)  /* Early transmit status */\r
456 #define ETH_DMASR_RWTS       ((u32)0x00000200)  /* Receive watchdog timeout status */\r
457 #define ETH_DMASR_RPSS       ((u32)0x00000100)  /* Receive process stopped status */\r
458 #define ETH_DMASR_RBUS       ((u32)0x00000080)  /* Receive buffer unavailable status */\r
459 #define ETH_DMASR_RS         ((u32)0x00000040)  /* Receive status */\r
460 #define ETH_DMASR_TUS        ((u32)0x00000020)  /* Transmit underflow status */\r
461 #define ETH_DMASR_ROS        ((u32)0x00000010)  /* Receive overflow status */\r
462 #define ETH_DMASR_TJTS       ((u32)0x00000008)  /* Transmit jabber timeout status */\r
463 #define ETH_DMASR_TBUS       ((u32)0x00000004)  /* Transmit buffer unavailable status */\r
464 #define ETH_DMASR_TPSS       ((u32)0x00000002)  /* Transmit process stopped status */\r
465 #define ETH_DMASR_TS         ((u32)0x00000001)  /* Transmit status */\r
466 \r
467 /* Bit definition for Ethernet DMA Operation Mode Register */\r
468 #define ETH_DMAOMR_DTCEFD    ((u32)0x04000000)  /* Disable Dropping of TCP/IP checksum error frames */\r
469 #define ETH_DMAOMR_RSF       ((u32)0x02000000)  /* Receive store and forward */\r
470 #define ETH_DMAOMR_DFRF      ((u32)0x01000000)  /* Disable flushing of received frames */\r
471 #define ETH_DMAOMR_TSF       ((u32)0x00200000)  /* Transmit store and forward */\r
472 #define ETH_DMAOMR_FTF       ((u32)0x00100000)  /* Flush transmit FIFO */\r
473 #define ETH_DMAOMR_TTC       ((u32)0x0001C000)  /* Transmit threshold control */\r
474   #define ETH_DMAOMR_TTC_64Bytes       ((u32)0x00000000)  /* threshold level of the MTL Transmit FIFO is 64 Bytes */\r
475   #define ETH_DMAOMR_TTC_128Bytes      ((u32)0x00004000)  /* threshold level of the MTL Transmit FIFO is 128 Bytes */\r
476   #define ETH_DMAOMR_TTC_192Bytes      ((u32)0x00008000)  /* threshold level of the MTL Transmit FIFO is 192 Bytes */\r
477   #define ETH_DMAOMR_TTC_256Bytes      ((u32)0x0000C000)  /* threshold level of the MTL Transmit FIFO is 256 Bytes */\r
478   #define ETH_DMAOMR_TTC_40Bytes       ((u32)0x00010000)  /* threshold level of the MTL Transmit FIFO is 40 Bytes */\r
479   #define ETH_DMAOMR_TTC_32Bytes       ((u32)0x00014000)  /* threshold level of the MTL Transmit FIFO is 32 Bytes */\r
480   #define ETH_DMAOMR_TTC_24Bytes       ((u32)0x00018000)  /* threshold level of the MTL Transmit FIFO is 24 Bytes */\r
481   #define ETH_DMAOMR_TTC_16Bytes       ((u32)0x0001C000)  /* threshold level of the MTL Transmit FIFO is 16 Bytes */\r
482 #define ETH_DMAOMR_ST        ((u32)0x00002000)  /* Start/stop transmission command */\r
483 #define ETH_DMAOMR_FEF       ((u32)0x00000080)  /* Forward error frames */\r
484 #define ETH_DMAOMR_FUGF      ((u32)0x00000040)  /* Forward undersized good frames */\r
485 #define ETH_DMAOMR_RTC       ((u32)0x00000018)  /* receive threshold control */\r
486   #define ETH_DMAOMR_RTC_64Bytes       ((u32)0x00000000)  /* threshold level of the MTL Receive FIFO is 64 Bytes */\r
487   #define ETH_DMAOMR_RTC_32Bytes       ((u32)0x00000008)  /* threshold level of the MTL Receive FIFO is 32 Bytes */\r
488   #define ETH_DMAOMR_RTC_96Bytes       ((u32)0x00000010)  /* threshold level of the MTL Receive FIFO is 96 Bytes */\r
489   #define ETH_DMAOMR_RTC_128Bytes      ((u32)0x00000018)  /* threshold level of the MTL Receive FIFO is 128 Bytes */\r
490 #define ETH_DMAOMR_OSF       ((u32)0x00000004)  /* operate on second frame */\r
491 #define ETH_DMAOMR_SR        ((u32)0x00000002)  /* Start/stop receive */\r
492 \r
493 /* Bit definition for Ethernet DMA Interrupt Enable Register */\r
494 #define ETH_DMAIER_NISE      ((u32)0x00010000)  /* Normal interrupt summary enable */\r
495 #define ETH_DMAIER_AISE      ((u32)0x00008000)  /* Abnormal interrupt summary enable */\r
496 #define ETH_DMAIER_ERIE      ((u32)0x00004000)  /* Early receive interrupt enable */\r
497 #define ETH_DMAIER_FBEIE     ((u32)0x00002000)  /* Fatal bus error interrupt enable */\r
498 #define ETH_DMAIER_ETIE      ((u32)0x00000400)  /* Early transmit interrupt enable */\r
499 #define ETH_DMAIER_RWTIE     ((u32)0x00000200)  /* Receive watchdog timeout interrupt enable */\r
500 #define ETH_DMAIER_RPSIE     ((u32)0x00000100)  /* Receive process stopped interrupt enable */\r
501 #define ETH_DMAIER_RBUIE     ((u32)0x00000080)  /* Receive buffer unavailable interrupt enable */\r
502 #define ETH_DMAIER_RIE       ((u32)0x00000040)  /* Receive interrupt enable */\r
503 #define ETH_DMAIER_TUIE      ((u32)0x00000020)  /* Transmit Underflow interrupt enable */\r
504 #define ETH_DMAIER_ROIE      ((u32)0x00000010)  /* Receive Overflow interrupt enable */\r
505 #define ETH_DMAIER_TJTIE     ((u32)0x00000008)  /* Transmit jabber timeout interrupt enable */\r
506 #define ETH_DMAIER_TBUIE     ((u32)0x00000004)  /* Transmit buffer unavailable interrupt enable */\r
507 #define ETH_DMAIER_TPSIE     ((u32)0x00000002)  /* Transmit process stopped interrupt enable */\r
508 #define ETH_DMAIER_TIE       ((u32)0x00000001)  /* Transmit interrupt enable */\r
509 \r
510 /* Bit definition for Ethernet DMA Missed Frame and Buffer Overflow Counter Register */\r
511 #define ETH_DMAMFBOCR_OFOC   ((u32)0x10000000)  /* Overflow bit for FIFO overflow counter */\r
512 #define ETH_DMAMFBOCR_MFA    ((u32)0x0FFE0000)  /* Number of frames missed by the application */\r
513 #define ETH_DMAMFBOCR_OMFC   ((u32)0x00010000)  /* Overflow bit for missed frame counter */\r
514 #define ETH_DMAMFBOCR_MFC    ((u32)0x0000FFFF)  /* Number of frames missed by the controller */\r
515 \r
516 /* Bit definition for Ethernet DMA Current Host Transmit Descriptor Register */\r
517 #define ETH_DMACHTDR_HTDAP   ((u32)0xFFFFFFFF)  /* Host transmit descriptor address pointer */\r
518 \r
519 /* Bit definition for Ethernet DMA Current Host Receive Descriptor Register */\r
520 #define ETH_DMACHRDR_HRDAP   ((u32)0xFFFFFFFF)  /* Host receive descriptor address pointer */\r
521 \r
522 /* Bit definition for Ethernet DMA Current Host Transmit Buffer Address Register */\r
523 #define ETH_DMACHTBAR_HTBAP  ((u32)0xFFFFFFFF)  /* Host transmit buffer address pointer */\r
524 \r
525 /* Bit definition for Ethernet DMA Current Host Receive Buffer Address Register */\r
526 #define ETH_DMACHRBAR_HRBAP  ((u32)0xFFFFFFFF)  /* Host receive buffer address pointer */\r
527 \r
528 /******************************************************************************/\r
529 /*                                      Macros                                */\r
530 /******************************************************************************/\r
531 #define  SET_BIT(REG, BIT)   ((REG) |= (BIT))\r
532 #define  CLEAR_BIT(REG, BIT) ((REG) &= ~(BIT))\r
533 #define  READ_BIT(REG, BIT)  ((REG) & (BIT))\r
534 \r
535 /******************************************************************************/\r
536 /*                         Peripheral memory map                              */\r
537 /******************************************************************************/\r
538 /* ETHERNET registers base address */\r
539 #define ETH_BASE             ((u32)0x40028000)\r
540 #define ETH_MAC_BASE         (ETH_BASE)\r
541 #define ETH_MMC_BASE         (ETH_BASE + 0x0100)\r
542 #define ETH_PTP_BASE         (ETH_BASE + 0x0700)\r
543 #define ETH_DMA_BASE         (ETH_BASE + 0x1000)\r
544 \r
545 /******************************************************************************/\r
546 /*                         Peripheral declaration                             */\r
547 /******************************************************************************/\r
548 \r
549 /*------------------------ Non Debug Mode ------------------------------------*/\r
550 #ifndef ETH_DEBUG\r
551 #ifdef _ETH_MAC\r
552   #define ETH_MAC            ((ETH_MAC_TypeDef *) ETH_MAC_BASE)\r
553 #endif /*_ETH_MAC */\r
554 \r
555 #ifdef _ETH_MMC\r
556   #define ETH_MMC            ((ETH_MMC_TypeDef *) ETH_MMC_BASE)\r
557 #endif /*_ETH_MMC */\r
558 \r
559 #ifdef _ETH_PTP\r
560   #define ETH_PTP            ((ETH_PTP_TypeDef *) ETH_PTP_BASE)\r
561 #endif /*_ETH_PTP */\r
562 \r
563 #ifdef _ETH_DMA\r
564   #define ETH_DMA            ((ETH_DMA_TypeDef *) ETH_DMA_BASE)\r
565 #endif /*_ETH_DMA */\r
566 \r
567 /*------------------------ Debug Mode ----------------------------------------*/\r
568 #else   /* ETH_DEBUG */\r
569 #ifdef _ETH_MAC\r
570   EXT ETH_MAC_TypeDef        *ETH_MAC;\r
571 #endif /*_ETH_MAC */\r
572 \r
573 #ifdef _ETH_MMC\r
574   EXT ETH_MMC_TypeDef        *ETH_MMC;\r
575 #endif /*_ETH_MMC */\r
576 \r
577 #ifdef _ETH_PTP\r
578   EXT ETH_PTP_TypeDef        *ETH_PTP;\r
579 #endif /*_ETH_PTP */\r
580 \r
581 #ifdef _ETH_DMA\r
582   EXT ETH_DMA_TypeDef        *ETH_DMA;\r
583 #endif /*_ETH_DMA */\r
584 \r
585 #endif  /* ETH_DEBUG */\r
586 \r
587 /* Exported constants --------------------------------------------------------*/\r
588 /* Exported macro ------------------------------------------------------------*/\r
589 /* Exported functions ------------------------------------------------------- */\r
590 \r
591 #endif /* __STM32FXXX_ETH_MAP_H */\r
592 \r
593 /******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/\r