]> git.sur5r.net Git - freertos/blob - Demo/CORTEX_LM3S2965_GCC/LuminaryDrivers/hw_ethernet.h
Update to V4.3.0 as described in http://www.FreeRTOS.org/History.txt
[freertos] / Demo / CORTEX_LM3S2965_GCC / LuminaryDrivers / hw_ethernet.h
1 //*****************************************************************************\r
2 //\r
3 // hw_ethernet.h - Macros used when accessing the ethernet hardware.\r
4 //\r
5 // Copyright (c) 2006-2007 Luminary Micro, Inc.  All rights reserved.\r
6 // \r
7 // Software License Agreement\r
8 // \r
9 // Luminary Micro, Inc. (LMI) is supplying this software for use solely and\r
10 // exclusively on LMI's microcontroller products.\r
11 // \r
12 // The software is owned by LMI and/or its suppliers, and is protected under\r
13 // applicable copyright laws.  All rights are reserved.  Any use in violation\r
14 // of the foregoing restrictions may subject the user to criminal sanctions\r
15 // under applicable laws, as well as to civil liability for the breach of the\r
16 // terms and conditions of this license.\r
17 // \r
18 // THIS SOFTWARE IS PROVIDED "AS IS".  NO WARRANTIES, WHETHER EXPRESS, IMPLIED\r
19 // OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF\r
20 // MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.\r
21 // LMI SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL, OR\r
22 // CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.\r
23 // \r
24 // This is part of revision 1408 of the Stellaris Peripheral Driver Library.\r
25 //\r
26 //*****************************************************************************\r
27 \r
28 #ifndef __HW_ETHERNET_H__\r
29 #define __HW_ETHERNET_H__\r
30 \r
31 //*****************************************************************************\r
32 //\r
33 // The following define the offsets of the MAC registers in the Ethernet\r
34 // Controller.\r
35 //\r
36 //*****************************************************************************\r
37 #define MAC_O_IS                0x00000000  // Interrupt Status Register\r
38 #define MAC_O_IACK              0x00000000  // Interrupt Acknowledge Register\r
39 #define MAC_O_IM                0x00000004  // Interrupt Mask Register\r
40 #define MAC_O_RCTL              0x00000008  // Receive Control Register\r
41 #define MAC_O_TCTL              0x0000000C  // Transmit Control Register\r
42 #define MAC_O_DATA              0x00000010  // Data Register\r
43 #define MAC_O_IA0               0x00000014  // Individual Address Register 0\r
44 #define MAC_O_IA1               0x00000018  // Individual Address Register 1\r
45 #define MAC_O_THR               0x0000001C  // Threshold Register\r
46 #define MAC_O_MCTL              0x00000020  // Management Control Register\r
47 #define MAC_O_MDV               0x00000024  // Management Divider Register\r
48 #define MAC_O_MADD              0x00000028  // Management Address Register\r
49 #define MAC_O_MTXD              0x0000002C  // Management Transmit Data Reg\r
50 #define MAC_O_MRXD              0x00000030  // Management Receive Data Reg\r
51 #define MAC_O_NP                0x00000034  // Number of Packets Register\r
52 #define MAC_O_TR                0x00000038  // Transmission Request Register\r
53 \r
54 //*****************************************************************************\r
55 //\r
56 // The following define the reset values of the MAC registers.\r
57 //\r
58 //*****************************************************************************\r
59 #define MAC_RV_IS               0x00000000\r
60 #define MAC_RV_IACK             0x00000000\r
61 #define MAC_RV_IM               0x0000007F\r
62 #define MAC_RV_RCTL             0x00000008\r
63 #define MAC_RV_TCTL             0x00000000\r
64 #define MAC_RV_DATA             0x00000000\r
65 #define MAC_RV_IA0              0x00000000\r
66 #define MAC_RV_IA1              0x00000000\r
67 #define MAC_RV_THR              0x0000003F\r
68 #define MAC_RV_MCTL             0x00000000\r
69 #define MAC_RV_MDV              0x00000080\r
70 #define MAC_RV_MADD             0x00000000\r
71 #define MAC_RV_MTXD             0x00000000\r
72 #define MAC_RV_MRXD             0x00000000\r
73 #define MAC_RV_NP               0x00000000\r
74 #define MAC_RV_TR               0x00000000\r
75 \r
76 //*****************************************************************************\r
77 //\r
78 // The following define the bit fields in the MAC_IS register.\r
79 //\r
80 //*****************************************************************************\r
81 #define MAC_IS_PHYINT           0x00000040  // PHY Interrupt\r
82 #define MAC_IS_MDINT            0x00000020  // MDI Transaction Complete\r
83 #define MAC_IS_RXER             0x00000010  // RX Error\r
84 #define MAC_IS_FOV              0x00000008  // RX FIFO Overrun\r
85 #define MAC_IS_TXEMP            0x00000004  // TX FIFO Empy\r
86 #define MAC_IS_TXER             0x00000002  // TX Error\r
87 #define MAC_IS_RXINT            0x00000001  // RX Packet Available\r
88 \r
89 //*****************************************************************************\r
90 //\r
91 // The following define the bit fields in the MAC_IACK register.\r
92 //\r
93 //*****************************************************************************\r
94 #define MAC_IACK_PHYINT         0x00000040  // Clear PHY Interrupt\r
95 #define MAC_IACK_MDINT          0x00000020  // Clear MDI Transaction Complete\r
96 #define MAC_IACK_RXER           0x00000010  // Clear RX Error\r
97 #define MAC_IACK_FOV            0x00000008  // Clear RX FIFO Overrun\r
98 #define MAC_IACK_TXEMP          0x00000004  // Clear TX FIFO Empy\r
99 #define MAC_IACK_TXER           0x00000002  // Clear TX Error\r
100 #define MAC_IACK_RXINT          0x00000001  // Clear RX Packet Available\r
101 \r
102 //*****************************************************************************\r
103 //\r
104 // The following define the bit fields in the MAC_IM register.\r
105 //\r
106 //*****************************************************************************\r
107 #define MAC_IM_PHYINTM          0x00000040  // Mask PHY Interrupt\r
108 #define MAC_IM_MDINTM           0x00000020  // Mask MDI Transaction Complete\r
109 #define MAC_IM_RXERM            0x00000010  // Mask RX Error\r
110 #define MAC_IM_FOVM             0x00000008  // Mask RX FIFO Overrun\r
111 #define MAC_IM_TXEMPM           0x00000004  // Mask TX FIFO Empy\r
112 #define MAC_IM_TXERM            0x00000002  // Mask TX Error\r
113 #define MAC_IM_RXINTM           0x00000001  // Mask RX Packet Available\r
114 \r
115 //*****************************************************************************\r
116 //\r
117 // The following define the bit fields in the MAC_RCTL register.\r
118 //\r
119 //*****************************************************************************\r
120 #define MAC_RCTL_RSTFIFO        0x00000010  // Clear the Receive FIFO\r
121 #define MAC_RCTL_BADCRC         0x00000008  // Reject Packets With Bad CRC\r
122 #define MAC_RCTL_PRMS           0x00000004  // Enable Promiscuous Mode\r
123 #define MAC_RCTL_AMUL           0x00000002  // Enable Multicast Packets\r
124 #define MAC_RCTL_RXEN           0x00000001  // Enable Ethernet Receiver\r
125 \r
126 //*****************************************************************************\r
127 //\r
128 // The following define the bit fields in the MAC_TCTL register.\r
129 //\r
130 //*****************************************************************************\r
131 #define MAC_TCTL_DUPLEX         0x00000010  // Enable Duplex mode\r
132 #define MAC_TCTL_CRC            0x00000004  // Enable CRC Generation\r
133 #define MAC_TCTL_PADEN          0x00000002  // Enable Automatic Padding\r
134 #define MAC_TCTL_TXEN           0x00000001  // Enable Ethernet Transmitter\r
135 \r
136 //*****************************************************************************\r
137 //\r
138 // The following define the bit fields in the MAC_IA0 register.\r
139 //\r
140 //*****************************************************************************\r
141 #define MAC_IA0_MACOCT4         0xFF000000  // 4th Octet of MAC address\r
142 #define MAC_IA0_MACOCT3         0x00FF0000  // 3rd Octet of MAC address\r
143 #define MAC_IA0_MACOCT2         0x0000FF00  // 2nd Octet of MAC address\r
144 #define MAC_IA0_MACOCT1         0x000000FF  // 1st Octet of MAC address\r
145 \r
146 //*****************************************************************************\r
147 //\r
148 // The following define the bit fields in the MAC_IA1 register.\r
149 //\r
150 //*****************************************************************************\r
151 #define MAC_IA1_MACOCT6         0x0000FF00  // 6th Octet of MAC address\r
152 #define MAC_IA1_MACOCT5         0x000000FF  // 5th Octet of MAC address\r
153 \r
154 //*****************************************************************************\r
155 //\r
156 // The following define the bit fields in the MAC_TXTH register.\r
157 //\r
158 //*****************************************************************************\r
159 #define MAC_THR_THRESH          0x0000003F  // Transmit Threshold Value\r
160 \r
161 //*****************************************************************************\r
162 //\r
163 // The following define the bit fields in the MAC_MCTL register.\r
164 //\r
165 //*****************************************************************************\r
166 #define MAC_MCTL_REGADR         0x000000F8  // Address for Next MII Transaction\r
167 #define MAC_MCTL_WRITE          0x00000002  // Next MII Transaction is Write\r
168 #define MAC_MCTL_START          0x00000001  // Start MII Transaction\r
169 \r
170 //*****************************************************************************\r
171 //\r
172 // The following define the bit fields in the MAC_MDV register.\r
173 //\r
174 //*****************************************************************************\r
175 #define MAC_MDV_DIV             0x000000FF  // Clock Divider for MDC for TX\r
176 \r
177 //*****************************************************************************\r
178 //\r
179 // The following define the bit fields in the MAC_MTXD register.\r
180 //\r
181 //*****************************************************************************\r
182 #define MAC_MTXD_MDTX           0x0000FFFF  // Data for Next MII Transaction\r
183 \r
184 //*****************************************************************************\r
185 //\r
186 // The following define the bit fields in the MAC_MRXD register.\r
187 //\r
188 //*****************************************************************************\r
189 #define MAC_MRXD_MDRX           0x0000FFFF  // Data Read from Last MII Trans.\r
190 \r
191 //*****************************************************************************\r
192 //\r
193 // The following define the bit fields in the MAC_NP register.\r
194 //\r
195 //*****************************************************************************\r
196 #define MAC_NP_NPR              0x0000003F   // Number of RX Frames in FIFO\r
197 \r
198 //*****************************************************************************\r
199 //\r
200 // The following define the bit fields in the MAC_TXRQ register.\r
201 //\r
202 //*****************************************************************************\r
203 #define MAC_TR_NEWTX            0x00000001  // Start an Ethernet Transmission\r
204 \r
205 #endif // __HW_ETHERNET_H__\r