All of lore.kernel.org
 help / color / mirror / Atom feed
* [U-Boot] [PATCH 1/2] ls102x: add soc version function
@ 2015-11-19  9:57 Shengzhou Liu
  2015-11-19  9:57 ` [U-Boot] [PATCH 2/2] fsl/ddr: updated ddr errata-A008378 on ls102x Shengzhou Liu
  0 siblings, 1 reply; 3+ messages in thread
From: Shengzhou Liu @ 2015-11-19  9:57 UTC (permalink / raw)
  To: u-boot

Add get_svr_ver_major() and get_svr_ver_minor() helper.

Signed-off-by: Shengzhou Liu <Shengzhou.Liu@freescale.com>
---
 arch/arm/cpu/armv7/ls102xa/cpu.c                  | 14 ++++++++++++++
 arch/arm/include/asm/arch-ls102xa/immap_ls102xa.h |  3 +++
 2 files changed, 17 insertions(+)

diff --git a/arch/arm/cpu/armv7/ls102xa/cpu.c b/arch/arm/cpu/armv7/ls102xa/cpu.c
index 14ae2a3..9253ea3 100644
--- a/arch/arm/cpu/armv7/ls102xa/cpu.c
+++ b/arch/arm/cpu/armv7/ls102xa/cpu.c
@@ -209,6 +209,20 @@ void enable_caches(void)
 }
 #endif /* #ifndef CONFIG_SYS_DCACHE_OFF */
 
+u32 get_svr_ver_major(void)
+{
+	struct ccsr_gur __iomem *gur = (void *)(CONFIG_SYS_FSL_GUTS_ADDR);
+
+	return SVR_MAJ(in_be32(&gur->svr));
+}
+
+u32 get_svr_ver_minor(void)
+{
+	struct ccsr_gur __iomem *gur = (void *)(CONFIG_SYS_FSL_GUTS_ADDR);
+
+	return SVR_MIN(in_be32(&gur->svr));
+}
+
 #if defined(CONFIG_DISPLAY_CPUINFO)
 int print_cpuinfo(void)
 {
diff --git a/arch/arm/include/asm/arch-ls102xa/immap_ls102xa.h b/arch/arm/include/asm/arch-ls102xa/immap_ls102xa.h
index c59c93a..4a996b8 100644
--- a/arch/arm/include/asm/arch-ls102xa/immap_ls102xa.h
+++ b/arch/arm/include/asm/arch-ls102xa/immap_ls102xa.h
@@ -427,4 +427,7 @@ struct ccsr_ahci {
 	u32 pberr;	/* port 0/1 BIST error */
 	u32 cmds;	/* port 0/1 CMD status error */
 };
+
+u32 get_svr_ver_major(void);
+u32 get_svr_ver_minor(void);
 #endif	/* __ASM_ARCH_LS102XA_IMMAP_H_ */
-- 
2.1.0.27.g96db324

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [U-Boot] [PATCH 2/2] fsl/ddr: updated ddr errata-A008378 on ls102x
  2015-11-19  9:57 [U-Boot] [PATCH 1/2] ls102x: add soc version function Shengzhou Liu
@ 2015-11-19  9:57 ` Shengzhou Liu
  2015-11-19 16:19   ` York Sun
  0 siblings, 1 reply; 3+ messages in thread
From: Shengzhou Liu @ 2015-11-19  9:57 UTC (permalink / raw)
  To: u-boot

DDR Errata A008378 only exists on LS102x Rev1, it has been
fixed on LS102x Rev2.

Signed-off-by: Shengzhou Liu <Shengzhou.Liu@freescale.com>
---
 drivers/ddr/fsl/arm_ddr_gen3.c | 11 +++++++++++
 drivers/ddr/fsl/fsl_ddr_gen4.c |  9 ++++++---
 2 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/drivers/ddr/fsl/arm_ddr_gen3.c b/drivers/ddr/fsl/arm_ddr_gen3.c
index c139da6..e059b83 100644
--- a/drivers/ddr/fsl/arm_ddr_gen3.c
+++ b/drivers/ddr/fsl/arm_ddr_gen3.c
@@ -152,6 +152,17 @@ void fsl_ddr_set_memctl_regs(const fsl_ddr_cfg_regs_t *regs,
 		}
 	}
 
+#ifdef CONFIG_SYS_FSL_ERRATUM_A008378
+#include <asm/arch-ls102xa/immap_ls102xa.h>
+#define IS_ACC_ECC_EN(v) ((v) & 0x4)
+#define IS_DBI(v) ((((v) >> 12) & 0x3) == 0x2)
+	if (get_svr_ver_major() < 2) {
+		if (IS_ACC_ECC_EN(regs->ddr_sdram_cfg) ||
+		    IS_DBI(regs->ddr_sdram_cfg_3))
+			ddr_setbits32(ddr->debug[28], 0x9 << 20);
+	}
+#endif
+
 	/*
 	 * For RDIMMs, JEDEC spec requires clocks to be stable before reset is
 	 * deasserted. Clocks start when any chip select is enabled and clock
diff --git a/drivers/ddr/fsl/fsl_ddr_gen4.c b/drivers/ddr/fsl/fsl_ddr_gen4.c
index 4eef047..0b0bcd2 100644
--- a/drivers/ddr/fsl/fsl_ddr_gen4.c
+++ b/drivers/ddr/fsl/fsl_ddr_gen4.c
@@ -172,12 +172,15 @@ void fsl_ddr_set_memctl_regs(const fsl_ddr_cfg_regs_t *regs,
 		}
 	}
 #ifdef CONFIG_SYS_FSL_ERRATUM_A008378
+#include <asm/arch-ls102xa/immap_ls102xa.h>
 	/* Erratum applies when accumulated ECC is used, or DBI is enabled */
 #define IS_ACC_ECC_EN(v) ((v) & 0x4)
 #define IS_DBI(v) ((((v) >> 12) & 0x3) == 0x2)
-	if (IS_ACC_ECC_EN(regs->ddr_sdram_cfg) ||
-	    IS_DBI(regs->ddr_sdram_cfg_3))
-		ddr_setbits32(ddr->debug[28], 0x9 << 20);
+	if (get_svr_ver_major() < 2) {
+		if (IS_ACC_ECC_EN(regs->ddr_sdram_cfg) ||
+		    IS_DBI(regs->ddr_sdram_cfg_3))
+			ddr_setbits32(ddr->debug[28], 0x9 << 20);
+	}
 #endif
 
 	/*
-- 
2.1.0.27.g96db324

^ permalink raw reply related	[flat|nested] 3+ messages in thread

* [U-Boot] [PATCH 2/2] fsl/ddr: updated ddr errata-A008378 on ls102x
  2015-11-19  9:57 ` [U-Boot] [PATCH 2/2] fsl/ddr: updated ddr errata-A008378 on ls102x Shengzhou Liu
@ 2015-11-19 16:19   ` York Sun
  0 siblings, 0 replies; 3+ messages in thread
From: York Sun @ 2015-11-19 16:19 UTC (permalink / raw)
  To: u-boot



On 11/19/2015 01:57 AM, Shengzhou Liu wrote:
> DDR Errata A008378 only exists on LS102x Rev1, it has been
> fixed on LS102x Rev2.

Shengzhou,

I have different document for this erratum. We will discuss internally.

York

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2015-11-19 16:19 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-11-19  9:57 [U-Boot] [PATCH 1/2] ls102x: add soc version function Shengzhou Liu
2015-11-19  9:57 ` [U-Boot] [PATCH 2/2] fsl/ddr: updated ddr errata-A008378 on ls102x Shengzhou Liu
2015-11-19 16:19   ` York Sun

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.