]> git.sur5r.net Git - u-boot/blobdiff - common/env_mgdisk.c
sandbox: config: enable fdt and snprintf() options
[u-boot] / common / env_mgdisk.c
index 363ee68c27e83d3ac397f1120f69483ea8f027e4..d00e141d5b7a3c5bef10630cd102718d7e9690e6 100644 (file)
 #include <linux/stddef.h>
 #include <mg_disk.h>
 
-/* references to names in env_common.c */
-extern uchar default_environment[];
-extern int default_environment_size;
+char *env_name_spec = "MG_DISK";
 
-char * env_name_spec = "MG_DISK";
-
-env_t *env_ptr = 0;
+env_t *env_ptr;
 
 DECLARE_GLOBAL_DATA_PTR;
 
-uchar env_get_char_spec(int index)
-{
-       return (*((uchar *) (gd->env_addr + index)));
-}
-
 void env_relocate_spec(void)
 {
-       unsigned int err;
+       char buf[CONFIG_ENV_SIZE];
+       unsigned int err, rc;
 
        err = mg_disk_init();
        if (err) {
-               puts ("*** Warning - mg_disk_init error");
-               goto OUT;
-       }
-       err = mg_disk_read(CONFIG_ENV_ADDR, (u_char *)env_ptr, CONFIG_ENV_SIZE);
-       if (err) {
-               puts ("*** Warning - mg_disk_read error");
-               goto OUT;
+               set_default_env("!mg_disk_init error");
+               return;
        }
 
-       if (crc32(0, env_ptr->data, ENV_SIZE) != env_ptr->crc) {
-               puts ("*** Warning - CRC error");
-               goto OUT;
+       err = mg_disk_read(CONFIG_ENV_ADDR, buf, CONFIG_ENV_SIZE);
+       if (err) {
+               set_default_env("!mg_disk_read error");
+               return;
        }
 
-       return;
-
-OUT:
-       printf (", using default environment\n\n");
-       set_default_env();
+       env_import(buf, 1);
 }
 
 int saveenv(void)
@@ -77,7 +61,7 @@ int saveenv(void)
        err = mg_disk_write(CONFIG_ENV_ADDR, (u_char *)env_ptr,
                        CONFIG_ENV_SIZE);
        if (err)
-               puts ("*** Warning - mg_disk_write error\n\n");
+               puts("*** Warning - mg_disk_write error\n\n");
 
        return err;
 }
@@ -85,7 +69,7 @@ int saveenv(void)
 int env_init(void)
 {
        /* use default */
-       gd->env_addr = (ulong) & default_environment[0];
+       gd->env_addr = (ulong)&default_environment[0];
        gd->env_valid = 1;
 
        return 0;