This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

OMAP3 Nand flash driver in GPMC prefetch and DMA mode problem



Hi,

I have OMAPPSP_03.00.00.04. If I use the default configuration, my system with NAND flash as the root file system works fine. However, when I choose

 GPMC prefetch support for NAND Flash device 
  DMA mode

It doesn't boot anymore. Are there any known issues and patches with this PSP ?

Thanks.

Wending

 

  • Wending,

    If I remember correctly, this particular feature has not fully validated, so there could be issues with it. And as per my understanding, we have not done any further development or validation with respect to this feature support.

    Thanks,

    Vaibhav

  • That means I cann't use this feature. As the performance of NAND flash is very bad, so I took a look at NAND driver, I see that it waits always 50 us for each reading operation, maybe, it explains the performance problem, is there any reason for that?

    Another issue, The pin GPMC_WAIT0 has never changed state, is it because the R/B pin of flash is not connected? Or something else?

    I do need to find a way to speed up the flash.

    Thanks.

    Wending

  • Hello,

    it is now linux-2.6.37-psp04.00.00.10 and I have been trying out TI's NAND driver from Linux. I run the following command:

    dd if=/dev/mtd7ro of=/dev/null bs=1M count=100

    and sadly only get 4MB/s out of it. In U-Boot it is only 2MB/s!!! i.e. it takes 25 seconds to read 100MB of data from the NAND.

    As with Wending, I also need to be able to speed this up! Reading the EVM NAND chip datasheet, apparently in 16 bit bus mode we should get 40MB/s, that's 10 times faster.

    I have looked at the source code and found this structure:

    enum nand_io {
        NAND_OMAP_PREFETCH_POLLED = 0,    /* prefetch polled mode, default */
        NAND_OMAP_POLLED,        /* polled mode, without prefetch */
        NAND_OMAP_PREFETCH_DMA,        /* prefetch enabled sDMA mode */
        NAND_OMAP_PREFETCH_IRQ        /* prefetch enabled irq mode */
    };

    For the present kernel TI's source code sets the transfer mode to NAND_OMAP_POLLED. Do any of the others work? (Particularly the DMA mode, and if so what channel should I specify?).

    Thanks,
    Ralph

     

  • Anyone? Am I better off doing a new thread?

    Ralph