]> git.sur5r.net Git - u-boot/blobdiff - env/ubi.c
env: Add a new implementation of environment access
[u-boot] / env / ubi.c
index 95b527ddca47c60c7dbe6a55cde935b523a1f8e0..d91fdbaa4abff0e121faa38d6af7d2b54e8c19db 100644 (file)
--- a/env/ubi.c
+++ b/env/ubi.c
@@ -26,7 +26,7 @@ int env_init(void)
 {
        /* use default */
        gd->env_addr = (ulong)&default_environment[0];
-       gd->env_valid = 1;
+       gd->env_valid = ENV_VALID;
 
        return 0;
 }
@@ -48,7 +48,7 @@ int saveenv(void)
                return 1;
        }
 
-       if (gd->env_valid == 1) {
+       if (gd->env_valid == ENV_VALID) {
                puts("Writing to redundant UBI... ");
                if (ubi_volume_write(CONFIG_ENV_UBI_VOLUME_REDUND,
                                     (void *)env_new, CONFIG_ENV_SIZE)) {
@@ -70,7 +70,7 @@ int saveenv(void)
 
        puts("done\n");
 
-       gd->env_valid = gd->env_valid == 2 ? 1 : 2;
+       gd->env_valid = gd->env_valid == ENV_REDUND ? ENV_VALID : ENV_REDUND;
 
        return 0;
 }
@@ -177,3 +177,11 @@ void env_relocate_spec(void)
        env_import(buf, 1);
 }
 #endif /* CONFIG_SYS_REDUNDAND_ENVIRONMENT */
+
+U_BOOT_ENV_LOCATION(ubi) = {
+       .location       = ENVL_UBI,
+       .get_char       = env_get_char_spec,
+       .load           = env_relocate_spec,
+       .save           = env_save_ptr(saveenv),
+       .init           = env_init,
+};