]> git.baikalelectronics.ru Git - uboot.git/commitdiff
env: mmc: introduced ENV_MMC_OFFSET
authorPatrick Delaunay <patrick.delaunay@foss.st.com>
Thu, 10 Nov 2022 10:48:58 +0000 (11:48 +0100)
committerTom Rini <trini@konsulko.com>
Tue, 10 Jan 2023 17:37:09 +0000 (12:37 -0500)
Introduce ENV_MMC_OFFSET defines.
It is a preliminary step to the next patches to simplify the code.

Signed-off-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
env/mmc.c

index c28f4c6c6dc0f474d397eda1f76ac73e10d1d4a7..42bcf7e775ccfe84aa2107ee62e2c88a7c339087 100644 (file)
--- a/env/mmc.c
+++ b/env/mmc.c
 #define __STR(X) #X
 #define STR(X) __STR(X)
 
+#define ENV_MMC_INVALID_OFFSET ((s64)-1)
+
+/* Default ENV offset when not defined in Device Tree */
+#define ENV_MMC_OFFSET         CONFIG_ENV_OFFSET
+
+#if defined(CONFIG_ENV_OFFSET_REDUND)
+#define ENV_MMC_OFFSET_REDUND  CONFIG_ENV_OFFSET_REDUND
+#else
+#define ENV_MMC_OFFSET_REDUND  ENV_MMC_INVALID_OFFSET
+#endif
+
 DECLARE_GLOBAL_DATA_PTR;
 
 /*
@@ -94,12 +105,12 @@ static inline s64 mmc_offset(int copy)
                        return val;
        }
 
-       defvalue = CONFIG_ENV_OFFSET;
+       defvalue = ENV_MMC_OFFSET;
        propname = dt_prop.offset;
 
 #if defined(CONFIG_ENV_OFFSET_REDUND)
        if (copy) {
-               defvalue = CONFIG_ENV_OFFSET_REDUND;
+               defvalue = ENV_MMC_OFFSET_REDUND;
                propname = dt_prop.offset_redund;
        }
 #endif
@@ -108,11 +119,11 @@ static inline s64 mmc_offset(int copy)
 #else
 static inline s64 mmc_offset(int copy)
 {
-       s64 offset = CONFIG_ENV_OFFSET;
+       s64 offset = ENV_MMC_OFFSET;
 
 #if defined(CONFIG_ENV_OFFSET_REDUND)
        if (copy)
-               offset = CONFIG_ENV_OFFSET_REDUND;
+               offset = ENV_MMC_OFFSET_REDUND;
 #endif
        return offset;
 }
@@ -122,6 +133,11 @@ __weak int mmc_get_env_addr(struct mmc *mmc, int copy, u32 *env_addr)
 {
        s64 offset = mmc_offset(copy);
 
+       if (offset == ENV_MMC_INVALID_OFFSET) {
+               printf("Invalid ENV offset in MMC, copy=%d\n", copy);
+               return -ENOENT;
+       }
+
        if (offset < 0)
                offset += mmc->capacity;