[U-Boot] MXS NAND: DMA read error

Lauri Hintsala
2012-04-17T08:07:28Z

Hello,

I'm trying to compile latest U-Boot to mx28evk (rev D) with NAND
support. U-Boot boots up but NAND chip is not detected and DMA read
error is popped up.

Here is console output:

U-Boot 2012.04-rc2-dirty (Apr 17 2012 - 10:58:50)

Freescale i.MX28 family at 454 MHz
DRAM: 128 MiB
NAND: MXS NAND: DMA read error (-110)
MXS NAND: DMA read error (-110)
MXS NAND: Error sending command
MXS NAND: DMA read error (-110)
MXS NAND: DMA read error (-110)
MXS NAND: Error sending command
MXS NAND: DMA read error (-110)
MXS NAND: DMA read error (-110)
MXS NAND: DMA read error (-110)
MXS NAND: DMA read error (-110)
MXS NAND: DMA read error (-110)
MXS NAND: DMA read error (-110)
MXS NAND: DMA read error (-110)
MXS NAND: DMA read error (-110)
No NAND device found!!!
0 MiB

I did following changes to mainline code. Did I forget something?

diff --git a/drivers/mtd/nand/mxs_nand.c b/drivers/mtd/nand/mxs_nand.c
index 9c95811..93e54da 100644
--- a/drivers/mtd/nand/mxs_nand.c
+++ b/drivers/mtd/nand/mxs_nand.c
@@ -465,7 +465,7 @@ static void mxs_nand_read_buf(struct mtd_info *mtd,
uint8_t *buf, int length)
/* Execute the DMA chain. */
ret = mxs_dma_go(channel);
if (ret) {
- printf("MXS NAND: DMA read error\n");
+ printf("MXS NAND: DMA read error (%d)\n", ret);
goto rtn;
}

diff --git a/include/configs/mx28evk.h b/include/configs/mx28evk.h
index 02f3366..a0bd2db 100644
--- a/include/configs/mx28evk.h
+++ b/include/configs/mx28evk.h
@@ -148,6 +148,15 @@
#endif

/*
+ * NAND
+ */
+#define CONFIG_CMD_NAND
+#define CONFIG_NAND_MXS
+#define CONFIG_SYS_MAX_NAND_DEVICE 1
+#define CONFIG_SYS_NAND_BASE 0x60000000
+#define CONFIG_SYS_NAND_5_ADDR_CYCLE
+
+/*
* Ethernet on SOC (FEC)
*/
#ifdef CONFIG_CMD_NET

BR,
Lauri Hintsala