FAT vs jFFS2 for NAND.

Claudio Lanconelli lanconelli.claudio at eptar.com
Wed Jun 21 10:15:34 EDT 2006


Hi Thomas,

Thomas Gleixner wrote:
> This looks up the bad block table which is created in ram after the NAND
> chip has been detected in nand_scan() and helps you to avoid reading bad
> blocks. Just skip the block, when the function returns 1.
>
> The only exception I think is block 0, which contains the SSFDC header
> and is marked bad for protection.
>
>   
Are you sure about block 0 marked bad for protection? I read in
smartmedia specification by Toshiba that SSFDC header called CIS/IDI is
located on the first good block. Here the sentence:

"The CIS/IDI Field is placed in physical block 0.
If physical block 0 is found to be a defective block, the area is placed 
in the
first normal block that is found after physical block 0.
Irrespective of the page size, only one block is assigned."
[...]
"The indication of a defective block and logical block arrangement in 
the data
area will be set in the redundancy area.
In the case of the 512+16 bytes/page models, the 6th byte (byte address 
517th)
in all pages in the redundant section contains two or more “0” bits to 
indicate
a defective block."

My code follow these instructions on the SSFDC header location, is it 
correct?
Anyone who knows it for sure?


Another question about the ECC placement. I think the MTD default ECC 
bytes placement
in the redundant area is not suitable for SSFDC. I found the 
CONFIG_MTD_NAND_ECC_SMC
in mtd configuration, but it's not used anywhere in the code. How can 
the ssfdc_ro layer tell
to use smartmedia ECC bytes placement?

Thanks,
Claudio




More information about the linux-mtd mailing list