NAND driver

Mark Underwood basicmark at
Mon Feb 25 04:54:58 EST 2008

I’m writing a NAND driver for an ASIC. The NAND controller has been designed to handle page read &
writes with little SW intervention using interrupts or DMA, so I plan to implement the
write_page_raw & read_page_raw functions.
However, looking through nand_base.c it looks like not all NAND access go through these functions
so to start with I have implemented the cmd_ctrl function & supplied the IO_ADDR_R & IO_ADDR_W
address with the thinking that these would be a fall back when the access doesn't go through the
raw functions.
Unfortunately it seems the single write functionality of the controller is broken. The page  read
& write functionality only allow me to work in 512byte blocks so I can't write OOB that way. Can
you confirm that there are cases where OOB is written separately and if so do you have any
suggestions for getting around this problem?

Many thanks,


Rise to the challenge for Sport Relief with Yahoo! For Good

More information about the linux-mtd mailing list