OneNAND: read-while-load (known problem)

Kyungmin Park kyungmin.park at samsung.com
Sun Jan 7 22:37:23 EST 2007


Hi,

FYI: read-while-load known problem in DDP.

Of course it's rare case in MTD. and please don't program like this in upper layer.

If you are using OneNAND DDP (Dual Densidy Package) and you want to read data between chip boundary. you maybe failed to read.

For example, 2Gbit OneNAND DDP has following address

Chip 0: 0x0000 0000 ~ 0x0800 0000 - 1
Chip 1: 0x0800 0000 ~ 0x1000 0000 - 1

If you want to read from 0x07ff f800 to 0x8000 0800 (4KB). it will be failed since each chip has its own bufferram
So it don't support read-while-loading between each chip. 

[Chip 0] onenand_update_bufferram: 1 addr 0x7ffe000, valid = 1
[Chip 0] onenand_update_bufferram: 0 addr 0x7ffe800, valid = 1
[Chip 0] onenand_update_bufferram: 1 addr 0x7fff000, valid = 1
[Chip 0] onenand_update_bufferram: 0 addr 0x7fff800, valid = 1
  -> Send next page read, but next page is in chip 1
[Chip 1] onenand_update_bufferram: 1 addr 0x8000000, valid = 1 => Actually it's invalid 
[Chip 1] onenand_update_bufferram: 0 addr 0x8000800, valid = 1
[Chip 1] onenand_update_bufferram: 1 addr 0x8001000, valid = 1

Thank you,
Kyungmin Park


------- Original Message -------
Sender : Artem Bityutskiy<dedekind at infradead.org> 
Date   : Jan 05, 2007 19:54
Title  : Re: OneNAND: read-while-load

On Fri, 2007-01-05 at 09:58 +0000, Kyungmin Park wrote:
> Yes, We already knew read-while-loading has better performance than normal read.
> Internally we called it 'MRead' (refer another OneNAND open source in samsung web site)

It is true that JFFS2 is currently the main user. But it may be changed
in the future. Also one day one can teach JFFS2 to maintain larger nodes
with, say 16K or more bytes of data. And BTW, UBI reads whole
eraseblocks when making wear-leveling, so it would also benefit.

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





More information about the linux-mtd mailing list