summaryrefslogtreecommitdiff
path: root/common/env_mmc.c
diff options
context:
space:
mode:
authorMarkus Niebel <Markus.Niebel@tqs.de>2013-10-04 15:48:03 +0200
committerTom Rini <trini@ti.com>2013-10-14 16:06:52 -0400
commit452a2722ecee9ed9644d6fc7c8d570d725cfdb82 (patch)
tree6129e0bcb27a7f062b81baaef57f15d17a3fa2e0 /common/env_mmc.c
parentcca2011e62289063066faee3cf8e3d74685be8fc (diff)
downloadu-boot-imx-452a2722ecee9ed9644d6fc7c8d570d725cfdb82.zip
u-boot-imx-452a2722ecee9ed9644d6fc7c8d570d725cfdb82.tar.gz
u-boot-imx-452a2722ecee9ed9644d6fc7c8d570d725cfdb82.tar.bz2
env_mmc: fix buffer allocation for armv7
commit d196bd880347373237d73e0d115b4d51c68cf2ad adds redundand environment to mmc. The usage of malloc in env_relocate_spec triggers cache errors on armv7. Tested on a not mainlined i.MX53 board: Board: TQMa53 I2C: ready DRAM: 512 MiB MMC: FSL_SDHC: 0, FSL_SDHC: 1 ERROR: v7_dcache_inval_range - start address is not aligned - 0x8f57c2d8 ERROR: v7_dcache_inval_range - stop address is not aligned - 0x8f57e2d8 ERROR: v7_dcache_inval_range - start address is not aligned - 0x8f57e2e0 ERROR: v7_dcache_inval_range - stop address is not aligned - 0x8f5802e0 Using default environment Signed-off-by: Markus Niebel <Markus.Niebel@tqs.de>
Diffstat (limited to 'common/env_mmc.c')
-rw-r--r--common/env_mmc.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/common/env_mmc.c b/common/env_mmc.c
index 65aafa9..204d23b 100644
--- a/common/env_mmc.c
+++ b/common/env_mmc.c
@@ -192,11 +192,12 @@ void env_relocate_spec(void)
u32 offset1, offset2;
int read1_fail = 0, read2_fail = 0;
int crc1_ok = 0, crc2_ok = 0;
- env_t *ep, *tmp_env1, *tmp_env2;
+ env_t *ep;
int ret;
- tmp_env1 = (env_t *)malloc(CONFIG_ENV_SIZE);
- tmp_env2 = (env_t *)malloc(CONFIG_ENV_SIZE);
+ ALLOC_CACHE_ALIGN_BUFFER(env_t, tmp_env1, 1);
+ ALLOC_CACHE_ALIGN_BUFFER(env_t, tmp_env2, 1);
+
if (tmp_env1 == NULL || tmp_env2 == NULL) {
puts("Can't allocate buffers for environment\n");
ret = 1;
@@ -266,8 +267,6 @@ err:
if (ret)
set_default_env(NULL);
- free(tmp_env1);
- free(tmp_env2);
#endif
}
#else /* ! CONFIG_ENV_OFFSET_REDUND */