Enable data cache.

This commit is contained in:
Eric Norum
2009-07-30 15:56:38 +00:00
parent b1b6beb0e3
commit 4ac7e27202
4 changed files with 12 additions and 12 deletions

View File

@@ -1,3 +1,8 @@
2009-07-30 Eric Norum <norume@aps.anl.gov>
* include/bsp.h, network/network.c, startup/bspstart.c: Try enabling
the data cache.
2009-07-28 Eric Norum <norume@aps.anl.gov>
PR 1420/bsps

View File

@@ -31,7 +31,7 @@ extern "C" {
* Uncomment to use instruction/data cache
* Leave commented to use instruction-only cache
*/
/* #define RTEMS_MCF5282_BSP_ENABLE_DATA_CACHE */
#define RTEMS_MCF5282_BSP_ENABLE_DATA_CACHE
/***************************************************************************/
/** Hardware data structure headers **/

View File

@@ -492,13 +492,9 @@ fec_rxDaemon (void *arg)
#ifdef RTEMS_MCF5282_BSP_ENABLE_DATA_CACHE
/*
* Invalidate the cache. The cache is so small that it's
* more efficient to just invalidate the whole thing unless
* the packet is very small.
* reasonable to simply invalidate the whole thing.
*/
if (len < 128)
rtems_cache_invalidate_multiple_data_lines(m->m_data, len);
else
rtems_cache_invalidate_entire_data();
rtems_cache_invalidate_entire_data();
#endif
m->m_len = m->m_pkthdr.len = len - sizeof(struct ether_header);
eh = mtod(m, struct ether_header *);

View File

@@ -114,7 +114,7 @@ void _CPU_cache_enable_instruction(void)
rtems_interrupt_disable(level);
mcf5282_cacr_mode &= ~MCF5XXX_CACR_DIDI;
m68k_set_cacr(mcf5282_cacr_mode);
m68k_set_cacr_nop(mcf5282_cacr_mode | MCF5XXX_CACR_CINV | MCF5XXX_CACR_INVI);
rtems_interrupt_enable(level);
}
@@ -148,8 +148,8 @@ void _CPU_cache_enable_data(void)
rtems_interrupt_level level;
rtems_interrupt_disable(level);
mcf5282_cacr_mode &= ~MCF5XXX_CACR_CENB;
m68k_set_cacr(mcf5282_cacr_mode);
mcf5282_cacr_mode &= ~MCF5XXX_CACR_DISD;
m68k_set_cacr_nop(mcf5282_cacr_mode | MCF5XXX_CACR_CINV | MCF5XXX_CACR_INVD);
rtems_interrupt_enable(level);
#endif
}
@@ -160,8 +160,7 @@ void _CPU_cache_disable_data(void)
rtems_interrupt_level level;
rtems_interrupt_disable(level);
rtems_interrupt_disable(level);
mcf5282_cacr_mode |= MCF5XXX_CACR_CENB;
mcf5282_cacr_mode |= MCF5XXX_CACR_DISD;
m68k_set_cacr(mcf5282_cacr_mode);
rtems_interrupt_enable(level);
#endif