Previously the driver was only tested on Power SoCs. Minor fix is needed for ARM SoCs.
Signed-off-by: York Sun <york...@freescale.com> --- arch/arm/include/asm/arch-fsl-lsch3/config.h | 4 ++++ drivers/ddr/fsl/fsl_ddr_gen4.c | 9 +++++++++ 2 files changed, 13 insertions(+) diff --git a/arch/arm/include/asm/arch-fsl-lsch3/config.h b/arch/arm/include/asm/arch-fsl-lsch3/config.h index d61a213..60719fd 100644 --- a/arch/arm/include/asm/arch-fsl-lsch3/config.h +++ b/arch/arm/include/asm/arch-fsl-lsch3/config.h @@ -71,7 +71,11 @@ /* DDR */ #define CONFIG_SYS_FSL_DDR_LE #define CONFIG_VERY_BIG_RAM +#ifdef CONFIG_SYS_FSL_DDR4 +#define CONFIG_SYS_FSL_DDRC_GEN4 +#else #define CONFIG_SYS_FSL_DDRC_ARM_GEN3 /* Enable Freescale ARM DDR3 driver */ +#endif #define CONFIG_SYS_FSL_DDR /* Freescale DDR driver */ #define CONFIG_SYS_LS2_DDR_BLOCK1_SIZE ((phys_size_t)2 << 30) #define CONFIG_MAX_MEM_MAPPED CONFIG_SYS_LS2_DDR_BLOCK1_SIZE diff --git a/drivers/ddr/fsl/fsl_ddr_gen4.c b/drivers/ddr/fsl/fsl_ddr_gen4.c index 7cd878a..04f0c44 100644 --- a/drivers/ddr/fsl/fsl_ddr_gen4.c +++ b/drivers/ddr/fsl/fsl_ddr_gen4.c @@ -8,6 +8,7 @@ #include <asm/io.h> #include <fsl_ddr_sdram.h> #include <asm/processor.h> +#include <fsl_immap.h> #include <fsl_ddr.h> #if (CONFIG_CHIP_SELECTS_PER_CTRL > 4) @@ -183,12 +184,20 @@ step2: * we choose the max, that is 500 us for all of case. */ udelay(500); +#ifdef CONFIG_PPC asm volatile("sync;isync"); +#else + asm volatile("dsb sy;isb"); +#endif /* Let the controller go */ temp_sdram_cfg = ddr_in32(&ddr->sdram_cfg) & ~SDRAM_CFG_BI; ddr_out32(&ddr->sdram_cfg, temp_sdram_cfg | SDRAM_CFG_MEM_EN); +#ifdef CONFIG_PPC asm volatile("sync;isync"); +#else + asm volatile("dsb sy;isb"); +#endif total_gb_size_per_controller = 0; for (i = 0; i < CONFIG_CHIP_SELECTS_PER_CTRL; i++) { -- 1.7.9.5 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot