forked from Imagelibrary/rtems
Enable data cache.
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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 **/
|
||||
|
||||
@@ -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 *);
|
||||
|
||||
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user