AnsweredAssumed Answered

NAND Flash accesses hang when EBIU interferres

Question asked by gpetrowitsch on Jul 8, 2010
Latest reply on Aug 30, 2010 by vapier

Dear all,


I'm having a problem with concurrent accesses done by the NAND Flash

controller and the EBIU (async memory accesses) on a BF548M system.


The situation:

I'm programming the NAND flash with data I receive from an Ethernet chip,

which sits on the asynchronous memory interface (chip select /AMS1).

Occasionally the NAND flash accesses stop (forever), so the programming

hangs. I could trigger with my scope on the problem:


When programming a page (2kbytes), the NAND flash driver writes data in

chunks of 512 bytes. After this it get's an callback from the DMA so that it

can save the ECC data. Then it continues with the next 512 byte chunk.

A short time before the hang occurs, the Ethernet chip gets accessed from

the core via the EBIU. These accesses mix with the NAND flash accesses

on the asynchronous memory bus.

I counted the accesses to the NAND flash and found, that in the case where

the problem occurrs, the last chunk of 512 bytes is not completely written

(12 bytes were missing). As the NAND flash driver waits for completion, it

waits forever and the programming hangs.


I wonder how this can happen. Is there a problem with the arbitration inside

the BF548M? Where did the missing bytes go to?





P.S.: The Ethernet chip is a LAN9218 which is compatible to the LAN9221.

We use a driver from the EZ-Kit software.