Ignore:
Timestamp:
Jul 14, 2008, 4:15:28 PM (11 years ago)
Author:
Thomas Doerfler <Thomas.Doerfler@…>
Branches:
4.10, 4.11, 4.9, master
Children:
18e6e824
Parents:
3c6fe2e
Message:

updated gen83xx BSP
updated haleakala BSP
added MPC55xx BSP

File:
1 edited

Legend:

Unmodified
Added
Removed
  • c/src/lib/libbsp/powerpc/haleakala/irq/irq.c

    r3c6fe2e r574fb67  
    7070/* Write the gEnabledInts state masked by gIntInhibited to the hardware */
    7171{
    72         mtdcr(UIC0_ER, gEnabledInts[0] & ~gIntInhibited[0]);
    73         mtdcr(UIC1_ER, gEnabledInts[1] & ~gIntInhibited[1]);
    74         mtdcr(UIC2_ER, gEnabledInts[2] & ~gIntInhibited[2]);
     72        PPC_SET_DEVICE_CONTROL_REGISTER(UIC0_ER,
     73                                        gEnabledInts[0] & ~gIntInhibited[0]);
     74        PPC_SET_DEVICE_CONTROL_REGISTER(UIC1_ER,
     75                                        gEnabledInts[1] & ~gIntInhibited[1]);
     76        PPC_SET_DEVICE_CONTROL_REGISTER(UIC2_ER,
     77                                        gEnabledInts[2] & ~gIntInhibited[2]);
    7578}
    7679
     
    113116                gIntInhibited[i] = 0;
    114117               
    115         mtdcr (UIC2_ER, 0x00000000);    /* disable all interrupts */
    116         mtdcr (UIC2_CR, 0x00000000);    /* Set Critical / Non Critical interrupts */
    117         mtdcr (UIC2_PR, 0xf7ffffff);    /* Set Interrupt Polarities */
    118         mtdcr (UIC2_TR, 0x01e1fff8);    /* Set Interrupt Trigger Levels */
    119         mtdcr (UIC2_VR, 0x00000001);    /* Set Vect base=0,INT31 Highest priority */
    120         mtdcr (UIC2_SR, 0xffffffff);    /* clear all interrupts */
    121 
    122         mtdcr (UIC1_ER, 0x00000000);    /* disable all interrupts */
    123         mtdcr (UIC1_CR, 0x00000000);    /* Set Critical / Non Critical interrupts */
    124         mtdcr (UIC1_PR, 0xfffac785);    /* Set Interrupt Polarities */
    125         mtdcr (UIC1_TR, 0x001d0040);    /* Set Interrupt Trigger Levels */
    126         mtdcr (UIC1_VR, 0x00000001);    /* Set Vect base=0,INT31 Highest priority */
    127         mtdcr (UIC1_SR, 0xffffffff);    /* clear all interrupts */
    128 
    129         mtdcr (UIC0_ER, 0x0000000a);    /* Disable all interrupts except cascade UIC0 and UIC1 */
    130         mtdcr (UIC0_CR, 0x00000000);    /* Set Critical / Non Critical interrupts */
    131         mtdcr (UIC0_PR, 0xffbfefef);    /* Set Interrupt Polarities */
    132         mtdcr (UIC0_TR, 0x00007000);    /* Set Interrupt Trigger Levels */
    133         mtdcr (UIC0_VR, 0x00000001);    /* Set Vect base=0,INT31 Highest priority */
    134         mtdcr (UIC0_SR, 0xffffffff);    /* clear all interrupts */
     118        /* disable all interrupts */
     119        PPC_SET_DEVICE_CONTROL_REGISTER (UIC2_ER, 0x00000000); 
     120        /* Set Critical / Non Critical interrupts */
     121        PPC_SET_DEVICE_CONTROL_REGISTER (UIC2_CR, 0x00000000);
     122        /* Set Interrupt Polarities */
     123        PPC_SET_DEVICE_CONTROL_REGISTER (UIC2_PR, 0xf7ffffff);
     124        /* Set Interrupt Trigger Levels */
     125        PPC_SET_DEVICE_CONTROL_REGISTER (UIC2_TR, 0x01e1fff8);
     126        /* Set Vect base=0,INT31 Highest priority */
     127        PPC_SET_DEVICE_CONTROL_REGISTER (UIC2_VR, 0x00000001);
     128        /* clear all interrupts */
     129        PPC_SET_DEVICE_CONTROL_REGISTER (UIC2_SR, 0xffffffff);
     130
     131        /* disable all interrupts */
     132        PPC_SET_DEVICE_CONTROL_REGISTER (UIC1_ER, 0x00000000);
     133        /* Set Critical / Non Critical interrupts */
     134        PPC_SET_DEVICE_CONTROL_REGISTER (UIC1_CR, 0x00000000);
     135        /* Set Interrupt Polarities */
     136        PPC_SET_DEVICE_CONTROL_REGISTER (UIC1_PR, 0xfffac785);
     137        /* Set Interrupt Trigger Levels */
     138        PPC_SET_DEVICE_CONTROL_REGISTER (UIC1_TR, 0x001d0040);
     139        /* Set Vect base=0,INT31 Highest priority */
     140        PPC_SET_DEVICE_CONTROL_REGISTER (UIC1_VR, 0x00000001);
     141        /* clear all interrupts */
     142        PPC_SET_DEVICE_CONTROL_REGISTER (UIC1_SR, 0xffffffff);
     143
     144        /* Disable all interrupts except cascade UIC0 and UIC1 */
     145        PPC_SET_DEVICE_CONTROL_REGISTER (UIC0_ER, 0x0000000a);
     146        /* Set Critical / Non Critical interrupts */
     147        PPC_SET_DEVICE_CONTROL_REGISTER (UIC0_CR, 0x00000000);
     148        /* Set Interrupt Polarities */
     149        PPC_SET_DEVICE_CONTROL_REGISTER (UIC0_PR, 0xffbfefef);
     150        /* Set Interrupt Trigger Levels */
     151        PPC_SET_DEVICE_CONTROL_REGISTER (UIC0_TR, 0x00007000);
     152        /* Set Vect base=0,INT31 Highest priority */
     153        PPC_SET_DEVICE_CONTROL_REGISTER (UIC0_VR, 0x00000001);
     154        /* clear all interrupts */
     155        PPC_SET_DEVICE_CONTROL_REGISTER (UIC0_SR, 0xffffffff);
    135156       
    136157        return 1;
     
    154175                   Likely to be only one, but we need to handle more than one,
    155176                   OR the flags into gIntInhibited */
    156                 active[0] = mfdcr(UIC0_MSR);
    157                 active[1] = mfdcr(UIC1_MSR);
    158                 active[2] = mfdcr(UIC2_MSR);
     177                active[0] = PPC_DEVICE_CONTROL_REGISTER(UIC0_MSR);
     178                active[1] = PPC_DEVICE_CONTROL_REGISTER(UIC1_MSR);
     179                active[2] = PPC_DEVICE_CONTROL_REGISTER(UIC2_MSR);
    159180                gIntInhibited[0] |= active[0];
    160181                gIntInhibited[1] |= active[1];
     
    181202                        bmask = 0x80000000 >> bit;
    182203                        switch (index) {
    183                                 case 0: mtdcr(UIC0_SR, bmask); break;
    184                                 case 1: mtdcr(UIC1_SR, bmask); break;
    185                                 case 2: mtdcr(UIC2_SR, bmask); break;
     204                        case 0:
     205                          PPC_SET_DEVICE_CONTROL_REGISTER(UIC0_SR, bmask);
     206                          break;
     207                        case 1:
     208                          PPC_SET_DEVICE_CONTROL_REGISTER(UIC1_SR, bmask);
     209                          break;
     210                        case 2:
     211                          PPC_SET_DEVICE_CONTROL_REGISTER(UIC2_SR, bmask);
     212                          break;
    186213                        }
    187214                       
Note: See TracChangeset for help on using the changeset viewer.