colibri_imx6: fix video stdout in default environment
[oweals/u-boot.git] / env / onenand.c
index d4dfc02a4607d17f91da4d9dbf077bd6b12385eb..dfd4e939f8f89d816b1e9410080f811f9b0139d9 100644 (file)
@@ -1,16 +1,15 @@
+// SPDX-License-Identifier: GPL-2.0+
 /*
  * (C) Copyright 2010 DENX Software Engineering
  * Wolfgang Denk <wd@denx.de>
  *
  * (C) Copyright 2005-2009 Samsung Electronics
  * Kyungmin Park <kyungmin.park@samsung.com>
- *
- * SPDX-License-Identifier:    GPL-2.0+
  */
 
 #include <common.h>
 #include <command.h>
-#include <environment.h>
+#include <env_internal.h>
 #include <linux/stddef.h>
 #include <malloc.h>
 #include <search.h>
 #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
@@ -59,11 +56,13 @@ void env_relocate_spec(void)
 #endif /* !ENV_IS_EMBEDDED */
 
        rc = env_import(buf, 1);
-       if (rc)
+       if (!rc)
                gd->env_valid = ENV_VALID;
+
+       return rc;
 }
 
-int saveenv(void)
+static int env_onenand_save(void)
 {
        env_t   env_new;
        int ret;
@@ -106,19 +105,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),
 };