]> git.sur5r.net Git - u-boot/blobdiff - env/onenand.c
Merge git://www.denx.de/git/u-boot-imx
[u-boot] / env / onenand.c
index d4dfc02a4607d17f91da4d9dbf077bd6b12385eb..2e3045c5f5de69b9de5acaa60eb58df1c8f435af 100644 (file)
 #include <linux/mtd/mtd.h>
 #include <linux/mtd/onenand.h>
 
-char *env_name_spec = "OneNAND";
-
 #define ONENAND_MAX_ENV_SIZE   CONFIG_ENV_SIZE
 #define ONENAND_ENV_SIZE(mtd)  (ONENAND_MAX_ENV_SIZE - ENV_HEADER_SIZE)
 
 DECLARE_GLOBAL_DATA_PTR;
 
-void env_relocate_spec(void)
+static int env_onenand_load(void)
 {
        struct mtd_info *mtd = &onenand_mtd;
 #ifdef CONFIG_ENV_ADDR_FLEX
@@ -61,9 +59,11 @@ void env_relocate_spec(void)
        rc = env_import(buf, 1);
        if (rc)
                gd->env_valid = ENV_VALID;
+
+       return rc ? 0 : -EIO;
 }
 
-int saveenv(void)
+static int env_onenand_save(void)
 {
        env_t   env_new;
        int ret;
@@ -106,19 +106,9 @@ int saveenv(void)
        return 0;
 }
 
-int env_init(void)
-{
-       /* use default */
-       gd->env_addr = (ulong)&default_environment[0];
-       gd->env_valid = ENV_VALID;
-
-       return 0;
-}
-
 U_BOOT_ENV_LOCATION(onenand) = {
        .location       = ENVL_ONENAND,
-       .get_char       = env_get_char_spec,
-       .load           = env_relocate_spec,
-       .save           = env_save_ptr(saveenv),
-       .init           = env_init,
+       ENV_NAME("OneNAND")
+       .load           = env_onenand_load,
+       .save           = env_save_ptr(env_onenand_save),
 };