[PATCH v1 2/2] apalis-imx6: use dynamic DDR calibration

2021-10-20 Thread sbabic
> Enable dynamic DDR calibration to have a reliable behavior on edge
> temperatures conditions.
> Signed-off-by: Max Krummenacher 
> Signed-off-by: Francesco Dolcini 
Applied to u-boot-imx, master, thanks !

Best regards,
Stefano Babic

-- 
=
DENX Software Engineering GmbH,  Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: +49-8142-66989-53 Fax: +49-8142-66989-80 Email: sba...@denx.de
=


[PATCH v1 2/2] apalis-imx6: use dynamic DDR calibration

2021-08-31 Thread Francesco Dolcini
Enable dynamic DDR calibration to have a reliable behavior on edge
temperatures conditions.

Signed-off-by: Max Krummenacher 
Signed-off-by: Francesco Dolcini 

---

 board/toradex/apalis_imx6/apalis_imx6.c | 19 +++
 configs/apalis_imx6_defconfig   |  1 +
 2 files changed, 20 insertions(+)

diff --git a/board/toradex/apalis_imx6/apalis_imx6.c 
b/board/toradex/apalis_imx6/apalis_imx6.c
index 74060daadd..ce64ace0d4 100644
--- a/board/toradex/apalis_imx6/apalis_imx6.c
+++ b/board/toradex/apalis_imx6/apalis_imx6.c
@@ -1077,6 +1077,24 @@ static void ddr_init(int *table, int size)
writel(table[2 * i + 1], table[2 * i]);
 }
 
+/* Perform DDR DRAM calibration */
+static void spl_dram_perform_cal(void)
+{
+#ifdef CONFIG_MX6_DDRCAL
+   int err;
+   struct mx6_ddr_sysinfo ddr_sysinfo = {
+   .dsize = 2,
+   };
+
+   err = mmdc_do_write_level_calibration(_sysinfo);
+   if (err)
+   printf("error %d from write level calibration\n", err);
+   err = mmdc_do_dqs_calibration(_sysinfo);
+   if (err)
+   printf("error %d from dqs calibration\n", err);
+#endif
+}
+
 static void spl_dram_init(void)
 {
int minc, maxc;
@@ -1095,6 +1113,7 @@ static void spl_dram_init(void)
break;
};
udelay(100);
+   spl_dram_perform_cal();
 }
 
 void board_init_f(ulong dummy)
diff --git a/configs/apalis_imx6_defconfig b/configs/apalis_imx6_defconfig
index a0e85ba23a..0e06e75818 100644
--- a/configs/apalis_imx6_defconfig
+++ b/configs/apalis_imx6_defconfig
@@ -10,6 +10,7 @@ CONFIG_SYS_MEMTEST_END=0x1001
 CONFIG_ENV_SIZE=0x2000
 CONFIG_ENV_OFFSET=0xDE00
 CONFIG_MX6Q=y
+CONFIG_MX6_DDRCAL=y
 CONFIG_TARGET_APALIS_IMX6=y
 CONFIG_DM_GPIO=y
 CONFIG_DEFAULT_DEVICE_TREE="imx6-apalis"
-- 
2.25.1