[PATCH] ddr: imx8m: add comment and print out prior to first DDRC read

Ahmad Fatoum a.fatoum at pengutronix.de
Thu Jul 6 09:16:40 PDT 2023


If board code low level entry forgets to call imx8m*_early_clock_init
before DRAM setup, write access to DRAM controller will seem to work,
but the first read access will hang the system.

Make debugging this board bring up mistake easier by adding a debug
print along with a comment.

Signed-off-by: Ahmad Fatoum <a.fatoum at pengutronix.de>
---
 drivers/ddr/imx8m/ddr_init.c | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)

diff --git a/drivers/ddr/imx8m/ddr_init.c b/drivers/ddr/imx8m/ddr_init.c
index 944cc3873e0c..9a86280d9c73 100644
--- a/drivers/ddr/imx8m/ddr_init.c
+++ b/drivers/ddr/imx8m/ddr_init.c
@@ -106,7 +106,11 @@ int imx8m_ddr_init(struct dram_timing_info *dram_timing,
 	reg32_write(DDRC_RFSHCTL3(0), 0x0000001);
 	reg32_write(DDRC_PWRCTL(0), 0xa0);
 
-	/* if ddr type is LPDDR4, do it */
+	pr_debug("checking ddr type\n");
+	/*
+	 * below is first read, so if boot hangs here, imx8m*_early_clock_init()
+	 * might not have been called
+	 */
 	tmp = reg32_read(DDRC_MSTR(0));
 	if (tmp & (0x1 << 5) && ddrc_type != DDRC_TYPE_MN)
 		reg32_write(DDRC_DDR_SS_GPR0, 0x01); /* LPDDR4 mode */
-- 
2.39.2




More information about the barebox mailing list