summaryrefslogtreecommitdiffstats
path: root/arch/m68k/include/asm/coldfire/mcf548x/mcf548x_fec.h
blob: 29ac2490252723b88217679fc33e73082f80a67d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
/*
 * Copyright (c) 2008 Carsten Schlote <c.schlote@konzeptpark.de>
 * See file CREDITS for list of people who contributed to this project.
 *
 * This file is part of U-Boot V2.
 *
 * U-Boot V2 is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * U-Boot V2 is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with U-Boot V2.  If not, see <http://www.gnu.org/licenses/>.
 */

/** @file
 *  Register and bit definitions for the MCF548X and MCF547x
 *  Fast Ethernet Controller (FEC)
 */
#ifndef __MCF548X_FEC_H__
#define __MCF548X_FEC_H__

/*
 *  Fast Ethernet Controller (FEC)
 */

/* Register read/write macros */
#define MCF_FEC_EIR0                     (*(vuint32_t*)(&__MBAR[0x009004]))
#define MCF_FEC_EIMR0                    (*(vuint32_t*)(&__MBAR[0x009008]))
#define MCF_FEC_ECR0                     (*(vuint32_t*)(&__MBAR[0x009024]))
#define MCF_FEC_MMFR0                    (*(vuint32_t*)(&__MBAR[0x009040]))
#define MCF_FEC_MSCR0                    (*(vuint32_t*)(&__MBAR[0x009044]))
#define MCF_FEC_MIBC0                    (*(vuint32_t*)(&__MBAR[0x009064]))
#define MCF_FEC_RCR0                     (*(vuint32_t*)(&__MBAR[0x009084]))
#define MCF_FEC_R_HASH0                  (*(vuint32_t*)(&__MBAR[0x009088]))
#define MCF_FEC_TCR0                     (*(vuint32_t*)(&__MBAR[0x0090C4]))
#define MCF_FEC_PALR0                    (*(vuint32_t*)(&__MBAR[0x0090E4]))
#define MCF_FEC_PAUR0                    (*(vuint32_t*)(&__MBAR[0x0090E8]))
#define MCF_FEC_OPD0                     (*(vuint32_t*)(&__MBAR[0x0090EC]))
#define MCF_FEC_IAUR0                    (*(vuint32_t*)(&__MBAR[0x009118]))
#define MCF_FEC_IALR0                    (*(vuint32_t*)(&__MBAR[0x00911C]))
#define MCF_FEC_GAUR0                    (*(vuint32_t*)(&__MBAR[0x009120]))
#define MCF_FEC_GALR0                    (*(vuint32_t*)(&__MBAR[0x009124]))
#define MCF_FEC_FECTFWR0                 (*(vuint32_t*)(&__MBAR[0x009144]))
#define MCF_FEC_FECRFDR0                 (*(vuint32_t*)(&__MBAR[0x009184]))
#define MCF_FEC_FECRFSR0                 (*(vuint32_t*)(&__MBAR[0x009188]))
#define MCF_FEC_FECRFCR0                 (*(vuint32_t*)(&__MBAR[0x00918C]))
#define MCF_FEC_FECRLRFP0                (*(vuint32_t*)(&__MBAR[0x009190]))
#define MCF_FEC_FECRLWFP0                (*(vuint32_t*)(&__MBAR[0x009194]))
#define MCF_FEC_FECRFAR0                 (*(vuint32_t*)(&__MBAR[0x009198]))
#define MCF_FEC_FECRFRP0                 (*(vuint32_t*)(&__MBAR[0x00919C]))
#define MCF_FEC_FECRFWP0                 (*(vuint32_t*)(&__MBAR[0x0091A0]))
#define MCF_FEC_FECTFDR0                 (*(vuint32_t*)(&__MBAR[0x0091A4]))
#define MCF_FEC_FECTFSR0                 (*(vuint32_t*)(&__MBAR[0x0091A8]))
#define MCF_FEC_FECTFCR0                 (*(vuint32_t*)(&__MBAR[0x0091AC]))
#define MCF_FEC_FECTLRFP0                (*(vuint32_t*)(&__MBAR[0x0091B0]))
#define MCF_FEC_FECTLWFP0                (*(vuint32_t*)(&__MBAR[0x0091B4]))
#define MCF_FEC_FECTFAR0                 (*(vuint32_t*)(&__MBAR[0x0091B8]))
#define MCF_FEC_FECTFRP0                 (*(vuint32_t*)(&__MBAR[0x0091BC]))
#define MCF_FEC_FECTFWP0                 (*(vuint32_t*)(&__MBAR[0x0091C0]))
#define MCF_FEC_FRST0                    (*(vuint32_t*)(&__MBAR[0x0091C4]))
#define MCF_FEC_CTCWR0                   (*(vuint32_t*)(&__MBAR[0x0091C8]))
#define MCF_FEC_RMON_T_DROP0             (*(vuint32_t*)(&__MBAR[0x009200]))
#define MCF_FEC_RMON_T_PACKETS0          (*(vuint32_t*)(&__MBAR[0x009204]))
#define MCF_FEC_RMON_T_BC_PKT0           (*(vuint32_t*)(&__MBAR[0x009208]))
#define MCF_FEC_RMON_T_MC_PKT0           (*(vuint32_t*)(&__MBAR[0x00920C]))
#define MCF_FEC_RMON_T_CRC_ALIGN0        (*(vuint32_t*)(&__MBAR[0x009210]))
#define MCF_FEC_RMON_T_UNDERSIZE0        (*(vuint32_t*)(&__MBAR[0x009214]))
#define MCF_FEC_RMON_T_OVERSIZE0         (*(vuint32_t*)(&__MBAR[0x009218]))
#define MCF_FEC_RMON_T_FRAG0             (*(vuint32_t*)(&__MBAR[0x00921C]))
#define MCF_FEC_RMON_T_JAB0              (*(vuint32_t*)(&__MBAR[0x009220]))
#define MCF_FEC_RMON_T_COL0              (*(vuint32_t*)(&__MBAR[0x009224]))
#define MCF_FEC_RMON_T_P640              (*(vuint32_t*)(&__MBAR[0x009228]))
#define MCF_FEC_RMON_T_P65TO1270         (*(vuint32_t*)(&__MBAR[0x00922C]))
#define MCF_FEC_RMON_T_P128TO2550        (*(vuint32_t*)(&__MBAR[0x009230]))
#define MCF_FEC_RMON_T_P256TO5110        (*(vuint32_t*)(&__MBAR[0x009234]))
#define MCF_FEC_RMON_T_P512TO10230       (*(vuint32_t*)(&__MBAR[0x009238]))
#define MCF_FEC_RMON_T_P1024TO20470      (*(vuint32_t*)(&__MBAR[0x00923C]))
#define MCF_FEC_RMON_T_P_GTE20480        (*(vuint32_t*)(&__MBAR[0x009240]))
#define MCF_FEC_RMON_T_OCTETS0           (*(vuint32_t*)(&__MBAR[0x009244]))
#define MCF_FEC_IEEE_T_DROP0             (*(vuint32_t*)(&__MBAR[0x009248]))
#define MCF_FEC_IEEE_T_FRAME_OK0         (*(vuint32_t*)(&__MBAR[0x00924C]))
#define MCF_FEC_IEEE_T_1COL0             (*(vuint32_t*)(&__MBAR[0x009250]))
#define MCF_FEC_IEEE_T_MCOL0             (*(vuint32_t*)(&__MBAR[0x009254]))
#define MCF_FEC_IEEE_T_DEF0              (*(vuint32_t*)(&__MBAR[0x009258]))
#define MCF_FEC_IEEE_T_LCOL0             (*(vuint32_t*)(&__MBAR[0x00925C]))
#define MCF_FEC_IEEE_T_EXCOL0            (*(vuint32_t*)(&__MBAR[0x009260]))
#define MCF_FEC_IEEE_T_MACERR0           (*(vuint32_t*)(&__MBAR[0x009264]))
#define MCF_FEC_IEEE_T_CSERR0            (*(vuint32_t*)(&__MBAR[0x009268]))
#define MCF_FEC_IEEE_T_SQE0              (*(vuint32_t*)(&__MBAR[0x00926C]))
#define MCF_FEC_IEEE_T_FDXFC0            (*(vuint32_t*)(&__MBAR[0x009270]))
#define MCF_FEC_IEEE_T_OCTETS_OK0        (*(vuint32_t*)(&__MBAR[0x009274]))
#define MCF_FEC_RMON_R_DROP0             (*(vuint32_t*)(&__MBAR[0x009280]))
#define MCF_FEC_RMON_R_PACKETS0          (*(vuint32_t*)(&__MBAR[0x009284]))
#define MCF_FEC_RMON_R_BC_PKT0           (*(vuint32_t*)(&__MBAR[0x009288]))
#define MCF_FEC_RMON_R_MC_PKT0           (*(vuint32_t*)(&__MBAR[0x00928C]))
#define MCF_FEC_RMON_R_CRC_ALIGN0        (*(vuint32_t*)(&__MBAR[0x009290]))
#define MCF_FEC_RMON_R_UNDERSIZE0        (*(vuint32_t*)(&__MBAR[0x009294]))
#define MCF_FEC_RMON_R_OVERSIZE0         (*(vuint32_t*)(&__MBAR[0x009298]))
#define MCF_FEC_RMON_R_FRAG0             (*(vuint32_t*)(&__MBAR[0x00929C]))
#define MCF_FEC_RMON_R_JAB0              (*(vuint32_t*)(&__MBAR[0x0092A0]))
#define MCF_FEC_RMON_R_RESVD_00          (*(vuint32_t*)(&__MBAR[0x0092A4]))
#define MCF_FEC_RMON_R_P640              (*(vuint32_t*)(&__MBAR[0x0092A8]))
#define MCF_FEC_RMON_R_P65TO1270         (*(vuint32_t*)(&__MBAR[0x0092AC]))
#define MCF_FEC_RMON_R_P128TO2550        (*(vuint32_t*)(&__MBAR[0x0092B0]))
#define MCF_FEC_RMON_R_P256TO5110        (*(vuint32_t*)(&__MBAR[0x0092B4]))
#define MCF_FEC_RMON_R_512TO10230        (*(vuint32_t*)(&__MBAR[0x0092B8]))
#define MCF_FEC_RMON_R_1024TO20470       (*(vuint32_t*)(&__MBAR[0x0092BC]))
#define MCF_FEC_RMON_R_P_GTE20480        (*(vuint32_t*)(&__MBAR[0x0092C0]))
#define MCF_FEC_RMON_R_OCTETS0           (*(vuint32_t*)(&__MBAR[0x0092C4]))
#define MCF_FEC_IEEE_R_DROP0             (*(vuint32_t*)(&__MBAR[0x0092C8]))
#define MCF_FEC_IEEE_R_FRAME_OK0         (*(vuint32_t*)(&__MBAR[0x0092CC]))
#define MCF_FEC_IEEE_R_CRC0              (*(vuint32_t*)(&__MBAR[0x0092D0]))
#define MCF_FEC_IEEE_R_ALIGN0            (*(vuint32_t*)(&__MBAR[0x0092D4]))
#define MCF_FEC_IEEE_R_MACERR0           (*(vuint32_t*)(&__MBAR[0x0092D8]))
#define MCF_FEC_IEEE_R_FDXFC0            (*(vuint32_t*)(&__MBAR[0x0092DC]))
#define MCF_FEC_IEEE_R_OCTETS_OK0        (*(vuint32_t*)(&__MBAR[0x0092E0]))
#define MCF_FEC_EIR1                     (*(vuint32_t*)(&__MBAR[0x009804]))
#define MCF_FEC_EIMR1                    (*(vuint32_t*)(&__MBAR[0x009808]))
#define MCF_FEC_ECR1                     (*(vuint32_t*)(&__MBAR[0x009824]))
#define MCF_FEC_MMFR1                    (*(vuint32_t*)(&__MBAR[0x009840]))
#define MCF_FEC_MSCR1                    (*(vuint32_t*)(&__MBAR[0x009844]))
#define MCF_FEC_MIBC1                    (*(vuint32_t*)(&__MBAR[0x009864]))
#define MCF_FEC_RCR1                     (*(vuint32_t*)(&__MBAR[0x009884]))
#define MCF_FEC_R_HASH1                  (*(vuint32_t*)(&__MBAR[0x009888]))
#define MCF_FEC_TCR1                     (*(vuint32_t*)(&__MBAR[0x0098C4]))
#define MCF_FEC_PALR1                    (*(vuint32_t*)(&__MBAR[0x0098E4]))
#define MCF_FEC_PAUR1                    (*(vuint32_t*)(&__MBAR[0x0098E8]))
#define MCF_FEC_OPD1                     (*(vuint32_t*)(&__MBAR[0x0098EC]))
#define MCF_FEC_IAUR1                    (*(vuint32_t*)(&__MBAR[0x009918]))
#define MCF_FEC_IALR1                    (*(vuint32_t*)(&__MBAR[0x00991C]))
#define MCF_FEC_GAUR1                    (*(vuint32_t*)(&__MBAR[0x009920]))
#define MCF_FEC_GALR1                    (*(vuint32_t*)(&__MBAR[0x009924]))
#define MCF_FEC_FECTFWR1                 (*(vuint32_t*)(&__MBAR[0x009944]))
#define MCF_FEC_FECRFDR1                 (*(vuint32_t*)(&__MBAR[0x009984]))
#define MCF_FEC_FECRFSR1                 (*(vuint32_t*)(&__MBAR[0x009988]))
#define MCF_FEC_FECRFCR1                 (*(vuint32_t*)(&__MBAR[0x00998C]))
#define MCF_FEC_FECRLRFP1                (*(vuint32_t*)(&__MBAR[0x009990]))
#define MCF_FEC_FECRLWFP1                (*(vuint32_t*)(&__MBAR[0x009994]))
#define MCF_FEC_FECRFAR1                 (*(vuint32_t*)(&__MBAR[0x009998]))
#define MCF_FEC_FECRFRP1                 (*(vuint32_t*)(&__MBAR[0x00999C]))
#define MCF_FEC_FECRFWP1                 (*(vuint32_t*)(&__MBAR[0x0099A0]))
#define MCF_FEC_FECTFDR1                 (*(vuint32_t*)(&__MBAR[0x0099A4]))
#define MCF_FEC_FECTFSR1                 (*(vuint32_t*)(&__MBAR[0x0099A8]))
#define MCF_FEC_FECTFCR1                 (*(vuint32_t*)(&__MBAR[0x0099AC]))
#define MCF_FEC_FECTLRFP1                (*(vuint32_t*)(&__MBAR[0x0099B0]))
#define MCF_FEC_FECTLWFP1                (*(vuint32_t*)(&__MBAR[0x0099B4]))
#define MCF_FEC_FECTFAR1                 (*(vuint32_t*)(&__MBAR[0x0099B8]))
#define MCF_FEC_FECTFRP1                 (*(vuint32_t*)(&__MBAR[0x0099BC]))
#define MCF_FEC_FECTFWP1                 (*(vuint32_t*)(&__MBAR[0x0099C0]))
#define MCF_FEC_FRST1                    (*(vuint32_t*)(&__MBAR[0x0099C4]))
#define MCF_FEC_CTCWR1                   (*(vuint32_t*)(&__MBAR[0x0099C8]))
#define MCF_FEC_RMON_T_DROP1             (*(vuint32_t*)(&__MBAR[0x009A00]))
#define MCF_FEC_RMON_T_PACKETS1          (*(vuint32_t*)(&__MBAR[0x009A04]))
#define MCF_FEC_RMON_T_BC_PKT1           (*(vuint32_t*)(&__MBAR[0x009A08]))
#define MCF_FEC_RMON_T_MC_PKT1           (*(vuint32_t*)(&__MBAR[0x009A0C]))
#define MCF_FEC_RMON_T_CRC_ALIGN1        (*(vuint32_t*)(&__MBAR[0x009A10]))
#define MCF_FEC_RMON_T_UNDERSIZE1        (*(vuint32_t*)(&__MBAR[0x009A14]))
#define MCF_FEC_RMON_T_OVERSIZE1         (*(vuint32_t*)(&__MBAR[0x009A18]))
#define MCF_FEC_RMON_T_FRAG1             (*(vuint32_t*)(&__MBAR[0x009A1C]))
#define MCF_FEC_RMON_T_JAB1              (*(vuint32_t*)(&__MBAR[0x009A20]))
#define MCF_FEC_RMON_T_COL1              (*(vuint32_t*)(&__MBAR[0x009A24]))
#define MCF_FEC_RMON_T_P641              (*(vuint32_t*)(&__MBAR[0x009A28]))
#define MCF_FEC_RMON_T_P65TO1271         (*(vuint32_t*)(&__MBAR[0x009A2C]))
#define MCF_FEC_RMON_T_P128TO2551        (*(vuint32_t*)(&__MBAR[0x009A30]))
#define MCF_FEC_RMON_T_P256TO5111        (*(vuint32_t*)(&__MBAR[0x009A34]))
#define MCF_FEC_RMON_T_P512TO10231       (*(vuint32_t*)(&__MBAR[0x009A38]))
#define MCF_FEC_RMON_T_P1024TO20471      (*(vuint32_t*)(&__MBAR[0x009A3C]))
#define MCF_FEC_RMON_T_P_GTE20481        (*(vuint32_t*)(&__MBAR[0x009A40]))
#define MCF_FEC_RMON_T_OCTETS1           (*(vuint32_t*)(&__MBAR[0x009A44]))
#define MCF_FEC_IEEE_T_DROP1             (*(vuint32_t*)(&__MBAR[0x009A48]))
#define MCF_FEC_IEEE_T_FRAME_OK1         (*(vuint32_t*)(&__MBAR[0x009A4C]))
#define MCF_FEC_IEEE_T_1COL1             (*(vuint32_t*)(&__MBAR[0x009A50]))
#define MCF_FEC_IEEE_T_MCOL1             (*(vuint32_t*)(&__MBAR[0x009A54]))
#define MCF_FEC_IEEE_T_DEF1              (*(vuint32_t*)(&__MBAR[0x009A58]))
#define MCF_FEC_IEEE_T_LCOL1             (*(vuint32_t*)(&__MBAR[0x009A5C]))
#define MCF_FEC_IEEE_T_EXCOL1            (*(vuint32_t*)(&__MBAR[0x009A60]))
#define MCF_FEC_IEEE_T_MACERR1           (*(vuint32_t*)(&__MBAR[0x009A64]))
#define MCF_FEC_IEEE_T_CSERR1            (*(vuint32_t*)(&__MBAR[0x009A68]))
#define MCF_FEC_IEEE_T_SQE1              (*(vuint32_t*)(&__MBAR[0x009A6C]))
#define MCF_FEC_IEEE_T_FDXFC1            (*(vuint32_t*)(&__MBAR[0x009A70]))
#define MCF_FEC_IEEE_T_OCTETS_OK1        (*(vuint32_t*)(&__MBAR[0x009A74]))
#define MCF_FEC_RMON_R_DROP1             (*(vuint32_t*)(&__MBAR[0x009A80]))
#define MCF_FEC_RMON_R_PACKETS1          (*(vuint32_t*)(&__MBAR[0x009A84]))
#define MCF_FEC_RMON_R_BC_PKT1           (*(vuint32_t*)(&__MBAR[0x009A88]))
#define MCF_FEC_RMON_R_MC_PKT1           (*(vuint32_t*)(&__MBAR[0x009A8C]))
#define MCF_FEC_RMON_R_CRC_ALIGN1        (*(vuint32_t*)(&__MBAR[0x009A90]))
#define MCF_FEC_RMON_R_UNDERSIZE1        (*(vuint32_t*)(&__MBAR[0x009A94]))
#define MCF_FEC_RMON_R_OVERSIZE1         (*(vuint32_t*)(&__MBAR[0x009A98]))
#define MCF_FEC_RMON_R_FRAG1             (*(vuint32_t*)(&__MBAR[0x009A9C]))
#define MCF_FEC_RMON_R_JAB1              (*(vuint32_t*)(&__MBAR[0x009AA0]))
#define MCF_FEC_RMON_R_RESVD_01          (*(vuint32_t*)(&__MBAR[0x009AA4]))
#define MCF_FEC_RMON_R_P641              (*(vuint32_t*)(&__MBAR[0x009AA8]))
#define MCF_FEC_RMON_R_P65TO1271         (*(vuint32_t*)(&__MBAR[0x009AAC]))
#define MCF_FEC_RMON_R_P128TO2551        (*(vuint32_t*)(&__MBAR[0x009AB0]))
#define MCF_FEC_RMON_R_P256TO5111        (*(vuint32_t*)(&__MBAR[0x009AB4]))
#define MCF_FEC_RMON_R_512TO10231        (*(vuint32_t*)(&__MBAR[0x009AB8]))
#define MCF_FEC_RMON_R_1024TO20471       (*(vuint32_t*)(&__MBAR[0x009ABC]))
#define MCF_FEC_RMON_R_P_GTE20481        (*(vuint32_t*)(&__MBAR[0x009AC0]))
#define MCF_FEC_RMON_R_OCTETS1           (*(vuint32_t*)(&__MBAR[0x009AC4]))
#define MCF_FEC_IEEE_R_DROP1             (*(vuint32_t*)(&__MBAR[0x009AC8]))
#define MCF_FEC_IEEE_R_FRAME_OK1         (*(vuint32_t*)(&__MBAR[0x009ACC]))
#define MCF_FEC_IEEE_R_CRC1              (*(vuint32_t*)(&__MBAR[0x009AD0]))
#define MCF_FEC_IEEE_R_ALIGN1            (*(vuint32_t*)(&__MBAR[0x009AD4]))
#define MCF_FEC_IEEE_R_MACERR1           (*(vuint32_t*)(&__MBAR[0x009AD8]))
#define MCF_FEC_IEEE_R_FDXFC1            (*(vuint32_t*)(&__MBAR[0x009ADC]))
#define MCF_FEC_IEEE_R_OCTETS_OK1        (*(vuint32_t*)(&__MBAR[0x009AE0]))
#define MCF_FEC_EIR(x)                   (*(vuint32_t*)(&__MBAR[0x009004+((x)*0x800)]))
#define MCF_FEC_EIMR(x)                  (*(vuint32_t*)(&__MBAR[0x009008+((x)*0x800)]))
#define MCF_FEC_ECR(x)                   (*(vuint32_t*)(&__MBAR[0x009024+((x)*0x800)]))
#define MCF_FEC_MMFR(x)                  (*(vuint32_t*)(&__MBAR[0x009040+((x)*0x800)]))
#define MCF_FEC_MSCR(x)                  (*(vuint32_t*)(&__MBAR[0x009044+((x)*0x800)]))
#define MCF_FEC_MIBC(x)                  (*(vuint32_t*)(&__MBAR[0x009064+((x)*0x800)]))
#define MCF_FEC_RCR(x)                   (*(vuint32_t*)(&__MBAR[0x009084+((x)*0x800)]))
#define MCF_FEC_R_HASH(x)                (*(vuint32_t*)(&__MBAR[0x009088+((x)*0x800)]))
#define MCF_FEC_TCR(x)                   (*(vuint32_t*)(&__MBAR[0x0090C4+((x)*0x800)]))
#define MCF_FEC_PALR(x)                  (*(vuint32_t*)(&__MBAR[0x0090E4+((x)*0x800)]))
#define MCF_FEC_PAUR(x)                  (*(vuint32_t*)(&__MBAR[0x0090E8+((x)*0x800)]))
#define MCF_FEC_OPD(x)                   (*(vuint32_t*)(&__MBAR[0x0090EC+((x)*0x800)]))
#define MCF_FEC_IAUR(x)                  (*(vuint32_t*)(&__MBAR[0x009118+((x)*0x800)]))
#define MCF_FEC_IALR(x)                  (*(vuint32_t*)(&__MBAR[0x00911C+((x)*0x800)]))
#define MCF_FEC_GAUR(x)                  (*(vuint32_t*)(&__MBAR[0x009120+((x)*0x800)]))
#define MCF_FEC_GALR(x)                  (*(vuint32_t*)(&__MBAR[0x009124+((x)*0x800)]))
#define MCF_FEC_FECTFWR(x)               (*(vuint32_t*)(&__MBAR[0x009144+((x)*0x800)]))
#define MCF_FEC_FECRFDR(x)               (*(vuint32_t*)(&__MBAR[0x009184+((x)*0x800)]))
#define MCF_FEC_FECRFSR(x)               (*(vuint32_t*)(&__MBAR[0x009188+((x)*0x800)]))
#define MCF_FEC_FECRFCR(x)               (*(vuint32_t*)(&__MBAR[0x00918C+((x)*0x800)]))
#define MCF_FEC_FECRLRFP(x)              (*(vuint32_t*)(&__MBAR[0x009190+((x)*0x800)]))
#define MCF_FEC_FECRLWFP(x)              (*(vuint32_t*)(&__MBAR[0x009194+((x)*0x800)]))
#define MCF_FEC_FECRFAR(x)               (*(vuint32_t*)(&__MBAR[0x009198+((x)*0x800)]))
#define MCF_FEC_FECRFRP(x)               (*(vuint32_t*)(&__MBAR[0x00919C+((x)*0x800)]))
#define MCF_FEC_FECRFWP(x)               (*(vuint32_t*)(&__MBAR[0x0091A0+((x)*0x800)]))
#define MCF_FEC_FECTFDR(x)               (*(vuint32_t*)(&__MBAR[0x0091A4+((x)*0x800)]))
#define MCF_FEC_FECTFSR(x)               (*(vuint32_t*)(&__MBAR[0x0091A8+((x)*0x800)]))
#define MCF_FEC_FECTFCR(x)               (*(vuint32_t*)(&__MBAR[0x0091AC+((x)*0x800)]))
#define MCF_FEC_FECTLRFP(x)              (*(vuint32_t*)(&__MBAR[0x0091B0+((x)*0x800)]))
#define MCF_FEC_FECTLWFP(x)              (*(vuint32_t*)(&__MBAR[0x0091B4+((x)*0x800)]))
#define MCF_FEC_FECTFAR(x)               (*(vuint32_t*)(&__MBAR[0x0091B8+((x)*0x800)]))
#define MCF_FEC_FECTFRP(x)               (*(vuint32_t*)(&__MBAR[0x0091BC+((x)*0x800)]))
#define MCF_FEC_FECTFWP(x)               (*(vuint32_t*)(&__MBAR[0x0091C0+((x)*0x800)]))
#define MCF_FEC_FRST(x)                  (*(vuint32_t*)(&__MBAR[0x0091C4+((x)*0x800)]))
#define MCF_FEC_CTCWR(x)                 (*(vuint32_t*)(&__MBAR[0x0091C8+((x)*0x800)]))
#define MCF_FEC_RMON_T_DROP(x)           (*(vuint32_t*)(&__MBAR[0x009200+((x)*0x800)]))
#define MCF_FEC_RMON_T_PACKETS(x)        (*(vuint32_t*)(&__MBAR[0x009204+((x)*0x800)]))
#define MCF_FEC_RMON_T_BC_PKT(x)         (*(vuint32_t*)(&__MBAR[0x009208+((x)*0x800)]))
#define MCF_FEC_RMON_T_MC_PKT(x)         (*(vuint32_t*)(&__MBAR[0x00920C+((x)*0x800)]))
#define MCF_FEC_RMON_T_CRC_ALIGN(x)      (*(vuint32_t*)(&__MBAR[0x009210+((x)*0x800)]))
#define MCF_FEC_RMON_T_UNDERSIZE(x)      (*(vuint32_t*)(&__MBAR[0x009214+((x)*0x800)]))
#define MCF_FEC_RMON_T_OVERSIZE(x)       (*(vuint32_t*)(&__MBAR[0x009218+((x)*0x800)]))
#define MCF_FEC_RMON_T_FRAG(x)           (*(vuint32_t*)(&__MBAR[0x00921C+((x)*0x800)]))
#define MCF_FEC_RMON_T_JAB(x)            (*(vuint32_t*)(&__MBAR[0x009220+((x)*0x800)]))
#define MCF_FEC_RMON_T_COL(x)            (*(vuint32_t*)(&__MBAR[0x009224+((x)*0x800)]))
#define MCF_FEC_RMON_T_P64(x)            (*(vuint32_t*)(&__MBAR[0x009228+((x)*0x800)]))
#define MCF_FEC_RMON_T_P65TO127(x)       (*(vuint32_t*)(&__MBAR[0x00922C+((x)*0x800)]))
#define MCF_FEC_RMON_T_P128TO255(x)      (*(vuint32_t*)(&__MBAR[0x009230+((x)*0x800)]))
#define MCF_FEC_RMON_T_P256TO511(x)      (*(vuint32_t*)(&__MBAR[0x009234+((x)*0x800)]))
#define MCF_FEC_RMON_T_P512TO1023(x)     (*(vuint32_t*)(&__MBAR[0x009238+((x)*0x800)]))
#define MCF_FEC_RMON_T_P1024TO2047(x)    (*(vuint32_t*)(&__MBAR[0x00923C+((x)*0x800)]))
#define MCF_FEC_RMON_T_P_GTE2048(x)      (*(vuint32_t*)(&__MBAR[0x009240+((x)*0x800)]))
#define MCF_FEC_RMON_T_OCTETS(x)         (*(vuint32_t*)(&__MBAR[0x009244+((x)*0x800)]))
#define MCF_FEC_IEEE_T_DROP(x)           (*(vuint32_t*)(&__MBAR[0x009248+((x)*0x800)]))
#define MCF_FEC_IEEE_T_FRAME_OK(x)       (*(vuint32_t*)(&__MBAR[0x00924C+((x)*0x800)]))
#define MCF_FEC_IEEE_T_1COL(x)           (*(vuint32_t*)(&__MBAR[0x009250+((x)*0x800)]))
#define MCF_FEC_IEEE_T_MCOL(x)           (*(vuint32_t*)(&__MBAR[0x009254+((x)*0x800)]))
#define MCF_FEC_IEEE_T_DEF(x)            (*(vuint32_t*)(&__MBAR[0x009258+((x)*0x800)]))
#define MCF_FEC_IEEE_T_LCOL(x)           (*(vuint32_t*)(&__MBAR[0x00925C+((x)*0x800)]))
#define MCF_FEC_IEEE_T_EXCOL(x)          (*(vuint32_t*)(&__MBAR[0x009260+((x)*0x800)]))
#define MCF_FEC_IEEE_T_MACERR(x)         (*(vuint32_t*)(&__MBAR[0x009264+((x)*0x800)]))
#define MCF_FEC_IEEE_T_CSERR(x)          (*(vuint32_t*)(&__MBAR[0x009268+((x)*0x800)]))
#define MCF_FEC_IEEE_T_SQE(x)            (*(vuint32_t*)(&__MBAR[0x00926C+((x)*0x800)]))
#define MCF_FEC_IEEE_T_FDXFC(x)          (*(vuint32_t*)(&__MBAR[0x009270+((x)*0x800)]))
#define MCF_FEC_IEEE_T_OCTETS_OK(x)      (*(vuint32_t*)(&__MBAR[0x009274+((x)*0x800)]))
#define MCF_FEC_RMON_R_DROP(x)           (*(vuint32_t*)(&__MBAR[0x009280+((x)*0x800)]))
#define MCF_FEC_RMON_R_PACKETS(x)        (*(vuint32_t*)(&__MBAR[0x009284+((x)*0x800)]))
#define MCF_FEC_RMON_R_BC_PKT(x)         (*(vuint32_t*)(&__MBAR[0x009288+((x)*0x800)]))
#define MCF_FEC_RMON_R_MC_PKT(x)         (*(vuint32_t*)(&__MBAR[0x00928C+((x)*0x800)]))
#define MCF_FEC_RMON_R_CRC_ALIGN(x)      (*(vuint32_t*)(&__MBAR[0x009290+((x)*0x800)]))
#define MCF_FEC_RMON_R_UNDERSIZE(x)      (*(vuint32_t*)(&__MBAR[0x009294+((x)*0x800)]))
#define MCF_FEC_RMON_R_OVERSIZE(x)       (*(vuint32_t*)(&__MBAR[0x009298+((x)*0x800)]))
#define MCF_FEC_RMON_R_FRAG(x)           (*(vuint32_t*)(&__MBAR[0x00929C+((x)*0x800)]))
#define MCF_FEC_RMON_R_JAB(x)            (*(vuint32_t*)(&__MBAR[0x0092A0+((x)*0x800)]))
#define MCF_FEC_RMON_R_RESVD_0(x)        (*(vuint32_t*)(&__MBAR[0x0092A4+((x)*0x800)]))
#define MCF_FEC_RMON_R_P64(x)            (*(vuint32_t*)(&__MBAR[0x0092A8+((x)*0x800)]))
#define MCF_FEC_RMON_R_P65TO127(x)       (*(vuint32_t*)(&__MBAR[0x0092AC+((x)*0x800)]))
#define MCF_FEC_RMON_R_P128TO255(x)      (*(vuint32_t*)(&__MBAR[0x0092B0+((x)*0x800)]))
#define MCF_FEC_RMON_R_P256TO511(x)      (*(vuint32_t*)(&__MBAR[0x0092B4+((x)*0x800)]))
#define MCF_FEC_RMON_R_512TO1023(x)      (*(vuint32_t*)(&__MBAR[0x0092B8+((x)*0x800)]))
#define MCF_FEC_RMON_R_1024TO2047(x)     (*(vuint32_t*)(&__MBAR[0x0092BC+((x)*0x800)]))
#define MCF_FEC_RMON_R_P_GTE2048(x)      (*(vuint32_t*)(&__MBAR[0x0092C0+((x)*0x800)]))
#define MCF_FEC_RMON_R_OCTETS(x)         (*(vuint32_t*)(&__MBAR[0x0092C4+((x)*0x800)]))
#define MCF_FEC_IEEE_R_DROP(x)           (*(vuint32_t*)(&__MBAR[0x0092C8+((x)*0x800)]))
#define MCF_FEC_IEEE_R_FRAME_OK(x)       (*(vuint32_t*)(&__MBAR[0x0092CC+((x)*0x800)]))
#define MCF_FEC_IEEE_R_CRC(x)            (*(vuint32_t*)(&__MBAR[0x0092D0+((x)*0x800)]))
#define MCF_FEC_IEEE_R_ALIGN(x)          (*(vuint32_t*)(&__MBAR[0x0092D4+((x)*0x800)]))
#define MCF_FEC_IEEE_R_MACERR(x)         (*(vuint32_t*)(&__MBAR[0x0092D8+((x)*0x800)]))
#define MCF_FEC_IEEE_R_FDXFC(x)          (*(vuint32_t*)(&__MBAR[0x0092DC+((x)*0x800)]))
#define MCF_FEC_IEEE_R_OCTETS_OK(x)      (*(vuint32_t*)(&__MBAR[0x0092E0+((x)*0x800)]))

