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.

CCS/TMS320C6746: EMIF

Part Number: TMS320C6746

Tool/software: Code Composer Studio

Nand flash shares EMIF bus with FPGA. Will the use of DMA for reading and writing operation of NAND flash be affected by the interruption of FPGA?

  • It's ok to use DMA to access the NAND flash, though you would need some CPU accesses surrounding the transfer in order to properly setup the ECC computation and checking. It is safe for accesses to the FPGA to be interleaved with the NAND accesses assuming the FPGA is on its own chip select. The ECC computation only applies to accesses to that specific chip select space.
  • Hi,

    As Brad mentioned, there are up to four asynchronous chip selects, supported by EMIFA, these ate EMA_CS[2] to EMA_CS[5] and each of them has different individually programmable attributes such as NAND flash controller which supports ECC calculation.  This is important to consider that the ECC calculation only could be done to that chip select space specified to the NAND flash. Take a look at the image below:

      

    Assume that instead of the SDRAM there is an FPGA. Anyway, related to the image above,  ECC calculation of NAND flash controller is done to chip select space specified to the NAND flash (EMA_CS[3] in this connection diagram). 
    We can conclude that the reading and writing operation of NAND flash could be NOT affected by the interruption of FPGA, due to the separate chip select spaces of NAND flash and FPGA, even when they share an EMIF bus with each other.

  • When using DMA mode to access NAND, when the execution of NAND page writing is interrupted by the FPGA, will it affect the correctness of NAND reading and writing data?
  • The interruption interval of the FPGA is 320 us, and the NAND page writing time needs 200 us. When the NAND page writing operation is interrupted by the FPGA, will it affect the correctness of the stored data?
  • As is shown in the figure above, each has its own independent chip select. Is there any reference routines used by tms320c674* to verify NAND operations?
  • How to configure parameters of EMIF bus and NAND flash (29F4G16ADABADH4)? Is there any  software demo that can be used for validation?

    think you

  • I'm not aware of any RTOS or bare metal software for this function. The LCDK board doesn't have raw NAND. Along those lines, why are you using raw NAND? Are you intending to boot from raw NAND? In my experience raw NAND is a never-ending set of issues (obsolescence, changing ECC algorithms, different layouts and page sizes). I recommend eMMC as an alternative since the interface between the memory and the processor is well-defined, i.e. the internal NAND of the eMMC can be changed by the memory vendors without impacting the processor.