diff options
author | Eric Norum <WENorum@lbl.gov> | 2009-07-30 15:56:38 +0000 |
---|---|---|
committer | Eric Norum <WENorum@lbl.gov> | 2009-07-30 15:56:38 +0000 |
commit | 4ac7e2720236ea893ffd5db0488c22246f975b9c (patch) | |
tree | a7c263742c008506d300c9b4c978e54d4f2e9668 /c/src/lib/libbsp/m68k/uC5282 | |
parent | 2009-07-30 Joel Sherrill <joel.sherrill@OARcorp.com> (diff) | |
download | rtems-4ac7e2720236ea893ffd5db0488c22246f975b9c.tar.bz2 |
Enable data cache.
Diffstat (limited to 'c/src/lib/libbsp/m68k/uC5282')
-rw-r--r-- | c/src/lib/libbsp/m68k/uC5282/ChangeLog | 5 | ||||
-rw-r--r-- | c/src/lib/libbsp/m68k/uC5282/include/bsp.h | 2 | ||||
-rw-r--r-- | c/src/lib/libbsp/m68k/uC5282/network/network.c | 8 | ||||
-rw-r--r-- | c/src/lib/libbsp/m68k/uC5282/startup/bspstart.c | 9 |
4 files changed, 12 insertions, 12 deletions
diff --git a/c/src/lib/libbsp/m68k/uC5282/ChangeLog b/c/src/lib/libbsp/m68k/uC5282/ChangeLog index 4647d0a673..54da1a0225 100644 --- a/c/src/lib/libbsp/m68k/uC5282/ChangeLog +++ b/c/src/lib/libbsp/m68k/uC5282/ChangeLog @@ -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 diff --git a/c/src/lib/libbsp/m68k/uC5282/include/bsp.h b/c/src/lib/libbsp/m68k/uC5282/include/bsp.h index 23285a3b4a..25ef7b3f2a 100644 --- a/c/src/lib/libbsp/m68k/uC5282/include/bsp.h +++ b/c/src/lib/libbsp/m68k/uC5282/include/bsp.h @@ -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 **/ diff --git a/c/src/lib/libbsp/m68k/uC5282/network/network.c b/c/src/lib/libbsp/m68k/uC5282/network/network.c index b6e51ae00e..7717931add 100644 --- a/c/src/lib/libbsp/m68k/uC5282/network/network.c +++ b/c/src/lib/libbsp/m68k/uC5282/network/network.c @@ -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 *); diff --git a/c/src/lib/libbsp/m68k/uC5282/startup/bspstart.c b/c/src/lib/libbsp/m68k/uC5282/startup/bspstart.c index d2409432db..8d93ce1f06 100644 --- a/c/src/lib/libbsp/m68k/uC5282/startup/bspstart.c +++ b/c/src/lib/libbsp/m68k/uC5282/startup/bspstart.c @@ -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 |