]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - common/env_mmc.c
env_mmc: allow negative CONFIG_ENV_OFFSET
[karo-tx-uboot.git] / common / env_mmc.c
index 9ca098fa674dbb56911ed1ab3517152d6db84f3c..5d3a769db0e94ae05912568a3edd2c88b8be36b1 100644 (file)
@@ -53,11 +53,19 @@ DECLARE_GLOBAL_DATA_PTR;
 
 __weak int mmc_get_env_addr(struct mmc *mmc, int copy, u32 *env_addr)
 {
-       *env_addr = CONFIG_ENV_OFFSET;
+       s64 offset;
+
+       offset = CONFIG_ENV_OFFSET;
 #ifdef CONFIG_ENV_OFFSET_REDUND
        if (copy)
-               *env_addr = CONFIG_ENV_OFFSET_REDUND;
+               offset = CONFIG_ENV_OFFSET_REDUND;
 #endif
+
+       if (offset < 0)
+               offset += mmc->capacity;
+
+       *env_addr = offset;
+
        return 0;
 }