/* Bit definitions and macros for MCF_FEC_EIR */
#define MCF_FEC_EIR_RFERR              (0x00020000)
#define MCF_FEC_EIR_XFERR              (0x00040000)
#define MCF_FEC_EIR_XFUN               (0x00080000)
#define MCF_FEC_EIR_RL                 (0x00100000)
#define MCF_FEC_EIR_LC                 (0x00200000)
#define MCF_FEC_EIR_MII                (0x00800000)
#define MCF_FEC_EIR_TXF                (0x08000000)
#define MCF_FEC_EIR_GRA                (0x10000000)
#define MCF_FEC_EIR_BABT               (0x20000000)
#define MCF_FEC_EIR_BABR               (0x40000000)
#define MCF_FEC_EIR_HBERR              (0x80000000)
#define MCF_FEC_EIR_CLEAR_ALL          (0xFFFFFFFF)

/* Bit definitions and macros for MCF_FEC_EIMR */
#define MCF_FEC_EIMR_RFERR             (0x00020000)
#define MCF_FEC_EIMR_XFERR             (0x00040000)
#define MCF_FEC_EIMR_XFUN              (0x00080000)
#define MCF_FEC_EIMR_RL                (0x00100000)
#define MCF_FEC_EIMR_LC                (0x00200000)
#define MCF_FEC_EIMR_MII               (0x00800000)
#define MCF_FEC_EIMR_TXF               (0x08000000)
#define MCF_FEC_EIMR_GRA               (0x10000000)
#define MCF_FEC_EIMR_BABT              (0x20000000)
#define MCF_FEC_EIMR_BABR              (0x40000000)
#define MCF_FEC_EIMR_HBERR             (0x80000000)
#define MCF_FEC_EIMR_MASK_ALL          (0x00000000)
#define MCF_FEC_EIMR_UNMASK_ALL        (0xFFFFFFFF)

