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.

NAND erase block (one single block, that is)

Using Processor: TMS320DM6437 and the PSP libraries in C:\dvsdk_1_01_00_15\psp_1_00_02_00\pspdrivers\drivers\nand, I need to be able to erase a single block of NAND flash.  The flash chip supports it; the API does not appear to expose it, according to the documentation.

Has this been addressed in a future version of the API?

Can I get the library source code and make modifications myself?

Is there a hidden function that already provides it?

Is there a trick, such as doing a write-block with all 1's, that gives me the functionality I desire?

 

  • Hi,

    Unfortunately, there is no interface provided to erase a particular block :(  And I am not sure as to why this has not been provided. But, there is an API provided to erase all the blocks in one go! "PSP_nandErase" wherein, using an IOCTL "DDC_NAND_IOCTL_ERASE" it erases all blocks.

    If you look into this function, nandFtlErase(...) (placed in - ddc_nandFtl.c) they are calling nandPhyEraseBlock(...) (placed in - ddc_nandPhy.c file) erasing one block at a time. Probably you can make some minor changes in the driver and try calling this function from the application itself. Like -

    You can have an IOCTL - "DDC_NAND_IOCTL_BLOCK_ERASE" inside nandControl(...) (placed in - ddc_nand.c file) and call function nandPhyEraseBlock(...) by providing appropriate block number. From the application, just by calling this IOCTL (DDC_NAND_IOCTL_BLOCK_ERASE) you should be able to achive the functionality you desire..

    Hope this helps. Please try this and let us know the results..

    As far as I know, I donot think there is any later PSP release for this platform providing this. Anyways will update you on this soon.

     

    Thanks & regards,

    Raghavendra