ddr: imx8m: Fix the ddr init hang on imx8mq
authorJacky Bai <ping.bai@nxp.com>
Thu, 8 Aug 2019 09:59:11 +0000 (09:59 +0000)
committerStefano Babic <sbabic@denx.de>
Tue, 8 Oct 2019 14:36:37 +0000 (16:36 +0200)
On, i.MX8MQ, the PLL config must be done when ddrmix
isolation is released. So move the dram pll init after
iso config done. For other i.MX8M SOC, either init pll
before or after isolation is ok.

Signed-off-by: Jacky Bai <ping.bai@nxp.com>
Signed-off-by: Peng Fan <peng.fan@nxp.com>
drivers/ddr/imx/imx8m/ddr_init.c

index 1296758..d6e915c 100644 (file)
@@ -41,14 +41,14 @@ void ddr_init(struct dram_timing_info *dram_timing)
        clock_set_target_val(DRAM_APB_CLK_ROOT, CLK_ROOT_ON | CLK_ROOT_SOURCE_SEL(4) |
                             CLK_ROOT_PRE_DIV(CLK_ROOT_PRE_DIV4));
 
-       initial_drate = dram_timing->fsp_msg[0].drate;
-       /* default to the frequency point 0 clock */
-       ddrphy_init_set_dfi_clk(initial_drate);
-
        /* disable iso */
        reg32_write(0x303A00EC, 0x0000ffff); /* PGC_CPU_MAPPING */
        reg32setbit(0x303A00F8, 5); /* PU_PGC_SW_PUP_REQ */
 
+       initial_drate = dram_timing->fsp_msg[0].drate;
+       /* default to the frequency point 0 clock */
+       ddrphy_init_set_dfi_clk(initial_drate);
+
        /* D-aasert the presetn */
        reg32_write(SRC_DDRC_RCR_ADDR, 0x8F000006);