/* Bit definitions and macros for MCF_FEC_ECR */
#define MCF_FEC_ECR_RESET              (0x00000001)
#define MCF_FEC_ECR_ETHER_EN           (0x00000002)

/* Bit definitions and macros for MCF_FEC_MMFR */
#define MCF_FEC_MMFR_DATA(x)           (((x)&0x0000FFFF)<<0)
#define MCF_FEC_MMFR_TA(x)             (((x)&0x00000003)<<16)
#define MCF_FEC_MMFR_RA(x)             (((x)&0x0000001F)<<18)
#define MCF_FEC_MMFR_PA(x)             (((x)&0x0000001F)<<23)
#define MCF_FEC_MMFR_OP(x)             (((x)&0x00000003)<<28)
#define MCF_FEC_MMFR_ST(x)             (((x)&0x00000003)<<30)
#define MCF_FEC_MMFR_ST_01             (0x40000000)
#define MCF_FEC_MMFR_OP_READ           (0x20000000)
#define MCF_FEC_MMFR_OP_WRITE          (0x10000000)
#define MCF_FEC_MMFR_TA_10             (0x00020000)

/* Bit definitions and macros for MCF_FEC_MSCR */
#define MCF_FEC_MSCR_MII_SPEED(x)      (((x)&0x0000003F)<<1)
#define MCF_FEC_MSCR_DIS_PREAMBLE      (0x00000080)
#define MCF_FEC_MSCR_MII_SPEED_133     (0x1B<<1)
#define MCF_FEC_MSCR_MII_SPEED_120     (0x18<<1)
#define MCF_FEC_MSCR_MII_SPEED_66      (0xE<<1)
#define MCF_FEC_MSCR_MII_SPEED_60      (0xC<<1)

