I just got through dealing with the similar behaviour using the i.mx287evk. Below is the DUART dump relating the the NAND
i.MX GPMI NFC
NFC: Version 1, 8-chip GPMI and BCH
Boot ROM: Version 1, Single-chip boot area, block mark swapping supported
Scanning for NAND Flash chips...
No NAND device found.
No NAND devices were present in my version of the OS, but the Freescale-provided Linux SD card was working properly. It turned out to be a bootargs issue in u-boot. The command "gpmi" was missing from the bootargs of my SD card. After adding "gpmi" to the bootargs the NAND devices worked (this can be tested through setenv/saveenv without requiring a uboot recompile).
A few files to look at to explain what was happening to my board:
1 - U-Boot - /include/configs/md28_evk.h
This contains CONFIG_EXTRA_ENV_SETTINGS which defines the default bootargs for a uboot recompile. Add "gpmi" to the list of arguments passed to the kernel.
2 - Kernel - arch/arm/mach-mx28/mx28evk_pins.c
int enable_gpmi = { 0 };
__setup("gpmi", gpmi_setup);
Without the string "gpmi" being sent to the kernel, the kernel does not probe the driver during initialization. No probe of gpmi means that gpmi_setup is not run, the enable_gpmi variable is never set, and the mx28evk_pins.c does not initialize the NAND pins. No NAND pins, no NAND mtds.