NAND DMA problems with i.MX50/2.6.35.3

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

NAND DMA problems with i.MX50/2.6.35.3

1,286 Views
AndreRenaud
Contributor I

Hi,

I'm using the i.MX503 along with the 2.6.35.3 kernel, and I'm having issues with the GPMI NAND controller. It appears to detect the chip properly, but when I attempt to read/write from it I get an error in gpmi_nfc_dma_go. It looks like it's failing to get a DMA Completion interrupt, causing gpmi_nfc_dma_go to timeout. Has anyone experienced this before, or know where I might begin looking?

boot log:

MXC MTD nand Driver 3.0                                          
i.MX GPMI NFC    

NFC: Version 2, 8-chip GPMI and BCH

Boot ROM: Version 1, Single-chip boot area, block mark swapping supported

Scanning for NAND Flash chips...                                   

-----------------------------  

NAND Flash Device Information

-----------------------------

Manufacturer  : Micron (0x2c)
Device Code   : 0x88   

Cell Technology   : MLC

Chip Size     : 8 GiB

Pages per Block   : 256 

Page Geometry : 8192+448
ECC Strength  : 24 bits
ECC Size      : 1024 B

Data Setup Time   : 15 ns

Data Hold Time: 10 ns

Address Setup Time: 20 ns

GPMI Sample Delay : 6 ns

tREA          : 20 ns
tRLOH         : 5 ns
tRHOH         : 15 ns
Description   : MT29F64G08CBAAA(8GB, 2CE)
------------                            

NFC Geometry

------------

ECC Algorithm      : BCH
ECC Strength       : 24
Page Size in Bytes : 8640

Metadata Size in Bytes : 10 

ECC Chunk Size in Bytes: 512

ECC Chunk Count    : 16

Payload Size in Bytes  : 8192

Auxiliary Size in Bytes: 28 

Auxiliary Status Offset: 12

Block Mark Byte Offset : 7636

Block Mark Bit Offset  : 0  

NAND device: Manufacturer ID: 0x2c, Chip ID: 0x88 (Micron ONFI NAND 3,3V 8-bit)

-----------------                                                        

Boot ROM Geometry

-----------------

Boot Area Count        : 0
Boot Area Size in Bytes: 0 (0x0)
Stride Size in Pages   : 64

Search Area Stride Exponent: 2

Scanning device for bad blocks

Bad eraseblock 90 at 0x00000b400000

Bad eraseblock 91 at 0x00000b600000

Creating 2 MTD partitions on "gpmi-nfc-main":

0x000000000000-0x000004000000 : "kernel"

0x000004000000-0x000200000000 : "filesystem"

Error details:

root@snapper:~$ cat /proc/mtd

dev:    size   erasesize  name

mtd0: 04000000 00200000 "kernel"

mtd1: 1fc000000 00200000 "filesystem"

root@snapper:~$ mtdtool --eraseall kernel

100%   64M (646.46M/s)           

gpmi-nfc gpmi-nfc.0: [gpmi_nfc_dma_go] Chip: 0, DMA Channel: 0, Error -110

[ start_dma_with_bch_irq ] DMA error                                     

[ start_dma_with_bch_irq ] bch timeout!!!

gpmi-nfc gpmi-nfc.0: [mil_ecc_write_page] Error in ECC-based write: -110

gpmi-nfc gpmi-nfc.0: [gpmi_nfc_dma_go] Chip: 0, DMA Channel: 0, Error -110

[ start_dma_without_bch_irq ] DMA error                                  

gpmi-nfc gpmi-nfc.0: [mil_cmd_ctrl] Chip: 0, Error -110

    Command Bytes: 10                                 

gpmi-nfc gpmi-nfc.0: [gpmi_nfc_dma_go] Chip: 0, DMA Channel: 0, Error -110

[ start_dma_without_bch_irq ] DMA error                                  

gpmi-nfc gpmi-nfc.0: [mil_cmd_ctrl] Chip: 0, Error -110

    Command Bytes: 70                                 

Labels (3)
0 Kudos
2 Replies

623 Views
Yuri
NXP Employee
NXP Employee

1.

If the problem happens only on one NAND chip, it may be a block that has lost its factory bad block marking,

but should really be a bad block. You could try to figure out how to force the block to be marked bad, or just discard

the NAND chip. If the same problem happens on multiple NAND chips of the same family, the BSP may not be correctly

supporting the chip.

2.

  The next Community thread may be useful.

https://community.freescale.com/message/314616#314616

0 Kudos

623 Views
Yuri
NXP Employee
NXP Employee

Am I correct that Linux BSP (for i.MX50) from the Freescale Web was used ?

And all patches (from the Web) have been applied ?

http://www.freescale.com/webapp/sps/site/prod_summary.jsp?code=i.MX508&nodeId=018rH3ZrDR8DD8&fpsp=1&...

Are you using the iMX50 EVK board or your own hardware?
Perhaps the problem concerns with improper IOMUX settings for GPMI pins under specific hardware.

Please compare Your schematics with mx50 EVK to define if IOMUX changes are necessary.

0 Kudos