]> git.sur5r.net Git - u-boot/blobdiff - env/onenand.c
Merge git://git.denx.de/u-boot-sh
[u-boot] / env / onenand.c
index f72aa4b0365b03269a39fbe3f3c53c419ad3e69f..10a8cccbe8a47a3fa925bc4e8034d7dcde082ae7 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;
 
-static void env_onenand_load(void)
+static int env_onenand_load(void)
 {
        struct mtd_info *mtd = &onenand_mtd;
 #ifdef CONFIG_ENV_ADDR_FLEX
@@ -59,8 +57,10 @@ static void env_onenand_load(void)
 #endif /* !ENV_IS_EMBEDDED */
 
        rc = env_import(buf, 1);
-       if (rc)
+       if (!rc)
                gd->env_valid = ENV_VALID;
+
+       return rc;
 }
 
 static int env_onenand_save(void)
@@ -106,18 +106,9 @@ static int env_onenand_save(void)
        return 0;
 }
 
-static int env_onenand_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,
+       ENV_NAME("OneNAND")
        .load           = env_onenand_load,
        .save           = env_save_ptr(env_onenand_save),
-       .init           = env_onenand_init,
 };