/* Bit definitions and macros for MCF_FEC_MIBC */
#define MCF_FEC_MIBC_MIB_IDLE          (0x40000000)
#define MCF_FEC_MIBC_MIB_DISABLE       (0x80000000)

/* Bit definitions and macros for MCF_FEC_RCR */
#define MCF_FEC_RCR_LOOP               (0x00000001)
#define MCF_FEC_RCR_DRT                (0x00000002)
#define MCF_FEC_RCR_MII_MODE           (0x00000004)
#define MCF_FEC_RCR_PROM               (0x00000008)
#define MCF_FEC_RCR_BC_REJ             (0x00000010)
#define MCF_FEC_RCR_FCE                (0x00000020)
#define MCF_FEC_RCR_MAX_FL(x)          (((x)&0x000007FF)<<16)

/* Bit definitions and macros for MCF_FEC_R_HASH */
#define MCF_FEC_R_HASH_HASH(x)         (((x)&0x0000003F)<<24)
#define MCF_FEC_R_HASH_MULTCAST        (0x40000000)
#define MCF_FEC_R_HASH_FCE_DC          (0x80000000)

/* Bit definitions and macros for MCF_FEC_TCR */
#define MCF_FEC_TCR_GTS                (0x00000001)
#define MCF_FEC_TCR_HBC                (0x00000002)
#define MCF_FEC_TCR_FDEN               (0x00000004)
#define MCF_FEC_TCR_TFC_PAUSE          (0x00000008)
#define MCF_FEC_TCR_RFC_PAUSE          (0x00000010)

