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 timesyssupport might help...?