Quantcast
Channel: Processors forum - Recent Threads
Viewing all articles
Browse latest Browse all 17527

OMAPL138 EMIFA NAND Flash Performance

$
0
0

Hello,

I have a custom OMAPL138 based board which has a 256MB Micron nand flash (MT29F2G08AAC). I use the same connections as the L138 EVM UI board.

I use the kernel from arago git tree. (http://arago-project.org/git/projects/?p=linux-omapl1.git;a=summary)

I am trying to optimize the nand read/write performance on my custom board.

I have the following timings in my board file.


static struct davinci_aemif_timing atlas_nandflash_timing = {
    .wsetup     = 0,
    .wstrobe    = 30,
    .whold      = 30,
    .rsetup     = 10,
    .rstrobe    = 20,
    .rhold      = 10,
    .ta         = 0,
};

static struct davinci_nand_pdata atlas_nandflash_data = {
    .parts       = atlas_nandflash_partition,
    .nr_parts    = ARRAY_SIZE(atlas_nandflash_partition),
    .ecc_mode    = NAND_ECC_HW,
    .ecc_bits    = 4,
    .options     = NAND_USE_FLASH_BBT,
    .timing      = &atlas_nandflash_timing,
};


CPU is working at  300MHz and EMIFA_CLK is 100MHz.

With these values, i have aproximately 7MB/s read speed from the nand device

I use the following command to check read speed:

# time dd if=/dev/mtd5 of=/dev/zero bs=2048 count=5000
5000+0 records in
5000+0 records out
real    0m 1.45s
user    0m 0.01s
sys     0m 1.42s

But when i check the actual nand timings with a scope i realize an interesting issue.

Here is the screenshot of a typical nand read cycle:

CH1 is the nand chip enable (_CE) signal which is routed from L138's EMA_CSn_3 pin.

CH2 is the nand read enable (_RE) signal which is routed from L138's EMA_OEn pin.

Time scale is 100ns/div

As it is seen from the attached screenshot, there is some delay between each 4 byte read from the nand device.

Between these 4-byte read cycles, chip enable signal goes high.

I think because of this delay davinci nand driver is not working at its full speed.

I searched davinci nand driver source but can not find an explanation to this situation.

The question is:

Where was this delay come from? Is it possible to minimize this delay?

Regards,

Alper

 

 

 


Viewing all articles
Browse latest Browse all 17527

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>