/* Bit definitions and macros for MCF_FEC_PAUR */
#define MCF_FEC_PAUR_TYPE(x)           (((x)&0x0000FFFF)<<0)
#define MCF_FEC_PAUR_PADDR2(x)         (((x)&0x0000FFFF)<<16)

/* Bit definitions and macros for MCF_FEC_OPD */
#define MCF_FEC_OPD_OP_PAUSE(x)        (((x)&0x0000FFFF)<<0)
#define MCF_FEC_OPD_OPCODE(x)          (((x)&0x0000FFFF)<<16)

/* Bit definitions and macros for MCF_FEC_FECTFWR */
#define MCF_FEC_FECTFWR_X_WMRK(x)      (((x)&0x0000000F)<<0)
#define MCF_FEC_FECTFWR_X_WMRK_64      (0x00000000)
#define MCF_FEC_FECTFWR_X_WMRK_128     (0x00000001)
#define MCF_FEC_FECTFWR_X_WMRK_192     (0x00000002)
#define MCF_FEC_FECTFWR_X_WMRK_256     (0x00000003)
#define MCF_FEC_FECTFWR_X_WMRK_320     (0x00000004)
#define MCF_FEC_FECTFWR_X_WMRK_384     (0x00000005)
#define MCF_FEC_FECTFWR_X_WMRK_448     (0x00000006)
#define MCF_FEC_FECTFWR_X_WMRK_512     (0x00000007)
#define MCF_FEC_FECTFWR_X_WMRK_576     (0x00000008)
#define MCF_FEC_FECTFWR_X_WMRK_640     (0x00000009)
#define MCF_FEC_FECTFWR_X_WMRK_704     (0x0000000A)
#define MCF_FEC_FECTFWR_X_WMRK_768     (0x0000000B)
#define MCF_FEC_FECTFWR_X_WMRK_832     (0x0000000C)
#define MCF_FEC_FECTFWR_X_WMRK_896     (0x0000000D)
#define MCF_FEC_FECTFWR_X_WMRK_960     (0x0000000E)
#define MCF_FEC_FECTFWR_X_WMRK_1024    (0x0000000F)

