All,
After installing a micron MT29F1G08ABADA in the iMX28evk board, the /dev/mtd devices are not present. I know my chip works as I can access it within u-boot (I have the latest uboot running with nand support). I'm also using the kernel provided by freescale.
Thanks,
Bills
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.
Hi Bill,
when you compile with 'ltib', do not change any setting on the MTD Support menu. I have created a uImage/FS this way, booted from a SD, and I am able to see the device. One point to notice is that I don't have that particular NAND memory that you used (I tried with a Samsumg one with similar characteristics).
Leo
Bills said:
After more investigating, I discovered that if I boot the system using the linux SD card that came with the imx28EVK, it finds the nand chip and shows /dev/mtd. However, if I build the freescale kernel it does not work. I've tried enabling all the MTD options (not exactly sure what all I need).
Also, when my built version boots, it shows the error:
GPIO NAND driver, © 2004 Simtec Electronics
i.MX GPMI NFC
NFC: Version 1, 8-chip GPMI and BCH
gpmi-nfc: probe of gpmi-nfc.0 failed with error 1However, when I boot with the kernel on the SDcard (which works) I get:
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...
NAND device: Manufacturer ID: 0x2c, Chip ID: 0xf1 (Micron NAND 128MiB 3,3V 8-bit)...
...
Thanks,
Bill
All,
I found out more - So basically if I boot any if the linux kernels directly (no uboot) it sees the /dev/mtd0. If I boot with any of the u-boots and then boot linux (booting the uImage file) it does not see the /dev/mtd0. So I even went back and grabbed the stock imx28_ivt_uboot.sb (from the files downloaded from freescale site - this one was in the >2.6.35_10.12.01_SDK_images_MX28 bundle) and it still does not work.
So maybe
A. uboot does some things that prevents kernel from working or
B. The kernel with the boot stuff added on does the right things...
Bill
Ok Bills! I think that your problem is just a configuration in the ltib settings. I told you about OBDS because I am face a serious trouble with my custom board. The OBDS can be found in the freescale website support for iMX28. Basically consist of a set of small software pieces that can test all peripherals in the iMX28 EVK and in custom boards that have same design. In my case I try to add support for test the NAND Flash MT29F1G08ABA in my board, but not have yet any success!
Christian,
I do not have a modified version of the OBDS. However, if you have one can I get a copy? (Or let me know where to get it from?). I'm still using the eval board and having problems. The odd this is if I build the kernel it does not see the device. I get the "gpmi-nfc: probe of gpmi-nfc.0 failed with error 1". But if I boot the board with the original SDcard that comes with the kit, it works.
Hello, Do you have a modified version of OBDS software to diagnose these memory? I'm try to evaluate my custom board with the same memory, but I dont know if I set the correct values into the file: "supported_nand_parts.inl". You can help-me?
/* chrdcv 2012-08-07 */
#if 1
{
// Micron MT29F1G08ABA 8-bit 4K page 1GB (8Gb) nand, 218B spare
/*device_id */ 0xDA2C,
/*device_id2 */ 0x9590,
/*device_id3 */ 0xFF06,
/*device_id4 */ 0xFFFF,
/*col_cycle*/ 2,
/*row_cycle*/ 3,
/*page_size */ 512*4,
/*spare_size */ 64,
/*pages_per_block */ 64,
/*block_size */ 64*2*1024,
/*block_count*/ 1 * 1024,
/*device_size*/ 0x10000000, // 1GB device
/*port_size */ MXC_NAND_8_BIT,
/*type */ NAND_SLC,
/*options */ NAND_BBT_SCANLSTPAGE,
/*fis_start_addr*/ 0x100000, // first 1MB reserved
/*bi_off */ 7 * 512 + 300,
/*bbt_blk_max_nr*/ 4, // reserve 4 blocks for the bad block tables
/*vendor_info*/ "Micron MT29F1G08ABA 8-bit 2K page 1GB (8Gb) nand, 64B spare",
},
#endif
After more investigating, I discovered that if I boot the system using the linux SD card that came with the imx28EVK, it finds the nand chip and shows /dev/mtd. However, if I build the freescale kernel it does not work. I've tried enabling all the MTD options (not exactly sure what all I need).
Also, when my built version boots, it shows the error:
GPIO NAND driver, © 2004 Simtec Electronics
i.MX GPMI NFC
NFC: Version 1, 8-chip GPMI and BCH
gpmi-nfc: probe of gpmi-nfc.0 failed with error 1
However, when I boot with the kernel on the SDcard (which works) I get:
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...
NAND device: Manufacturer ID: 0x2c, Chip ID: 0xf1 (Micron NAND 128MiB 3,3V 8-bit)
...
...
Thanks,
Bill