From 93a6d3284ca635496c6de097e49cadc8f62e6256 Mon Sep 17 00:00:00 2001 From: Shengzhou Liu Date: Thu, 1 Sep 2016 14:50:36 +0800 Subject: armv7:ls1021a: Enable workaround for DDR erratum A-009942 Signed-off-by: Shengzhou Liu Reviewed-by: York Sun --- board/freescale/ls1021atwr/ls1021atwr.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'board/freescale') diff --git a/board/freescale/ls1021atwr/ls1021atwr.c b/board/freescale/ls1021atwr/ls1021atwr.c index 4638bed478..d96fd774d3 100644 --- a/board/freescale/ls1021atwr/ls1021atwr.c +++ b/board/freescale/ls1021atwr/ls1021atwr.c @@ -142,7 +142,7 @@ int checkboard(void) void ddrmc_init(void) { struct ccsr_ddr *ddr = (struct ccsr_ddr *)CONFIG_SYS_FSL_DDR_ADDR; - u32 temp_sdram_cfg; + u32 temp_sdram_cfg, tmp; out_be32(&ddr->sdram_cfg, DDR_SDRAM_CFG); @@ -189,6 +189,11 @@ void ddrmc_init(void) out_be32(&ddr->ddr_zq_cntl, DDR_DDR_ZQ_CNTL); out_be32(&ddr->cs0_config_2, DDR_CS0_CONFIG_2); + + /* DDR erratum A-009942 */ + tmp = in_be32(&ddr->debug[28]); + out_be32(&ddr->debug[28], tmp | 0x0070006f); + udelay(1); #ifdef CONFIG_DEEP_SLEEP -- cgit v1.2.3