AnsweredAssumed Answered

u-boot 2016.01 + linux 3.0 -> NAND not detected

Question asked by Petr Kubiznak on May 13, 2016
Latest reply on May 19, 2016 by Petr Kubiznak

I'm trying to use a new u-boot (v2016.01) with an old Linux kernel (3.0.15). That means there is no device tree. Everything seems to work well except of the NAND driver - the NAND device is not detected by the kernel, resulting in the following log in dmesg:

FSL NFC MTD nand Driver 1.0

No NAND device found.

mxc_nand: NAND Flash not found !

Anyway, in u-boot, the NAND device is detected and I can read/write it as required:

NAND:  256 MiB

MMC:   FSL_SDHC: 0

*** Warning - bad CRC, using default environment

---

With an old u-boot (v2011.12), the device is detected by the kernel normally:

FSL NFC MTD nand Driver 1.0

NAND device: Manufacturer ID: 0x2c, Chip ID: 0xda (Micron NAND 256MiB 3,3V 8-bit)

Bad block table not found for chip 0

Bad block table not found for chip 0

Scanning device for bad blocks

Bad eraseblock 4 at 0x000000080000

Bad eraseblock 5 at 0x0000000a0000

3 cmdlinepart partitions found on MTD device NAND

Creating 3 MTD partitions on "NAND":

0x000000000000-0x000000100000 : "mtd_uboot"

0x000000100000-0x000000600000 : "mtd_kernel"

0x000000600000-0x000010000000 : "mtd_rootfs"

In u-boot, the log contains also some bad block info:

NAND:  256 MiB

MMC:   FSL_SDHC: 0

Bad block table not found for chip 0

Bad block table not found for chip 0

Bad block table written to 0x00000ffe0000, version 0x01

Bad block table written to 0x00000ffc0000, version 0x01

*** Warning - bad CRC, using default environment

---

Now the question is what is the difference in initialization of NAND in the new u-boot that causes Linux (and only Linux) to not detect the device. I can see the driver has changed significantly but perhaps it's not difficult to make the things work, I might be missing something... Perhaps Timesys Support might help...?

Outcomes