mirror of
https://github.com/Stichting-MINIX-Research-Foundation/u-boot.git
synced 2025-09-18 16:38:39 -04:00
Merge branch 'master' of git://git.denx.de/u-boot-ppc4xx
This commit is contained in:
commit
d84e19ad2e
@ -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)
|
||||||
/*
|
/*
|
||||||
|
@ -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;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user