mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2025-10-01 18:51:33 +02:00
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>
This commit is contained in:
parent
cca2011e62
commit
452a2722ec
@ -192,11 +192,12 @@ void env_relocate_spec(void)
|
|||||||
u32 offset1, offset2;
|
u32 offset1, offset2;
|
||||||
int read1_fail = 0, read2_fail = 0;
|
int read1_fail = 0, read2_fail = 0;
|
||||||
int crc1_ok = 0, crc2_ok = 0;
|
int crc1_ok = 0, crc2_ok = 0;
|
||||||
env_t *ep, *tmp_env1, *tmp_env2;
|
env_t *ep;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
tmp_env1 = (env_t *)malloc(CONFIG_ENV_SIZE);
|
ALLOC_CACHE_ALIGN_BUFFER(env_t, tmp_env1, 1);
|
||||||
tmp_env2 = (env_t *)malloc(CONFIG_ENV_SIZE);
|
ALLOC_CACHE_ALIGN_BUFFER(env_t, tmp_env2, 1);
|
||||||
|
|
||||||
if (tmp_env1 == NULL || tmp_env2 == NULL) {
|
if (tmp_env1 == NULL || tmp_env2 == NULL) {
|
||||||
puts("Can't allocate buffers for environment\n");
|
puts("Can't allocate buffers for environment\n");
|
||||||
ret = 1;
|
ret = 1;
|
||||||
@ -266,8 +267,6 @@ err:
|
|||||||
if (ret)
|
if (ret)
|
||||||
set_default_env(NULL);
|
set_default_env(NULL);
|
||||||
|
|
||||||
free(tmp_env1);
|
|
||||||
free(tmp_env2);
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#else /* ! CONFIG_ENV_OFFSET_REDUND */
|
#else /* ! CONFIG_ENV_OFFSET_REDUND */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user