diff packages/hal/common/current/tests/cache.c @ 10:d3fbcdfa1b2f ecos-sw-1999-05-29

Merge from eCos master repository on 1999-05-29-00:13:11-BST
author jlarmour
date Fri, 28 May 1999 16:43:09 +0000
parents 443894e2e912
children 5f5102441818
line wrap: on
line diff
--- a/packages/hal/common/current/tests/cache.c
+++ b/packages/hal/common/current/tests/cache.c
@@ -45,7 +45,11 @@
 // -------------------------------------------------------------------------
 // If the HAL does not supply this, we supply our own version
 
-#ifndef HAL_DCACHE_PURGE_ALL
+#ifdef HAL_DCACHE_SYNC
+
+# define HAL_DCACHE_PURGE_ALL() HAL_DCACHE_SYNC()
+
+#else
 
 static cyg_uint8 dca[HAL_DCACHE_SIZE + HAL_DCACHE_LINE_SIZE*2];
 
@@ -116,6 +120,26 @@ static void entry0( void )
 {
     register CYG_INTERRUPT_STATE oldints;
 
+#ifdef HAL_CACHE_UNIFIED
+
+    HAL_DISABLE_INTERRUPTS(oldints);
+    HAL_DCACHE_PURGE_ALL();             // rely on above definition
+    HAL_UCACHE_INVALIDATE_ALL();
+    HAL_UCACHE_DISABLE();
+    HAL_RESTORE_INTERRUPTS(oldints);
+    CYG_TEST_INFO("Cache off");
+    time1();
+
+    HAL_DISABLE_INTERRUPTS(oldints);
+    HAL_DCACHE_PURGE_ALL();             // rely on above definition
+    HAL_UCACHE_INVALIDATE_ALL();
+    HAL_UCACHE_ENABLE();
+    HAL_RESTORE_INTERRUPTS(oldints);
+    CYG_TEST_INFO("Cache on");
+    time1();
+
+#else // HAL_CACHE_UNIFIED
+
     HAL_DISABLE_INTERRUPTS(oldints);
     HAL_DCACHE_PURGE_ALL();
     HAL_ICACHE_INVALIDATE_ALL();
@@ -166,6 +190,8 @@ static void entry0( void )
     CYG_TEST_INFO("Dcache off Icache off");
     time1();
 
+#endif // HAL_CACHE_UNIFIED
+
     CYG_TEST_PASS_FINISH("End of test");
 }