NAND Driver in case of NAND Flash Controller

Josh Boyer jwboyer at linux.vnet.ibm.com
Mon Jul 2 08:38:58 EDT 2007


On Mon, 2007-07-02 at 16:37 +0530, Ranga Raju B wrote:
> Hi,
>     I need to write a Linux MTD NAND Driver for an SoC. It has NAND 
> Flash Controller (ARASAN NAND Flash Controller) and I am using a 2Gb 
> Micron NAND Flash. The MTD drivers I currently see in the Linux tree are 
> basically having the NAND Flash connected directly to the processors 
> using GPIO or Address Lines. In this case it is appropriate to write 
> callback functions for
> 
> hwcontrol
> dev_ready
> write_byte
> read_byte
> verify_byte
> write_buf
> read_buf
> verify_buf
> 
> Since the IO data lines and control lines are controlled directly by the 
> processor.
> 
> In case of NAND flash controller we don't have this controller. We need 
> to program only the registers and we can get status only from the status 
> registers. We have data ports
> which can take only 512 bytes at a time. Has anyone written the Linux 
> driver for this kind of situation?
> 
> I have control only at stage 1. Which are nothing but memory mapped 
> interface.
> 
>                 1                                             2
>    ARM  --->  NAND Flash Controller   ---> NAND Flash
> 
> I don't  know  where to start this driver. I intend to use JFFS2 over 
> MTD partitions.

Take a look at the NDFC driver in drivers/mtd/nand/.  It is a NAND
controller found on some PowerPC 4xx chips and operates similar to what
you've described.  You might find it helpful when writing a driver for
your NAND controller.

josh




More information about the linux-mtd mailing list