[U-Boot] [PATCH] wandboard: Fix hang when going into low frequency

Fabio Estevam festevam at gmail.com
Mon Sep 12 16:38:36 CEST 2016


From: Fabio Estevam <fabio.estevam at nxp.com>

A kernel hang is observed when running wandboard 3.14 kernel and
going to the lowest operational point of cpufreq:

# ifconfig eth0 down                                                            
# echo 1 > /sys/class/graphics/fb0/blank

The problem is caused by incorrect setting of the REFR field
of register MDREF. Setting it to 4 refresh commands per refresh
cycle fixes the hang.

Signed-off-by: Fabio Estevam <fabio.estevam at nxp.com>
---
Tom/Stefano,

I know it is late, but hopefully this one can make into 2016.09.

Thanks

 board/wandboard/spl.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/board/wandboard/spl.c b/board/wandboard/spl.c
index 085095c..aca820b 100644
--- a/board/wandboard/spl.c
+++ b/board/wandboard/spl.c
@@ -188,7 +188,7 @@ static struct mx6_ddr_sysinfo mem_q = {
 	.rst_to_cke	= 0x23,
 	.sde_to_rst	= 0x10,
 	.refsel = 1,	/* Refresh cycles at 32KHz */
-	.refr = 7,	/* 8 refresh commands per refresh cycle */
+	.refr = 3,	/* 4 refresh commands per refresh cycle */
 };
 
 static struct mx6_mmdc_calibration mx6dl_1g_mmdc_calib = {
@@ -231,7 +231,7 @@ static struct mx6_ddr_sysinfo mem_dl = {
 	.rst_to_cke	= 0x23,
 	.sde_to_rst	= 0x10,
 	.refsel = 1,	/* Refresh cycles at 32KHz */
-	.refr = 7,	/* 8 refresh commands per refresh cycle */
+	.refr = 3,	/* 4 refresh commands per refresh cycle */
 };
 
 /* DDR 32bit 512MB */
@@ -250,7 +250,7 @@ static struct mx6_ddr_sysinfo mem_s = {
 	.rst_to_cke	= 0x23,
 	.sde_to_rst	= 0x10,
 	.refsel = 1,	/* Refresh cycles at 32KHz */
-	.refr = 7,	/* 8 refresh commands per refresh cycle */
+	.refr = 3,	/* 4 refresh commands per refresh cycle */
 };
 
 static void ccgr_init(void)
-- 
2.7.4



More information about the U-Boot mailing list