Can not see the NAND device /dev/mtd0 or /dev/mtd1 for micron MT29F1G08ABADA

cancel
Showing results for 
Search instead for 
Did you mean: 

Can not see the NAND device /dev/mtd0 or /dev/mtd1 for micron MT29F1G08ABADA

4,407 Views
blsousan
Contributor III

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

Labels (1)
7 Replies

1,003 Views
spearson
Contributor III

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.


1,003 Views
LeonardoSandova
Specialist I

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 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

0 Kudos

1,003 Views
blsousan
Contributor III

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

0 Kudos

1,003 Views
christianvieira
Contributor II

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!

0 Kudos

1,003 Views
blsousan
Contributor III

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.

0 Kudos

1,003 Views
christianvieira
Contributor II

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

0 Kudos

1,003 Views
blsousan
Contributor III

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

0 Kudos