Merge branch 'master' of git://git.denx.de/u-boot-ppc4xx

This commit is contained in:
Wolfgang Denk 2010-11-28 17:44:00 +01:00
commit d84e19ad2e
2 changed files with 11 additions and 6 deletions

View File

@ -1389,8 +1389,8 @@ in32r:
relocate_code: relocate_code:
#if defined(CONFIG_4xx_DCACHE) || defined(CONFIG_SYS_INIT_DCACHE_CS) #if defined(CONFIG_4xx_DCACHE) || defined(CONFIG_SYS_INIT_DCACHE_CS)
/* /*
* We need to flush the initial global data (gd_t) before the dcache * We need to flush the initial global data (gd_t) and bd_info
* will be invalidated. * before the dcache will be invalidated.
*/ */
/* Save registers */ /* Save registers */
@ -1398,10 +1398,11 @@ relocate_code:
mr r10, r4 mr r10, r4
mr r11, r5 mr r11, r5
/* Flush initial global data range */ /*
mr r3, r4 * Flush complete dcache, this is faster than flushing the
addi r4, r4, GENERATED_GBL_DATA_SIZE@l * ranges for global_data and bd_info instead.
bl flush_dcache_range */
bl flush_dcache
#if defined(CONFIG_SYS_INIT_DCACHE_CS) #if defined(CONFIG_SYS_INIT_DCACHE_CS)
/* /*

View File

@ -174,6 +174,7 @@ static int test_ecc(uint32_t ecc_addr)
clear_and_enable_ecc(); clear_and_enable_ecc();
out_be32(ecc_mem, ECC_PATTERN); out_be32(ecc_mem, ECC_PATTERN);
out_be32(ecc_mem + 1, ECC_PATTERN); out_be32(ecc_mem + 1, ECC_PATTERN);
ppcDcbf((u32)ecc_mem);
/* Verify no ECC error reading back */ /* Verify no ECC error reading back */
value = in_be32(ecc_mem); value = in_be32(ecc_mem);
@ -193,6 +194,7 @@ static int test_ecc(uint32_t ecc_addr)
/* Test for correctable error by creating a one-bit error */ /* Test for correctable error by creating a one-bit error */
out_be32(ecc_mem, ECC_PATTERN_CORR); out_be32(ecc_mem, ECC_PATTERN_CORR);
ppcDcbf((u32)ecc_mem);
clear_and_enable_ecc(); clear_and_enable_ecc();
value = in_be32(ecc_mem); value = in_be32(ecc_mem);
disable_ecc(); disable_ecc();
@ -212,6 +214,7 @@ static int test_ecc(uint32_t ecc_addr)
/* Test for uncorrectable error by creating a two-bit error */ /* Test for uncorrectable error by creating a two-bit error */
out_be32(ecc_mem, ECC_PATTERN_UNCORR); out_be32(ecc_mem, ECC_PATTERN_UNCORR);
ppcDcbf((u32)ecc_mem);
clear_and_enable_ecc(); clear_and_enable_ecc();
value = in_be32(ecc_mem); value = in_be32(ecc_mem);
disable_ecc(); disable_ecc();
@ -232,6 +235,7 @@ static int test_ecc(uint32_t ecc_addr)
/* Remove error from SDRAM and enable ECC. */ /* Remove error from SDRAM and enable ECC. */
out_be32(ecc_mem, ECC_PATTERN); out_be32(ecc_mem, ECC_PATTERN);
ppcDcbf((u32)ecc_mem);
clear_and_enable_ecc(); clear_and_enable_ecc();
return ret; return ret;