comparison 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
comparison
equal deleted inserted replaced
9:95cc44ea0068 10:d3fbcdfa1b2f
43 #include <cyg/hal/hal_intr.h> 43 #include <cyg/hal/hal_intr.h>
44 44
45 // ------------------------------------------------------------------------- 45 // -------------------------------------------------------------------------
46 // If the HAL does not supply this, we supply our own version 46 // If the HAL does not supply this, we supply our own version
47 47
48 #ifndef HAL_DCACHE_PURGE_ALL 48 #ifdef HAL_DCACHE_SYNC
49
50 # define HAL_DCACHE_PURGE_ALL() HAL_DCACHE_SYNC()
51
52 #else
49 53
50 static cyg_uint8 dca[HAL_DCACHE_SIZE + HAL_DCACHE_LINE_SIZE*2]; 54 static cyg_uint8 dca[HAL_DCACHE_SIZE + HAL_DCACHE_LINE_SIZE*2];
51 55
52 #define HAL_DCACHE_PURGE_ALL() \ 56 #define HAL_DCACHE_PURGE_ALL() \
53 CYG_MACRO_START \ 57 CYG_MACRO_START \
114 118
115 static void entry0( void ) 119 static void entry0( void )
116 { 120 {
117 register CYG_INTERRUPT_STATE oldints; 121 register CYG_INTERRUPT_STATE oldints;
118 122
123 #ifdef HAL_CACHE_UNIFIED
124
125 HAL_DISABLE_INTERRUPTS(oldints);
126 HAL_DCACHE_PURGE_ALL(); // rely on above definition
127 HAL_UCACHE_INVALIDATE_ALL();
128 HAL_UCACHE_DISABLE();
129 HAL_RESTORE_INTERRUPTS(oldints);
130 CYG_TEST_INFO("Cache off");
131 time1();
132
133 HAL_DISABLE_INTERRUPTS(oldints);
134 HAL_DCACHE_PURGE_ALL(); // rely on above definition
135 HAL_UCACHE_INVALIDATE_ALL();
136 HAL_UCACHE_ENABLE();
137 HAL_RESTORE_INTERRUPTS(oldints);
138 CYG_TEST_INFO("Cache on");
139 time1();
140
141 #else // HAL_CACHE_UNIFIED
142
119 HAL_DISABLE_INTERRUPTS(oldints); 143 HAL_DISABLE_INTERRUPTS(oldints);
120 HAL_DCACHE_PURGE_ALL(); 144 HAL_DCACHE_PURGE_ALL();
121 HAL_ICACHE_INVALIDATE_ALL(); 145 HAL_ICACHE_INVALIDATE_ALL();
122 HAL_DCACHE_INVALIDATE_ALL(); 146 HAL_DCACHE_INVALIDATE_ALL();
123 HAL_ICACHE_DISABLE(); 147 HAL_ICACHE_DISABLE();
164 HAL_DCACHE_DISABLE(); 188 HAL_DCACHE_DISABLE();
165 HAL_RESTORE_INTERRUPTS(oldints); 189 HAL_RESTORE_INTERRUPTS(oldints);
166 CYG_TEST_INFO("Dcache off Icache off"); 190 CYG_TEST_INFO("Dcache off Icache off");
167 time1(); 191 time1();
168 192
193 #endif // HAL_CACHE_UNIFIED
194
169 CYG_TEST_PASS_FINISH("End of test"); 195 CYG_TEST_PASS_FINISH("End of test");
170 } 196 }
171 197
172 // ------------------------------------------------------------------------- 198 // -------------------------------------------------------------------------
173 199