Convert CONFIG_SYS_MAX_FLASH_SECT to Kconfig
[platform/kernel/u-boot.git] / env / sf.c
index c251d07..a425ecc 100644 (file)
--- a/env/sf.c
+++ b/env/sf.c
@@ -12,7 +12,6 @@
 #include <dm.h>
 #include <env.h>
 #include <env_internal.h>
-#include <flash.h>
 #include <malloc.h>
 #include <spi.h>
 #include <spi_flash.h>
 #include <dm/device-internal.h>
 #include <u-boot/crc.h>
 
-#ifndef CONFIG_SPL_BUILD
-#define INITENV
-#endif
-
 #define        OFFSET_INVALID          (~(u32)0)
 
 #ifdef CONFIG_ENV_OFFSET_REDUND
@@ -52,7 +47,6 @@ static int setup_flash_device(struct spi_flash **env_flash)
 
        /* speed and mode will be read from DT */
        ret = spi_flash_probe_bus_cs(CONFIG_ENV_SPI_BUS, CONFIG_ENV_SPI_CS,
-                                    CONFIG_ENV_SPI_MAX_HZ, CONFIG_ENV_SPI_MODE,
                                     &new);
        if (ret) {
                env_set_default("spi_flash_probe_bus_cs() failed", 0);
@@ -322,14 +316,15 @@ done:
        return ret;
 }
 
-#if CONFIG_ENV_ADDR != 0x0
 __weak void *env_sf_get_env_addr(void)
 {
+#ifndef CONFIG_SPL_BUILD
        return (void *)CONFIG_ENV_ADDR;
-}
+#else
+       return NULL;
 #endif
+}
 
-#if defined(INITENV) && (CONFIG_ENV_ADDR != 0x0)
 /*
  * check if Environment on CONFIG_ENV_ADDR is valid.
  */
@@ -337,17 +332,18 @@ static int env_sf_init_addr(void)
 {
        env_t *env_ptr = (env_t *)env_sf_get_env_addr();
 
+       if (!env_ptr)
+               return -ENOENT;
+
        if (crc32(0, env_ptr->data, ENV_SIZE) == env_ptr->crc) {
                gd->env_addr = (ulong)&(env_ptr->data);
                gd->env_valid = ENV_VALID;
        } else {
-               gd->env_addr = (ulong)&default_environment[0];
-               gd->env_valid = ENV_VALID;
+               gd->env_valid = ENV_INVALID;
        }
 
        return 0;
 }
-#endif
 
 #if defined(CONFIG_ENV_SPI_EARLY)
 /*
@@ -433,9 +429,10 @@ out:
 
 static int env_sf_init(void)
 {
-#if defined(INITENV) && (CONFIG_ENV_ADDR != 0x0)
-       return env_sf_init_addr();
-#elif defined(CONFIG_ENV_SPI_EARLY)
+       int ret = env_sf_init_addr();
+       if (ret != -ENOENT)
+               return ret;
+#ifdef CONFIG_ENV_SPI_EARLY
        return env_sf_init_early();
 #endif
        /*