]> git.sur5r.net Git - u-boot/blobdiff - common/env_common.c
mod_i2c_mem() bugfix
[u-boot] / common / env_common.c
index 5ac14e89c44c91cc71ba7fb4332632f5ce430c5d..d51c2114de2e29b17944ed8911ae315c8f5d2281 100644 (file)
@@ -204,6 +204,23 @@ uchar *env_get_addr (int index)
        }
 }
 
+void set_default_env(void)
+{
+       if (sizeof(default_environment) > ENV_SIZE) {
+               puts ("*** Error - default environment is too large\n\n");
+               return;
+       }
+
+       memset(env_ptr, 0, sizeof(env_t));
+       memcpy(env_ptr->data, default_environment,
+              sizeof(default_environment));
+#ifdef CFG_REDUNDAND_ENVIRONMENT
+       env_ptr->flags = 0xFF;
+#endif
+       env_crc_update ();
+       gd->env_valid = 1;
+}
+
 void env_relocate (void)
 {
        DEBUGF ("%s[%d] offset = 0x%lx\n", __FUNCTION__,__LINE__,
@@ -235,22 +252,7 @@ void env_relocate (void)
                puts ("*** Warning - bad CRC, using default environment\n\n");
                show_boot_progress (-60);
 #endif
-
-               if (sizeof(default_environment) > ENV_SIZE)
-               {
-                       puts ("*** Error - default environment is too large\n\n");
-                       return;
-               }
-
-               memset (env_ptr, 0, sizeof(env_t));
-               memcpy (env_ptr->data,
-                       default_environment,
-                       sizeof(default_environment));
-#ifdef CFG_REDUNDAND_ENVIRONMENT
-               env_ptr->flags = 0xFF;
-#endif
-               env_crc_update ();
-               gd->env_valid = 1;
+               set_default_env();
        }
        else {
                env_relocate_spec ();