]> git.kernelconcepts.de Git - karo-tx-uboot.git/commitdiff
mtd, cfi: introduce void flash_protect_default(void)
authorHeiko Schocher <hs@denx.de>
Mon, 4 Apr 2011 06:10:21 +0000 (08:10 +0200)
committerStefan Roese <sr@denx.de>
Thu, 7 Apr 2011 08:20:22 +0000 (10:20 +0200)
collect code which protects default sectors in a function, called
flash_protect_default. So boardspecific code can call it too.

Signed-off-by: Heiko Schocher <hs@denx.de>
Signed-off-by: Stefan Roese <sr@denx.de>
drivers/mtd/cfi_flash.c
include/flash.h

index d5e67eaf193a93b6785753617eafabb226c58c9c..5788328ef149c5bb50814ad8101261f11c2a2fb3 100644 (file)
@@ -2086,6 +2086,46 @@ static void cfi_flash_set_config_reg(u32 base, u16 val)
 
 /*-----------------------------------------------------------------------
  */
+
+void flash_protect_default(void)
+{
+       /* Monitor protection ON by default */
+#if (CONFIG_SYS_MONITOR_BASE >= CONFIG_SYS_FLASH_BASE) && \
+       (!defined(CONFIG_MONITOR_IS_IN_RAM))
+       flash_protect(FLAG_PROTECT_SET,
+                      CONFIG_SYS_MONITOR_BASE,
+                      CONFIG_SYS_MONITOR_BASE + monitor_flash_len  - 1,
+                      flash_get_info(CONFIG_SYS_MONITOR_BASE));
+#endif
+
+       /* Environment protection ON by default */
+#ifdef CONFIG_ENV_IS_IN_FLASH
+       flash_protect(FLAG_PROTECT_SET,
+                      CONFIG_ENV_ADDR,
+                      CONFIG_ENV_ADDR + CONFIG_ENV_SECT_SIZE - 1,
+                      flash_get_info(CONFIG_ENV_ADDR));
+#endif
+
+       /* Redundant environment protection ON by default */
+#ifdef CONFIG_ENV_ADDR_REDUND
+       flash_protect(FLAG_PROTECT_SET,
+                      CONFIG_ENV_ADDR_REDUND,
+                      CONFIG_ENV_ADDR_REDUND + CONFIG_ENV_SECT_SIZE - 1,
+                      flash_get_info(CONFIG_ENV_ADDR_REDUND));
+#endif
+
+#if defined(CONFIG_SYS_FLASH_AUTOPROTECT_LIST)
+       for (i = 0; i < (sizeof(apl) / sizeof(struct apl_s)); i++) {
+               debug("autoprotecting from %08x to %08x\n",
+                     apl[i].start, apl[i].start + apl[i].size - 1);
+               flash_protect(FLAG_PROTECT_SET,
+                              apl[i].start,
+                              apl[i].start + apl[i].size - 1,
+                              flash_get_info(apl[i].start));
+       }
+#endif
+}
+
 unsigned long flash_init (void)
 {
        unsigned long size = 0;
@@ -2172,42 +2212,7 @@ unsigned long flash_init (void)
 #endif /* CONFIG_SYS_FLASH_PROTECTION */
        }
 
-       /* Monitor protection ON by default */
-#if (CONFIG_SYS_MONITOR_BASE >= CONFIG_SYS_FLASH_BASE) && \
-       (!defined(CONFIG_MONITOR_IS_IN_RAM))
-       flash_protect (FLAG_PROTECT_SET,
-                      CONFIG_SYS_MONITOR_BASE,
-                      CONFIG_SYS_MONITOR_BASE + monitor_flash_len  - 1,
-                      flash_get_info(CONFIG_SYS_MONITOR_BASE));
-#endif
-
-       /* Environment protection ON by default */
-#ifdef CONFIG_ENV_IS_IN_FLASH
-       flash_protect (FLAG_PROTECT_SET,
-                      CONFIG_ENV_ADDR,
-                      CONFIG_ENV_ADDR + CONFIG_ENV_SECT_SIZE - 1,
-                      flash_get_info(CONFIG_ENV_ADDR));
-#endif
-
-       /* Redundant environment protection ON by default */
-#ifdef CONFIG_ENV_ADDR_REDUND
-       flash_protect (FLAG_PROTECT_SET,
-                      CONFIG_ENV_ADDR_REDUND,
-                      CONFIG_ENV_ADDR_REDUND + CONFIG_ENV_SECT_SIZE - 1,
-                      flash_get_info(CONFIG_ENV_ADDR_REDUND));
-#endif
-
-#if defined(CONFIG_SYS_FLASH_AUTOPROTECT_LIST)
-       for (i = 0; i < (sizeof(apl) / sizeof(struct apl_s)); i++) {
-               debug("autoprotecting from %08x to %08x\n",
-                     apl[i].start, apl[i].start + apl[i].size - 1);
-               flash_protect (FLAG_PROTECT_SET,
-                              apl[i].start,
-                              apl[i].start + apl[i].size - 1,
-                              flash_get_info(apl[i].start));
-       }
-#endif
-
+       flash_protect_default();
 #ifdef CONFIG_FLASH_CFI_MTD
        cfi_mtd_init();
 #endif
index 1b6821a0e91c30522bcbdc170d056d85fbeb0f7f..0ca70d9c9cc632bb87e0d3d2e02669d0598c87e5 100644 (file)
@@ -92,6 +92,7 @@ typedef unsigned long flash_sect_t;
 /* Prototypes */
 
 extern unsigned long flash_init (void);
+extern void flash_protect_default(void);
 extern void flash_print_info (flash_info_t *);
 extern int flash_erase (flash_info_t *, int, int);
 extern int flash_sect_erase (ulong addr_first, ulong addr_last);