/* Bit definitions and macros for MCF_FEC_FECRFDR */
#define MCF_FEC_FECRFDR_ADDR0            ((void*)(&__MBAR[0x009184]))
#define MCF_FEC_FECRFDR_ADDR1            ((void*)(&__MBAR[0x009984]))
#define MCF_FEC_FECRFDR_ADDR(x)          ((void*)(&__MBAR[0x009184+(0x800*ch)]))

/* Bit definitions and macros for MCF_FEC_FECRFSR */
#define MCF_FEC_FECRFSR_EMT            (0x00010000)
#define MCF_FEC_FECRFSR_ALARM          (0x00020000)
#define MCF_FEC_FECRFSR_FU             (0x00040000)
#define MCF_FEC_FECRFSR_FR             (0x00080000)
#define MCF_FEC_FECRFSR_OF             (0x00100000)
#define MCF_FEC_FECRFSR_UF             (0x00200000)
#define MCF_FEC_FECRFSR_RXW            (0x00400000)
#define MCF_FEC_FECRFSR_FAE            (0x00800000)
#define MCF_FEC_FECRFSR_FRM(x)         (((x)&0x0000000F)<<24)
#define MCF_FEC_FECRFSR_IP             (0x80000000)

/* Bit definitions and macros for MCF_FEC_FECRFCR */
#define MCF_FEC_FECRFCR_COUNTER(x)     (((x)&0x0000FFFF)<<0)
#define MCF_FEC_FECRFCR_OF_MSK         (0x00080000)
#define MCF_FEC_FECRFCR_UF_MSK         (0x00100000)
#define MCF_FEC_FECRFCR_RXW_MSK        (0x00200000)
#define MCF_FEC_FECRFCR_FAE_MSK        (0x00400000)
#define MCF_FEC_FECRFCR_IP_MSK         (0x00800000)
#define MCF_FEC_FECRFCR_GR(x)          (((x)&0x00000007)<<24)
#define MCF_FEC_FECRFCR_FRM            (0x08000000)
#define MCF_FEC_FECRFCR_TIMER          (0x10000000)
#define MCF_FEC_FECRFCR_WFR            (0x20000000)
#define MCF_FEC_FECRFCR_WCTL           (0x40000000)

