wandboard: Remove hardcoded baudrate from "console" variable
[oweals/u-boot.git] / env / eeprom.c
index 2c795b9236dc322eb7e364892563f321e5aa440a..ac2689cc148c43c07c945db22494d0d49a5fe301 100644 (file)
@@ -1,11 +1,10 @@
+// SPDX-License-Identifier: GPL-2.0+
 /*
  * (C) Copyright 2000-2010
  * Wolfgang Denk, DENX Software Engineering, wd@denx.de.
  *
  * (C) Copyright 2001 Sysgo Real-Time Solutions, GmbH <www.elinos.com>
  * Andreas Heppel <aheppel@sysgo.de>
- *
- * SPDX-License-Identifier:    GPL-2.0+
  */
 
 #include <common.h>
@@ -21,8 +20,6 @@
 
 DECLARE_GLOBAL_DATA_PTR;
 
-env_t *env_ptr;
-
 static int eeprom_bus_read(unsigned dev_addr, unsigned offset,
                           uchar *buffer, unsigned cnt)
 {
@@ -63,7 +60,10 @@ static int eeprom_bus_write(unsigned dev_addr, unsigned offset,
        return rcode;
 }
 
-static uchar env_eeprom_get_char(int index)
+/** Call this function from overridden env_get_char_spec() if you need
+ * this functionality.
+ */
+int env_eeprom_get_char(int index)
 {
        uchar c;
        unsigned int off = CONFIG_ENV_OFFSET;
@@ -78,7 +78,7 @@ static uchar env_eeprom_get_char(int index)
        return c;
 }
 
-static void env_eeprom_load(void)
+static int env_eeprom_load(void)
 {
        char buf_env[CONFIG_ENV_SIZE];
        unsigned int off = CONFIG_ENV_OFFSET;
@@ -124,7 +124,7 @@ static void env_eeprom_load(void)
 
        if (!crc_ok[0] && !crc_ok[1]) {
                gd->env_addr    = 0;
-               gd->env_valid   = 0;
+               gd->env_valid = ENV_INVALID;
        } else if (crc_ok[0] && !crc_ok[1]) {
                gd->env_valid = ENV_VALID;
        } else if (!crc_ok[0] && crc_ok[1]) {
@@ -168,9 +168,9 @@ static void env_eeprom_load(void)
        }
 
        if (crc == new) {
-               gd->env_valid   = ENV_VALID;
+               gd->env_valid = ENV_VALID;
        } else {
-               gd->env_valid   = 0;
+               gd->env_valid = ENV_INVALID;
        }
 #endif /* CONFIG_ENV_OFFSET_REDUND */
 
@@ -183,7 +183,7 @@ static void env_eeprom_load(void)
        eeprom_bus_read(CONFIG_SYS_DEF_EEPROM_ADDR,
                off, (uchar *)buf_env, CONFIG_ENV_SIZE);
 
-       env_import(buf_env, 1);
+       return env_import(buf_env, 1);
 }
 
 static int env_eeprom_save(void)
@@ -196,8 +196,6 @@ static int env_eeprom_save(void)
        char flag_obsolete      = OBSOLETE_FLAG;
 #endif
 
-       BUG_ON(env_ptr != NULL);
-
        rc = env_export(&env_new);
        if (rc)
                return rc;
@@ -232,7 +230,6 @@ static int env_eeprom_save(void)
 U_BOOT_ENV_LOCATION(eeprom) = {
        .location       = ENVL_EEPROM,
        ENV_NAME("EEPROM")
-       .get_char       = env_eeprom_get_char,
        .load           = env_eeprom_load,
        .save           = env_save_ptr(env_eeprom_save),
 };