diff packages/devs/flash/arm/ebsa285/current/src/ebsa285_flash.c @ 184:022f1e506033

Merge from eCos master repository on 2001-10-02-17:59:22-BST
author jlarmour
date Tue, 02 Oct 2001 18:28:24 +0000
parents 42f843b391aa
children e0c0827131d1
line wrap: on
line diff
--- a/packages/devs/flash/arm/ebsa285/current/src/ebsa285_flash.c
+++ b/packages/devs/flash/arm/ebsa285/current/src/ebsa285_flash.c
@@ -57,18 +57,20 @@ flash_hwr_init(void)
     extern char flash_query, flash_query_end;
     typedef int code_fun(unsigned char *);
     code_fun *_flash_query;
-    int code_len, stat, num_regions, region_size;
+    int code_len, stat, num_regions, region_size, icache_isenabled;
 
     // Copy 'program' code to RAM for execution
     code_len = (unsigned long)&flash_query_end - (unsigned long)&flash_query;
     _flash_query = (code_fun *)flash_info.work_space;
     memcpy(_flash_query, &flash_query, code_len);
+    HAL_ICACHE_IS_ENABLED(icache_isenabled);
     HAL_DCACHE_SYNC();  // Should guarantee this code will run
     HAL_ICACHE_DISABLE(); // is also required to avoid old contents
 
     stat = (*_flash_query)(data);
 
-    HAL_ICACHE_ENABLE();
+    if (icache_isenabled)
+        HAL_ICACHE_ENABLE();
 
     if ((data[0] == FLASH_Intel_code) && ((data[4] == FLASH_28F008SA) ||
 					  (data[4] == FLASH_28F008SC))) {