diff --git a/arch/powerpc/cpu/ppc4xx/44x_spd_ddr2.c b/arch/powerpc/cpu/ppc4xx/44x_spd_ddr2.c index 95df1d94c4..4a2f33744d 100644 --- a/arch/powerpc/cpu/ppc4xx/44x_spd_ddr2.c +++ b/arch/powerpc/cpu/ppc4xx/44x_spd_ddr2.c @@ -656,6 +656,13 @@ phys_size_t initdram(int board_type) program_ecc(dimm_populated, iic0_dimm_addr, num_dimm_banks, 0); #endif + /* + * Flush the dcache before removing the TLB with caches + * enabled. Otherwise this might lead to problems later on, + * e.g. while booting Linux (as seen on ICON-440SPe). + */ + flush_dcache(); + /* * Now after initialization (auto-calibration and ECC generation) * remove the TLB entries with caches enabled and program again with