[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Finalized TODO list for NAND and JFFS...

I admire your optimism in calling it 'finalised' :)

sjhill@xxxxxxx.com said:
>  1) Wear-leveling and aging for block re-usage for NOR and NAND 

OK - this is useful information to have, but....

> 6) Block re-usage algorithm:

... what's the point if you're not going to _use_ it? I'd be inclined to do 
without the statistics for now, and implement something like the block 
selection algorithm you quoted. We can add it later if it's absolutely 

sjhill@xxxxxxx.com said:
>  8) JFFS should do read after write of data with NAND flash only 

Make it configurable, perhaps, but I'm inclined to do read-after-write with 
NOR flash too. If the MTD device claims to support ECC, you don't have to 
actually compare the data which were read back.

sjhill@xxxxxxx.com said:
>  2) JFFS needs write gathering for NAND to keep from writing
>    more than 10 times per page
>  2) I understand what the sentence is saying, but I do not have
>     a clear idea on how to do this.

I'm inclined to start by making flash_safe_write() do caching and only 
flush to the actual MTD device when a later write wants to write to a 
different page. Then look at the places where you've either broken the 
journalling or could still exceed the write limit.

> 7) Utilize 'drivers/char/flash_mem.c' for caching 512 byte blocks
>    with a buffer and write out data only when different page is found
> 7) I believe this will be handled at the MTD level and is
>    transparent for JFFS.

No, you'll break the journalling if JFFS doesn't know what's going on. Use 
flash_mem.c as a reference - it's doing the same thing as you wanted to 
write in item 2.

 - Compression.
 - Formal proof of GC correctness.