On 03/15/2016 10:59 PM, Shengzhou Liu wrote:
> The initial training for the DDRC may provide results that are not
> optimized. The workaround provides better read timing margins.
> 
> Signed-off-by: Shengzhou Liu <[email protected]>
> ---
>  arch/arm/include/asm/arch-fsl-layerscape/config.h | 1 +
>  drivers/ddr/fsl/fsl_ddr_gen4.c                    | 7 +++++++
>  include/fsl_ddr_sdram.h                           | 4 ++++
>  3 files changed, 12 insertions(+)
> 
> diff --git a/arch/arm/include/asm/arch-fsl-layerscape/config.h 
> b/arch/arm/include/asm/arch-fsl-layerscape/config.h
> index 6ec7e50..ba06465 100644
> --- a/arch/arm/include/asm/arch-fsl-layerscape/config.h
> +++ b/arch/arm/include/asm/arch-fsl-layerscape/config.h
> @@ -119,6 +119,7 @@
>  #define CONFIG_SYS_FSL_ERRATUM_A008751
>  #define CONFIG_SYS_FSL_ERRATUM_A009635
>  #define CONFIG_SYS_FSL_ERRATUM_A009663
> +#define CONFIG_SYS_FSL_ERRATUM_A009801
>  #define CONFIG_SYS_FSL_ERRATUM_A009803
>  #define CONFIG_SYS_FSL_ERRATUM_A009942
>  
> diff --git a/drivers/ddr/fsl/fsl_ddr_gen4.c b/drivers/ddr/fsl/fsl_ddr_gen4.c
> index 7cdb700..1dc0631 100644
> --- a/drivers/ddr/fsl/fsl_ddr_gen4.c
> +++ b/drivers/ddr/fsl/fsl_ddr_gen4.c
> @@ -251,6 +251,13 @@ void fsl_ddr_set_memctl_regs(const fsl_ddr_cfg_regs_t 
> *regs,
>       }
>  #endif
>  
> +#ifdef CONFIG_SYS_FSL_ERRATUM_A009801
> +     temp32 = ddr_in32(&ddr->debug[25]);
> +     temp32 &= ~DDR_CAS_TO_PRE_SUB_MASK;
> +     temp32 |= 9 << DDR_CAS_TO_PRE_SUB_SHIFT;
> +     ddr_out32(&ddr->debug[25], temp32);
> +#endif
> +

Shengzhou,

Please examine workaround for A008511. This workaround has been included, but
wasn't named as A009801. You can move out that code and put under A009801 if 
like.

York


_______________________________________________
U-Boot mailing list
[email protected]
http://lists.denx.de/mailman/listinfo/u-boot

Reply via email to