[RFC][patch] NAND partial page read functionality

Artem Bityutskiy dedekind at infradead.org
Tue Dec 18 07:57:55 EST 2007


On Tue, 2007-12-18 at 12:42 +0100, Jörn Engel wrote:
> On Tue, 18 December 2007 10:48:51 +0200, Artem Bityutskiy wrote:
> > 
> > Well, this depends. If an MTD user wants to write 4KiB, and issues 4KiB
> > write request, then it is of course faster to write 2x2048, then 8x512,
> > and it is even faster to do some kind of multi-page write (some old
> > flashes had this AFAIK).
> 
> Not necessarily.  The alauda chip has a "page program" and a "block
> program" command.  With a naive implementation the block program is
> faster.  But when doing asynchronous transfers on the usb bus, page
> program becomes just as fast.  In this particular case, block program
> can only reduce the number of synchronous bus latencies for a
> non-optimized implementation.

Well, in the context of discussion this example is not really relevant,
since aluda have its own write_page, and we are talking about the
nand_base.c's implementation.

> If writesize is 256 and pagesize is 2048, every wbuf flush will write
> exactly 256.  Any remaining clean multiple of 256 is written directly,
> but this will rarely be an aligned clean multiple of 2048.  Every wbuf
> flush ensures that either the previous or the following writes is not.

Indeed, you are right.

-- 
Best regards,
Artem Bityutskiy (Битюцкий Артём)




More information about the linux-mtd mailing list