/* Bit definitions and macros for MCF_FEC_FECRLRFP */
#define MCF_FEC_FECRLRFP_LRFP(x)       (((x)&0x00000FFF)<<0)

/* Bit definitions and macros for MCF_FEC_FECRLWFP */
#define MCF_FEC_FECRLWFP_LWFP(x)       (((x)&0x00000FFF)<<0)

/* Bit definitions and macros for MCF_FEC_FECRFAR */
#define MCF_FEC_FECRFAR_ALARM(x)       (((x)&0x00000FFF)<<0)

/* Bit definitions and macros for MCF_FEC_FECRFRP */
#define MCF_FEC_FECRFRP_READ(x)        (((x)&0x00000FFF)<<0)

/* Bit definitions and macros for MCF_FEC_FECRFWP */
#define MCF_FEC_FECRFWP_WRITE(x)       (((x)&0x00000FFF)<<0)

/* Bit definitions and macros for MCF_FEC_FECTFDR */
#define MCF_FEC_FECTFDR_TFCW_TC        (0x04000000)
#define MCF_FEC_FECTFDR_TFCW_ABC       (0x02000000)
#define MCF_FEC_FECTFDR_ADDR0            ((void*)(&__MBAR[0x0091A4]))
#define MCF_FEC_FECTFDR_ADDR1            ((void*)(&__MBAR[0x0099A4]))
#define MCF_FEC_FECTFDR_ADDR(x)          ((void*)(&__MBAR[0x0091A4+(0x800*ch)]))

/* Bit definitions and macros for MCF_FEC_FECTFSR */
#define MCF_FEC_FECTFSR_EMT            (0x00010000)
#define MCF_FEC_FECTFSR_ALARM          (0x00020000)
#define MCF_FEC_FECTFSR_FU             (0x00040000)
#define MCF_FEC_FECTFSR_FR             (0x00080000)
#define MCF_FEC_FECTFSR_OF             (0x00100000)
#define MCF_FEC_FECTFSR_UP             (0x00200000)
#define MCF_FEC_FECTFSR_FAE            (0x00800000)
#define MCF_FEC_FECTFSR_FRM(x)         (((x)&0x0000000F)<<24)
#define MCF_FEC_FECTFSR_TXW            (0x40000000)
#define MCF_FEC_FECTFSR_IP             (0x80000000)

/* Bit definitions and macros for MCF_FEC_FECTFCR */
#define MCF_FEC_FECTFCR_RESERVED       (0x00200000)
#define MCF_FEC_FECTFCR_COUNTER(x)     (((x)&0x0000FFFF)<<0|0x00200000)
#define MCF_FEC_FECTFCR_TXW_MSK        (0x00240000)
#define MCF_FEC_FECTFCR_OF_MSK         (0x00280000)
#define MCF_FEC_FECTFCR_UF_MSK         (0x00300000)
#define MCF_FEC_FECTFCR_FAE_MSK        (0x00600000)
#define MCF_FEC_FECTFCR_IP_MSK         (0x00A00000)
#define MCF_FEC_FECTFCR_GR(x)          (((x)&0x00000007)<<24|0x00200000)
#define MCF_FEC_FECTFCR_FRM            (0x08200000)
#define MCF_FEC_FECTFCR_TIMER          (0x10200000)
#define MCF_FEC_FECTFCR_WFR            (0x20200000)
#define MCF_FEC_FECTFCR_WCTL           (0x40200000)

/* Bit definitions and macros for MCF_FEC_FECTLRFP */
#define MCF_FEC_FECTLRFP_LRFP(x)       (((x)&0x00000FFF)<<0)

