source: rtems/c/src/lib/libcpu/powerpc/mpc55xx/include/regs.h @ d374492

4.104.11
Last change on this file since d374492 was d374492, checked in by Thomas Doerfler <Thomas.Doerfler@…>, on Jul 21, 2009 at 8:38:04 AM

Update for MPC55XX changes

  • Property mode set to 100644
File size: 154.5 KB
Line 
1/**
2 * @file
3 *
4 * @ingroup mpc55xx
5 *
6 * @brief Register definitions for the MPC55XX microcontroller family
7 *
8 * This file is based on the mpc5566.h header file provided by Freescale Semiconductor, INC.
9 */
10
11/*
12 * Copyright (c) 2008
13 * Embedded Brains GmbH
14 * Obere Lagerstr. 30
15 * D-82178 Puchheim
16 * Germany
17 * rtems@embedded-brains.de
18 *
19 * The license and distribution terms for this file may be found in the file
20 * LICENSE in this distribution or at http://www.rtems.com/license/LICENSE.
21 */
22
23/**************************************************************************/
24/* FILE NAME: mpc5566.h                      COPYRIGHT (c) Freescale 2006 */
25/* VERSION:  1.2                                  All Rights Reserved     */
26/*                                                                        */
27/* DESCRIPTION:                                                           */
28/* This file contain all of the register and bit field definitions for    */
29/* MPC5566.                                                               */
30/*========================================================================*/
31/* UPDATE HISTORY                                                         */
32/* REV      AUTHOR      DATE       DESCRIPTION OF CHANGE                  */
33/* ---   -----------  ---------    ---------------------                  */
34/* 1.0   S. Mathieson   12/Jul/06    Initial version.                     */
35/* 1.1   S. Mathieson   28/Jul/06    Change Flexcan BCC bit to MBFEN      */
36/*                                   Add Flexcan bits WRNEN, SRXDIS,      */
37/*                                   TWRNMSK, RWRNMSK,TWRNINT,RWRNINT     */
38/* 1.2   S. Mathieson   10/Aug/06    Removed reference to FlexCAN E       */
39/*                                   SPR: L1CSR0[WAM] & L1CSR0[CORG] Added*/
40/* 1.3   S. Mathieson 30/Aug/06    SPR: L1SCR0, updated bit name from DPP */
41/*                                 to DPB to align with documentation.    */
42/**************************************************************************/
43
44#ifndef LIBCPU_POWERPC_MPC55XX_REGS_H
45#define LIBCPU_POWERPC_MPC55XX_REGS_H
46
47#include <stdint.h>
48
49#ifdef  __cplusplus
50extern "C" {
51#endif
52
53/****************************************************************************/
54/*                          MODULE : PBRIDGE_A Peripheral Bridge            */
55/****************************************************************************/
56    struct PBRIDGE_A_tag {
57        union {
58            uint32_t R;
59            struct {
60                uint32_t MBW0:1;
61                uint32_t MTR0:1;
62                uint32_t MTW0:1;
63                uint32_t MPL0:1;
64                uint32_t MBW1:1;
65                uint32_t MTR1:1;
66                uint32_t MTW1:1;
67                uint32_t MPL1:1;
68                uint32_t MBW2:1;
69                uint32_t MTR2:1;
70                uint32_t MTW2:1;
71                uint32_t MPL2:1;
72                uint32_t MBW3:1;
73                uint32_t MTR3:1;
74                uint32_t MTW3:1;
75                uint32_t MPL3:1;
76
77                uint32_t MBW4:1;       /* FEC */
78                uint32_t MTR4:1;
79                uint32_t MTW4:1;
80                uint32_t MPL4:1;
81
82                  uint32_t:4;
83
84                  uint32_t:4;
85
86                  uint32_t:4;
87            } B;
88        } MPCR;                 /* Master Privilege Control Register */
89
90        uint32_t pbridge_a_reserved2[7];
91
92        union {
93            uint32_t R;
94            struct {
95                uint32_t BW0:1;
96                uint32_t SP0:1;
97                uint32_t WP0:1;
98                uint32_t TP0:1;
99                  uint32_t:28;
100            } B;
101        } PACR0;
102
103        uint32_t pbridge_a_reserved3[7];
104
105        union {
106            uint32_t R;
107            struct {
108                uint32_t BW0:1;
109                uint32_t SP0:1;
110                uint32_t WP0:1;
111                uint32_t TP0:1;
112                uint32_t BW1:1;
113                uint32_t SP1:1;
114                uint32_t WP1:1;
115                uint32_t TP1:1;
116                uint32_t BW2:1;
117                uint32_t SP2:1;
118                uint32_t WP2:1;
119                uint32_t TP2:1;
120                  uint32_t:4;
121                uint32_t BW4:1;
122                uint32_t SP4:1;
123                uint32_t WP4:1;
124                uint32_t TP4:1;
125                  uint32_t:12;
126            } B;
127        } OPACR0;
128
129        union {
130            uint32_t R;
131            struct {
132
133                uint32_t BW0:1;        /* EMIOS */
134                uint32_t SP0:1;
135                uint32_t WP0:1;
136                uint32_t TP0:1;
137
138                  uint32_t:28;
139            } B;
140        } OPACR1;
141
142        union {
143            uint32_t R;
144            struct {
145                uint32_t BW0:1;
146                uint32_t SP0:1;
147                uint32_t WP0:1;
148                uint32_t TP0:1;
149                  uint32_t:4;
150                uint32_t BW2:1;
151                uint32_t SP2:1;
152                uint32_t WP2:1;
153                uint32_t TP2:1;
154                uint32_t BW3:1;
155                uint32_t SP3:1;
156                uint32_t WP3:1;
157                uint32_t TP3:1;
158                uint32_t BW4:1;
159                uint32_t SP4:1;
160                uint32_t WP4:1;
161                uint32_t TP4:1;
162                  uint32_t:12;
163            } B;
164        } OPACR2;
165
166    };
167
168/****************************************************************************/
169/*                          MODULE : PBRIDGE_B Peripheral Bridge            */
170/****************************************************************************/
171    struct PBRIDGE_B_tag {
172        union {
173            uint32_t R;
174            struct {
175                uint32_t MBW0:1;
176                uint32_t MTR0:1;
177                uint32_t MTW0:1;
178                uint32_t MPL0:1;
179                uint32_t MBW1:1;
180                uint32_t MTR1:1;
181                uint32_t MTW1:1;
182                uint32_t MPL1:1;
183                uint32_t MBW2:1;
184                uint32_t MTR2:1;
185                uint32_t MTW2:1;
186                uint32_t MPL2:1;
187                uint32_t MBW3:1;
188                uint32_t MTR3:1;
189                uint32_t MTW3:1;
190                uint32_t MPL3:1;
191
192                uint32_t MBW4:1;       /* FEC */
193                uint32_t MTR4:1;
194                uint32_t MTW4:1;
195                uint32_t MPL4:1;
196
197                  uint32_t:4;
198
199                  uint32_t:4;
200
201                  uint32_t:4;
202            } B;
203        } MPCR;                 /* Master Privilege Control Register */
204
205        uint32_t pbridge_b_reserved2[7];
206
207        union {
208            uint32_t R;
209            struct {
210                uint32_t BW0:1;
211                uint32_t SP0:1;
212                uint32_t WP0:1;
213                uint32_t TP0:1;
214                uint32_t BW1:1;
215                uint32_t SP1:1;
216                uint32_t WP1:1;
217                uint32_t TP1:1;
218                  uint32_t:24;
219            } B;
220        } PACR0;
221
222        uint32_t pbridge_b_reserved3;
223
224        union {
225            uint32_t R;
226            struct {
227                uint32_t BW0:1;
228                uint32_t SP0:1;
229                uint32_t WP0:1;
230                uint32_t TP0:1;
231                uint32_t BW1:1;
232                uint32_t SP1:1;
233                uint32_t WP1:1;
234                uint32_t TP1:1;
235                uint32_t BW2:1;
236                uint32_t SP2:1;
237                uint32_t WP2:1;
238                uint32_t TP2:1;
239
240                uint32_t BW3:1;        /* FEC */
241                uint32_t SP3:1;
242                uint32_t WP3:1;
243                uint32_t TP3:1;
244
245                  uint32_t:16;
246
247            } B;
248        } PACR2;
249
250        uint32_t pbridge_b_reserved4[5];
251
252        union {
253            uint32_t R;
254            struct {
255                uint32_t BW0:1;
256                uint32_t SP0:1;
257                uint32_t WP0:1;
258                uint32_t TP0:1;
259                  uint32_t:12;
260
261                uint32_t BW4:1;        /* DSPI_A */
262                uint32_t SP4:1;
263                uint32_t WP4:1;
264                uint32_t TP4:1;
265
266                uint32_t BW5:1;        /* DSPI_B */
267                uint32_t SP5:1;
268                uint32_t WP5:1;
269                uint32_t TP5:1;
270
271                uint32_t BW6:1;
272                uint32_t SP6:1;
273                uint32_t WP6:1;
274                uint32_t TP6:1;
275                uint32_t BW7:1;
276                uint32_t SP7:1;
277                uint32_t WP7:1;
278                uint32_t TP7:1;
279            } B;
280        } OPACR0;
281
282        union {
283            uint32_t R;
284            struct {
285                uint32_t:16;
286                uint32_t BW4:1;
287                uint32_t SP4:1;
288                uint32_t WP4:1;
289                uint32_t TP4:1;
290
291                uint32_t BW5:1;        /* ESCI_B */
292                uint32_t SP5:1;
293                uint32_t WP5:1;
294                uint32_t TP5:1;
295
296                  uint32_t:8;
297            } B;
298        } OPACR1;
299
300        union {
301            uint32_t R;
302            struct {
303                uint32_t BW0:1;
304                uint32_t SP0:1;
305                uint32_t WP0:1;
306                uint32_t TP0:1;
307
308                uint32_t BW1:1;        /* CAN_B */
309                uint32_t SP1:1;
310                uint32_t WP1:1;
311                uint32_t TP1:1;
312
313                uint32_t BW2:1;
314                uint32_t SP2:1;
315                uint32_t WP2:1;
316                uint32_t TP2:1;
317
318                uint32_t BW3:1;        /* CAN_D */
319                uint32_t SP3:1;
320                uint32_t WP3:1;
321                uint32_t TP3:1;
322                  uint32_t:4;
323
324                  uint32_t:12;
325            } B;
326        } OPACR2;
327
328        union {
329            uint32_t R;
330            struct {
331
332                uint32_t:4;
333
334                uint32_t:24;
335                uint32_t BW7:1;
336                uint32_t SP7:1;
337                uint32_t WP7:1;
338                uint32_t TP7:1;
339            } B;
340        } OPACR3;
341
342    };
343/****************************************************************************/
344/*                     MODULE : FMPLL                                       */
345/****************************************************************************/
346    struct FMPLL_tag {
347        union {
348            uint32_t R;
349            struct {
350                uint32_t:1;
351                uint32_t PREDIV:3;
352                uint32_t MFD:5;
353                  uint32_t:1;
354                uint32_t RFD:3;
355                uint32_t LOCEN:1;
356                uint32_t LOLRE:1;
357                uint32_t LOCRE:1;
358                uint32_t DISCLK:1;
359                uint32_t LOLIRQ:1;
360                uint32_t LOCIRQ:1;
361                uint32_t RATE:1;
362                uint32_t DEPTH:2;
363                uint32_t EXP:10;
364            } B;
365        } SYNCR;
366
367        union {
368            uint32_t R;
369            struct {
370                uint32_t:22;
371                uint32_t LOLF:1;
372                uint32_t LOC:1;
373                uint32_t MODE:1;
374                uint32_t PLLSEL:1;
375                uint32_t PLLREF:1;
376                uint32_t LOCKS:1;
377                uint32_t LOCK:1;
378                uint32_t LOCF:1;
379                uint32_t CALDONE:1;
380                uint32_t CALPASS:1;
381            } B;
382        } SYNSR;
383
384    };
385/****************************************************************************/
386/*                     MODULE : External Bus Interface (EBI)                */
387/****************************************************************************/
388    struct EBI_CS_tag {
389        union {                 /* Base Register Bank */
390            uint32_t R;
391            struct {
392                uint32_t BA:17;
393                  uint32_t:3;
394                uint32_t PS:1;
395                  uint32_t:4;
396                uint32_t BL:1;
397                uint32_t WEBS:1;
398                uint32_t TBDIP:1;
399                  uint32_t:2;
400                uint32_t BI:1;
401                uint32_t V:1;
402            } B;
403        } BR;
404
405        union {                 /* Option Register Bank */
406            uint32_t R;
407            struct {
408                uint32_t AM:17;
409                  uint32_t:7;
410                uint32_t SCY:4;
411                  uint32_t:1;
412                uint32_t BSCY:2;
413                  uint32_t:1;
414            } B;
415        } OR;
416    };
417
418    struct EBI_CAL_CS_tag {
419        union {                 /* Calibration Base Register Bank */
420            uint32_t R;
421            struct {
422                uint32_t BA:17;
423                  uint32_t:3;
424                uint32_t PS:1;
425                  uint32_t:4;
426                uint32_t BL:1;
427                uint32_t WEBS:1;
428                uint32_t TBDIP:1;
429                  uint32_t:2;
430                uint32_t BI:1;
431                uint32_t V:1;
432            } B;
433        } BR;
434
435        union {                 /* Calibration Option Register Bank */
436            uint32_t R;
437            struct {
438                uint32_t AM:17;
439                  uint32_t:7;
440                uint32_t SCY:4;
441                  uint32_t:1;
442                uint32_t BSCY:2;
443                  uint32_t:1;
444            } B;
445        } OR;
446    };
447
448    struct EBI_tag {
449        union {                 /* Module Configuration Register */
450            uint32_t R;
451            struct {
452                uint32_t:5;
453                uint32_t SIZEEN:1;
454                uint32_t SIZE:2;
455                  uint32_t:8;
456                uint32_t ACGE:1;
457                uint32_t EXTM:1;
458                uint32_t EARB:1;
459                uint32_t EARP:2;
460                  uint32_t:4;
461                uint32_t MDIS:1;
462                  uint32_t:5;
463                uint32_t DBM:1;
464            } B;
465        } MCR;
466
467        uint32_t EBI_reserved1;
468
469        union {                 /* Transfer Error Status Register */
470            uint32_t R;
471            struct {
472                uint32_t:30;
473                uint32_t TEAF:1;
474                uint32_t BMTF:1;
475            } B;
476        } TESR;
477
478        union {                 /* Bus Monitor Control Register */
479            uint32_t R;
480            struct {
481                uint32_t:16;
482                uint32_t BMT:8;
483                uint32_t BME:1;
484                  uint32_t:7;
485            } B;
486        } BMCR;
487
488        struct EBI_CS_tag CS[4];
489
490/* Calibration registers */
491        uint32_t EBI_reserved2[4];
492        struct EBI_CAL_CS_tag CAL_CS[4];
493
494    };
495/****************************************************************************/
496/*                     MODULE : FLASH                                       */
497/****************************************************************************/
498    struct FLASH_tag {
499        union {                 /* Module Configuration Register */
500            uint32_t R;
501            struct {
502                uint32_t:4;
503                uint32_t SIZE:4;
504                  uint32_t:1;
505                uint32_t LAS:3;
506                  uint32_t:3;
507                uint32_t MAS:1;
508                uint32_t EER:1;
509                uint32_t RWE:1;
510                uint32_t BBEPE:1;
511                uint32_t EPE:1;
512                uint32_t PEAS:1;
513                uint32_t DONE:1;
514                uint32_t PEG:1;
515
516                  uint32_t:2;
517
518                uint32_t STOP:1;
519                  uint32_t:1;
520                uint32_t PGM:1;
521                uint32_t PSUS:1;
522                uint32_t ERS:1;
523                uint32_t ESUS:1;
524                uint32_t EHV:1;
525            } B;
526        } MCR;
527
528        union {                 /* LML Register */
529            uint32_t R;
530            struct {
531                uint32_t LME:1;
532                  uint32_t:10;
533                uint32_t SLOCK:1;
534                uint32_t MLOCK:4;
535                uint32_t LLOCK:16;
536            } B;
537        } LMLR;
538
539        union {                 /* HL Register */
540            uint32_t R;
541            struct {
542                uint32_t HBE:1;
543                  uint32_t:3;
544                uint32_t HBLOCK:28;
545            } B;
546        } HLR;
547
548        union {                 /* SLML Register */
549            uint32_t R;
550            struct {
551                uint32_t SLE:1;
552                  uint32_t:10;
553                uint32_t SSLOCK:1;
554                uint32_t SMLOCK:4;
555                uint32_t SLLOCK:16;
556            } B;
557        } SLMLR;
558
559        union {                 /* LMS Register */
560            uint32_t R;
561            struct {
562                uint32_t:12;
563                uint32_t MSEL:4;
564                uint32_t LSEL:16;
565            } B;
566        } LMSR;
567
568        union {
569            uint32_t R;
570            struct {
571                uint32_t:4;
572                uint32_t HBSEL:28;
573            } B;
574        } HSR;
575
576        union {
577            uint32_t R;
578            struct {
579                uint32_t:10;
580                uint32_t ADDR:19;
581                  uint32_t:3;
582            } B;
583        } AR;
584
585        union {
586            uint32_t R;
587            struct {
588
589                uint32_t:11;
590
591                uint32_t M4PFE:1;      /* FEC */
592
593                uint32_t M3PFE:1;
594                uint32_t M2PFE:1;
595                uint32_t M1PFE:1;
596                uint32_t M0PFE:1;
597                uint32_t APC:3;
598                uint32_t WWSC:2;
599                uint32_t RWSC:3;
600
601                uint32_t DPFEN:2;
602                uint32_t IPFEN:2;
603
604                uint32_t PFLIM:3;
605                uint32_t BFEN:1;
606            } B;
607        } BIUCR;
608
609        union {
610            uint32_t R;
611            struct {
612
613                uint32_t:22;
614
615                uint32_t M4AP:2;       /* FEC */
616
617                uint32_t M3AP:2;
618                uint32_t M2AP:2;
619                uint32_t M1AP:2;
620                uint32_t M0AP:2;
621            } B;
622        } BIUAPR;
623    };
624/****************************************************************************/
625/*                     MODULE : SIU                                         */
626/****************************************************************************/
627    struct SIU_tag {
628        int32_t SIU_reserved0;
629
630        union {                 /* MCU ID Register */
631            uint32_t R;
632            struct {
633                uint32_t PARTNUM:16;
634                uint32_t MASKNUM:16;
635            } B;
636        } MIDR;
637        int32_t SIU_reserved00;
638
639        union {                 /* Reset Status Register */
640            uint32_t R;
641            struct {
642                uint32_t PORS:1;
643                uint32_t ERS:1;
644                uint32_t LLRS:1;
645                uint32_t LCRS:1;
646                uint32_t WDRS:1;
647                uint32_t CRS:1;
648                  uint32_t:8;
649                uint32_t SSRS:1;
650                uint32_t SERF:1;
651                uint32_t WKPCFG:1;
652                  uint32_t:12;
653                uint32_t BOOTCFG:2;
654                uint32_t RGF:1;
655            } B;
656        } RSR;
657
658        union {                 /* System Reset Control Register */
659            uint32_t R;
660            struct {
661                uint32_t SSR:1;
662                uint32_t SER:1;
663                  uint32_t:14;
664                uint32_t CRE:1;
665                  uint32_t:15;
666            } B;
667        } SRCR;
668
669        union SIU_EISR_tag {    /* External Interrupt Status Register */
670            uint32_t R;
671            struct {
672                uint32_t:16;
673                uint32_t EIF15:1;
674                uint32_t EIF14:1;
675                uint32_t EIF13:1;
676                uint32_t EIF12:1;
677                uint32_t EIF11:1;
678                uint32_t EIF10:1;
679                uint32_t EIF9:1;
680                uint32_t EIF8:1;
681                uint32_t EIF7:1;
682                uint32_t EIF6:1;
683                uint32_t EIF5:1;
684                uint32_t EIF4:1;
685                uint32_t EIF3:1;
686                uint32_t EIF2:1;
687                uint32_t EIF1:1;
688                uint32_t EIF0:1;
689            } B;
690        } EISR;
691
692        union SIU_DIRER_tag {   /* DMA/Interrupt Request Enable Register */
693            uint32_t R;
694            struct {
695                uint32_t:16;
696                uint32_t EIRE15:1;
697                uint32_t EIRE14:1;
698                uint32_t EIRE13:1;
699                uint32_t EIRE12:1;
700                uint32_t EIRE11:1;
701                uint32_t EIRE10:1;
702                uint32_t EIRE9:1;
703                uint32_t EIRE8:1;
704                uint32_t EIRE7:1;
705                uint32_t EIRE6:1;
706                uint32_t EIRE5:1;
707                uint32_t EIRE4:1;
708                uint32_t EIRE3:1;
709                uint32_t EIRE2:1;
710                uint32_t EIRE1:1;
711                uint32_t EIRE0:1;
712            } B;
713        } DIRER;
714
715        union SIU_DIRSR_tag {   /* DMA/Interrupt Select Register */
716            uint32_t R;
717            struct {
718                uint32_t:28;
719                uint32_t DIRS3:1;
720                uint32_t DIRS2:1;
721                uint32_t DIRS1:1;
722                uint32_t DIRS0:1;
723            } B;
724        } DIRSR;
725
726        union SIU_OSR_tag {     /* Overrun Status Register */
727            uint32_t R;
728            struct {
729                uint32_t:16;
730                uint32_t OVF15:1;
731                uint32_t OVF14:1;
732                uint32_t OVF13:1;
733                uint32_t OVF12:1;
734                uint32_t OVF11:1;
735                uint32_t OVF10:1;
736                uint32_t OVF9:1;
737                uint32_t OVF8:1;
738                uint32_t OVF7:1;
739                uint32_t OVF6:1;
740                uint32_t OVF5:1;
741                uint32_t OVF4:1;
742                uint32_t OVF3:1;
743                uint32_t OVF2:1;
744                uint32_t OVF1:1;
745                uint32_t OVF0:1;
746            } B;
747        } OSR;
748
749        union SIU_ORER_tag {    /* Overrun Request Enable Register */
750            uint32_t R;
751            struct {
752                uint32_t:16;
753                uint32_t ORE15:1;
754                uint32_t ORE14:1;
755                uint32_t ORE13:1;
756                uint32_t ORE12:1;
757                uint32_t ORE11:1;
758                uint32_t ORE10:1;
759                uint32_t ORE9:1;
760                uint32_t ORE8:1;
761                uint32_t ORE7:1;
762                uint32_t ORE6:1;
763                uint32_t ORE5:1;
764                uint32_t ORE4:1;
765                uint32_t ORE3:1;
766                uint32_t ORE2:1;
767                uint32_t ORE1:1;
768                uint32_t ORE0:1;
769            } B;
770        } ORER;
771
772        union SIU_IREER_tag {   /* External IRQ Rising-Edge Event Enable Register */
773            uint32_t R;
774            struct {
775                uint32_t:16;
776                uint32_t IREE15:1;
777                uint32_t IREE14:1;
778                uint32_t IREE13:1;
779                uint32_t IREE12:1;
780                uint32_t IREE11:1;
781                uint32_t IREE10:1;
782                uint32_t IREE9:1;
783                uint32_t IREE8:1;
784                uint32_t IREE7:1;
785                uint32_t IREE6:1;
786                uint32_t IREE5:1;
787                uint32_t IREE4:1;
788                uint32_t IREE3:1;
789                uint32_t IREE2:1;
790                uint32_t IREE1:1;
791                uint32_t IREE0:1;
792            } B;
793        } IREER;
794
795        union SIU_IFEER_tag {   /* External IRQ Falling-Edge Event Enable Register */
796            uint32_t R;
797            struct {
798                uint32_t:16;
799                uint32_t IFEE15:1;
800                uint32_t IFEE14:1;
801                uint32_t IFEE13:1;
802                uint32_t IFEE12:1;
803                uint32_t IFEE11:1;
804                uint32_t IFEE10:1;
805                uint32_t IFEE9:1;
806                uint32_t IFEE8:1;
807                uint32_t IFEE7:1;
808                uint32_t IFEE6:1;
809                uint32_t IFEE5:1;
810                uint32_t IFEE4:1;
811                uint32_t IFEE3:1;
812                uint32_t IFEE2:1;
813                uint32_t IFEE1:1;
814                uint32_t IFEE0:1;
815            } B;
816        } IFEER;
817
818        union SIU_IDFR_tag {    /* External IRQ Digital Filter Register */
819            uint32_t R;
820            struct {
821                uint32_t:28;
822                uint32_t DFL:4;
823            } B;
824        } IDFR;
825
826        int32_t SIU_reserved1[3];
827
828        union SIU_PCR_tag {                 /* Pad Configuration Registers */
829            uint16_t R;
830            struct {
831                uint16_t:3;
832                uint16_t PA:3;
833                uint16_t OBE:1;
834                uint16_t IBE:1;
835                uint16_t DSC:2;
836                uint16_t ODE:1;
837                uint16_t HYS:1;
838                uint16_t SRC:2;
839                uint16_t WPE:1;
840                uint16_t WPS:1;
841            } B;
842        } PCR[512];
843
844        int16_t SIU_reserved_0[224];
845
846        union {                 /* GPIO Pin Data Output Registers */
847            uint8_t R;
848            struct {
849                uint8_t:7;
850                uint8_t PDO:1;
851            } B;
852        } GPDO[256];
853
854        int32_t SIU_reserved_3[64];
855
856        union {                 /* GPIO Pin Data Input Registers */
857            uint8_t R;
858            struct {
859                uint8_t:7;
860                uint8_t PDI:1;
861            } B;
862        } GPDI[256];
863
864        union {                 /* IMUX Register */
865            uint32_t R;
866            struct {
867                uint32_t TSEL5:2;
868                uint32_t TSEL4:2;
869                uint32_t TSEL3:2;
870                uint32_t TSEL2:2;
871                uint32_t TSEL1:2;
872                uint32_t TSEL0:2;
873                  uint32_t:20;
874            } B;
875        } ETISR;
876
877        union {                 /* IMUX Register */
878            uint32_t R;
879            struct {
880                uint32_t ESEL15:2;
881                uint32_t ESEL14:2;
882                uint32_t ESEL13:2;
883                uint32_t ESEL12:2;
884                uint32_t ESEL11:2;
885                uint32_t ESEL10:2;
886                uint32_t ESEL9:2;
887                uint32_t ESEL8:2;
888                uint32_t ESEL7:2;
889                uint32_t ESEL6:2;
890                uint32_t ESEL5:2;
891                uint32_t ESEL4:2;
892                uint32_t ESEL3:2;
893                uint32_t ESEL2:2;
894                uint32_t ESEL1:2;
895                uint32_t ESEL0:2;
896            } B;
897        } EIISR;
898
899        union {                 /* IMUX Register */
900            uint32_t R;
901            struct {
902                uint32_t SINSELA:2;
903                uint32_t SSSELA:2;
904                uint32_t SCKSELA:2;
905                uint32_t TRIGSELA:2;
906                uint32_t SINSELB:2;
907                uint32_t SSSELB:2;
908                uint32_t SCKSELB:2;
909                uint32_t TRIGSELB:2;
910                uint32_t SINSELC:2;
911                uint32_t SSSELC:2;
912                uint32_t SCKSELC:2;
913                uint32_t TRIGSELC:2;
914                uint32_t SINSELD:2;
915                uint32_t SSSELD:2;
916                uint32_t SCKSELD:2;
917                uint32_t TRIGSELD:2;
918            } B;
919        } DISR;
920
921        int32_t SIU_reserved2[29];
922
923        union {                 /* Chip Configuration Register Register */
924            uint32_t R;
925            struct {
926                uint32_t:14;
927                uint32_t MATCH:1;
928                uint32_t DISNEX:1;
929                  uint32_t:16;
930            } B;
931        } CCR;
932
933        union {                 /* External Clock Configuration Register Register */
934            uint32_t R;
935            struct {
936                uint32_t:18;
937                uint32_t ENGDIV:6;
938                  uint32_t:4;
939                uint32_t EBTS:1;
940                  uint32_t:1;
941                uint32_t EBDF:2;
942            } B;
943        } ECCR;
944
945        union {
946            uint32_t R;
947        } CARH;
948
949        union {
950            uint32_t R;
951        } CARL;
952
953        union {
954            uint32_t R;
955        } CBRH;
956
957        union {
958            uint32_t R;
959        } CBRL;
960
961    };
962/****************************************************************************/
963/*                          MODULE : EMIOS                                  */
964/****************************************************************************/
965    struct EMIOS_tag {
966        union EMIOS_MCR_tag {
967            uint32_t R;
968            struct {
969                uint32_t:1;
970                uint32_t MDIS:1;
971                uint32_t FRZ:1;
972                uint32_t GTBE:1;
973                uint32_t ETB:1;
974                uint32_t GPREN:1;
975                  uint32_t:6;
976                uint32_t SRV:4;
977                uint32_t GPRE:8;
978                  uint32_t:8;
979            } B;
980        } MCR;                  /* Module Configuration Register */
981
982        union EMIOS_GFR_tag {
983            uint32_t R;
984            struct {
985                uint32_t:8;
986                uint32_t F23:1;
987                uint32_t F22:1;
988                uint32_t F21:1;
989                uint32_t F20:1;
990                uint32_t F19:1;
991                uint32_t F18:1;
992                uint32_t F17:1;
993                uint32_t F16:1;
994                uint32_t F15:1;
995                uint32_t F14:1;
996                uint32_t F13:1;
997                uint32_t F12:1;
998                uint32_t F11:1;
999                uint32_t F10:1;
1000                uint32_t F9:1;
1001                uint32_t F8:1;
1002                uint32_t F7:1;
1003                uint32_t F6:1;
1004                uint32_t F5:1;
1005                uint32_t F4:1;
1006                uint32_t F3:1;
1007                uint32_t F2:1;
1008                uint32_t F1:1;
1009                uint32_t F0:1;
1010            } B;
1011        } GFR;                  /* Global FLAG Register */
1012
1013        union EMIOS_OUDR_tag {
1014            uint32_t R;
1015            struct {
1016                uint32_t:8;
1017                uint32_t OU23:1;
1018                uint32_t OU22:1;
1019                uint32_t OU21:1;
1020                uint32_t OU20:1;
1021                uint32_t OU19:1;
1022                uint32_t OU18:1;
1023                uint32_t OU17:1;
1024                uint32_t OU16:1;
1025                uint32_t OU15:1;
1026                uint32_t OU14:1;
1027                uint32_t OU13:1;
1028                uint32_t OU12:1;
1029                uint32_t OU11:1;
1030                uint32_t OU10:1;
1031                uint32_t OU9:1;
1032                uint32_t OU8:1;
1033                uint32_t OU7:1;
1034                uint32_t OU6:1;
1035                uint32_t OU5:1;
1036                uint32_t OU4:1;
1037                uint32_t OU3:1;
1038                uint32_t OU2:1;
1039                uint32_t OU1:1;
1040                uint32_t OU0:1;
1041            } B;
1042        } OUDR;                 /* Output Update Disable Register */
1043
1044        uint32_t emios_reserved[5];
1045
1046        struct EMIOS_CH_tag {
1047            union {
1048                uint32_t R;    /* Channel A Data Register */
1049            } CADR;
1050
1051            union {
1052                uint32_t R;    /* Channel B Data Register */
1053            } CBDR;
1054
1055            union {
1056                uint32_t R;    /* Channel Counter Register */
1057            } CCNTR;
1058
1059            union EMIOS_CCR_tag {
1060                uint32_t R;
1061                struct {
1062                    uint32_t FREN:1;
1063                    uint32_t ODIS:1;
1064                    uint32_t ODISSL:2;
1065                    uint32_t UCPRE:2;
1066                    uint32_t UCPREN:1;
1067                    uint32_t DMA:1;
1068                      uint32_t:1;
1069                    uint32_t IF:4;
1070                    uint32_t FCK:1;
1071                    uint32_t FEN:1;
1072                      uint32_t:3;
1073                    uint32_t FORCMA:1;
1074                    uint32_t FORCMB:1;
1075                      uint32_t:1;
1076                    uint32_t BSL:2;
1077                    uint32_t EDSEL:1;
1078                    uint32_t EDPOL:1;
1079                    uint32_t MODE:7;
1080                } B;
1081            } CCR;              /* Channel Control Register */
1082
1083            union EMIOS_CSR_tag {
1084                uint32_t R;
1085                struct {
1086                    uint32_t OVR:1;
1087                      uint32_t:15;
1088                    uint32_t OVFL:1;
1089                      uint32_t:12;
1090                    uint32_t UCIN:1;
1091                    uint32_t UCOUT:1;
1092                    uint32_t FLAG:1;
1093                } B;
1094            } CSR;              /* Channel Status Register */
1095
1096            union {
1097                uint32_t R;    /* Alternate Channel A Data Register */
1098            } ALTCADR;
1099
1100            uint32_t emios_channel_reserved[2];
1101
1102        } CH[24];
1103
1104    };
1105/****************************************************************************/
1106/*                              MODULE :ETPU                                */
1107/****************************************************************************/
1108
1109/***************************Configuration Registers**************************/
1110
1111    struct ETPU_tag {
1112        union {                 /* MODULE CONFIGURATION REGISTER */
1113            uint32_t R;
1114            struct {
1115                uint32_t GEC:1;        /* Global Exception Clear */
1116                  uint32_t:3;
1117                uint32_t MGE1:1;       /* Microcode Global Exception-ETPU_A */
1118
1119                uint32_t MGE2:1;       /* Microcode Global Exception-ETPU_B */
1120
1121                uint32_t ILF1:1;       /* Illegal Instruction Flag-ETPU_A */
1122
1123                uint32_t ILF2:1;       /* Illegal Instruction Flag-ETPU_B */
1124
1125                  uint32_t:3;
1126                uint32_t SCMSIZE:5;    /* Shared Code Memory size */
1127                  uint32_t:5;
1128                uint32_t SCMMISF:1;    /* SCM MISC Flag */
1129                uint32_t SCMMISEN:1;   /* SCM MISC Enable */
1130                  uint32_t:2;
1131                uint32_t VIS:1;        /* SCM Visability */
1132                  uint32_t:5;
1133                uint32_t GTBE:1;       /* Global Time Base Enable */
1134            } B;
1135        } MCR;
1136
1137        union {                 /* COHERENT DUAL-PARAMETER CONTROL */
1138            uint32_t R;
1139            struct {
1140                uint32_t STS:1;        /* Start Status bit */
1141                uint32_t CTBASE:5;     /* Channel Transfer Base */
1142                uint32_t PBASE:10;     /* Parameter Buffer Base Address */
1143                uint32_t PWIDTH:1;     /* Parameter Width */
1144                uint32_t PARAM0:7;     /* Channel Parameter 0 */
1145                uint32_t WR:1;
1146                uint32_t PARAM1:7;     /* Channel Parameter 1 */
1147            } B;
1148        } CDCR;
1149
1150        uint32_t etpu_reserved1;
1151
1152        union {                 /* MISC Compare Register */
1153            uint32_t R;
1154        } MISCCMPR;
1155
1156        union {                 /* SCM off-range Date Register */
1157            uint32_t R;
1158        } SCMOFFDATAR;
1159
1160        union {                 /* ETPU_A Configuration Register */
1161            uint32_t R;
1162            struct {
1163                uint32_t FEND:1;       /* Force END */
1164                uint32_t MDIS:1;       /* Low power Stop */
1165                  uint32_t:1;
1166                uint32_t STF:1;        /* Stop Flag */
1167                  uint32_t:4;
1168                uint32_t HLTF:1;       /* Halt Mode Flag */
1169                  uint32_t:4;
1170                uint32_t FPSCK:3;      /* Filter Prescaler Clock Control */
1171                uint32_t CDFC:2;
1172                  uint32_t:9;
1173                uint32_t ETB:5;        /* Entry Table Base */
1174            } B;
1175        } ECR_A;
1176
1177        union {                 /* ETPU_B Configuration Register */
1178            uint32_t R;
1179            struct {
1180                uint32_t FEND:1;       /* Force END */
1181                uint32_t MDIS:1;       /* Low power Stop */
1182                  uint32_t:1;
1183                uint32_t STF:1;        /* Stop Flag */
1184                  uint32_t:4;
1185                uint32_t HLTF:1;       /* Halt Mode Flag */
1186                  uint32_t:4;
1187                uint32_t FPSCK:3;      /* Filter Prescaler Clock Control */
1188                uint32_t CDFC:2;
1189                  uint32_t:9;
1190                uint32_t ETB:5;        /* Entry Table Base */
1191            } B;
1192        } ECR_B;
1193
1194        uint32_t etpu_reserved4;
1195
1196        union {                 /* ETPU_A Timebase Configuration Register */
1197            uint32_t R;
1198            struct {
1199                uint32_t TCR2CTL:3;     /* TCR2 Clock/Gate Control */
1200                uint32_t TCRCF:2;       /* TCRCLK Signal Filter Control */
1201                  uint32_t:1;
1202                uint32_t AM:1;  /* Angle Mode */
1203                  uint32_t:3;
1204                uint32_t TCR2P:6;       /* TCR2 Prescaler Control */
1205                uint32_t TCR1CTL:2;     /* TCR1 Clock/Gate Control */
1206                  uint32_t:6;
1207                uint32_t TCR1P:8;       /* TCR1 Prescaler Control */
1208            } B;
1209        } TBCR_A;
1210
1211        union {                 /* ETPU_A TCR1 Visibility Register */
1212            uint32_t R;
1213        } TB1R_A;
1214
1215        union {                 /* ETPU_A TCR2 Visibility Register */
1216            uint32_t R;
1217        } TB2R_A;
1218
1219        union {                 /* ETPU_A STAC Configuration Register */
1220            uint32_t R;
1221            struct {
1222                uint32_t REN1:1;       /* Resource Enable TCR1 */
1223                uint32_t RSC1:1;       /* Resource Control TCR1 */
1224                  uint32_t:2;
1225                uint32_t SERVER_ID1:4;
1226                  uint32_t:4;
1227                uint32_t SRV1:4;       /* Resource Server Slot */
1228                uint32_t REN2:1;       /* Resource Enable TCR2 */
1229                uint32_t RSC2:1;       /* Resource Control TCR2 */
1230                  uint32_t:2;
1231                uint32_t SERVER_ID2:4;
1232                  uint32_t:4;
1233                uint32_t SRV2:4;       /* Resource Server Slot */
1234            } B;
1235        } REDCR_A;
1236
1237        uint32_t etpu_reserved5[4];
1238
1239        union {                 /* ETPU_B Timebase Configuration Register */
1240            uint32_t R;
1241            struct {
1242                uint32_t TCR2CTL:3;     /* TCR2 Clock/Gate Control */
1243                uint32_t TCRCF:2;       /* TCRCLK Signal Filter Control */
1244                  uint32_t:1;
1245                uint32_t AM:1;  /* Angle Mode */
1246                  uint32_t:3;
1247                uint32_t TCR2P:6;       /* TCR2 Prescaler Control */
1248                uint32_t TCR1CTL:2;     /* TCR1 Clock/Gate Control */
1249                  uint32_t:6;
1250                uint32_t TCR1P:8;       /* TCR1 Prescaler Control */
1251            } B;
1252        } TBCR_B;
1253
1254        union {                 /* ETPU_B TCR1 Visibility Register */
1255            uint32_t R;
1256        } TB1R_B;
1257
1258        union {                 /* ETPU_B TCR2 Visibility Register */
1259            uint32_t R;
1260        } TB2R_B;
1261
1262        union {                 /* ETPU_B STAC Configuration Register */
1263            uint32_t R;
1264            struct {
1265                uint32_t REN1:1;       /* Resource Enable TCR1 */
1266                uint32_t RSC1:1;       /* Resource Control TCR1 */
1267                  uint32_t:2;
1268                uint32_t SERVER_ID1:4;
1269                  uint32_t:4;
1270                uint32_t SRV1:4;       /* Resource Server Slot */
1271                uint32_t REN2:1;       /* Resource Enable TCR2 */
1272                uint32_t RSC2:1;       /* Resource Control TCR2 */
1273                  uint32_t:2;
1274                uint32_t SERVER_ID2:4;
1275                  uint32_t:4;
1276                uint32_t SRV2:4;       /* Resource Server Slot */
1277            } B;
1278        } REDCR_B;
1279
1280        uint32_t etpu_reserved7[108];
1281
1282/*****************************Status and Control Registers**************************/
1283
1284        union {                 /* ETPU_A Channel Interrut Status */
1285            uint32_t R;
1286            struct {
1287                uint32_t CIS31:1;      /* Channel 31 Interrut Status */
1288                uint32_t CIS30:1;      /* Channel 30 Interrut Status */
1289                uint32_t CIS29:1;      /* Channel 29 Interrut Status */
1290                uint32_t CIS28:1;      /* Channel 28 Interrut Status */
1291                uint32_t CIS27:1;      /* Channel 27 Interrut Status */
1292                uint32_t CIS26:1;      /* Channel 26 Interrut Status */
1293                uint32_t CIS25:1;      /* Channel 25 Interrut Status */
1294                uint32_t CIS24:1;      /* Channel 24 Interrut Status */
1295                uint32_t CIS23:1;      /* Channel 23 Interrut Status */
1296                uint32_t CIS22:1;      /* Channel 22 Interrut Status */
1297                uint32_t CIS21:1;      /* Channel 21 Interrut Status */
1298                uint32_t CIS20:1;      /* Channel 20 Interrut Status */
1299                uint32_t CIS19:1;      /* Channel 19 Interrut Status */
1300                uint32_t CIS18:1;      /* Channel 18 Interrut Status */
1301                uint32_t CIS17:1;      /* Channel 17 Interrut Status */
1302                uint32_t CIS16:1;      /* Channel 16 Interrut Status */
1303                uint32_t CIS15:1;      /* Channel 15 Interrut Status */
1304                uint32_t CIS14:1;      /* Channel 14 Interrut Status */
1305                uint32_t CIS13:1;      /* Channel 13 Interrut Status */
1306                uint32_t CIS12:1;      /* Channel 12 Interrut Status */
1307                uint32_t CIS11:1;      /* Channel 11 Interrut Status */
1308                uint32_t CIS10:1;      /* Channel 10 Interrut Status */
1309                uint32_t CIS9:1;       /* Channel 9 Interrut Status */
1310                uint32_t CIS8:1;       /* Channel 8 Interrut Status */
1311                uint32_t CIS7:1;       /* Channel 7 Interrut Status */
1312                uint32_t CIS6:1;       /* Channel 6 Interrut Status */
1313                uint32_t CIS5:1;       /* Channel 5 Interrut Status */
1314                uint32_t CIS4:1;       /* Channel 4 Interrut Status */
1315                uint32_t CIS3:1;       /* Channel 3 Interrut Status */
1316                uint32_t CIS2:1;       /* Channel 2 Interrut Status */
1317                uint32_t CIS1:1;       /* Channel 1 Interrut Status */
1318                uint32_t CIS0:1;       /* Channel 0 Interrut Status */
1319            } B;
1320        } CISR_A;
1321
1322        union {                 /* ETPU_B Channel Interruput Status */
1323            uint32_t R;
1324            struct {
1325                uint32_t CIS31:1;      /* Channel 31 Interrut Status */
1326                uint32_t CIS30:1;      /* Channel 30 Interrut Status */
1327                uint32_t CIS29:1;      /* Channel 29 Interrut Status */
1328                uint32_t CIS28:1;      /* Channel 28 Interrut Status */
1329                uint32_t CIS27:1;      /* Channel 27 Interrut Status */
1330                uint32_t CIS26:1;      /* Channel 26 Interrut Status */
1331                uint32_t CIS25:1;      /* Channel 25 Interrut Status */
1332                uint32_t CIS24:1;      /* Channel 24 Interrut Status */
1333                uint32_t CIS23:1;      /* Channel 23 Interrut Status */
1334                uint32_t CIS22:1;      /* Channel 22 Interrut Status */
1335                uint32_t CIS21:1;      /* Channel 21 Interrut Status */
1336                uint32_t CIS20:1;      /* Channel 20 Interrut Status */
1337                uint32_t CIS19:1;      /* Channel 19 Interrut Status */
1338                uint32_t CIS18:1;      /* Channel 18 Interrut Status */
1339                uint32_t CIS17:1;      /* Channel 17 Interrut Status */
1340                uint32_t CIS16:1;      /* Channel 16 Interrut Status */
1341                uint32_t CIS15:1;      /* Channel 15 Interrut Status */
1342                uint32_t CIS14:1;      /* Channel 14 Interrut Status */
1343                uint32_t CIS13:1;      /* Channel 13 Interrut Status */
1344                uint32_t CIS12:1;      /* Channel 12 Interrut Status */
1345                uint32_t CIS11:1;      /* Channel 11 Interrut Status */
1346                uint32_t CIS10:1;      /* Channel 10 Interrut Status */
1347                uint32_t CIS9:1;       /* Channel 9 Interrut Status */
1348                uint32_t CIS8:1;       /* Channel 8 Interrut Status */
1349                uint32_t CIS7:1;       /* Channel 7 Interrut Status */
1350                uint32_t CIS6:1;       /* Channel 6 Interrut Status */
1351                uint32_t CIS5:1;       /* Channel 5 Interrut Status */
1352                uint32_t CIS4:1;       /* Channel 4 Interrut Status */
1353                uint32_t CIS3:1;       /* Channel 3 Interrut Status */
1354                uint32_t CIS2:1;       /* Channel 2 Interrut Status */
1355                uint32_t CIS1:1;       /* Channel 1 Interrupt Status */
1356                uint32_t CIS0:1;       /* Channel 0 Interrupt Status */
1357            } B;
1358        } CISR_B;
1359
1360        uint32_t etpu_reserved9[2];
1361
1362        union {                 /* ETPU_A Data Transfer Request Status */
1363            uint32_t R;
1364            struct {
1365                uint32_t DTRS31:1;     /* Channel 31 Data Transfer Request Status */
1366                uint32_t DTRS30:1;     /* Channel 30 Data Transfer Request Status */
1367                uint32_t DTRS29:1;     /* Channel 29 Data Transfer Request Status */
1368                uint32_t DTRS28:1;     /* Channel 28 Data Transfer Request Status */
1369                uint32_t DTRS27:1;     /* Channel 27 Data Transfer Request Status */
1370                uint32_t DTRS26:1;     /* Channel 26 Data Transfer Request Status */
1371                uint32_t DTRS25:1;     /* Channel 25 Data Transfer Request Status */
1372                uint32_t DTRS24:1;     /* Channel 24 Data Transfer Request Status */
1373                uint32_t DTRS23:1;     /* Channel 23 Data Transfer Request Status */
1374                uint32_t DTRS22:1;     /* Channel 22 Data Transfer Request Status */
1375                uint32_t DTRS21:1;     /* Channel 21 Data Transfer Request Status */
1376                uint32_t DTRS20:1;     /* Channel 20 Data Transfer Request Status */
1377                uint32_t DTRS19:1;     /* Channel 19 Data Transfer Request Status */
1378                uint32_t DTRS18:1;     /* Channel 18 Data Transfer Request Status */
1379                uint32_t DTRS17:1;     /* Channel 17 Data Transfer Request Status */
1380                uint32_t DTRS16:1;     /* Channel 16 Data Transfer Request Status */
1381                uint32_t DTRS15:1;     /* Channel 15 Data Transfer Request Status */
1382                uint32_t DTRS14:1;     /* Channel 14 Data Transfer Request Status */
1383                uint32_t DTRS13:1;     /* Channel 13 Data Transfer Request Status */
1384                uint32_t DTRS12:1;     /* Channel 12 Data Transfer Request Status */
1385                uint32_t DTRS11:1;     /* Channel 11 Data Transfer Request Status */
1386                uint32_t DTRS10:1;     /* Channel 10 Data Transfer Request Status */
1387                uint32_t DTRS9:1;      /* Channel 9 Data Transfer Request Status */
1388                uint32_t DTRS8:1;      /* Channel 8 Data Transfer Request Status */
1389                uint32_t DTRS7:1;      /* Channel 7 Data Transfer Request Status */
1390                uint32_t DTRS6:1;      /* Channel 6 Data Transfer Request Status */
1391                uint32_t DTRS5:1;      /* Channel 5 Data Transfer Request Status */
1392                uint32_t DTRS4:1;      /* Channel 4 Data Transfer Request Status */
1393                uint32_t DTRS3:1;      /* Channel 3 Data Transfer Request Status */
1394                uint32_t DTRS2:1;      /* Channel 2 Data Transfer Request Status */
1395                uint32_t DTRS1:1;      /* Channel 1 Data Transfer Request Status */
1396                uint32_t DTRS0:1;      /* Channel 0 Data Transfer Request Status */
1397            } B;
1398        } CDTRSR_A;
1399
1400        union {                 /* ETPU_B Data Transfer Request Status */
1401            uint32_t R;
1402            struct {
1403                uint32_t DTRS31:1;     /* Channel 31 Data Transfer Request Status */
1404                uint32_t DTRS30:1;     /* Channel 30 Data Transfer Request Status */
1405                uint32_t DTRS29:1;     /* Channel 29 Data Transfer Request Status */
1406                uint32_t DTRS28:1;     /* Channel 28 Data Transfer Request Status */
1407                uint32_t DTRS27:1;     /* Channel 27 Data Transfer Request Status */
1408                uint32_t DTRS26:1;     /* Channel 26 Data Transfer Request Status */
1409                uint32_t DTRS25:1;     /* Channel 25 Data Transfer Request Status */
1410                uint32_t DTRS24:1;     /* Channel 24 Data Transfer Request Status */
1411                uint32_t DTRS23:1;     /* Channel 23 Data Transfer Request Status */
1412                uint32_t DTRS22:1;     /* Channel 22 Data Transfer Request Status */
1413                uint32_t DTRS21:1;     /* Channel 21 Data Transfer Request Status */
1414                uint32_t DTRS20:1;     /* Channel 20 Data Transfer Request Status */
1415                uint32_t DTRS19:1;     /* Channel 19 Data Transfer Request Status */
1416                uint32_t DTRS18:1;     /* Channel 18 Data Transfer Request Status */
1417                uint32_t DTRS17:1;     /* Channel 17 Data Transfer Request Status */
1418                uint32_t DTRS16:1;     /* Channel 16 Data Transfer Request Status */
1419                uint32_t DTRS15:1;     /* Channel 15 Data Transfer Request Status */
1420                uint32_t DTRS14:1;     /* Channel 14 Data Transfer Request Status */
1421                uint32_t DTRS13:1;     /* Channel 13 Data Transfer Request Status */
1422                uint32_t DTRS12:1;     /* Channel 12 Data Transfer Request Status */
1423                uint32_t DTRS11:1;     /* Channel 11 Data Transfer Request Status */
1424                uint32_t DTRS10:1;     /* Channel 10 Data Transfer Request Status */
1425                uint32_t DTRS9:1;      /* Channel 9 Data Transfer Request Status */
1426                uint32_t DTRS8:1;      /* Channel 8 Data Transfer Request Status */
1427                uint32_t DTRS7:1;      /* Channel 7 Data Transfer Request Status */
1428                uint32_t DTRS6:1;      /* Channel 6 Data Transfer Request Status */
1429                uint32_t DTRS5:1;      /* Channel 5 Data Transfer Request Status */
1430                uint32_t DTRS4:1;      /* Channel 4 Data Transfer Request Status */
1431                uint32_t DTRS3:1;      /* Channel 3 Data Transfer Request Status */
1432                uint32_t DTRS2:1;      /* Channel 2 Data Transfer Request Status */
1433                uint32_t DTRS1:1;      /* Channel 1 Data Transfer Request Status */
1434                uint32_t DTRS0:1;      /* Channel 0 Data Transfer Request Status */
1435            } B;
1436        } CDTRSR_B;
1437
1438        uint32_t etpu_reserved11[2];
1439
1440        union {                 /* ETPU_A Interruput Overflow Status */
1441            uint32_t R;
1442            struct {
1443                uint32_t CIOS31:1;     /* Channel 31 Interruput Overflow Status */
1444                uint32_t CIOS30:1;     /* Channel 30 Interruput Overflow Status */
1445                uint32_t CIOS29:1;     /* Channel 29 Interruput Overflow Status */
1446                uint32_t CIOS28:1;     /* Channel 28 Interruput Overflow Status */
1447                uint32_t CIOS27:1;     /* Channel 27 Interruput Overflow Status */
1448                uint32_t CIOS26:1;     /* Channel 26 Interruput Overflow Status */
1449                uint32_t CIOS25:1;     /* Channel 25 Interruput Overflow Status */
1450                uint32_t CIOS24:1;     /* Channel 24 Interruput Overflow Status */
1451                uint32_t CIOS23:1;     /* Channel 23 Interruput Overflow Status */
1452                uint32_t CIOS22:1;     /* Channel 22 Interruput Overflow Status */
1453                uint32_t CIOS21:1;     /* Channel 21 Interruput Overflow Status */
1454                uint32_t CIOS20:1;     /* Channel 20 Interruput Overflow Status */
1455                uint32_t CIOS19:1;     /* Channel 19 Interruput Overflow Status */
1456                uint32_t CIOS18:1;     /* Channel 18 Interruput Overflow Status */
1457                uint32_t CIOS17:1;     /* Channel 17 Interruput Overflow Status */
1458                uint32_t CIOS16:1;     /* Channel 16 Interruput Overflow Status */
1459                uint32_t CIOS15:1;     /* Channel 15 Interruput Overflow Status */
1460                uint32_t CIOS14:1;     /* Channel 14 Interruput Overflow Status */
1461                uint32_t CIOS13:1;     /* Channel 13 Interruput Overflow Status */
1462                uint32_t CIOS12:1;     /* Channel 12 Interruput Overflow Status */
1463                uint32_t CIOS11:1;     /* Channel 11 Interruput Overflow Status */
1464                uint32_t CIOS10:1;     /* Channel 10 Interruput Overflow Status */
1465                uint32_t CIOS9:1;      /* Channel 9 Interruput Overflow Status */
1466                uint32_t CIOS8:1;      /* Channel 8 Interruput Overflow Status */
1467                uint32_t CIOS7:1;      /* Channel 7 Interruput Overflow Status */
1468                uint32_t CIOS6:1;      /* Channel 6 Interruput Overflow Status */
1469                uint32_t CIOS5:1;      /* Channel 5 Interruput Overflow Status */
1470                uint32_t CIOS4:1;      /* Channel 4 Interruput Overflow Status */
1471                uint32_t CIOS3:1;      /* Channel 3 Interruput Overflow Status */
1472                uint32_t CIOS2:1;      /* Channel 2 Interruput Overflow Status */
1473                uint32_t CIOS1:1;      /* Channel 1 Interruput Overflow Status */
1474                uint32_t CIOS0:1;      /* Channel 0 Interruput Overflow Status */
1475            } B;
1476        } CIOSR_A;
1477
1478        union {                 /* ETPU_B Interruput Overflow Status */
1479            uint32_t R;
1480            struct {
1481                uint32_t CIOS31:1;     /* Channel 31 Interruput Overflow Status */
1482                uint32_t CIOS30:1;     /* Channel 30 Interruput Overflow Status */
1483                uint32_t CIOS29:1;     /* Channel 29 Interruput Overflow Status */
1484                uint32_t CIOS28:1;     /* Channel 28 Interruput Overflow Status */
1485                uint32_t CIOS27:1;     /* Channel 27 Interruput Overflow Status */
1486                uint32_t CIOS26:1;     /* Channel 26 Interruput Overflow Status */
1487                uint32_t CIOS25:1;     /* Channel 25 Interruput Overflow Status */
1488                uint32_t CIOS24:1;     /* Channel 24 Interruput Overflow Status */
1489                uint32_t CIOS23:1;     /* Channel 23 Interruput Overflow Status */
1490                uint32_t CIOS22:1;     /* Channel 22 Interruput Overflow Status */
1491                uint32_t CIOS21:1;     /* Channel 21 Interruput Overflow Status */
1492                uint32_t CIOS20:1;     /* Channel 20 Interruput Overflow Status */
1493                uint32_t CIOS19:1;     /* Channel 19 Interruput Overflow Status */
1494                uint32_t CIOS18:1;     /* Channel 18 Interruput Overflow Status */
1495                uint32_t CIOS17:1;     /* Channel 17 Interruput Overflow Status */
1496                uint32_t CIOS16:1;     /* Channel 16 Interruput Overflow Status */
1497                uint32_t CIOS15:1;     /* Channel 15 Interruput Overflow Status */
1498                uint32_t CIOS14:1;     /* Channel 14 Interruput Overflow Status */
1499                uint32_t CIOS13:1;     /* Channel 13 Interruput Overflow Status */
1500                uint32_t CIOS12:1;     /* Channel 12 Interruput Overflow Status */
1501                uint32_t CIOS11:1;     /* Channel 11 Interruput Overflow Status */
1502                uint32_t CIOS10:1;     /* Channel 10 Interruput Overflow Status */
1503                uint32_t CIOS9:1;      /* Channel 9 Interruput Overflow Status */
1504                uint32_t CIOS8:1;      /* Channel 8 Interruput Overflow Status */
1505                uint32_t CIOS7:1;      /* Channel 7 Interruput Overflow Status */
1506                uint32_t CIOS6:1;      /* Channel 6 Interruput Overflow Status */
1507                uint32_t CIOS5:1;      /* Channel 5 Interruput Overflow Status */
1508                uint32_t CIOS4:1;      /* Channel 4 Interruput Overflow Status */
1509                uint32_t CIOS3:1;      /* Channel 3 Interruput Overflow Status */
1510                uint32_t CIOS2:1;      /* Channel 2 Interruput Overflow Status */
1511                uint32_t CIOS1:1;      /* Channel 1 Interruput Overflow Status */
1512                uint32_t CIOS0:1;      /* Channel 0 Interruput Overflow Status */
1513            } B;
1514        } CIOSR_B;
1515
1516        uint32_t etpu_reserved13[2];
1517
1518        union {                 /* ETPU_A Data Transfer Overflow Status */
1519            uint32_t R;
1520            struct {
1521                uint32_t DTROS31:1;    /* Channel 31 Data Transfer Overflow Status */
1522                uint32_t DTROS30:1;    /* Channel 30 Data Transfer Overflow Status */
1523                uint32_t DTROS29:1;    /* Channel 29 Data Transfer Overflow Status */
1524                uint32_t DTROS28:1;    /* Channel 28 Data Transfer Overflow Status */
1525                uint32_t DTROS27:1;    /* Channel 27 Data Transfer Overflow Status */
1526                uint32_t DTROS26:1;    /* Channel 26 Data Transfer Overflow Status */
1527                uint32_t DTROS25:1;    /* Channel 25 Data Transfer Overflow Status */
1528                uint32_t DTROS24:1;    /* Channel 24 Data Transfer Overflow Status */
1529                uint32_t DTROS23:1;    /* Channel 23 Data Transfer Overflow Status */
1530                uint32_t DTROS22:1;    /* Channel 22 Data Transfer Overflow Status */
1531                uint32_t DTROS21:1;    /* Channel 21 Data Transfer Overflow Status */
1532                uint32_t DTROS20:1;    /* Channel 20 Data Transfer Overflow Status */
1533                uint32_t DTROS19:1;    /* Channel 19 Data Transfer Overflow Status */
1534                uint32_t DTROS18:1;    /* Channel 18 Data Transfer Overflow Status */
1535                uint32_t DTROS17:1;    /* Channel 17 Data Transfer Overflow Status */
1536                uint32_t DTROS16:1;    /* Channel 16 Data Transfer Overflow Status */
1537                uint32_t DTROS15:1;    /* Channel 15 Data Transfer Overflow Status */
1538                uint32_t DTROS14:1;    /* Channel 14 Data Transfer Overflow Status */
1539                uint32_t DTROS13:1;    /* Channel 13 Data Transfer Overflow Status */
1540                uint32_t DTROS12:1;    /* Channel 12 Data Transfer Overflow Status */
1541                uint32_t DTROS11:1;    /* Channel 11 Data Transfer Overflow Status */
1542                uint32_t DTROS10:1;    /* Channel 10 Data Transfer Overflow Status */
1543                uint32_t DTROS9:1;     /* Channel 9 Data Transfer Overflow Status */
1544                uint32_t DTROS8:1;     /* Channel 8 Data Transfer Overflow Status */
1545                uint32_t DTROS7:1;     /* Channel 7 Data Transfer Overflow Status */
1546                uint32_t DTROS6:1;     /* Channel 6 Data Transfer Overflow Status */
1547                uint32_t DTROS5:1;     /* Channel 5 Data Transfer Overflow Status */
1548                uint32_t DTROS4:1;     /* Channel 4 Data Transfer Overflow Status */
1549                uint32_t DTROS3:1;     /* Channel 3 Data Transfer Overflow Status */
1550                uint32_t DTROS2:1;     /* Channel 2 Data Transfer Overflow Status */
1551                uint32_t DTROS1:1;     /* Channel 1 Data Transfer Overflow Status */
1552                uint32_t DTROS0:1;     /* Channel 0 Data Transfer Overflow Status */
1553            } B;
1554        } CDTROSR_A;
1555
1556        union {                 /* ETPU_B Data Transfer Overflow Status */
1557            uint32_t R;
1558            struct {
1559                uint32_t DTROS31:1;    /* Channel 31 Data Transfer Overflow Status */
1560                uint32_t DTROS30:1;    /* Channel 30 Data Transfer Overflow Status */
1561                uint32_t DTROS29:1;    /* Channel 29 Data Transfer Overflow Status */
1562                uint32_t DTROS28:1;    /* Channel 28 Data Transfer Overflow Status */
1563                uint32_t DTROS27:1;    /* Channel 27 Data Transfer Overflow Status */
1564                uint32_t DTROS26:1;    /* Channel 26 Data Transfer Overflow Status */
1565                uint32_t DTROS25:1;    /* Channel 25 Data Transfer Overflow Status */
1566                uint32_t DTROS24:1;    /* Channel 24 Data Transfer Overflow Status */
1567                uint32_t DTROS23:1;    /* Channel 23 Data Transfer Overflow Status */
1568                uint32_t DTROS22:1;    /* Channel 22 Data Transfer Overflow Status */
1569                uint32_t DTROS21:1;    /* Channel 21 Data Transfer Overflow Status */
1570                uint32_t DTROS20:1;    /* Channel 20 Data Transfer Overflow Status */
1571                uint32_t DTROS19:1;    /* Channel 19 Data Transfer Overflow Status */
1572                uint32_t DTROS18:1;    /* Channel 18 Data Transfer Overflow Status */
1573                uint32_t DTROS17:1;    /* Channel 17 Data Transfer Overflow Status */
1574                uint32_t DTROS16:1;    /* Channel 16 Data Transfer Overflow Status */
1575                uint32_t DTROS15:1;    /* Channel 15 Data Transfer Overflow Status */
1576                uint32_t DTROS14:1;    /* Channel 14 Data Transfer Overflow Status */
1577                uint32_t DTROS13:1;    /* Channel 13 Data Transfer Overflow Status */
1578                uint32_t DTROS12:1;    /* Channel 12 Data Transfer Overflow Status */
1579                uint32_t DTROS11:1;    /* Channel 11 Data Transfer Overflow Status */
1580                uint32_t DTROS10:1;    /* Channel 10 Data Transfer Overflow Status */
1581                uint32_t DTROS9:1;     /* Channel 9 Data Transfer Overflow Status */
1582                uint32_t DTROS8:1;     /* Channel 8 Data Transfer Overflow Status */
1583                uint32_t DTROS7:1;     /* Channel 7 Data Transfer Overflow Status */
1584                uint32_t DTROS6:1;     /* Channel 6 Data Transfer Overflow Status */
1585                uint32_t DTROS5:1;     /* Channel 5 Data Transfer Overflow Status */
1586                uint32_t DTROS4:1;     /* Channel 4 Data Transfer Overflow Status */
1587                uint32_t DTROS3:1;     /* Channel 3 Data Transfer Overflow Status */
1588                uint32_t DTROS2:1;     /* Channel 2 Data Transfer Overflow Status */
1589                uint32_t DTROS1:1;     /* Channel 1 Data Transfer Overflow Status */
1590                uint32_t DTROS0:1;     /* Channel 0 Data Transfer Overflow Status */
1591            } B;
1592        } CDTROSR_B;
1593
1594        uint32_t etpu_reserved15[2];
1595
1596        union {                 /* ETPU_A Channel Interruput Enable */
1597            uint32_t R;
1598            struct {
1599                uint32_t CIE31:1;      /* Channel 31 Interruput Enable */
1600                uint32_t CIE30:1;      /* Channel 30 Interruput Enable */
1601                uint32_t CIE29:1;      /* Channel 29 Interruput Enable */
1602                uint32_t CIE28:1;      /* Channel 28 Interruput Enable */
1603                uint32_t CIE27:1;      /* Channel 27 Interruput Enable */
1604                uint32_t CIE26:1;      /* Channel 26 Interruput Enable */
1605                uint32_t CIE25:1;      /* Channel 25 Interruput Enable */
1606                uint32_t CIE24:1;      /* Channel 24 Interruput Enable */
1607                uint32_t CIE23:1;      /* Channel 23 Interruput Enable */
1608                uint32_t CIE22:1;      /* Channel 22 Interruput Enable */
1609                uint32_t CIE21:1;      /* Channel 21 Interruput Enable */
1610                uint32_t CIE20:1;      /* Channel 20 Interruput Enable */
1611                uint32_t CIE19:1;      /* Channel 19 Interruput Enable */
1612                uint32_t CIE18:1;      /* Channel 18 Interruput Enable */
1613                uint32_t CIE17:1;      /* Channel 17 Interruput Enable */
1614                uint32_t CIE16:1;      /* Channel 16 Interruput Enable */
1615                uint32_t CIE15:1;      /* Channel 15 Interruput Enable */
1616                uint32_t CIE14:1;      /* Channel 14 Interruput Enable */
1617                uint32_t CIE13:1;      /* Channel 13 Interruput Enable */
1618                uint32_t CIE12:1;      /* Channel 12 Interruput Enable */
1619                uint32_t CIE11:1;      /* Channel 11 Interruput Enable */
1620                uint32_t CIE10:1;      /* Channel 10 Interruput Enable */
1621                uint32_t CIE9:1;       /* Channel 9 Interruput Enable */
1622                uint32_t CIE8:1;       /* Channel 8 Interruput Enable */
1623                uint32_t CIE7:1;       /* Channel 7 Interruput Enable */
1624                uint32_t CIE6:1;       /* Channel 6 Interruput Enable */
1625                uint32_t CIE5:1;       /* Channel 5 Interruput Enable */
1626                uint32_t CIE4:1;       /* Channel 4 Interruput Enable */
1627                uint32_t CIE3:1;       /* Channel 3 Interruput Enable */
1628                uint32_t CIE2:1;       /* Channel 2 Interruput Enable */
1629                uint32_t CIE1:1;       /* Channel 1 Interruput Enable */
1630                uint32_t CIE0:1;       /* Channel 0 Interruput Enable */
1631            } B;
1632        } CIER_A;
1633
1634        union {                 /* ETPU_B Channel Interruput Enable */
1635            uint32_t R;
1636            struct {
1637                uint32_t CIE31:1;      /* Channel 31 Interruput Enable */
1638                uint32_t CIE30:1;      /* Channel 30 Interruput Enable */
1639                uint32_t CIE29:1;      /* Channel 29 Interruput Enable */
1640                uint32_t CIE28:1;      /* Channel 28 Interruput Enable */
1641                uint32_t CIE27:1;      /* Channel 27 Interruput Enable */
1642                uint32_t CIE26:1;      /* Channel 26 Interruput Enable */
1643                uint32_t CIE25:1;      /* Channel 25 Interruput Enable */
1644                uint32_t CIE24:1;      /* Channel 24 Interruput Enable */
1645                uint32_t CIE23:1;      /* Channel 23 Interruput Enable */
1646                uint32_t CIE22:1;      /* Channel 22 Interruput Enable */
1647                uint32_t CIE21:1;      /* Channel 21 Interruput Enable */
1648                uint32_t CIE20:1;      /* Channel 20 Interruput Enable */
1649                uint32_t CIE19:1;      /* Channel 19 Interruput Enable */
1650                uint32_t CIE18:1;      /* Channel 18 Interruput Enable */
1651                uint32_t CIE17:1;      /* Channel 17 Interruput Enable */
1652                uint32_t CIE16:1;      /* Channel 16 Interruput Enable */
1653                uint32_t CIE15:1;      /* Channel 15 Interruput Enable */
1654                uint32_t CIE14:1;      /* Channel 14 Interruput Enable */
1655                uint32_t CIE13:1;      /* Channel 13 Interruput Enable */
1656                uint32_t CIE12:1;      /* Channel 12 Interruput Enable */
1657                uint32_t CIE11:1;      /* Channel 11 Interruput Enable */
1658                uint32_t CIE10:1;      /* Channel 10 Interruput Enable */
1659                uint32_t CIE9:1;       /* Channel 9 Interruput Enable */
1660                uint32_t CIE8:1;       /* Channel 8 Interruput Enable */
1661                uint32_t CIE7:1;       /* Channel 7 Interruput Enable */
1662                uint32_t CIE6:1;       /* Channel 6 Interruput Enable */
1663                uint32_t CIE5:1;       /* Channel 5 Interruput Enable */
1664                uint32_t CIE4:1;       /* Channel 4 Interruput Enable */
1665                uint32_t CIE3:1;       /* Channel 3 Interruput Enable */
1666                uint32_t CIE2:1;       /* Channel 2 Interruput Enable */
1667                uint32_t CIE1:1;       /* Channel 1 Interruput Enable */
1668                uint32_t CIE0:1;       /* Channel 0 Interruput Enable */
1669            } B;
1670        } CIER_B;
1671
1672        uint32_t etpu_reserved17[2];
1673
1674        union {                 /* ETPU_A Channel Data Transfer Request Enable */
1675            uint32_t R;
1676            struct {
1677                uint32_t DTRE31:1;     /* Channel 31 Data Transfer Request Enable */
1678                uint32_t DTRE30:1;     /* Channel 30 Data Transfer Request Enable */
1679                uint32_t DTRE29:1;     /* Channel 29 Data Transfer Request Enable */
1680                uint32_t DTRE28:1;     /* Channel 28 Data Transfer Request Enable */
1681                uint32_t DTRE27:1;     /* Channel 27 Data Transfer Request Enable */
1682                uint32_t DTRE26:1;     /* Channel 26 Data Transfer Request Enable */
1683                uint32_t DTRE25:1;     /* Channel 25 Data Transfer Request Enable */
1684                uint32_t DTRE24:1;     /* Channel 24 Data Transfer Request Enable */
1685                uint32_t DTRE23:1;     /* Channel 23 Data Transfer Request Enable */
1686                uint32_t DTRE22:1;     /* Channel 22 Data Transfer Request Enable */
1687                uint32_t DTRE21:1;     /* Channel 21 Data Transfer Request Enable */
1688                uint32_t DTRE20:1;     /* Channel 20 Data Transfer Request Enable */
1689                uint32_t DTRE19:1;     /* Channel 19 Data Transfer Request Enable */
1690                uint32_t DTRE18:1;     /* Channel 18 Data Transfer Request Enable */
1691                uint32_t DTRE17:1;     /* Channel 17 Data Transfer Request Enable */
1692                uint32_t DTRE16:1;     /* Channel 16 Data Transfer Request Enable */
1693                uint32_t DTRE15:1;     /* Channel 15 Data Transfer Request Enable */
1694                uint32_t DTRE14:1;     /* Channel 14 Data Transfer Request Enable */
1695                uint32_t DTRE13:1;     /* Channel 13 Data Transfer Request Enable */
1696                uint32_t DTRE12:1;     /* Channel 12 Data Transfer Request Enable */
1697                uint32_t DTRE11:1;     /* Channel 11 Data Transfer Request Enable */
1698                uint32_t DTRE10:1;     /* Channel 10 Data Transfer Request Enable */
1699                uint32_t DTRE9:1;      /* Channel 9 Data Transfer Request Enable */
1700                uint32_t DTRE8:1;      /* Channel 8 Data Transfer Request Enable */
1701                uint32_t DTRE7:1;      /* Channel 7 Data Transfer Request Enable */
1702                uint32_t DTRE6:1;      /* Channel 6 Data Transfer Request Enable */
1703                uint32_t DTRE5:1;      /* Channel 5 Data Transfer Request Enable */
1704                uint32_t DTRE4:1;      /* Channel 4 Data Transfer Request Enable */
1705                uint32_t DTRE3:1;      /* Channel 3 Data Transfer Request Enable */
1706                uint32_t DTRE2:1;      /* Channel 2 Data Transfer Request Enable */
1707                uint32_t DTRE1:1;      /* Channel 1 Data Transfer Request Enable */
1708                uint32_t DTRE0:1;      /* Channel 0 Data Transfer Request Enable */
1709            } B;
1710        } CDTRER_A;
1711
1712        union {                 /* ETPU_B Channel Data Transfer Request Enable */
1713            uint32_t R;
1714            struct {
1715                uint32_t DTRE31:1;     /* Channel 31 Data Transfer Request Enable */
1716                uint32_t DTRE30:1;     /* Channel 30 Data Transfer Request Enable */
1717                uint32_t DTRE29:1;     /* Channel 29 Data Transfer Request Enable */
1718                uint32_t DTRE28:1;     /* Channel 28 Data Transfer Request Enable */
1719                uint32_t DTRE27:1;     /* Channel 27 Data Transfer Request Enable */
1720                uint32_t DTRE26:1;     /* Channel 26 Data Transfer Request Enable */
1721                uint32_t DTRE25:1;     /* Channel 25 Data Transfer Request Enable */
1722                uint32_t DTRE24:1;     /* Channel 24 Data Transfer Request Enable */
1723                uint32_t DTRE23:1;     /* Channel 23 Data Transfer Request Enable */
1724                uint32_t DTRE22:1;     /* Channel 22 Data Transfer Request Enable */
1725                uint32_t DTRE21:1;     /* Channel 21 Data Transfer Request Enable */
1726                uint32_t DTRE20:1;     /* Channel 20 Data Transfer Request Enable */
1727                uint32_t DTRE19:1;     /* Channel 19 Data Transfer Request Enable */
1728                uint32_t DTRE18:1;     /* Channel 18 Data Transfer Request Enable */
1729                uint32_t DTRE17:1;     /* Channel 17 Data Transfer Request Enable */
1730                uint32_t DTRE16:1;     /* Channel 16 Data Transfer Request Enable */
1731                uint32_t DTRE15:1;     /* Channel 15 Data Transfer Request Enable */
1732                uint32_t DTRE14:1;     /* Channel 14 Data Transfer Request Enable */
1733                uint32_t DTRE13:1;     /* Channel 13 Data Transfer Request Enable */
1734                uint32_t DTRE12:1;     /* Channel 12 Data Transfer Request Enable */
1735                uint32_t DTRE11:1;     /* Channel 11 Data Transfer Request Enable */
1736                uint32_t DTRE10:1;     /* Channel 10 Data Transfer Request Enable */
1737                uint32_t DTRE9:1;      /* Channel 9 Data Transfer Request Enable */
1738                uint32_t DTRE8:1;      /* Channel 8 Data Transfer Request Enable */
1739                uint32_t DTRE7:1;      /* Channel 7 Data Transfer Request Enable */
1740                uint32_t DTRE6:1;      /* Channel 6 Data Transfer Request Enable */
1741                uint32_t DTRE5:1;      /* Channel 5 Data Transfer Request Enable */
1742                uint32_t DTRE4:1;      /* Channel 4 Data Transfer Request Enable */
1743                uint32_t DTRE3:1;      /* Channel 3 Data Transfer Request Enable */
1744                uint32_t DTRE2:1;      /* Channel 2 Data Transfer Request Enable */
1745                uint32_t DTRE1:1;      /* Channel 1 Data Transfer Request Enable */
1746                uint32_t DTRE0:1;      /* Channel 0 Data Transfer Request Enable */
1747            } B;
1748        } CDTRER_B;
1749
1750        uint32_t etpu_reserved20[10];
1751        union {                 /* ETPU_A Channel Pending Service Status */
1752            uint32_t R;
1753            struct {
1754                uint32_t SR31:1;       /* Channel 31 Pending Service Status */
1755                uint32_t SR30:1;       /* Channel 30 Pending Service Status */
1756                uint32_t SR29:1;       /* Channel 29 Pending Service Status */
1757                uint32_t SR28:1;       /* Channel 28 Pending Service Status */
1758                uint32_t SR27:1;       /* Channel 27 Pending Service Status */
1759                uint32_t SR26:1;       /* Channel 26 Pending Service Status */
1760                uint32_t SR25:1;       /* Channel 25 Pending Service Status */
1761                uint32_t SR24:1;       /* Channel 24 Pending Service Status */
1762                uint32_t SR23:1;       /* Channel 23 Pending Service Status */
1763                uint32_t SR22:1;       /* Channel 22 Pending Service Status */
1764                uint32_t SR21:1;       /* Channel 21 Pending Service Status */
1765                uint32_t SR20:1;       /* Channel 20 Pending Service Status */
1766                uint32_t SR19:1;       /* Channel 19 Pending Service Status */
1767                uint32_t SR18:1;       /* Channel 18 Pending Service Status */
1768                uint32_t SR17:1;       /* Channel 17 Pending Service Status */
1769                uint32_t SR16:1;       /* Channel 16 Pending Service Status */
1770                uint32_t SR15:1;       /* Channel 15 Pending Service Status */
1771                uint32_t SR14:1;       /* Channel 14 Pending Service Status */
1772                uint32_t SR13:1;       /* Channel 13 Pending Service Status */
1773                uint32_t SR12:1;       /* Channel 12 Pending Service Status */
1774                uint32_t SR11:1;       /* Channel 11 Pending Service Status */
1775                uint32_t SR10:1;       /* Channel 10 Pending Service Status */
1776                uint32_t SR9:1;        /* Channel 9 Pending Service Status */
1777                uint32_t SR8:1;        /* Channel 8 Pending Service Status */
1778                uint32_t SR7:1;        /* Channel 7 Pending Service Status */
1779                uint32_t SR6:1;        /* Channel 6 Pending Service Status */
1780                uint32_t SR5:1;        /* Channel 5 Pending Service Status */
1781                uint32_t SR4:1;        /* Channel 4 Pending Service Status */
1782                uint32_t SR3:1;        /* Channel 3 Pending Service Status */
1783                uint32_t SR2:1;        /* Channel 2 Pending Service Status */
1784                uint32_t SR1:1;        /* Channel 1 Pending Service Status */
1785                uint32_t SR0:1;        /* Channel 0 Pending Service Status */
1786            } B;
1787        } CPSSR_A;
1788
1789        union {                 /* ETPU_B Channel Pending Service Status */
1790            uint32_t R;
1791            struct {
1792                uint32_t SR31:1;       /* Channel 31 Pending Service Status */
1793                uint32_t SR30:1;       /* Channel 30 Pending Service Status */
1794                uint32_t SR29:1;       /* Channel 29 Pending Service Status */
1795                uint32_t SR28:1;       /* Channel 28 Pending Service Status */
1796                uint32_t SR27:1;       /* Channel 27 Pending Service Status */
1797                uint32_t SR26:1;       /* Channel 26 Pending Service Status */
1798                uint32_t SR25:1;       /* Channel 25 Pending Service Status */
1799                uint32_t SR24:1;       /* Channel 24 Pending Service Status */
1800                uint32_t SR23:1;       /* Channel 23 Pending Service Status */
1801                uint32_t SR22:1;       /* Channel 22 Pending Service Status */
1802                uint32_t SR21:1;       /* Channel 21 Pending Service Status */
1803                uint32_t SR20:1;       /* Channel 20 Pending Service Status */
1804                uint32_t SR19:1;       /* Channel 19 Pending Service Status */
1805                uint32_t SR18:1;       /* Channel 18 Pending Service Status */
1806                uint32_t SR17:1;       /* Channel 17 Pending Service Status */
1807                uint32_t SR16:1;       /* Channel 16 Pending Service Status */
1808                uint32_t SR15:1;       /* Channel 15 Pending Service Status */
1809                uint32_t SR14:1;       /* Channel 14 Pending Service Status */
1810                uint32_t SR13:1;       /* Channel 13 Pending Service Status */
1811                uint32_t SR12:1;       /* Channel 12 Pending Service Status */
1812                uint32_t SR11:1;       /* Channel 11 Pending Service Status */
1813                uint32_t SR10:1;       /* Channel 10 Pending Service Status */
1814                uint32_t SR9:1;        /* Channel 9 Pending Service Status */
1815                uint32_t SR8:1;        /* Channel 8 Pending Service Status */
1816                uint32_t SR7:1;        /* Channel 7 Pending Service Status */
1817                uint32_t SR6:1;        /* Channel 6 Pending Service Status */
1818                uint32_t SR5:1;        /* Channel 5 Pending Service Status */
1819                uint32_t SR4:1;        /* Channel 4 Pending Service Status */
1820                uint32_t SR3:1;        /* Channel 3 Pending Service Status */
1821                uint32_t SR2:1;        /* Channel 2 Pending Service Status */
1822                uint32_t SR1:1;        /* Channel 1 Pending Service Status */
1823                uint32_t SR0:1;        /* Channel 0 Pending Service Status */
1824            } B;
1825        } CPSSR_B;
1826
1827        uint32_t etpu_reserved20a[2];
1828
1829        union {                 /* ETPU_A Channel Service Status */
1830            uint32_t R;
1831            struct {
1832                uint32_t SS31:1;       /* Channel 31 Service Status */
1833                uint32_t SS30:1;       /* Channel 30 Service Status */
1834                uint32_t SS29:1;       /* Channel 29 Service Status */
1835                uint32_t SS28:1;       /* Channel 28 Service Status */
1836                uint32_t SS27:1;       /* Channel 27 Service Status */
1837                uint32_t SS26:1;       /* Channel 26 Service Status */
1838                uint32_t SS25:1;       /* Channel 25 Service Status */
1839                uint32_t SS24:1;       /* Channel 24 Service Status */
1840                uint32_t SS23:1;       /* Channel 23 Service Status */
1841                uint32_t SS22:1;       /* Channel 22 Service Status */
1842                uint32_t SS21:1;       /* Channel 21 Service Status */
1843                uint32_t SS20:1;       /* Channel 20 Service Status */
1844                uint32_t SS19:1;       /* Channel 19 Service Status */
1845                uint32_t SS18:1;       /* Channel 18 Service Status */
1846                uint32_t SS17:1;       /* Channel 17 Service Status */
1847                uint32_t SS16:1;       /* Channel 16 Service Status */
1848                uint32_t SS15:1;       /* Channel 15 Service Status */
1849                uint32_t SS14:1;       /* Channel 14 Service Status */
1850                uint32_t SS13:1;       /* Channel 13 Service Status */
1851                uint32_t SS12:1;       /* Channel 12 Service Status */
1852                uint32_t SS11:1;       /* Channel 11 Service Status */
1853                uint32_t SS10:1;       /* Channel 10 Service Status */
1854                uint32_t SS9:1;        /* Channel 9 Service Status */
1855                uint32_t SS8:1;        /* Channel 8 Service Status */
1856                uint32_t SS7:1;        /* Channel 7 Service Status */
1857                uint32_t SS6:1;        /* Channel 6 Service Status */
1858                uint32_t SS5:1;        /* Channel 5 Service Status */
1859                uint32_t SS4:1;        /* Channel 4 Service Status */
1860                uint32_t SS3:1;        /* Channel 3 Service Status */
1861                uint32_t SS2:1;        /* Channel 2 Service Status */
1862                uint32_t SS1:1;        /* Channel 1 Service Status */
1863                uint32_t SS0:1;        /* Channel 0 Service Status */
1864            } B;
1865        } CSSR_A;
1866
1867        union {                 /* ETPU_B Channel Service Status */
1868            uint32_t R;
1869            struct {
1870                uint32_t SS31:1;       /* Channel 31 Service Status */
1871                uint32_t SS30:1;       /* Channel 30 Service Status */
1872                uint32_t SS29:1;       /* Channel 29 Service Status */
1873                uint32_t SS28:1;       /* Channel 28 Service Status */
1874                uint32_t SS27:1;       /* Channel 27 Service Status */
1875                uint32_t SS26:1;       /* Channel 26 Service Status */
1876                uint32_t SS25:1;       /* Channel 25 Service Status */
1877                uint32_t SS24:1;       /* Channel 24 Service Status */
1878                uint32_t SS23:1;       /* Channel 23 Service Status */
1879                uint32_t SS22:1;       /* Channel 22 Service Status */
1880                uint32_t SS21:1;       /* Channel 21 Service Status */
1881                uint32_t SS20:1;       /* Channel 20 Service Status */
1882                uint32_t SS19:1;       /* Channel 19 Service Status */
1883                uint32_t SS18:1;       /* Channel 18 Service Status */
1884                uint32_t SS17:1;       /* Channel 17 Service Status */
1885                uint32_t SS16:1;       /* Channel 16 Service Status */
1886                uint32_t SS15:1;       /* Channel 15 Service Status */
1887                uint32_t SS14:1;       /* Channel 14 Service Status */
1888                uint32_t SS13:1;       /* Channel 13 Service Status */
1889                uint32_t SS12:1;       /* Channel 12 Service Status */
1890                uint32_t SS11:1;       /* Channel 11 Service Status */
1891                uint32_t SS10:1;       /* Channel 10 Service Status */
1892                uint32_t SS9:1;        /* Channel 9 Service Status */
1893                uint32_t SS8:1;        /* Channel 8 Service Status */
1894                uint32_t SS7:1;        /* Channel 7 Service Status */
1895                uint32_t SS6:1;        /* Channel 6 Service Status */
1896                uint32_t SS5:1;        /* Channel 5 Service Status */
1897                uint32_t SS4:1;        /* Channel 4 Service Status */
1898                uint32_t SS3:1;        /* Channel 3 Service Status */
1899                uint32_t SS2:1;        /* Channel 2 Service Status */
1900                uint32_t SS1:1;        /* Channel 1 Service Status */
1901                uint32_t SS0:1;        /* Channel 0 Service Status */
1902            } B;
1903        } CSSR_B;
1904
1905        uint32_t etpu_reserved23[90];
1906
1907/*****************************Channels********************************/
1908
1909        struct {
1910            union {
1911                uint32_t R;    /* Channel Configuration Register */
1912                struct {
1913                    uint32_t CIE:1;    /* Channel Interruput Enable */
1914                    uint32_t DTRE:1;   /* Data Transfer Request Enable */
1915                    uint32_t CPR:2;    /* Channel Priority */
1916                      uint32_t:3;
1917                    uint32_t ETCS:1;   /* Entry Table Condition Select */
1918                      uint32_t:3;
1919                    uint32_t CFS:5;    /* Channel Function Select */
1920                    uint32_t ODIS:1;   /* Output disable */
1921                    uint32_t OPOL:1;   /* output polarity */
1922                      uint32_t:3;
1923                    uint32_t CPBA:11;  /* Channel Parameter Base Address */
1924                } B;
1925            } CR;
1926            union {
1927                uint32_t R;    /* Channel Status Control Register */
1928                struct {
1929                    uint32_t CIS:1;    /* Channel Interruput Status */
1930                    uint32_t CIOS:1;   /* Channel Interruput Overflow Status */
1931                      uint32_t:6;
1932                    uint32_t DTRS:1;   /* Data Transfer Status */
1933                    uint32_t DTROS:1;  /* Data Transfer Overflow Status */
1934                      uint32_t:6;
1935                    uint32_t IPS:1;    /* Input Pin State */
1936                    uint32_t OPS:1;    /* Output Pin State */
1937                    uint32_t OBE:1;    /* Output Buffer Enable */
1938                      uint32_t:11;
1939                    uint32_t FM1:1;    /* Function mode */
1940                    uint32_t FM0:1;    /* Function mode */
1941                } B;
1942            } SCR;
1943            union {
1944                uint32_t R;    /* Channel Host Service Request Register */
1945                struct {
1946                    uint32_t:29;       /* Host Service Request */
1947                    uint32_t HSR:3;
1948                } B;
1949            } HSRR;
1950            uint32_t etpu_reserved23;
1951        } CHAN[127];
1952
1953    };
1954/****************************************************************************/
1955/*                          MODULE : XBAR CrossBar                          */
1956/****************************************************************************/
1957    struct XBAR_tag {
1958        union {
1959            uint32_t R;
1960            struct {
1961                uint32_t:4;
1962
1963                uint32_t:4;
1964
1965                uint32_t:4;
1966
1967                uint32_t:4;
1968
1969                uint32_t:1;
1970                uint32_t MSTR3:3;      /* FEC */
1971
1972                  uint32_t:1;
1973                uint32_t MSTR2:3;
1974                  uint32_t:1;
1975                uint32_t MSTR1:3;
1976                  uint32_t:1;
1977                uint32_t MSTR0:3;
1978            } B;
1979        } MPR0;                 /* Master Priority Register for Slave Port 0 */
1980
1981        uint32_t xbar_reserved1[3];
1982
1983        union {
1984            uint32_t R;
1985            struct {
1986                uint32_t RO:1;
1987                  uint32_t:21;
1988                uint32_t ARB:2;
1989                  uint32_t:2;
1990                uint32_t PCTL:2;
1991                  uint32_t:1;
1992                uint32_t PARK:3;
1993            } B;
1994        } SGPCR0;               /* General Purpose Control Register for Slave Port 0 */
1995
1996        uint32_t xbar_reserved2[59];
1997
1998        union {
1999            uint32_t R;
2000            struct {
2001                uint32_t:4;
2002
2003                uint32_t:4;
2004
2005                uint32_t:4;
2006
2007                uint32_t:4;
2008
2009                uint32_t:1;
2010                uint32_t MSTR3:3;      /* FEC */
2011
2012                  uint32_t:1;
2013                uint32_t MSTR2:3;
2014                  uint32_t:1;
2015                uint32_t MSTR1:3;
2016                  uint32_t:1;
2017                uint32_t MSTR0:3;
2018            } B;
2019        } MPR1;                 /* Master Priority Register for Slave Port 1 */
2020
2021        uint32_t xbar_reserved3[3];
2022
2023        union {
2024            uint32_t R;
2025            struct {
2026                uint32_t RO:1;
2027                  uint32_t:21;
2028                uint32_t ARB:2;
2029                  uint32_t:2;
2030                uint32_t PCTL:2;
2031                  uint32_t:1;
2032                uint32_t PARK:3;
2033            } B;
2034        } SGPCR1;               /* General Purpose Control Register for Slave Port 1 */
2035
2036        uint32_t xbar_reserved4[123];
2037
2038        union {
2039            uint32_t R;
2040            struct {
2041                uint32_t:4;
2042
2043                uint32_t:4;
2044
2045                uint32_t:4;
2046
2047                uint32_t:4;
2048
2049                uint32_t:1;
2050                uint32_t MSTR3:3;      /* FEC */
2051
2052                  uint32_t:1;
2053                uint32_t MSTR2:3;
2054                  uint32_t:1;
2055                uint32_t MSTR1:3;
2056                  uint32_t:1;
2057                uint32_t MSTR0:3;
2058            } B;
2059        } MPR3;                 /* Master Priority Register for Slave Port 3 */
2060
2061        uint32_t xbar_reserved5[3];
2062
2063        union {
2064            uint32_t R;
2065            struct {
2066                uint32_t RO:1;
2067                  uint32_t:21;
2068                uint32_t ARB:2;
2069                  uint32_t:2;
2070                uint32_t PCTL:2;
2071                  uint32_t:1;
2072                uint32_t PARK:3;
2073            } B;
2074        } SGPCR3;               /* General Purpose Control Register for Slave Port 3 */
2075
2076        uint32_t xbar_reserved6[187];
2077
2078        union {
2079            uint32_t R;
2080            struct {
2081                uint32_t:4;
2082
2083                uint32_t:4;
2084
2085                uint32_t:4;
2086
2087                uint32_t:4;
2088
2089                uint32_t:1;
2090                uint32_t MSTR3:3;      /* FEC */
2091
2092                  uint32_t:1;
2093                uint32_t MSTR2:3;
2094                  uint32_t:1;
2095                uint32_t MSTR1:3;
2096                  uint32_t:1;
2097                uint32_t MSTR0:3;
2098            } B;
2099        } MPR6;                 /* Master Priority Register for Slave Port 6 */
2100
2101        uint32_t xbar_reserved7[3];
2102
2103        union {
2104            uint32_t R;
2105            struct {
2106                uint32_t RO:1;
2107                  uint32_t:21;
2108                uint32_t ARB:2;
2109                  uint32_t:2;
2110                uint32_t PCTL:2;
2111                  uint32_t:1;
2112                uint32_t PARK:3;
2113            } B;
2114        } SGPCR6;               /* General Purpose Control Register for Slave Port 6 */
2115
2116        uint32_t xbar_reserved8[59];
2117
2118        union {
2119            uint32_t R;
2120            struct {
2121                uint32_t:4;
2122
2123                uint32_t:4;
2124
2125                uint32_t:4;
2126
2127                uint32_t:4;
2128
2129                uint32_t:1;
2130                uint32_t MSTR3:3;      /* FEC */
2131
2132                  uint32_t:1;
2133                uint32_t MSTR2:3;
2134                  uint32_t:1;
2135                uint32_t MSTR1:3;
2136                  uint32_t:1;
2137                uint32_t MSTR0:3;
2138            } B;
2139        } MPR7;                 /* Master Priority Register for Slave Port 7 */
2140
2141        uint32_t xbar_reserved9[3];
2142
2143        union {
2144            uint32_t R;
2145            struct {
2146                uint32_t RO:1;
2147                  uint32_t:21;
2148                uint32_t ARB:2;
2149                  uint32_t:2;
2150                uint32_t PCTL:2;
2151                  uint32_t:1;
2152                uint32_t PARK:3;
2153            } B;
2154        } SGPCR7;               /* General Purpose Control Register for Slave Port 7 */
2155
2156    };
2157/****************************************************************************/
2158/*                     MODULE : ECSM                                        */
2159/****************************************************************************/
2160    struct ECSM_tag {
2161
2162        uint32_t ecsm_reserved1[5];
2163
2164        uint16_t ecsm_reserved2;
2165
2166        union {
2167            uint16_t R;
2168        } SWTCR;                /* Software Watchdog Timer Control */
2169
2170        uint8_t ecsm_reserved3[3];
2171
2172        union {
2173            uint8_t R;
2174        } SWTSR;                /* SWT Service Register */
2175
2176        uint8_t ecsm_reserved4[3];
2177
2178        union {
2179            uint8_t R;
2180        } SWTIR;                /* SWT Interrupt Register */
2181
2182        uint32_t ecsm_reserved5a[1];
2183
2184        union {
2185            uint32_t R;
2186            struct {
2187                uint32_t FSBCR0:1;
2188                uint32_t FSBCR1:1;
2189                uint32_t FSBCR2:1;
2190                uint32_t FSBCR3:1;
2191                uint32_t FSBCR4:1;
2192                uint32_t FSBCR5:1;
2193                uint32_t FSBCR6:1;
2194                uint32_t FSBCR7:1;
2195                uint32_t RBEN:1;
2196                uint32_t WBEN:1;
2197                uint32_t ACCERR:1;
2198                  uint32_t:21;
2199            } B;
2200        } FSBMCR;               /*  FEC System Bus Master Control Register */
2201
2202        uint32_t ecsm_reserved5c[6];
2203
2204        uint8_t ecsm_reserved6[3];
2205
2206        union {
2207            uint8_t R;
2208            struct {
2209                uint8_t:6;
2210                uint8_t ERNCR:1;
2211                uint8_t EFNCR:1;
2212            } B;
2213        } ECR;                  /* ECC Configuration Register */
2214
2215        uint8_t mcm_reserved8[3];
2216
2217        union {
2218            uint8_t R;
2219            struct {
2220                uint8_t:6;
2221                uint8_t RNCE:1;
2222                uint8_t FNCE:1;
2223            } B;
2224        } ESR;                  /* ECC Status Register */
2225
2226        uint16_t ecsm_reserved9;
2227
2228        union {
2229            uint16_t R;
2230            struct {
2231                uint16_t:6;
2232                uint16_t FRCNCI:1;
2233                uint16_t FR1NCI:1;
2234                  uint16_t:1;
2235                uint16_t ERRBIT:7;
2236            } B;
2237        } EEGR;                 /* ECC Error Generation Register */
2238
2239        uint32_t ecsm_reserved10;
2240
2241        union {
2242            uint32_t R;
2243            struct {
2244                uint32_t FEAR:32;
2245            } B;
2246        } FEAR;                 /* Flash ECC Address Register */
2247
2248        uint16_t ecsm_reserved11;
2249
2250        union {
2251            uint8_t R;
2252            struct {
2253                uint8_t:4;
2254                uint8_t FEMR:4;
2255            } B;
2256        } FEMR;                 /* Flash ECC Master Register */
2257
2258        union {
2259            uint8_t R;
2260            struct {
2261                uint8_t WRITE:1;
2262                uint8_t SIZE:3;
2263                uint8_t PROT0:1;
2264                uint8_t PROT1:1;
2265                uint8_t PROT2:1;
2266                uint8_t PROT3:1;
2267            } B;
2268        } FEAT;                 /* Flash ECC Attributes Register */
2269
2270        union {
2271            uint32_t R;
2272            struct {
2273                uint32_t FEDH:32;
2274            } B;
2275        } FEDRH;                /* Flash ECC Data High Register */
2276
2277        union {
2278            uint32_t R;
2279            struct {
2280                uint32_t FEDL:32;
2281            } B;
2282        } FEDRL;                /* Flash ECC Data Low Register */
2283
2284        union {
2285            uint32_t R;
2286            struct {
2287                uint32_t REAR:32;
2288            } B;
2289        } REAR;                 /* RAM ECC Address */
2290
2291        uint8_t ecsm_reserved12[2];
2292
2293        union {
2294            uint8_t R;
2295            struct {
2296                uint8_t:4;
2297                uint8_t REMR:4;
2298            } B;
2299        } REMR;                 /* RAM ECC Master */
2300
2301        union {
2302            uint8_t R;
2303            struct {
2304                uint8_t WRITE:1;
2305                uint8_t SIZE:3;
2306                uint8_t PROT0:1;
2307                uint8_t PROT1:1;
2308                uint8_t PROT2:1;
2309                uint8_t PROT3:1;
2310            } B;
2311        } REAT;                 /*  RAM ECC Attributes Register */
2312
2313        union {
2314            uint32_t R;
2315            struct {
2316                uint32_t REDH:32;
2317            } B;
2318        } REDRH;                /* RAM ECC Data High Register */
2319
2320        union {
2321            uint32_t R;
2322            struct {
2323                uint32_t REDL:32;
2324            } B;
2325        } REDRL;                /* RAMECC Data Low Register */
2326
2327    };
2328/****************************************************************************/
2329/*                          MODULE : eDMA                                   */
2330/****************************************************************************/
2331    struct EDMA_tag {
2332        union {
2333            uint32_t R;
2334            struct {
2335                uint32_t:16;
2336                uint32_t GRP3PRI:2;
2337                uint32_t GRP2PRI:2;
2338                uint32_t GRP1PRI:2;
2339                uint32_t GRP0PRI:2;
2340                  uint32_t:4;
2341                uint32_t ERGA:1;
2342                uint32_t ERCA:1;
2343                uint32_t EDBG:1;
2344                uint32_t EBW:1;
2345            } B;
2346        } CR;                   /* Control Register */
2347
2348        union {
2349            uint32_t R;
2350            struct {
2351                uint32_t VLD:1;
2352                  uint32_t:15;
2353                uint32_t GPE:1;
2354                uint32_t CPE:1;
2355                uint32_t ERRCHN:6;
2356                uint32_t SAE:1;
2357                uint32_t SOE:1;
2358                uint32_t DAE:1;
2359                uint32_t DOE:1;
2360                uint32_t NCE:1;
2361                uint32_t SGE:1;
2362                uint32_t SBE:1;
2363                uint32_t DBE:1;
2364            } B;
2365        } ESR;                  /* Error Status Register */
2366
2367        union {
2368            uint32_t R;
2369            struct {
2370                uint32_t ERQ63:1;
2371                uint32_t ERQ62:1;
2372                uint32_t ERQ61:1;
2373                uint32_t ERQ60:1;
2374                uint32_t ERQ59:1;
2375                uint32_t ERQ58:1;
2376                uint32_t ERQ57:1;
2377                uint32_t ERQ56:1;
2378                uint32_t ERQ55:1;
2379                uint32_t ERQ54:1;
2380                uint32_t ERQ53:1;
2381                uint32_t ERQ52:1;
2382                uint32_t ERQ51:1;
2383                uint32_t ERQ50:1;
2384                uint32_t ERQ49:1;
2385                uint32_t ERQ48:1;
2386                uint32_t ERQ47:1;
2387                uint32_t ERQ46:1;
2388                uint32_t ERQ45:1;
2389                uint32_t ERQ44:1;
2390                uint32_t ERQ43:1;
2391                uint32_t ERQ42:1;
2392                uint32_t ERQ41:1;
2393                uint32_t ERQ40:1;
2394                uint32_t ERQ39:1;
2395                uint32_t ERQ38:1;
2396                uint32_t ERQ37:1;
2397                uint32_t ERQ36:1;
2398                uint32_t ERQ35:1;
2399                uint32_t ERQ34:1;
2400                uint32_t ERQ33:1;
2401                uint32_t ERQ32:1;
2402            } B;
2403        } ERQRH;                /* DMA Enable Request Register High */
2404
2405        union {
2406            uint32_t R;
2407            struct {
2408                uint32_t ERQ31:1;
2409                uint32_t ERQ30:1;
2410                uint32_t ERQ29:1;
2411                uint32_t ERQ28:1;
2412                uint32_t ERQ27:1;
2413                uint32_t ERQ26:1;
2414                uint32_t ERQ25:1;
2415                uint32_t ERQ24:1;
2416                uint32_t ERQ23:1;
2417                uint32_t ERQ22:1;
2418                uint32_t ERQ21:1;
2419                uint32_t ERQ20:1;
2420                uint32_t ERQ19:1;
2421                uint32_t ERQ18:1;
2422                uint32_t ERQ17:1;
2423                uint32_t ERQ16:1;
2424                uint32_t ERQ15:1;
2425                uint32_t ERQ14:1;
2426                uint32_t ERQ13:1;
2427                uint32_t ERQ12:1;
2428                uint32_t ERQ11:1;
2429                uint32_t ERQ10:1;
2430                uint32_t ERQ09:1;
2431                uint32_t ERQ08:1;
2432                uint32_t ERQ07:1;
2433                uint32_t ERQ06:1;
2434                uint32_t ERQ05:1;
2435                uint32_t ERQ04:1;
2436                uint32_t ERQ03:1;
2437                uint32_t ERQ02:1;
2438                uint32_t ERQ01:1;
2439                uint32_t ERQ00:1;
2440            } B;
2441        } ERQRL;                /* DMA Enable Request Register Low */
2442
2443        union {
2444            uint32_t R;
2445            struct {
2446                uint32_t EEI63:1;
2447                uint32_t EEI62:1;
2448                uint32_t EEI61:1;
2449                uint32_t EEI60:1;
2450                uint32_t EEI59:1;
2451                uint32_t EEI58:1;
2452                uint32_t EEI57:1;
2453                uint32_t EEI56:1;
2454                uint32_t EEI55:1;
2455                uint32_t EEI54:1;
2456                uint32_t EEI53:1;
2457                uint32_t EEI52:1;
2458                uint32_t EEI51:1;
2459                uint32_t EEI50:1;
2460                uint32_t EEI49:1;
2461                uint32_t EEI48:1;
2462                uint32_t EEI47:1;
2463                uint32_t EEI46:1;
2464                uint32_t EEI45:1;
2465                uint32_t EEI44:1;
2466                uint32_t EEI43:1;
2467                uint32_t EEI42:1;
2468                uint32_t EEI41:1;
2469                uint32_t EEI40:1;
2470                uint32_t EEI39:1;
2471                uint32_t EEI38:1;
2472                uint32_t EEI37:1;
2473                uint32_t EEI36:1;
2474                uint32_t EEI35:1;
2475                uint32_t EEI34:1;
2476                uint32_t EEI33:1;
2477                uint32_t EEI32:1;
2478            } B;
2479        } EEIRH;                /* DMA Enable Error Interrupt Register High */
2480
2481        union {
2482            uint32_t R;
2483            struct {
2484                uint32_t EEI31:1;
2485                uint32_t EEI30:1;
2486                uint32_t EEI29:1;
2487                uint32_t EEI28:1;
2488                uint32_t EEI27:1;
2489                uint32_t EEI26:1;
2490                uint32_t EEI25:1;
2491                uint32_t EEI24:1;
2492                uint32_t EEI23:1;
2493                uint32_t EEI22:1;
2494                uint32_t EEI21:1;
2495                uint32_t EEI20:1;
2496                uint32_t EEI19:1;
2497                uint32_t EEI18:1;
2498                uint32_t EEI17:1;
2499                uint32_t EEI16:1;
2500                uint32_t EEI15:1;
2501                uint32_t EEI14:1;
2502                uint32_t EEI13:1;
2503                uint32_t EEI12:1;
2504                uint32_t EEI11:1;
2505                uint32_t EEI10:1;
2506                uint32_t EEI09:1;
2507                uint32_t EEI08:1;
2508                uint32_t EEI07:1;
2509                uint32_t EEI06:1;
2510                uint32_t EEI05:1;
2511                uint32_t EEI04:1;
2512                uint32_t EEI03:1;
2513                uint32_t EEI02:1;
2514                uint32_t EEI01:1;
2515                uint32_t EEI00:1;
2516            } B;
2517        } EEIRL;                /* DMA Enable Error Interrupt Register Low */
2518
2519        union {
2520            uint8_t R;
2521            uint8_t B;
2522        } SERQR;                /* DMA Set Enable Request Register */
2523
2524        union {
2525            uint8_t R;
2526            uint8_t B;
2527        } CERQR;                /* DMA Clear Enable Request Register */
2528
2529        union {
2530            uint8_t R;
2531            uint8_t B;
2532        } SEEIR;                /* DMA Set Enable Error Interrupt Register */
2533
2534        union {
2535            uint8_t R;
2536            uint8_t B;
2537        } CEEIR;                /* DMA Clear Enable Error Interrupt REgister */
2538
2539        union {
2540            uint8_t R;
2541            uint8_t B;
2542        } CIRQR;                /* DMA Clear Interrupt Request Register */
2543
2544        union {
2545            uint8_t R;
2546            uint8_t B;
2547        } CER;                  /* DMA Clear error Register */
2548
2549        union {
2550            uint8_t R;
2551            uint8_t B;
2552        } SSBR;                 /* Set Start Bit Register */
2553
2554        union {
2555            uint8_t R;
2556            uint8_t B;
2557        } CDSBR;                /* Clear Done Status Bit Register */
2558
2559        union {
2560            uint32_t R;
2561            struct {
2562                uint32_t INT63:1;
2563                uint32_t INT62:1;
2564                uint32_t INT61:1;
2565                uint32_t INT60:1;
2566                uint32_t INT59:1;
2567                uint32_t INT58:1;
2568                uint32_t INT57:1;
2569                uint32_t INT56:1;
2570                uint32_t INT55:1;
2571                uint32_t INT54:1;
2572                uint32_t INT53:1;
2573                uint32_t INT52:1;
2574                uint32_t INT51:1;
2575                uint32_t INT50:1;
2576                uint32_t INT49:1;
2577                uint32_t INT48:1;
2578                uint32_t INT47:1;
2579                uint32_t INT46:1;
2580                uint32_t INT45:1;
2581                uint32_t INT44:1;
2582                uint32_t INT43:1;
2583                uint32_t INT42:1;
2584                uint32_t INT41:1;
2585                uint32_t INT40:1;
2586                uint32_t INT39:1;
2587                uint32_t INT38:1;
2588                uint32_t INT37:1;
2589                uint32_t INT36:1;
2590                uint32_t INT35:1;
2591                uint32_t INT34:1;
2592                uint32_t INT33:1;
2593                uint32_t INT32:1;
2594            } B;
2595        } IRQRH;                /* DMA Interrupt Request High */
2596
2597        union {
2598            uint32_t R;
2599            struct {
2600                uint32_t INT31:1;
2601                uint32_t INT30:1;
2602                uint32_t INT29:1;
2603                uint32_t INT28:1;
2604                uint32_t INT27:1;
2605                uint32_t INT26:1;
2606                uint32_t INT25:1;
2607                uint32_t INT24:1;
2608                uint32_t INT23:1;
2609                uint32_t INT22:1;
2610                uint32_t INT21:1;
2611                uint32_t INT20:1;
2612                uint32_t INT19:1;
2613                uint32_t INT18:1;
2614                uint32_t INT17:1;
2615                uint32_t INT16:1;
2616                uint32_t INT15:1;
2617                uint32_t INT14:1;
2618                uint32_t INT13:1;
2619                uint32_t INT12:1;
2620                uint32_t INT11:1;
2621                uint32_t INT10:1;
2622                uint32_t INT09:1;
2623                uint32_t INT08:1;
2624                uint32_t INT07:1;
2625                uint32_t INT06:1;
2626                uint32_t INT05:1;
2627                uint32_t INT04:1;
2628                uint32_t INT03:1;
2629                uint32_t INT02:1;
2630                uint32_t INT01:1;
2631                uint32_t INT00:1;
2632            } B;
2633        } IRQRL;                /* DMA Interrupt Request Low */
2634
2635        union {
2636            uint32_t R;
2637            struct {
2638                uint32_t ERR63:1;
2639                uint32_t ERR62:1;
2640                uint32_t ERR61:1;
2641                uint32_t ERR60:1;
2642                uint32_t ERR59:1;
2643                uint32_t ERR58:1;
2644                uint32_t ERR57:1;
2645                uint32_t ERR56:1;
2646                uint32_t ERR55:1;
2647                uint32_t ERR54:1;
2648                uint32_t ERR53:1;
2649                uint32_t ERR52:1;
2650                uint32_t ERR51:1;
2651                uint32_t ERR50:1;
2652                uint32_t ERR49:1;
2653                uint32_t ERR48:1;
2654                uint32_t ERR47:1;
2655                uint32_t ERR46:1;
2656                uint32_t ERR45:1;
2657                uint32_t ERR44:1;
2658                uint32_t ERR43:1;
2659                uint32_t ERR42:1;
2660                uint32_t ERR41:1;
2661                uint32_t ERR40:1;
2662                uint32_t ERR39:1;
2663                uint32_t ERR38:1;
2664                uint32_t ERR37:1;
2665                uint32_t ERR36:1;
2666                uint32_t ERR35:1;
2667                uint32_t ERR34:1;
2668                uint32_t ERR33:1;
2669                uint32_t ERR32:1;
2670            } B;
2671        } ERH;                  /* DMA Error High */
2672
2673        union {
2674            uint32_t R;
2675            struct {
2676                uint32_t ERR31:1;
2677                uint32_t ERR30:1;
2678                uint32_t ERR29:1;
2679                uint32_t ERR28:1;
2680                uint32_t ERR27:1;
2681                uint32_t ERR26:1;
2682                uint32_t ERR25:1;
2683                uint32_t ERR24:1;
2684                uint32_t ERR23:1;
2685                uint32_t ERR22:1;
2686                uint32_t ERR21:1;
2687                uint32_t ERR20:1;
2688                uint32_t ERR19:1;
2689                uint32_t ERR18:1;
2690                uint32_t ERR17:1;
2691                uint32_t ERR16:1;
2692                uint32_t ERR15:1;
2693                uint32_t ERR14:1;
2694                uint32_t ERR13:1;
2695                uint32_t ERR12:1;
2696                uint32_t ERR11:1;
2697                uint32_t ERR10:1;
2698                uint32_t ERR09:1;
2699                uint32_t ERR08:1;
2700                uint32_t ERR07:1;
2701                uint32_t ERR06:1;
2702                uint32_t ERR05:1;
2703                uint32_t ERR04:1;
2704                uint32_t ERR03:1;
2705                uint32_t ERR02:1;
2706                uint32_t ERR01:1;
2707                uint32_t ERR00:1;
2708            } B;
2709        } ERL;                  /* DMA Error Low */
2710
2711        uint32_t edma_reserved1[52];
2712
2713        union {
2714            uint8_t R;
2715            struct {
2716                uint8_t ECP:1;
2717                  uint8_t:1;
2718                uint8_t GRPPRI:2;
2719                uint8_t CHPRI:4;
2720            } B;
2721        } CPR[64];
2722
2723        uint32_t edma_reserved2[944];
2724
2725/****************************************************************************/
2726/*       DMA2 Transfer Control Descriptor                                   */
2727/****************************************************************************/
2728        struct tcd_t {
2729            uint32_t SADDR;    /* source address */
2730
2731            /* Source and destination fields */
2732            union tcd_SDF_tag {
2733                uint32_t R;
2734                struct {
2735                    uint16_t SMOD:5;   /* source address modulo */
2736                    uint16_t SSIZE:3;  /* source transfer size */
2737                    uint16_t DMOD:5;   /* destination address modulo */
2738                    uint16_t DSIZE:3;  /* destination transfer size */
2739                    int16_t SOFF;      /* signed source address offset */
2740                } B;
2741            } SDF;
2742
2743            uint32_t NBYTES;   /* inner (“minor”) byte count */
2744
2745            int32_t SLAST;     /* last destination address adjustment, or
2746                                   scatter/gather address (if e_sg = 1) */
2747
2748            uint32_t DADDR;    /* destination address */
2749
2750            /* CITER and destination fields */
2751            union tcd_CDF_tag {
2752                uint32_t R;
2753                struct {
2754                    uint16_t CITERE_LINK:1;
2755                    uint16_t CITER:15;
2756                    int16_t DOFF;      /* signed destination address offset */
2757                } B;
2758                struct {
2759                    uint16_t CITERE_LINK:1;
2760                    uint16_t CITERLINKCH:6;
2761                    uint16_t CITER:9;
2762                    int16_t DOFF;
2763                } B_ALT;
2764            } CDF;
2765
2766            int32_t DLAST_SGA;
2767
2768            /* BITER and misc fields */
2769            union tcd_BMF_tag {
2770                uint32_t R;
2771                struct {
2772                    uint32_t BITERE_LINK:1;    /* beginning ("major") iteration count */
2773                    uint32_t BITER:15;
2774                    uint32_t BWC:2;    /* bandwidth control */
2775                    uint32_t MAJORLINKCH:6;    /* enable channel-to-channel link */
2776                    uint32_t DONE:1;   /* channel done */
2777                    uint32_t ACTIVE:1; /* channel active */
2778                    uint32_t MAJORE_LINK:1;    /* enable channel-to-channel link */
2779                    uint32_t E_SG:1;   /* enable scatter/gather descriptor */
2780                    uint32_t D_REQ:1;  /* disable ipd_req when done */
2781                    uint32_t INT_HALF:1;       /* interrupt on citer = (biter >> 1) */
2782                    uint32_t INT_MAJ:1;        /* interrupt on major loop completion */
2783                    uint32_t START:1;  /* explicit channel start */
2784                } B;
2785                struct {
2786                    uint32_t BITERE_LINK:1;
2787                    uint32_t BITERLINKCH:6;
2788                    uint32_t BITER:9;
2789                    uint32_t BWC:2;
2790                    uint32_t MAJORLINKCH:6;
2791                    uint32_t DONE:1;
2792                    uint32_t ACTIVE:1;
2793                    uint32_t MAJORE_LINK:1;
2794                    uint32_t E_SG:1;
2795                    uint32_t D_REQ:1;
2796                    uint32_t INT_HALF:1;
2797                    uint32_t INT_MAJ:1;
2798                    uint32_t START:1;
2799                } B_ALT;
2800            } BMF;
2801        } TCD[64];              /* transfer_control_descriptor */
2802    };
2803
2804    static const struct tcd_t EDMA_TCD_DEFAULT = {
2805        .SADDR = 0,
2806        .SDF = { .R = 0 },
2807        .NBYTES = 0,
2808        .SLAST = 0,
2809        .DADDR = 0,
2810        .CDF = { .R = 0 },
2811        .DLAST_SGA = 0,
2812        .BMF = { .R = 0 } 
2813    };
2814
2815#define EDMA_TCD_BITER_MASK 0x7fff
2816
2817#define EDMA_TCD_BITER_SIZE DSPI_TCD_BITER_MASK
2818
2819#define EDMA_TCD_BITER_LINKED_MASK 0x1ff
2820
2821#define EDMA_TCD_BITER_LINKED_SIZE 512
2822
2823#define EDMA_TCD_LINK_AND_BITER( link, biter) (((link) << 9) + ((biter) & EDMA_TCD_BITER_LINKED_MASK))
2824
2825#define EDMA_TCD_BITER_LINK( channel) (EDMA.TCD [(channel)].BMF.B.BITER >> 9)
2826
2827/****************************************************************************/
2828/*                          MODULE : INTC                                   */
2829/****************************************************************************/
2830    struct INTC_tag {
2831        union {
2832            uint32_t R;
2833            struct {
2834                uint32_t:26;
2835                uint32_t VTES:1;
2836                  uint32_t:4;
2837                uint32_t HVEN:1;
2838            } B;
2839        } MCR;                  /* Module Configuration Register */
2840
2841        int32_t INTC_reserved00;
2842
2843        union {
2844            uint32_t R;
2845            struct {
2846                uint32_t:28;
2847                uint32_t PRI:4;
2848            } B;
2849        } CPR;                  /* Current Priority Register */
2850
2851        uint32_t intc_reserved1;
2852
2853        union {
2854            uint32_t R;
2855            struct {
2856                uint32_t VTBA:21;
2857                uint32_t INTVEC:9;
2858                  uint32_t:2;
2859            } B;
2860        } IACKR;                /* Interrupt Acknowledge Register */
2861
2862        uint32_t intc_reserved2;
2863
2864        union {
2865            uint32_t R;
2866            struct {
2867                uint32_t:32;
2868            } B;
2869        } EOIR;                 /* End of Interrupt Register */
2870
2871        uint32_t intc_reserved3;
2872
2873        union {
2874            uint8_t R;
2875            struct {
2876                uint8_t:6;
2877                uint8_t SET:1;
2878                uint8_t CLR:1;
2879            } B;
2880        } SSCIR[8];             /* Software Set/Clear Interruput Register */
2881
2882        uint32_t intc_reserved4[6];
2883
2884        union {
2885            uint8_t R;
2886            struct {
2887                uint8_t:4;
2888                uint8_t PRI:4;
2889            } B;
2890        } PSR[307];             /* Software Set/Clear Interrupt Register */
2891
2892    };
2893/****************************************************************************/
2894/*                          MODULE : EQADC                                  */
2895/****************************************************************************/
2896    struct EQADC_tag {
2897        union {
2898            uint32_t R;
2899            struct {
2900                uint32_t:27;
2901                uint32_t ESSIE:2;
2902                  uint32_t:1;
2903                uint32_t DBG:2;
2904            } B;
2905        } MCR;                  /* Module Configuration Register */
2906
2907        int32_t EQADC_reserved00;
2908
2909        union {
2910            uint32_t R;
2911            struct {
2912                uint32_t:6;
2913                uint32_t NMF:26;
2914            } B;
2915        } NMSFR;                /* Null Message Send Format Register */
2916
2917        union {
2918            uint32_t R;
2919            struct {
2920                uint32_t:28;
2921                uint32_t DFL:4;
2922            } B;
2923        } ETDFR;                /* External Trigger Digital Filter Register */
2924
2925        union {
2926            uint32_t R;
2927            struct {
2928                uint32_t CFPUSH:32;
2929            } B;
2930        } CFPR[6];              /* CFIFO Push Registers */
2931
2932        uint32_t eqadc_reserved1;
2933
2934        uint32_t eqadc_reserved2;
2935
2936        union {
2937            uint32_t R;
2938            struct {
2939                uint32_t:16;
2940                uint32_t RFPOP:16;
2941            } B;
2942        } RFPR[6];              /* Result FIFO Pop Registers */
2943
2944        uint32_t eqadc_reserved3;
2945
2946        uint32_t eqadc_reserved4;
2947
2948        union {
2949            uint16_t R;
2950            struct {
2951                uint16_t:5;
2952                uint16_t SSE:1;
2953                uint16_t CFINV:1;
2954                  uint16_t:1;
2955                uint16_t MODE:4;
2956                  uint16_t:4;
2957            } B;
2958        } CFCR[6];              /* CFIFO Control Registers */
2959
2960        uint32_t eqadc_reserved5;
2961
2962        union {
2963            uint16_t R;
2964            struct {
2965                uint16_t NCIE:1;
2966                uint16_t TORIE:1;
2967                uint16_t PIE:1;
2968                uint16_t EOQIE:1;
2969                uint16_t CFUIE:1;
2970                  uint16_t:1;
2971                uint16_t CFFE:1;
2972                uint16_t CFFS:1;
2973                  uint16_t:4;
2974                uint16_t RFOIE:1;
2975                  uint16_t:1;
2976                uint16_t RFDE:1;
2977                uint16_t RFDS:1;
2978            } B;
2979        } IDCR[6];              /* Interrupt and DMA Control Registers */
2980
2981        uint32_t eqadc_reserved6;
2982
2983        union {
2984            uint32_t R;
2985            struct {
2986                uint32_t NCF:1;
2987                uint32_t TORF:1;
2988                uint32_t PF:1;
2989                uint32_t EOQF:1;
2990                uint32_t CFUF:1;
2991                uint32_t SSS:1;
2992                uint32_t CFFF:1;
2993                  uint32_t:5;
2994                uint32_t RFOF:1;
2995                  uint32_t:1;
2996                uint32_t RFDF:1;
2997                  uint32_t:1;
2998                uint32_t CFCTR:4;
2999                uint32_t TNXTPTR:4;
3000                uint32_t RFCTR:4;
3001                uint32_t POPNXTPTR:4;
3002            } B;
3003        } FISR[6];              /* FIFO and Interrupt Status Registers */
3004
3005        uint32_t eqadc_reserved7;
3006
3007        uint32_t eqadc_reserved8;
3008
3009        union {
3010            uint16_t R;
3011            struct {
3012                uint16_t:5;
3013                uint16_t TCCF:11;
3014            } B;
3015        } CFTCR[6];             /* CFIFO Transfer Counter Registers */
3016
3017        uint32_t eqadc_reserved9;
3018
3019        union {
3020            uint32_t R;
3021            struct {
3022                uint32_t CFS0:2;
3023                uint32_t CFS1:2;
3024                uint32_t CFS2:2;
3025                uint32_t CFS3:2;
3026                uint32_t CFS4:2;
3027                uint32_t CFS5:2;
3028                  uint32_t:5;
3029                uint32_t LCFTCB0:4;
3030                uint32_t TC_LCFTCB0:11;
3031            } B;
3032        } CFSSR0;               /* CFIFO Status Register 0 */
3033
3034        union {
3035            uint32_t R;
3036            struct {
3037                uint32_t CFS0:2;
3038                uint32_t CFS1:2;
3039                uint32_t CFS2:2;
3040                uint32_t CFS3:2;
3041                uint32_t CFS4:2;
3042                uint32_t CFS5:2;
3043                  uint32_t:5;
3044                uint32_t LCFTCB1:4;
3045                uint32_t TC_LCFTCB1:11;
3046            } B;
3047        } CFSSR1;               /* CFIFO Status Register 1 */
3048
3049        union {
3050            uint32_t R;
3051            struct {
3052                uint32_t CFS0:2;
3053                uint32_t CFS1:2;
3054                uint32_t CFS2:2;
3055                uint32_t CFS3:2;
3056                uint32_t CFS4:2;
3057                uint32_t CFS5:2;
3058                  uint32_t:4;
3059                uint32_t ECBNI:1;
3060                uint32_t LCFTSSI:4;
3061                uint32_t TC_LCFTSSI:11;
3062            } B;
3063        } CFSSR2;               /* CFIFO Status Register 2 */
3064
3065        union {
3066            uint32_t R;
3067            struct {
3068                uint32_t CFS0:2;
3069                uint32_t CFS1:2;
3070                uint32_t CFS2:2;
3071                uint32_t CFS3:2;
3072                uint32_t CFS4:2;
3073                uint32_t CFS5:2;
3074                  uint32_t:20;
3075            } B;
3076        } CFSR;
3077
3078        uint32_t eqadc_reserved11;
3079
3080        union {
3081            uint32_t R;
3082            struct {
3083                uint32_t:21;
3084                uint32_t MDT:3;
3085                  uint32_t:4;
3086                uint32_t BR:4;
3087            } B;
3088        } SSICR;                /* SSI Control Register */
3089
3090        union {
3091            uint32_t R;
3092            struct {
3093                uint32_t RDV:1;
3094                  uint32_t:5;
3095                uint32_t RDATA:26;
3096            } B;
3097        } SSIRDR;               /* SSI Recieve Data Register */
3098
3099        uint32_t eqadc_reserved12[17];
3100
3101        struct {
3102            union {
3103                uint32_t R;
3104                struct {
3105                    uint32_t:32;
3106                } B;
3107            } R[4];
3108
3109            uint32_t eqadc_reserved13[12];
3110
3111        } CF[6];
3112
3113        uint32_t eqadc_reserved14[32];
3114
3115        struct {
3116            union {
3117                uint32_t R;
3118                struct {
3119                    uint32_t:32;
3120                } B;
3121            } R[4];
3122
3123            uint32_t eqadc_reserved15[12];
3124
3125        } RF[6];
3126
3127    };
3128/****************************************************************************/
3129/*                          MODULE : DSPI                                   */
3130/****************************************************************************/
3131    struct DSPI_tag {
3132        union DSPI_MCR_tag {
3133            uint32_t R;
3134            struct {
3135                uint32_t MSTR:1;
3136                uint32_t CONT_SCKE:1;
3137                uint32_t DCONF:2;
3138                uint32_t FRZ:1;
3139                uint32_t MTFE:1;
3140                uint32_t PCSSE:1;
3141                uint32_t ROOE:1;
3142                  uint32_t:2;
3143                uint32_t PCSIS5:1;
3144                uint32_t PCSIS4:1;
3145                uint32_t PCSIS3:1;
3146                uint32_t PCSIS2:1;
3147                uint32_t PCSIS1:1;
3148                uint32_t PCSIS0:1;
3149                uint32_t DOZE:1;
3150                uint32_t MDIS:1;
3151                uint32_t DIS_TXF:1;
3152                uint32_t DIS_RXF:1;
3153                uint32_t CLR_TXF:1;
3154                uint32_t CLR_RXF:1;
3155                uint32_t SMPL_PT:2;
3156                  uint32_t:7;
3157                uint32_t HALT:1;
3158            } B;
3159        } MCR;                  /* Module Configuration Register */
3160
3161        uint32_t dspi_reserved1;
3162
3163        union {
3164            uint32_t R;
3165            struct {
3166                uint32_t TCNT:16;
3167                  uint32_t:16;
3168            } B;
3169        } TCR;
3170
3171        union DSPI_CTAR_tag {
3172            uint32_t R;
3173            struct {
3174                uint32_t DBR:1;
3175                uint32_t FMSZ:4;
3176                uint32_t CPOL:1;
3177                uint32_t CPHA:1;
3178                uint32_t LSBFE:1;
3179                uint32_t PCSSCK:2;
3180                uint32_t PASC:2;
3181                uint32_t PDT:2;
3182                uint32_t PBR:2;
3183                uint32_t CSSCK:4;
3184                uint32_t ASC:4;
3185                uint32_t DT:4;
3186                uint32_t BR:4;
3187            } B;
3188        } CTAR[8];              /* Clock and Transfer Attributes Registers */
3189
3190        union DSPI_SR_tag {
3191            uint32_t R;
3192            struct {
3193                uint32_t TCF:1;
3194                uint32_t TXRXS:1;
3195                  uint32_t:1;
3196                uint32_t EOQF:1;
3197                uint32_t TFUF:1;
3198                  uint32_t:1;
3199                uint32_t TFFF:1;
3200                  uint32_t:5;
3201                uint32_t RFOF:1;
3202                  uint32_t:1;
3203                uint32_t RFDF:1;
3204                  uint32_t:1;
3205                uint32_t TXCTR:4;
3206                uint32_t TXNXTPTR:4;
3207                uint32_t RXCTR:4;
3208                uint32_t POPNXTPTR:4;
3209            } B;
3210        } SR;                   /* Status Register */
3211
3212        union DSPI_RSER_tag {
3213            uint32_t R;
3214            struct {
3215                uint32_t TCFRE:1;
3216                  uint32_t:2;
3217                uint32_t EOQFRE:1;
3218                uint32_t TFUFRE:1;
3219                  uint32_t:1;
3220                uint32_t TFFFRE:1;
3221                uint32_t TFFFDIRS:1;
3222                  uint32_t:4;
3223                uint32_t RFOFRE:1;
3224                  uint32_t:1;
3225                uint32_t RFDFRE:1;
3226                uint32_t RFDFDIRS:1;
3227                  uint32_t:16;
3228            } B;
3229        } RSER;                 /* DMA/Interrupt Request Select and Enable Register */
3230
3231        union DSPI_PUSHR_tag {
3232            uint32_t R;
3233            struct {
3234                uint32_t CONT:1;
3235                uint32_t CTAS:3;
3236                uint32_t EOQ:1;
3237                uint32_t CTCNT:1;
3238                  uint32_t:4;
3239                uint32_t PCS5:1;
3240                uint32_t PCS4:1;
3241                uint32_t PCS3:1;
3242                uint32_t PCS2:1;
3243                uint32_t PCS1:1;
3244                uint32_t PCS0:1;
3245                uint32_t TXDATA:16;
3246            } B;
3247        } PUSHR;                /* PUSH TX FIFO Register */
3248
3249        union DSPI_POPR_tag{
3250            uint32_t R;
3251            struct {
3252                uint32_t:16;
3253                uint32_t RXDATA:16;
3254            } B;
3255        } POPR;                 /* POP RX FIFO Register */
3256
3257        union {
3258            uint32_t R;
3259            struct {
3260                uint32_t TXCMD:16;
3261                uint32_t TXDATA:16;
3262            } B;
3263        } TXFR[4];              /* Transmit FIFO Registers */
3264
3265        uint32_t DSPI_reserved_txf[12];
3266
3267        union {
3268            uint32_t R;
3269            struct {
3270                uint32_t:16;
3271                uint32_t RXDATA:16;
3272            } B;
3273        } RXFR[4];              /* Transmit FIFO Registers */
3274
3275        uint32_t DSPI_reserved_rxf[12];
3276
3277        union {
3278            uint32_t R;
3279            struct {
3280                uint32_t MTOE:1;
3281                  uint32_t:1;
3282                uint32_t MTOCNT:6;
3283                  uint32_t:4;
3284                uint32_t TXSS:1;
3285                uint32_t TPOL:1;
3286                uint32_t TRRE:1;
3287                uint32_t CID:1;
3288                uint32_t DCONT:1;
3289                uint32_t DSICTAS:3;
3290                  uint32_t:6;
3291                uint32_t DPCS5:1;
3292                uint32_t DPCS4:1;
3293                uint32_t DPCS3:1;
3294                uint32_t DPCS2:1;
3295                uint32_t DPCS1:1;
3296                uint32_t DPCS0:1;
3297            } B;
3298        } DSICR;                /* DSI Configuration Register */
3299
3300        union {
3301            uint32_t R;
3302            struct {
3303                uint32_t:16;
3304                uint32_t SER_DATA:16;
3305            } B;
3306        } SDR;                  /* DSI Serialization Data Register */
3307
3308        union {
3309            uint32_t R;
3310            struct {
3311                uint32_t:16;
3312                uint32_t ASER_DATA:16;
3313            } B;
3314        } ASDR;                 /* DSI Alternate Serialization Data Register */
3315
3316        union {
3317            uint32_t R;
3318            struct {
3319                uint32_t:16;
3320                uint32_t COMP_DATA:16;
3321            } B;
3322        } COMPR;                /* DSI Transmit Comparison Register */
3323
3324        union {
3325            uint32_t R;
3326            struct {
3327                uint32_t:16;
3328                uint32_t DESER_DATA:16;
3329            } B;
3330        } DDR;                  /* DSI deserialization Data Register */
3331
3332    };
3333/****************************************************************************/
3334/*                          MODULE : eSCI                                   */
3335/****************************************************************************/
3336    struct ESCI_tag {
3337        union ESCI_CR1_tag {
3338            uint32_t R;
3339            struct {
3340                uint32_t:3;
3341                uint32_t SBR:13;
3342                uint32_t LOOPS:1;
3343                uint32_t SCISDOZ:1;
3344                uint32_t RSRC:1;
3345                uint32_t M:1;
3346                uint32_t WAKE:1;
3347                uint32_t ILT:1;
3348                uint32_t PE:1;
3349                uint32_t PT:1;
3350                uint32_t TIE:1;
3351                uint32_t TCIE:1;
3352                uint32_t RIE:1;
3353                uint32_t ILIE:1;
3354                uint32_t TE:1;
3355                uint32_t RE:1;
3356                uint32_t RWU:1;
3357                uint32_t SBK:1;
3358            } B;
3359        } CR1;                  /* Control Register 1 */
3360
3361        union ESCI_CR2_tag {
3362            uint16_t R;
3363            struct {
3364                uint16_t MDIS:1;
3365                uint16_t FBR:1;
3366                uint16_t BSTP:1;
3367                uint16_t IEBERR:1;
3368                uint16_t RXDMA:1;
3369                uint16_t TXDMA:1;
3370                uint16_t BRK13:1;
3371                  uint16_t:1;
3372                uint16_t BESM13:1;
3373                uint16_t SBSTP:1;
3374                  uint16_t:2;
3375                uint16_t ORIE:1;
3376                uint16_t NFIE:1;
3377                uint16_t FEIE:1;
3378                uint16_t PFIE:1;
3379            } B;
3380        } CR2;                  /* Control Register 2 */
3381
3382        union ESCI_DR_tag {
3383            uint16_t R;
3384            struct {
3385                uint16_t R8:1;
3386                uint16_t T8:1;
3387                  uint16_t:6;
3388                uint8_t D;
3389            } B;
3390        } DR;                   /* Data Register */
3391
3392        union ESCI_SR_tag {
3393            uint32_t R;
3394            struct {
3395                uint32_t TDRE:1;
3396                uint32_t TC:1;
3397                uint32_t RDRF:1;
3398                uint32_t IDLE:1;
3399                uint32_t OR:1;
3400                uint32_t NF:1;
3401                uint32_t FE:1;
3402                uint32_t PF:1;
3403                  uint32_t:3;
3404                uint32_t BERR:1;
3405                  uint32_t:3;
3406                uint32_t RAF:1;
3407                uint32_t RXRDY:1;
3408                uint32_t TXRDY:1;
3409                uint32_t LWAKE:1;
3410                uint32_t STO:1;
3411                uint32_t PBERR:1;
3412                uint32_t CERR:1;
3413                uint32_t CKERR:1;
3414                uint32_t FRC:1;
3415                  uint32_t:7;
3416                uint32_t OVFL:1;
3417            } B;
3418        } SR;                   /* Status Register */
3419
3420        union {
3421            uint32_t R;
3422            struct {
3423                uint32_t LRES:1;
3424                uint32_t WU:1;
3425                uint32_t WUD0:1;
3426                uint32_t WUD1:1;
3427                uint32_t LDBG:1;
3428                uint32_t DSF:1;
3429                uint32_t PRTY:1;
3430                uint32_t LIN:1;
3431                uint32_t RXIE:1;
3432                uint32_t TXIE:1;
3433                uint32_t WUIE:1;
3434                uint32_t STIE:1;
3435                uint32_t PBIE:1;
3436                uint32_t CIE:1;
3437                uint32_t CKIE:1;
3438                uint32_t FCIE:1;
3439                  uint32_t:7;
3440                uint32_t OFIE:1;
3441                  uint32_t:8;
3442            } B;
3443        } LCR;                  /* LIN Control Register */
3444
3445        union {
3446            uint32_t R;
3447        } LTR;                  /* LIN Transmit Register */
3448
3449        union {
3450            uint32_t R;
3451        } LRR;                  /* LIN Recieve Register */
3452
3453        union {
3454            uint32_t R;
3455        } LPR;                  /* LIN CRC Polynom Register  */
3456
3457    };
3458/****************************************************************************/
3459/*                          MODULE : FlexCAN                                */
3460/****************************************************************************/
3461    struct FLEXCAN2_tag {
3462        union {
3463            uint32_t R;
3464            struct {
3465                uint32_t MDIS:1;
3466                uint32_t FRZ:1;
3467                  uint32_t:1;
3468                uint32_t HALT:1;
3469                uint32_t NOTRDY:1;
3470                  uint32_t:1;
3471                uint32_t SOFTRST:1;
3472                uint32_t FRZACK:1;
3473                  uint32_t:1;
3474                  uint32_t:1;
3475
3476                uint32_t WRNEN:1;
3477
3478                uint32_t MDISACK:1;
3479                  uint32_t:1;
3480                  uint32_t:1;
3481
3482                uint32_t SRXDIS:1;
3483                uint32_t MBFEN:1;
3484                  uint32_t:10;
3485
3486                uint32_t MAXMB:6;
3487            } B;
3488        } MCR;                  /* Module Configuration Register */
3489
3490        union {
3491            uint32_t R;
3492            struct {
3493                uint32_t PRESDIV:8;
3494                uint32_t RJW:2;
3495                uint32_t PSEG1:3;
3496                uint32_t PSEG2:3;
3497                uint32_t BOFFMSK:1;
3498                uint32_t ERRMSK:1;
3499                uint32_t CLKSRC:1;
3500                uint32_t LPB:1;
3501
3502                uint32_t TWRNMSK:1;
3503                uint32_t RWRNMSK:1;
3504                  uint32_t:2;
3505
3506                uint32_t SMP:1;
3507                uint32_t BOFFREC:1;
3508                uint32_t TSYN:1;
3509                uint32_t LBUF:1;
3510                uint32_t LOM:1;
3511                uint32_t PROPSEG:3;
3512            } B;
3513        } CR;                   /* Control Register */
3514
3515        union {
3516            uint32_t R;
3517        } TIMER;                /* Free Running Timer */
3518        int32_t FLEXCAN_reserved00;
3519
3520        union {
3521            uint32_t R;
3522            struct {
3523                uint32_t:3;
3524                uint32_t MI:29;
3525            } B;
3526        } RXGMASK;              /* RX Global Mask */
3527
3528        union {
3529            uint32_t R;
3530            struct {
3531                uint32_t:3;
3532                uint32_t MI:29;
3533            } B;
3534        } RX14MASK;             /* RX 14 Mask */
3535
3536        union {
3537            uint32_t R;
3538            struct {
3539                uint32_t:3;
3540                uint32_t MI:29;
3541            } B;
3542        } RX15MASK;             /* RX 15 Mask */
3543
3544        union {
3545            uint32_t R;
3546            struct {
3547                uint32_t:16;
3548                uint32_t RXECNT:8;
3549                uint32_t TXECNT:8;
3550            } B;
3551        } ECR;                  /* Error Counter Register */
3552
3553        union {
3554            uint32_t R;
3555            struct {
3556                uint32_t:14;
3557
3558                uint32_t TWRNINT:1;
3559                uint32_t RWRNINT:1;
3560
3561                uint32_t BIT1ERR:1;
3562                uint32_t BIT0ERR:1;
3563                uint32_t ACKERR:1;
3564                uint32_t CRCERR:1;
3565                uint32_t FRMERR:1;
3566                uint32_t STFERR:1;
3567                uint32_t TXWRN:1;
3568                uint32_t RXWRN:1;
3569                uint32_t IDLE:1;
3570                uint32_t TXRX:1;
3571                uint32_t FLTCONF:2;
3572                  uint32_t:1;
3573                uint32_t BOFFINT:1;
3574                uint32_t ERRINT:1;
3575                  uint32_t:1;
3576            } B;
3577        } ESR;                  /* Error and Status Register */
3578
3579        union {
3580            uint32_t R;
3581            struct {
3582                uint32_t BUF63M:1;
3583                uint32_t BUF62M:1;
3584                uint32_t BUF61M:1;
3585                uint32_t BUF60M:1;
3586                uint32_t BUF59M:1;
3587                uint32_t BUF58M:1;
3588                uint32_t BUF57M:1;
3589                uint32_t BUF56M:1;
3590                uint32_t BUF55M:1;
3591                uint32_t BUF54M:1;
3592                uint32_t BUF53M:1;
3593                uint32_t BUF52M:1;
3594                uint32_t BUF51M:1;
3595                uint32_t BUF50M:1;
3596                uint32_t BUF49M:1;
3597                uint32_t BUF48M:1;
3598                uint32_t BUF47M:1;
3599                uint32_t BUF46M:1;
3600                uint32_t BUF45M:1;
3601                uint32_t BUF44M:1;
3602                uint32_t BUF43M:1;
3603                uint32_t BUF42M:1;
3604                uint32_t BUF41M:1;
3605                uint32_t BUF40M:1;
3606                uint32_t BUF39M:1;
3607                uint32_t BUF38M:1;
3608                uint32_t BUF37M:1;
3609                uint32_t BUF36M:1;
3610                uint32_t BUF35M:1;
3611                uint32_t BUF34M:1;
3612                uint32_t BUF33M:1;
3613                uint32_t BUF32M:1;
3614            } B;
3615        } IMRH;                 /* Interruput Masks Register */
3616
3617        union {
3618            uint32_t R;
3619            struct {
3620                uint32_t BUF31M:1;
3621                uint32_t BUF30M:1;
3622                uint32_t BUF29M:1;
3623                uint32_t BUF28M:1;
3624                uint32_t BUF27M:1;
3625                uint32_t BUF26M:1;
3626                uint32_t BUF25M:1;
3627                uint32_t BUF24M:1;
3628                uint32_t BUF23M:1;
3629                uint32_t BUF22M:1;
3630                uint32_t BUF21M:1;
3631                uint32_t BUF20M:1;
3632                uint32_t BUF19M:1;
3633                uint32_t BUF18M:1;
3634                uint32_t BUF17M:1;
3635                uint32_t BUF16M:1;
3636                uint32_t BUF15M:1;
3637                uint32_t BUF14M:1;
3638                uint32_t BUF13M:1;
3639                uint32_t BUF12M:1;
3640                uint32_t BUF11M:1;
3641                uint32_t BUF10M:1;
3642                uint32_t BUF09M:1;
3643                uint32_t BUF08M:1;
3644                uint32_t BUF07M:1;
3645                uint32_t BUF06M:1;
3646                uint32_t BUF05M:1;
3647                uint32_t BUF04M:1;
3648                uint32_t BUF03M:1;
3649                uint32_t BUF02M:1;
3650                uint32_t BUF01M:1;
3651                uint32_t BUF00M:1;
3652            } B;
3653        } IMRL;                 /* Interruput Masks Register */
3654
3655        union {
3656            uint32_t R;
3657            struct {
3658                uint32_t BUF63I:1;
3659                uint32_t BUF62I:1;
3660                uint32_t BUF61I:1;
3661                uint32_t BUF60I:1;
3662                uint32_t BUF59I:1;
3663                uint32_t BUF58I:1;
3664                uint32_t BUF57I:1;
3665                uint32_t BUF56I:1;
3666                uint32_t BUF55I:1;
3667                uint32_t BUF54I:1;
3668                uint32_t BUF53I:1;
3669                uint32_t BUF52I:1;
3670                uint32_t BUF51I:1;
3671                uint32_t BUF50I:1;
3672                uint32_t BUF49I:1;
3673                uint32_t BUF48I:1;
3674                uint32_t BUF47I:1;
3675                uint32_t BUF46I:1;
3676                uint32_t BUF45I:1;
3677                uint32_t BUF44I:1;
3678                uint32_t BUF43I:1;
3679                uint32_t BUF42I:1;
3680                uint32_t BUF41I:1;
3681                uint32_t BUF40I:1;
3682                uint32_t BUF39I:1;
3683                uint32_t BUF38I:1;
3684                uint32_t BUF37I:1;
3685                uint32_t BUF36I:1;
3686                uint32_t BUF35I:1;
3687                uint32_t BUF34I:1;
3688                uint32_t BUF33I:1;
3689                uint32_t BUF32I:1;
3690            } B;
3691        } IFRH;                 /* Interruput Flag Register */
3692
3693        union {
3694            uint32_t R;
3695            struct {
3696                uint32_t BUF31I:1;
3697                uint32_t BUF30I:1;
3698                uint32_t BUF29I:1;
3699                uint32_t BUF28I:1;
3700                uint32_t BUF27I:1;
3701                uint32_t BUF26I:1;
3702                uint32_t BUF25I:1;
3703                uint32_t BUF24I:1;
3704                uint32_t BUF23I:1;
3705                uint32_t BUF22I:1;
3706                uint32_t BUF21I:1;
3707                uint32_t BUF20I:1;
3708                uint32_t BUF19I:1;
3709                uint32_t BUF18I:1;
3710                uint32_t BUF17I:1;
3711                uint32_t BUF16I:1;
3712                uint32_t BUF15I:1;
3713                uint32_t BUF14I:1;
3714                uint32_t BUF13I:1;
3715                uint32_t BUF12I:1;
3716                uint32_t BUF11I:1;
3717                uint32_t BUF10I:1;
3718                uint32_t BUF09I:1;
3719                uint32_t BUF08I:1;
3720                uint32_t BUF07I:1;
3721                uint32_t BUF06I:1;
3722                uint32_t BUF05I:1;
3723                uint32_t BUF04I:1;
3724                uint32_t BUF03I:1;
3725                uint32_t BUF02I:1;
3726                uint32_t BUF01I:1;
3727                uint32_t BUF00I:1;
3728            } B;
3729        } IFRL;                 /* Interruput Flag Register */
3730
3731        uint32_t flexcan2_reserved2[19];
3732
3733        struct canbuf_t {
3734            union {
3735                uint32_t R;
3736                struct {
3737                    uint32_t:4;
3738                    uint32_t CODE:4;
3739                      uint32_t:1;
3740                    uint32_t SRR:1;
3741                    uint32_t IDE:1;
3742                    uint32_t RTR:1;
3743                    uint32_t LENGTH:4;
3744                    uint32_t TIMESTAMP:16;
3745                } B;
3746            } CS;
3747
3748            union {
3749                uint32_t R;
3750                struct {
3751                    uint32_t:3;
3752                    uint32_t STD_ID:11;
3753                    uint32_t EXT_ID:18;
3754                } B;
3755            } ID;
3756
3757            union {
3758                uint8_t B[8];  /* Data buffer in Bytes (8 bits) */
3759                uint16_t H[4]; /* Data buffer in Half-words (16 bits) */
3760                uint32_t W[2]; /* Data buffer in words (32 bits) */
3761                uint32_t R[2]; /* Data buffer in words (32 bits) */
3762            } DATA;
3763
3764        } BUF[64];
3765
3766        uint32_t flexcan2_reserved3[256];
3767
3768        union {
3769            uint32_t R;
3770            struct {
3771                uint32_t:3;
3772                uint32_t MI:29;
3773            } B;
3774        } RXIMR[64];            /* RX Individual Mask Registers */
3775
3776    };
3777/****************************************************************************/
3778/*                          MODULE : FEC                                    */
3779/****************************************************************************/
3780    struct FEC_tag {
3781
3782        uint32_t fec_reserved_start[0x1];
3783
3784        union {
3785            uint32_t R;
3786            struct {
3787                uint32_t HBERR:1;
3788                uint32_t BABR:1;
3789                uint32_t BABT:1;
3790                uint32_t GRA:1;
3791                uint32_t TXF:1;
3792                uint32_t TXB:1;
3793                uint32_t RXF:1;
3794                uint32_t RXB:1;
3795                uint32_t MII:1;
3796                uint32_t EBERR:1;
3797                uint32_t LC:1;
3798                uint32_t RL:1;
3799                uint32_t UN:1;
3800                  uint32_t:19;
3801            } B;
3802        } EIR;                  /*  Interrupt Event Register */
3803
3804        union {
3805            uint32_t R;
3806            struct {
3807                uint32_t HBERRM:1;
3808                uint32_t BABRM:1;
3809                uint32_t BABTM:1;
3810                uint32_t GRAM:1;
3811                uint32_t TXFM:1;
3812                uint32_t TXBM:1;
3813                uint32_t RXFM:1;
3814                uint32_t RXBM:1;
3815                uint32_t MIIM:1;
3816                uint32_t EBERRM:1;
3817                uint32_t LCM:1;
3818                uint32_t RLM:1;
3819                uint32_t UNM:1;
3820                  uint32_t:19;
3821            } B;
3822        } EIMR;                 /*  Interrupt Mask Register  */
3823
3824        uint32_t fec_reserved_eimr;
3825
3826        union {
3827            uint32_t R;
3828            struct {
3829                uint32_t:7;
3830                uint32_t R_DES_ACTIVE:1;
3831                  uint32_t:24;
3832            } B;
3833        } RDAR;                 /*  Receive Descriptor Active Register  */
3834
3835        union {
3836            uint32_t R;
3837            struct {
3838                uint32_t:7;
3839                uint32_t X_DES_ACTIVE:1;
3840                  uint32_t:24;
3841            } B;
3842        } TDAR;                 /*  Transmit Descriptor Active Register  */
3843
3844        uint32_t fec_reserved_tdar[3];
3845
3846        union {
3847            uint32_t R;
3848            struct {
3849                uint32_t:30;
3850                uint32_t ETHER_EN:1;
3851                uint32_t RESET:1;
3852            } B;
3853        } ECR;                  /*  Ethernet Control Register  */
3854
3855        uint32_t fec_reserved_ecr[6];
3856
3857        union {
3858            uint32_t R;
3859            struct {
3860                uint32_t ST:2;
3861                uint32_t CP:2;
3862                uint32_t PA:5;
3863                uint32_t RA:5;
3864                uint32_t TA:2;
3865                uint32_t DATA:16;
3866            } B;
3867        } MDATA;                /* MII Data Register */
3868
3869        union {
3870            uint32_t R;
3871            struct {
3872                uint32_t:24;
3873                uint32_t DIS_PREAMBLE:1;
3874                uint32_t MII_SPEED:6;
3875                  uint32_t:1;
3876            } B;
3877        } MSCR;                 /* MII Speed Control Register */
3878
3879        uint32_t fec_reserved_mscr[7];
3880
3881        union {
3882            uint32_t R;
3883            struct {
3884                uint32_t MIB_DISABLE:1;
3885                uint32_t MIB_IDLE:1;
3886                  uint32_t:30;
3887            } B;
3888        } MIBC;                 /* MIB Control Register */
3889
3890        uint32_t fec_reserved_mibc[7];
3891
3892        union {
3893            uint32_t R;
3894            struct {
3895                uint32_t:5;
3896                uint32_t MAX_FL:11;
3897                  uint32_t:10;
3898                uint32_t FCE:1;
3899                uint32_t BC_REJ:1;
3900                uint32_t PROM:1;
3901                uint32_t MII_MODE:1;
3902                uint32_t DRT:1;
3903                uint32_t LOOP:1;
3904            } B;
3905        } RCR;                  /* Receive Control Register */
3906
3907        uint32_t fec_reserved_rcr[15];
3908
3909        union {
3910            uint32_t R;
3911            struct {
3912                uint32_t:27;
3913                uint32_t RFC_PAUSE:1;
3914                uint32_t TFC_PAUSE:1;
3915                uint32_t FDEN:1;
3916                uint32_t HBC:1;
3917                uint32_t GTS:1;
3918            } B;
3919        } TCR;                  /* Transmit Control Register */
3920
3921        uint32_t fec_reserved_tcr[7];
3922
3923        union {
3924            uint32_t R;
3925            struct {
3926                uint32_t PADDR1:32;
3927            } B;
3928        } PALR;                 /* Physical Address Low Register */
3929
3930        union {
3931            uint32_t R;
3932            struct {
3933                uint32_t PADDR2:16;
3934                uint32_t TYPE:16;
3935            } B;
3936        } PAUR;                 /* Physical Address High + Type Register */
3937
3938        union {
3939            uint32_t R;
3940            struct {
3941                uint32_t OPCODE:16;
3942                uint32_t PAUSE_DUR:16;
3943            } B;
3944        } OPD;                  /* Opcode/Pause Duration Register */
3945
3946        uint32_t fec_reserved_opd[10];
3947
3948        union {
3949            uint32_t R;
3950            struct {
3951                uint32_t IADDR1:32;
3952            } B;
3953        } IAUR;                 /* Descriptor Individual Upper Address Register */
3954
3955        union {
3956            uint32_t R;
3957            struct {
3958                uint32_t IADDR2:32;
3959            } B;
3960        } IALR;                 /* Descriptor Individual Lower Address Register */
3961
3962        union {
3963            uint32_t R;
3964            struct {
3965                uint32_t GADDR1:32;
3966            } B;
3967        } GAUR;                 /* Descriptor Group Upper Address Register */
3968
3969        union {
3970            uint32_t R;
3971            struct {
3972                uint32_t GADDR2:32;
3973            } B;
3974        } GALR;                 /* Descriptor Group Lower Address Register */
3975
3976        uint32_t fec_reserved_galr[7];
3977
3978        union {
3979            uint32_t R;
3980            struct {
3981                uint32_t:30;
3982                uint32_t X_WMRK:2;
3983            } B;
3984        } TFWR;                 /* FIFO Transmit FIFO Watermark Register */
3985
3986        uint32_t fec_reserved_tfwr;
3987
3988        union {
3989            uint32_t R;
3990            struct {
3991                uint32_t:22;
3992                uint32_t R_BOUND:8;
3993                  uint32_t:2;
3994            } B;
3995        } FRBR;                 /* FIFO Receive Bound Register */
3996
3997        union {
3998            uint32_t R;
3999            struct {
4000                uint32_t:22;
4001                uint32_t R_FSTART:8;
4002                  uint32_t:2;
4003            } B;
4004        } FRSR;                 /* FIFO Receive Start Register */
4005
4006        uint32_t fec_reserved_frsr[11];
4007
4008        union {
4009            uint32_t R;
4010            struct {
4011                uint32_t R_DES_START:30;
4012                  uint32_t:2;
4013            } B;
4014        } ERDSR;                /* Receive Descriptor Ring Start Register */
4015
4016        union {
4017            uint32_t R;
4018            struct {
4019                uint32_t X_DES_START:30;
4020                  uint32_t:2;
4021            } B;
4022        } ETDSR;                /* Transmit Descriptor Ring Start Register */
4023
4024        union {
4025            uint32_t R;
4026            struct {
4027                uint32_t:21;
4028                uint32_t R_BUF_SIZE:7;
4029                  uint32_t:4;
4030            } B;
4031        } EMRBR;                /* Receive Buffer Size Register */
4032
4033        uint32_t fec_reserved_emrbr[29];
4034
4035        union {
4036            uint32_t R;
4037        } RMON_T_DROP;          /* Count of frames not counted correctly */
4038
4039        union {
4040            uint32_t R;
4041        } RMON_T_PACKETS;       /* RMON Tx packet count */
4042
4043        union {
4044            uint32_t R;
4045        } RMON_T_BC_PKT;        /* RMON Tx Broadcast Packets */
4046
4047        union {
4048            uint32_t R;
4049        } RMON_T_MC_PKT;        /* RMON Tx Multicast Packets */
4050
4051        union {
4052            uint32_t R;
4053        } RMON_T_CRC_ALIGN;     /* RMON Tx Packets w CRC/Align error */
4054
4055        union {
4056            uint32_t R;
4057        } RMON_T_UNDERSIZE;     /* RMON Tx Packets < 64 bytes, good crc */
4058
4059        union {
4060            uint32_t R;
4061        } RMON_T_OVERSIZE;      /* RMON Tx Packets > MAX_FL bytes, good crc */
4062
4063        union {
4064            uint32_t R;
4065        } RMON_T_FRAG;          /* RMON Tx Packets < 64 bytes, bad crc */
4066
4067        union {
4068            uint32_t R;
4069        } RMON_T_JAB;           /* RMON Tx Packets > MAX_FL bytes, bad crc */
4070
4071        union {
4072            uint32_t R;
4073        } RMON_T_COL;           /* RMON Tx collision count */
4074
4075        union {
4076            uint32_t R;
4077        } RMON_T_P64;           /* RMON Tx 64 byte packets */
4078
4079        union {
4080            uint32_t R;
4081        } RMON_T_P65TO127;      /* RMON Tx 65 to 127 byte packets */
4082
4083        union {
4084            uint32_t R;
4085        } RMON_T_P128TO255;     /* RMON Tx 128 to 255 byte packets */
4086
4087        union {
4088            uint32_t R;
4089        } RMON_T_P256TO511;     /* RMON Tx 256 to 511 byte packets */
4090
4091        union {
4092            uint32_t R;
4093        } RMON_T_P512TO1023;    /* RMON Tx 512 to 1023 byte packets */
4094
4095        union {
4096            uint32_t R;
4097        } RMON_T_P1024TO2047;   /* RMON Tx 1024 to 2047 byte packets */
4098
4099        union {
4100            uint32_t R;
4101        } RMON_T_P_GTE2048;     /* RMON Tx packets w > 2048 bytes */
4102
4103        union {
4104            uint32_t R;
4105        } RMON_T_OCTETS;        /* RMON Tx Octets */
4106
4107        union {
4108            uint32_t R;
4109        } IEEE_T_DROP;          /* Count of frames not counted correctly */
4110
4111        union {
4112            uint32_t R;
4113        } IEEE_T_FRAME_OK;      /* Frames Transmitted OK */
4114
4115        union {
4116            uint32_t R;
4117        } IEEE_T_1COL;          /* Frames Transmitted with Single Collision */
4118
4119        union {
4120            uint32_t R;
4121        } IEEE_T_MCOL;          /* Frames Transmitted with Multiple Collisions */
4122
4123        union {
4124            uint32_t R;
4125        } IEEE_T_DEF;           /* Frames Transmitted after Deferral Delay */
4126
4127        union {
4128            uint32_t R;
4129        } IEEE_T_LCOL;          /* Frames Transmitted with Late Collision */
4130
4131        union {
4132            uint32_t R;
4133        } IEEE_T_EXCOL;         /* Frames Transmitted with Excessive Collisions */
4134
4135        union {
4136            uint32_t R;
4137        } IEEE_T_MACERR;        /* Frames Transmitted with Tx FIFO Underrun */
4138
4139        union {
4140            uint32_t R;
4141        } IEEE_T_CSERR;         /* Frames Transmitted with Carrier Sense Error */
4142
4143        union {
4144            uint32_t R;
4145        } IEEE_T_SQE;           /* Frames Transmitted with SQE Error */
4146
4147        union {
4148            uint32_t R;
4149        } IEEE_T_FDXFC;         /* Flow Control Pause frames transmitted */
4150
4151        union {
4152            uint32_t R;
4153        } IEEE_T_OCTETS_OK;     /* Octet count for Frames Transmitted w/o Error */
4154
4155        uint32_t fec_reserved_rmon_t_octets_ok[2];
4156
4157        union {
4158            uint32_t R;
4159        } RMON_R_DROP;          /*  Count of frames not counted correctly  */
4160
4161        union {
4162            uint32_t R;
4163        } RMON_R_PACKETS;       /* RMON Rx packet count */
4164
4165        union {
4166            uint32_t R;
4167        } RMON_R_BC_PKT;        /* RMON Rx Broadcast Packets */
4168
4169        union {
4170            uint32_t R;
4171        } RMON_R_MC_PKT;        /* RMON Rx Multicast Packets */
4172
4173        union {
4174            uint32_t R;
4175        } RMON_R_CRC_ALIGN;     /* RMON Rx Packets w CRC/Align error */
4176
4177        union {
4178            uint32_t R;
4179        } RMON_R_UNDERSIZE;     /* RMON Rx Packets < 64 bytes, good crc */
4180
4181        union {
4182            uint32_t R;
4183        } RMON_R_OVERSIZE;      /* RMON Rx Packets > MAX_FL bytes, good crc */
4184
4185        union {
4186            uint32_t R;
4187        } RMON_R_FRAG;          /* RMON Rx Packets < 64 bytes, bad crc */
4188
4189        union {
4190            uint32_t R;
4191        } RMON_R_JAB;           /* RMON Rx Packets > MAX_FL bytes, bad crc */
4192
4193        uint32_t fec_reserved_rmon_r_jab;
4194
4195        union {
4196            uint32_t R;
4197        } RMON_R_P64;           /* RMON Rx 64 byte packets */
4198
4199        union {
4200            uint32_t R;
4201        } RMON_R_P65TO127;      /* RMON Rx 65 to 127 byte packets */
4202
4203        union {
4204            uint32_t R;
4205        } RMON_R_P128TO255;     /* RMON Rx 128 to 255 byte packets */
4206
4207        union {
4208            uint32_t R;
4209        } RMON_R_P256TO511;     /* RMON Rx 256 to 511 byte packets */
4210
4211        union {
4212            uint32_t R;
4213        } RMON_R_P512TO1023;    /* RMON Rx 512 to 1023 byte packets */
4214
4215        union {
4216            uint32_t R;
4217        } RMON_R_P1024TO2047;   /* RMON Rx 1024 to 2047 byte packets */
4218
4219        union {
4220            uint32_t R;
4221        } RMON_R_P_GTE2048;     /* RMON Rx packets w > 2048 bytes */
4222
4223        union {
4224            uint32_t R;
4225        } RMON_R_OCTETS;        /* RMON Rx Octets */
4226
4227        union {
4228            uint32_t R;
4229        } IEEE_R_DROP;          /* Count of frames not counted correctly */
4230
4231        union {
4232            uint32_t R;
4233        } IEEE_R_FRAME_OK;      /* Frames Received OK */
4234
4235        union {
4236            uint32_t R;
4237        } IEEE_R_CRC;           /* Frames Received with CRC Error */
4238
4239        union {
4240            uint32_t R;
4241        } IEEE_R_ALIGN;         /* Frames Received with Alignment Error */
4242
4243        union {
4244            uint32_t R;
4245        } IEEE_R_MACERR;        /* Receive Fifo Overflow count */
4246
4247        union {
4248            uint32_t R;
4249        } IEEE_R_FDXFC;         /* Flow Control Pause frames received */
4250
4251        union {
4252            uint32_t R;
4253        } IEEE_R_OCTETS_OK;     /* Octet count for Frames Rcvd w/o Error */
4254
4255    };
4256
4257/****************************************************************************/
4258/*                          MMU                                             */
4259/****************************************************************************/
4260    struct MMU_tag {
4261        union {
4262            uint32_t R;
4263            struct {
4264                uint32_t : 2;
4265                uint32_t TLBSEL : 2;
4266                uint32_t : 7;
4267                uint32_t ESEL : 5;
4268                uint32_t : 11;
4269                uint32_t NV : 5;
4270            } B;
4271        } MAS0;
4272
4273        union {
4274            uint32_t R;
4275            struct {
4276                uint32_t VALID : 1;
4277                uint32_t IPROT : 1;
4278                uint32_t : 6;
4279                uint32_t TID : 8;
4280                uint32_t : 3;
4281                uint32_t TS : 1;
4282                uint32_t TSIZ : 4;
4283                uint32_t : 8;
4284            } B;
4285        } MAS1;
4286
4287        union {
4288            uint32_t R;
4289            struct {
4290                uint32_t EPN : 20;
4291                uint32_t : 7;
4292                uint32_t W : 1;
4293                uint32_t I : 1;
4294                uint32_t M : 1;
4295                uint32_t G : 1;
4296                uint32_t E : 1;
4297            } B;
4298        } MAS2;
4299
4300        union {
4301            uint32_t R;
4302            struct {
4303                uint32_t RPN : 20;
4304                uint32_t : 2;
4305                uint32_t U0 : 1;
4306                uint32_t U1 : 1;
4307                uint32_t U2 : 1;
4308                uint32_t U3 : 1;
4309                uint32_t UX : 1;
4310                uint32_t SX : 1;
4311                uint32_t UW : 1;
4312                uint32_t SW : 1;
4313                uint32_t UR : 1;
4314                uint32_t SR : 1;
4315            } B;
4316        } MAS3;
4317
4318        union {
4319            uint32_t R;
4320            struct {
4321                uint32_t : 2;
4322                uint32_t TLBSELD : 2;
4323                uint32_t : 10;
4324                uint32_t TIDSELD : 2;
4325                uint32_t : 4;
4326                uint32_t TSIZED : 4;
4327                uint32_t : 3;
4328                uint32_t WD : 1;
4329                uint32_t ID : 1;
4330                uint32_t MD : 1;
4331                uint32_t GD : 1;
4332                uint32_t ED : 1;
4333            } B;
4334        } MAS4;
4335
4336        union {
4337            uint32_t R;
4338            struct {
4339                uint32_t : 8;
4340                uint32_t SPID : 8;
4341                uint32_t : 15;
4342                uint32_t SAS : 1;
4343            } B;
4344        } MAS6;
4345    };
4346
4347    static const struct MMU_tag MMU_DEFAULT = {
4348        .MAS0 = { .R = 0x10000000 },
4349        .MAS1 = { .R = 0 },
4350        .MAS2 = { .R = 0 },
4351        .MAS3 = { .R = 0 },
4352        .MAS4 = { .R = 0 },
4353        .MAS6 = { .R = 0 }
4354    };
4355
4356/* Define memories */
4357
4358#define SRAM_START  0x40000000
4359#define SRAM_SIZE      0x20000
4360#define SRAM_END    0x4001FFFF
4361
4362#define FLASH_START         0x0
4363#define FLASH_SIZE      0x300000
4364#define FLASH_END       0x2FFFFF
4365
4366/* Define instances of modules */
4367#define PBRIDGE_A (*(volatile struct PBRIDGE_A_tag *) 0xC3F00000)
4368#define FMPLL     (*(volatile struct FMPLL_tag *)     0xC3F80000)
4369#define EBI       (*(volatile struct EBI_tag *)       0xC3F84000)
4370#define FLASH     (*(volatile struct FLASH_tag *)     0xC3F88000)
4371#define SIU       (*(volatile struct SIU_tag *)       0xC3F90000)
4372
4373#define EMIOS     (*(volatile struct EMIOS_tag *)     0xC3FA0000)
4374#define ETPU      (*(volatile struct ETPU_tag *)      0xC3FC0000)
4375#define ETPU_DATA_RAM  (*(volatile uint32_t *)        0xC3FC8000)
4376#define ETPU_DATA_RAM_EXT  (*(volatile uint32_t *)    0xC3FCC000)
4377#define ETPU_DATA_RAM_END  0xC3FC8FFC
4378#define CODE_RAM       (*(volatile uint32_t *)        0xC3FD0000)
4379#define ETPU_CODE_RAM  (*(volatile uint32_t *)        0xC3FD0000)
4380
4381#define PBRIDGE_B (*(volatile struct PBRIDGE_B_tag *) 0xFFF00000)
4382#define XBAR      (*(volatile struct XBAR_tag *)      0xFFF04000)
4383#define ECSM      (*(volatile struct ECSM_tag *)      0xFFF40000)
4384#define EDMA      (*(volatile struct EDMA_tag *)      0xFFF44000)
4385#define INTC      (*(volatile struct INTC_tag *)      0xFFF48000)
4386
4387#define EQADC     (*(volatile struct EQADC_tag *)     0xFFF80000)
4388
4389#define DSPI_A    (*(volatile struct DSPI_tag *)      0xFFF90000)
4390#define DSPI_B    (*(volatile struct DSPI_tag *)      0xFFF94000)
4391#define DSPI_C    (*(volatile struct DSPI_tag *)      0xFFF98000)
4392#define DSPI_D    (*(volatile struct DSPI_tag *)      0xFFF9C000)
4393
4394#define ESCI_A    (*(volatile struct ESCI_tag *)      0xFFFB0000)
4395#define ESCI_B    (*(volatile struct ESCI_tag *)      0xFFFB4000)
4396
4397#define CAN_A     (*(volatile struct FLEXCAN2_tag *)  0xFFFC0000)
4398#define CAN_B     (*(volatile struct FLEXCAN2_tag *)  0xFFFC4000)
4399#define CAN_C     (*(volatile struct FLEXCAN2_tag *)  0xFFFC8000)
4400#define CAN_D     (*(volatile struct FLEXCAN2_tag *)  0xFFFCC000)
4401
4402#define FEC     (*(volatile struct FEC_tag *)  0xFFF4C000)
4403
4404#define MPC55XX_ZERO_FLAGS { .R = 0 }
4405
4406#ifdef  __cplusplus
4407}
4408#endif /* __cplusplus */
4409
4410#endif /* LIBCPU_POWERPC_MPC55XX_REGS_H */
4411
4412/*********************************************************************
4413 *
4414 * Copyright:
4415 *  Freescale Semiconductor, INC. All Rights Reserved.
4416 *  You are hereby granted a copyright license to use, modify, and
4417 *  distribute the SOFTWARE so long as this entire notice is
4418 *  retained without alteration in any modified and/or redistributed
4419 *  versions, and that such modified versions are clearly identified
4420 *  as such. No licenses are granted by implication, estoppel or
4421 *  otherwise under any patents or trademarks of Freescale
4422 *  Semiconductor, Inc. This software is provided on an "AS IS"
4423 *  basis and without warranty.
4424 *
4425 *  To the maximum extent permitted by applicable law, Freescale
4426 *  Semiconductor DISCLAIMS ALL WARRANTIES WHETHER EXPRESS OR IMPLIED,
4427 *  INCLUDING IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A
4428 *  PARTICULAR PURPOSE AND ANY WARRANTY AGAINST INFRINGEMENT WITH
4429 *  REGARD TO THE SOFTWARE (INCLUDING ANY MODIFIED VERSIONS THEREOF)
4430 *  AND ANY ACCOMPANYING WRITTEN MATERIALS.
4431 *
4432 *  To the maximum extent permitted by applicable law, IN NO EVENT
4433 *  SHALL Freescale Semiconductor BE LIABLE FOR ANY DAMAGES WHATSOEVER
4434 *  (INCLUDING WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS,
4435 *  BUSINESS INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR OTHER
4436 *  PECUNIARY LOSS) ARISING OF THE USE OR INABILITY TO USE THE SOFTWARE.
4437 *
4438 *  Freescale Semiconductor assumes no responsibility for the
4439 *  maintenance and support of this software
4440 *
4441 ********************************************************************/
Note: See TracBrowser for help on using the repository browser.