Ignore:
Timestamp:
Jul 21, 2009, 8:38:04 AM (10 years ago)
Author:
Thomas Doerfler <Thomas.Doerfler@…>
Branches:
4.10, 4.11, master
Children:
68799a2a
Parents:
115971c
Message:

Update for MPC55XX changes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • c/src/lib/libcpu/powerpc/mpc55xx/include/regs.h

    r115971c rd374492  
    667667        } SRCR;
    668668
    669         union {                 /* External Interrupt Status Register */
     669        union SIU_EISR_tag {    /* External Interrupt Status Register */
    670670            uint32_t R;
    671671            struct {
     
    690690        } EISR;
    691691
    692         union {                 /* DMA/Interrupt Request Enable Register */
     692        union SIU_DIRER_tag {   /* DMA/Interrupt Request Enable Register */
    693693            uint32_t R;
    694694            struct {
     
    713713        } DIRER;
    714714
    715         union {                 /* DMA/Interrupt Select Register */
     715        union SIU_DIRSR_tag {   /* DMA/Interrupt Select Register */
    716716            uint32_t R;
    717717            struct {
     
    724724        } DIRSR;
    725725
    726         union {                 /* Overrun Status Register */
     726        union SIU_OSR_tag {     /* Overrun Status Register */
    727727            uint32_t R;
    728728            struct {
     
    747747        } OSR;
    748748
    749         union {                 /* Overrun Request Enable Register */
     749        union SIU_ORER_tag {    /* Overrun Request Enable Register */
    750750            uint32_t R;
    751751            struct {
     
    770770        } ORER;
    771771
    772         union {                 /* External IRQ Rising-Edge Event Enable Register */
     772        union SIU_IREER_tag {   /* External IRQ Rising-Edge Event Enable Register */
    773773            uint32_t R;
    774774            struct {
     
    793793        } IREER;
    794794
    795         union {                 /* External IRQ Falling-Edge Event Enable Register */
     795        union SIU_IFEER_tag {   /* External IRQ Falling-Edge Event Enable Register */
    796796            uint32_t R;
    797797            struct {
     
    816816        } IFEER;
    817817
    818         union {                 /* External IRQ Digital Filter Register */
     818        union SIU_IDFR_tag {    /* External IRQ Digital Filter Register */
    819819            uint32_t R;
    820820            struct {
     
    964964/****************************************************************************/
    965965    struct EMIOS_tag {
    966         union {
     966        union EMIOS_MCR_tag {
    967967            uint32_t R;
    968968            struct {
     
    980980        } MCR;                  /* Module Configuration Register */
    981981
    982         union {
     982        union EMIOS_GFR_tag {
    983983            uint32_t R;
    984984            struct {
     
    10111011        } GFR;                  /* Global FLAG Register */
    10121012
    1013         union {
     1013        union EMIOS_OUDR_tag {
    10141014            uint32_t R;
    10151015            struct {
     
    10441044        uint32_t emios_reserved[5];
    10451045
    1046         struct {
     1046        struct EMIOS_CH_tag {
    10471047            union {
    10481048                uint32_t R;    /* Channel A Data Register */
     
    10571057            } CCNTR;
    10581058
    1059             union {
     1059            union EMIOS_CCR_tag {
    10601060                uint32_t R;
    10611061                struct {
     
    10811081            } CCR;              /* Channel Control Register */
    10821082
    1083             union {
     1083            union EMIOS_CSR_tag {
    10841084                uint32_t R;
    10851085                struct {
     
    21662166        union {
    21672167            uint16_t R;
    2168         } SWTCR;                //Software Watchdog Timer Control
     2168        } SWTCR;                /* Software Watchdog Timer Control */
    21692169
    21702170        uint8_t ecsm_reserved3[3];
     
    21722172        union {
    21732173            uint8_t R;
    2174         } SWTSR;                //SWT Service Register
     2174        } SWTSR;                /* SWT Service Register */
    21752175
    21762176        uint8_t ecsm_reserved4[3];
     
    21782178        union {
    21792179            uint8_t R;
    2180         } SWTIR;                //SWT Interrupt Register
     2180        } SWTIR;                /* SWT Interrupt Register */
    21812181
    21822182        uint32_t ecsm_reserved5a[1];
     
    22112211                uint8_t EFNCR:1;
    22122212            } B;
    2213         } ECR;                  //ECC Configuration Register
     2213        } ECR;                  /* ECC Configuration Register */
    22142214
    22152215        uint8_t mcm_reserved8[3];
     
    22222222                uint8_t FNCE:1;
    22232223            } B;
    2224         } ESR;                  //ECC Status Register
     2224        } ESR;                  /* ECC Status Register */
    22252225
    22262226        uint16_t ecsm_reserved9;
     
    22352235                uint16_t ERRBIT:7;
    22362236            } B;
    2237         } EEGR;                 //ECC Error Generation Register
     2237        } EEGR;                 /* ECC Error Generation Register */
    22382238
    22392239        uint32_t ecsm_reserved10;
     
    22442244                uint32_t FEAR:32;
    22452245            } B;
    2246         } FEAR;                 //Flash ECC Address Register
     2246        } FEAR;                 /* Flash ECC Address Register */
    22472247
    22482248        uint16_t ecsm_reserved11;
     
    22542254                uint8_t FEMR:4;
    22552255            } B;
    2256         } FEMR;                 //Flash ECC Master Register
     2256        } FEMR;                 /* Flash ECC Master Register */
    22572257
    22582258        union {
     
    22662266                uint8_t PROT3:1;
    22672267            } B;
    2268         } FEAT;                 //Flash ECC Attributes Register
     2268        } FEAT;                 /* Flash ECC Attributes Register */
    22692269
    22702270        union {
     
    22732273                uint32_t FEDH:32;
    22742274            } B;
    2275         } FEDRH;                //Flash ECC Data High Register
     2275        } FEDRH;                /* Flash ECC Data High Register */
    22762276
    22772277        union {
     
    22802280                uint32_t FEDL:32;
    22812281            } B;
    2282         } FEDRL;                //Flash ECC Data Low Register
     2282        } FEDRL;                /* Flash ECC Data Low Register */
    22832283
    22842284        union {
     
    22872287                uint32_t REAR:32;
    22882288            } B;
    2289         } REAR;                 //RAM ECC Address
     2289        } REAR;                 /* RAM ECC Address */
    22902290
    22912291        uint8_t ecsm_reserved12[2];
     
    22972297                uint8_t REMR:4;
    22982298            } B;
    2299         } REMR;                 //RAM ECC Master
     2299        } REMR;                 /* RAM ECC Master */
    23002300
    23012301        union {
     
    23092309                uint8_t PROT3:1;
    23102310            } B;
    2311         } REAT;                 // RAM ECC Attributes Register
     2311        } REAT;                 /*  RAM ECC Attributes Register */
    23122312
    23132313        union {
     
    23162316                uint32_t REDH:32;
    23172317            } B;
    2318         } REDRH;                //RAM ECC Data High Register
     2318        } REDRH;                /* RAM ECC Data High Register */
    23192319
    23202320        union {
     
    23232323                uint32_t REDL:32;
    23242324            } B;
    2325         } REDRL;                //RAMECC Data Low Register
     2325        } REDRL;                /* RAMECC Data Low Register */
    23262326
    23272327    };
     
    27292729            uint32_t SADDR;    /* source address */
    27302730
    2731             uint16_t SMOD:5;   /* source address modulo */
    2732             uint16_t SSIZE:3;  /* source transfer size */
    2733             uint16_t DMOD:5;   /* destination address modulo */
    2734             uint16_t DSIZE:3;  /* destination transfer size */
    2735             int16_t SOFF;      /* signed source address offset */
     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;
    27362742
    27372743            uint32_t NBYTES;   /* inner (“minor”) byte count */
    27382744
    27392745            int32_t SLAST;     /* last destination address adjustment, or
    2740 
    27412746                                   scatter/gather address (if e_sg = 1) */
     2747
    27422748            uint32_t DADDR;    /* destination address */
    27432749
    2744             uint16_t CITERE_LINK:1;
    2745             uint16_t CITER:15;
    2746 
    2747             int16_t DOFF;      /* signed destination address offset */
     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;
    27482765
    27492766            int32_t DLAST_SGA;
    27502767
    2751             uint16_t BITERE_LINK:1;    /* beginning ("major") iteration count */
    2752             uint16_t BITER:15;
    2753 
    2754             uint16_t BWC:2;    /* bandwidth control */
    2755             uint16_t MAJORLINKCH:6;    /* enable channel-to-channel link */
    2756             uint16_t DONE:1;   /* channel done */
    2757             uint16_t ACTIVE:1; /* channel active */
    2758             uint16_t MAJORE_LINK:1;    /* enable channel-to-channel link */
    2759             uint16_t E_SG:1;   /* enable scatter/gather descriptor */
    2760             uint16_t D_REQ:1;  /* disable ipd_req when done */
    2761             uint16_t INT_HALF:1;       /* interrupt on citer = (biter >> 1) */
    2762             uint16_t INT_MAJ:1;        /* interrupt on major loop completion */
    2763             uint16_t START:1;  /* explicit channel start */
     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;
    27642801        } TCD[64];              /* transfer_control_descriptor */
    2765 
    27662802    };
    27672803
     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
    27682815#define EDMA_TCD_BITER_MASK 0x7fff
    27692816
     
    27762823#define EDMA_TCD_LINK_AND_BITER( link, biter) (((link) << 9) + ((biter) & EDMA_TCD_BITER_LINKED_MASK))
    27772824
    2778 #define EDMA_TCD_BITER_LINK( channel) (EDMA.TCD [(channel)].BITER >> 9)
    2779 
    2780 /* This is outside of the eDMA structure */
    2781 /* There are 2 possible ways to use the citer bit field, this structure */
    2782 /* uses the different format from the main structure.                   */
    2783     struct tcd_alt_t {
    2784         uint32_t SADDR;        /* source address */
    2785 
    2786         uint16_t SMOD:5;       /* source address modulo */
    2787         uint16_t SSIZE:3;      /* source transfer size */
    2788         uint16_t DMOD:5;       /* destination address modulo */
    2789         uint16_t DSIZE:3;      /* destination transfer size */
    2790         int16_t SOFF;          /* signed source address offset */
    2791 
    2792         uint32_t NBYTES;       /* inner (“minor”) byte count */
    2793 
    2794         int32_t SLAST;         /* last destination address adjustment, or
    2795 
    2796                                    scatter/gather address (if e_sg = 1) */
    2797         uint32_t DADDR;        /* destination address */
    2798 
    2799         uint16_t CITERE_LINK:1;
    2800         uint16_t CITERLINKCH:6;
    2801         uint16_t CITER:9;
    2802 
    2803         int16_t DOFF;          /* signed destination address offset */
    2804 
    2805         int32_t DLAST_SGA;
    2806 
    2807         uint16_t BITERE_LINK:1;        /* beginning (“major”) iteration count */
    2808         uint16_t BITERLINKCH:6;
    2809         uint16_t BITER:9;
    2810 
    2811         uint16_t BWC:2;        /* bandwidth control */
    2812         uint16_t MAJORLINKCH:6;        /* enable channel-to-channel link */
    2813         uint16_t DONE:1;       /* channel done */
    2814         uint16_t ACTIVE:1;     /* channel active */
    2815         uint16_t MAJORE_LINK:1;        /* enable channel-to-channel link */
    2816         uint16_t E_SG:1;       /* enable scatter/gather descriptor */
    2817         uint16_t D_REQ:1;      /* disable ipd_req when done */
    2818         uint16_t INT_HALF:1;   /* interrupt on citer = (biter >> 1) */
    2819         uint16_t INT_MAJ:1;    /* interrupt on major loop completion */
    2820         uint16_t START:1;      /* explicit channel start */
    2821     };                          /* transfer_control_descriptor */
     2825#define EDMA_TCD_BITER_LINK( channel) (EDMA.TCD [(channel)].BMF.B.BITER >> 9)
     2826
    28222827/****************************************************************************/
    28232828/*                          MODULE : INTC                                   */
     
    42504255    };
    42514256
     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
    42524356/* Define memories */
    42534357
     
    43094413 *
    43104414 * Copyright:
    4311  *      Freescale Semiconductor, INC. All Rights Reserved.
     4415 *  Freescale Semiconductor, INC. All Rights Reserved.
    43124416 *  You are hereby granted a copyright license to use, modify, and
    43134417 *  distribute the SOFTWARE so long as this entire notice is
Note: See TracChangeset for help on using the changeset viewer.