]> git.ipfire.org Git - people/ms/u-boot.git/commitdiff
wandboard: Fix hang when going into low frequency
authorFabio Estevam <fabio.estevam@nxp.com>
Mon, 12 Sep 2016 14:38:36 +0000 (11:38 -0300)
committerStefano Babic <sbabic@denx.de>
Tue, 4 Oct 2016 10:01:14 +0000 (12:01 +0200)
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@nxp.com>
board/wandboard/spl.c

index c513b22d82dfa24eb57240a74d1620911e0b2958..a21a3d0f21a180b084dd60cb998a5ee732995403 100644 (file)
@@ -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)