/* Bit definitions and macros for MCF_FEC_FECTLWFP */
#define MCF_FEC_FECTLWFP_LWFP(x)       (((x)&0x00000FFF)<<0)

/* Bit definitions and macros for MCF_FEC_FECTFAR */
#define MCF_FEC_FECTFAR_ALARM(x)       (((x)&0x00000FFF)<<0)

/* Bit definitions and macros for MCF_FEC_FECTFRP */
#define MCF_FEC_FECTFRP_READ(x)        (((x)&0x00000FFF)<<0)

/* Bit definitions and macros for MCF_FEC_FECTFWP */
#define MCF_FEC_FECTFWP_WRITE(x)       (((x)&0x00000FFF)<<0)

/* Bit definitions and macros for MCF_FEC_FRST */
#define MCF_FEC_FRST_RST_CTL           (0x01000000)
#define MCF_FEC_FRST_SW_RST            (0x02000000)

/* Bit definitions and macros for MCF_FEC_CTCWR */
#define MCF_FEC_CTCWR_TFCW             (0x01000000)
#define MCF_FEC_CTCWR_CRC              (0x02000000)


struct mcf54xx_fec
{
	vuint32_t RES0;
	vuint32_t	eir;                   // 004
	vuint32_t	eimr;                  // 008
	vuint32_t RES1[6];
	vuint32_t	ecr;                   // 024
	vuint32_t RES2[6];
	vuint32_t	mmfr;                  // 040
	vuint32_t	mscr;                  // 044
	vuint32_t RES3[7];
	vuint32_t	mibc;                  // 064
	vuint32_t RES4[7];
	vuint32_t	rcr;                   // 084
	vuint32_t	r_hash;                // 088
	vuint32_t RES5[14];
	vuint32_t	tcr;                   // 0c4
	vuint32_t RES6[7];
	vuint32_t	palr;                  // 0e4
	vuint32_t	paur;                  // 0e8
	vuint32_t	opd;                   // 0ec
	vuint32_t RES7[10];
	vuint32_t	iaur;                  // 118
	vuint32_t	ialr;                  // 11c
	vuint32_t	gaur;                  // 120
	vuint32_t	galr;                  // 124
	vuint32_t RES8[7];
	vuint32_t	fectfwr;               // 144
	vuint32_t RES8a[15];
	vuint32_t	fecrfdr;               // 184
	vuint32_t	fecrfsr;               // 188
	vuint32_t	fecrfcr;               // 18c
	vuint32_t	fecrlrfp;              // 190
	vuint32_t	fecrlwfp;              // 194
	vuint32_t	fecrfar;               // 198
	vuint32_t	fecrfrp;               // 19c
	vuint32_t	fecrfwp;               // 1a0
	vuint32_t	fectfdr;               // 1a4
	vuint32_t	fectfsr;               // 1a8
	vuint32_t	fectfcr;               // 1ac
	vuint32_t	fectlrfp;              // 1b0
	vuint32_t	fectlwfp;              // 1b4
	vuint32_t	fectfar;               // 1b8
	vuint32_t	fectfrp;               // 1bc
	vuint32_t	fectfwp;               // 1c0
	vuint32_t	frst;                  // 1c4
	vuint32_t	ctcwr;                 // 1c8
	vuint32_t RES9[13];

	/* MIB Counters Memory Map */
	vuint32_t	rmon_t_drop;           // 200
	vuint32_t	rmon_t_packets;        // 204
	vuint32_t	rmon_t_bc_pkt;         // 208
	vuint32_t	rmon_t_mc_pkt;         // 20C
	vuint32_t	rmon_t_crc_align;      // 210
	vuint32_t	rmon_t_undersize;      // 214
	vuint32_t	rmon_t_oversize;       // 218
	vuint32_t	rmon_t_frag;           // 21C
	vuint32_t	rmon_t_jab;            // 220
	vuint32_t	rmon_t_col;            // 224
	vuint32_t	rmon_t_p64;            // 228
	vuint32_t	rmon_t_p65to127;       // 22C
	vuint32_t	rmon_t_p128to255;      // 230
	vuint32_t	rmon_t_p256to511;      // 234
	vuint32_t	rmon_t_p512to1023;     // 238
	vuint32_t	rmon_t_p1024to2047;    // 23C
	vuint32_t	rmon_t_p_gte2048;      // 240
	vuint32_t	rmon_t_octets;         // 244
	vuint32_t	ieee_t_drop;           // 248
	vuint32_t	ieee_t_frame_ok;       // 24C
	vuint32_t	ieee_t_1col;           // 250
	vuint32_t	ieee_t_mcol;           // 254
	vuint32_t	ieee_t_def;            // 258
	vuint32_t	ieee_t_lcol;           // 25C
	vuint32_t	ieee_t_excol;          // 260
	vuint32_t	ieee_t_macerr;         // 264
	vuint32_t	ieee_t_cserr;          // 268
	vuint32_t	ieee_t_sqe;            // 26C
	vuint32_t	ieee_t_fdxfc;          // 270
	vuint32_t	ieee_t_octets_ok;      // 274
	vuint32_t RES10[2];

      	vuint32_t rmon_r_drop;           // 280
	vuint32_t	rmon_r_packets;        // 284
	vuint32_t	rmon_r_bc_pkt;         // 288
	vuint32_t	rmon_r_mc_pkt;         // 28C
	vuint32_t	rmon_r_crc_align;      // 290
	vuint32_t	rmon_r_undersize;      // 294
	vuint32_t	rmon_r_oversize;       // 298
	vuint32_t	rmon_r_frag;           // 29C
	vuint32_t	rmon_r_jab;            // 2A0
	vuint32_t	rmon_r_resvd_0;        // 2A4
	vuint32_t	rmon_r_p64;            // 2A8
	vuint32_t	rmon_r_p65to127;       // 2AC
	vuint32_t	rmon_r_p128to255;      // 2B0
	vuint32_t	rmon_r_p256to511;      // 2B4
	vuint32_t	rmon_r_512to1023;      // 2B8
	vuint32_t	rmon_r_1024to2047;     // 2BC
	vuint32_t	rmon_r_p_gte2048;      // 2C0
	vuint32_t	rmon_r_octets;         // 2C4
	vuint32_t	ieee_r_drop;           // 2C8
	vuint32_t	ieee_r_frame_ok;       // 2CC
	vuint32_t	ieee_r_crc;            // 2D0
	vuint32_t	ieee_r_align;          // 2D4
	vuint32_t	ieee_r_macerr;         // 2D8
	vuint32_t	ieee_r_fdxfc;          // 2DC
	vuint32_t	ieee_r_octets_ok;      // 2e0
};

#define MCF_FEC_ADDR(ch)          ((void*)(&__MBAR[0x009000+(0x800*ch)]))
#define MCF_FEC_SIZE(ch)          ((uint32_t)(0x800))

#endif /* __MCF548X_FEC_H__ */