Ignore:
Timestamp:
Apr 19, 2005, 8:50:45 PM (17 years ago)
Author:
Eric Norum <WENorum@…>
Branches:
4.10, 4.11, 4.8, 4.9, 5, master
Children:
b17dd93
Parents:
c163605f
Message:

Expose some read/write copies of configuration registers.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • c/src/lib/libbsp/m68k/uC5282/startup/bspstart.c

    rc163605f rd5fe91e  
    7575
    7676/*
    77  * Read/write copy of common cache
     77 * Read/write copy of cache registers
    7878 *   Split I/D cache
    7979 *   Allow CPUSHL to invalidate a cache line
     
    8282 *   Default cache mode is *disabled* (cache only ACRx areas)
    8383 */
    84 static uint32_t cacr_mode = MCF5XXX_CACR_CENB |
    85                               MCF5XXX_CACR_DBWE |
    86                               MCF5XXX_CACR_DCM;
     84uint32_t mcf5282_cacr_mode = MCF5XXX_CACR_CENB |
     85                             MCF5XXX_CACR_DBWE |
     86                             MCF5XXX_CACR_DCM;
     87uint32_t mcf5282_acr0_mode = 0;
     88uint32_t mcf5282_acr1_mode = 0;
    8789/*
    8890 * Cannot be frozen
     
    104106
    105107    rtems_interrupt_disable(level);
    106     cacr_mode &= ~MCF5XXX_CACR_DIDI;
    107     m68k_set_cacr(cacr_mode);
     108    mcf5282_cacr_mode &= ~MCF5XXX_CACR_DIDI;
     109    m68k_set_cacr(mcf5282_cacr_mode);
    108110    rtems_interrupt_enable(level);
    109111}
     
    114116
    115117    rtems_interrupt_disable(level);
    116     cacr_mode |= MCF5XXX_CACR_DIDI;
    117     m68k_set_cacr(cacr_mode);
     118    mcf5282_cacr_mode |= MCF5XXX_CACR_DIDI;
     119    m68k_set_cacr(mcf5282_cacr_mode);
    118120    rtems_interrupt_enable(level);
    119121}
     
    121123void _CPU_cache_invalidate_entire_instruction(void)
    122124{
    123     m68k_set_cacr(cacr_mode | MCF5XXX_CACR_CINV | MCF5XXX_CACR_INVI);
     125    m68k_set_cacr(mcf5282_cacr_mode | MCF5XXX_CACR_CINV | MCF5XXX_CACR_INVI);
    124126}
    125127
     
    138140
    139141    rtems_interrupt_disable(level);
    140     cacr_mode &= ~MCF5XXX_CACR_DISD;
    141     m68k_set_cacr(cacr_mode);
     142    mcf5282_cacr_mode &= ~MCF5XXX_CACR_DISD;
     143    m68k_set_cacr(mcf5282_cacr_mode);
    142144    rtems_interrupt_enable(level);
    143145}
     
    149151    rtems_interrupt_disable(level);
    150152    rtems_interrupt_disable(level);
    151     cacr_mode |= MCF5XXX_CACR_DISD;
    152     m68k_set_cacr(cacr_mode);
     153    mcf5282_cacr_mode |= MCF5XXX_CACR_DISD;
     154    m68k_set_cacr(mcf5282_cacr_mode);
    153155    rtems_interrupt_enable(level);
    154156}
     
    156158void _CPU_cache_invalidate_entire_data(void)
    157159{
    158     m68k_set_cacr(cacr_mode | MCF5XXX_CACR_CINV | MCF5XXX_CACR_INVD);
     160    m68k_set_cacr(mcf5282_cacr_mode | MCF5XXX_CACR_CINV | MCF5XXX_CACR_INVD);
    159161}
    160162
     
    217219     * Invalidate the cache and disable it
    218220     */
    219     m68k_set_acr0(0);
    220     m68k_set_acr1(0);
     221    m68k_set_acr0(mcf5282_acr0_mode);
     222    m68k_set_acr1(mcf5282_acr1_mode);
    221223    m68k_set_cacr(MCF5XXX_CACR_CINV);
    222224
     
    224226     * Cache SDRAM
    225227     */
    226     m68k_set_acr0(MCF5XXX_ACR_AB((uint32_t)_RamBase)     |
    227                   MCF5XXX_ACR_AM((uint32_t)_RamSize-1)   |
    228                   MCF5XXX_ACR_EN                         |
    229                   MCF5XXX_ACR_BWE                        |
    230                   MCF5XXX_ACR_SM_IGNORE);
     228    mcf5282_acr0_mode = MCF5XXX_ACR_AB((uint32_t)_RamBase)     |
     229                        MCF5XXX_ACR_AM((uint32_t)_RamSize-1)   |
     230                        MCF5XXX_ACR_EN                         |
     231                        MCF5XXX_ACR_BWE                        |
     232                        MCF5XXX_ACR_SM_IGNORE;
     233    m68k_set_acr0(mcf5282_acr0_mode);
    231234
    232235    /*
    233236     * Enable the cache
    234237     */
    235     m68k_set_cacr(cacr_mode);
     238    m68k_set_cacr(mcf5282_cacr_mode);
    236239
    237240    /*
Note: See TracChangeset for help on using the changeset viewer.