comparison packages/kernel/current/tests/kcache1.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 306eee292492
comparison
equal deleted inserted replaced
9:95cc44ea0068 10:d3fbcdfa1b2f
49 #include <cyg/hal/hal_intr.h> 49 #include <cyg/hal/hal_intr.h>
50 50
51 // ------------------------------------------------------------------------- 51 // -------------------------------------------------------------------------
52 // If the HAL does not supply this, we supply our own version 52 // If the HAL does not supply this, we supply our own version
53 53
54 #ifndef HAL_DCACHE_PURGE_ALL 54 #ifdef HAL_DCACHE_SYNC
55
56 # define HAL_DCACHE_PURGE_ALL() HAL_DCACHE_SYNC()
57
58 #else
55 59
56 static cyg_uint8 dca[HAL_DCACHE_SIZE + HAL_DCACHE_LINE_SIZE*2]; 60 static cyg_uint8 dca[HAL_DCACHE_SIZE + HAL_DCACHE_LINE_SIZE*2];
57 61
58 #define HAL_DCACHE_PURGE_ALL() \ 62 #define HAL_DCACHE_PURGE_ALL() \
59 CYG_MACRO_START \ 63 CYG_MACRO_START \
129 133
130 static void entry0( cyg_addrword_t data ) 134 static void entry0( cyg_addrword_t data )
131 { 135 {
132 register CYG_INTERRUPT_STATE oldints; 136 register CYG_INTERRUPT_STATE oldints;
133 137
138 #ifdef HAL_CACHE_UNIFIED
139
140 HAL_DISABLE_INTERRUPTS(oldints);
141 HAL_DCACHE_PURGE_ALL(); // rely on above definition
142 HAL_UCACHE_INVALIDATE_ALL();
143 HAL_UCACHE_DISABLE();
144 HAL_RESTORE_INTERRUPTS(oldints);
145 CYG_TEST_INFO("Cache off");
146 time1();
147
148 HAL_DISABLE_INTERRUPTS(oldints);
149 HAL_DCACHE_PURGE_ALL(); // rely on above definition
150 HAL_UCACHE_INVALIDATE_ALL();
151 HAL_UCACHE_ENABLE();
152 HAL_RESTORE_INTERRUPTS(oldints);
153 CYG_TEST_INFO("Cache on");
154 time1();
155
156 #else // HAL_CACHE_UNIFIED
157
134 HAL_DISABLE_INTERRUPTS(oldints); 158 HAL_DISABLE_INTERRUPTS(oldints);
135 HAL_DCACHE_PURGE_ALL(); 159 HAL_DCACHE_PURGE_ALL();
136 HAL_ICACHE_INVALIDATE_ALL(); 160 HAL_ICACHE_INVALIDATE_ALL();
137 HAL_DCACHE_INVALIDATE_ALL(); 161 HAL_DCACHE_INVALIDATE_ALL();
138 HAL_ICACHE_DISABLE(); 162 HAL_ICACHE_DISABLE();
179 HAL_ICACHE_DISABLE(); 203 HAL_ICACHE_DISABLE();
180 HAL_DCACHE_DISABLE(); 204 HAL_DCACHE_DISABLE();
181 HAL_RESTORE_INTERRUPTS(oldints); 205 HAL_RESTORE_INTERRUPTS(oldints);
182 CYG_TEST_INFO("Dcache off Icache off"); 206 CYG_TEST_INFO("Dcache off Icache off");
183 time1(); 207 time1();
208
209 #endif // HAL_CACHE_UNIFIED
184 210
185 CYG_TEST_PASS_FINISH("End of test"); 211 CYG_TEST_PASS_FINISH("End of test");
186 } 212 }
187 213
188 // ------------------------------------------------------------------------- 214 // -------------------------------------------------------------------------