diff options
| author | Markus Niebel <Markus.Niebel@tqs.de> | 2013-10-04 15:48:03 +0200 | 
|---|---|---|
| committer | Tom Rini <trini@ti.com> | 2013-10-14 16:06:52 -0400 | 
| commit | 452a2722ecee9ed9644d6fc7c8d570d725cfdb82 (patch) | |
| tree | 6129e0bcb27a7f062b81baaef57f15d17a3fa2e0 | |
| parent | cca2011e62289063066faee3cf8e3d74685be8fc (diff) | |
| download | olio-uboot-2014.01-452a2722ecee9ed9644d6fc7c8d570d725cfdb82.tar.xz olio-uboot-2014.01-452a2722ecee9ed9644d6fc7c8d570d725cfdb82.zip | |
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>
| -rw-r--r-- | common/env_mmc.c | 9 | 
1 files changed, 4 insertions, 5 deletions
| diff --git a/common/env_mmc.c b/common/env_mmc.c index 65aafa9ca..204d23b31 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 */ |