how to support 4096+224 page size with plat_nand ?

Brian Norris computersforpeace at gmail.com
Fri Mar 16 19:16:56 EDT 2012


On Fri, Mar 16, 2012 at 7:05 AM, Brian Foster <brian.foster at maxim-ic.com> wrote:
>  We have also used 4K + 224 NAND (not sure if the
>  same part or not) with ‘plat_nand’ (and also with
>  our own driver which uses our chip's ECC engine),
>  in a v2.6.36-based Linux kernel.  (The kernel's
>  version _may_ be important, since I _think_ some
>  later kernels directly support 224 (and 218 and
>  maybe 256) OOB sizes;  and/or correctly detecting
>  the eraseblock size.)

Timothy's part is an ONFI-compliant device, and I think ONFI support
was added after 2.6.36.

>  We didn't bother using the full 224-byts of OOB,
>  but instaed are treating the device as having
>  only 128-bytes of OOB.  Works fine, albeit we
>  did have to add the part to the nand_flash_ids[]
>  table since the eraseblock size wasn't correctly
>  detected.

In recent kernels, you shouldn't have to modify anything for the
size/eraseblock/etc. to be *detected* properly since ONFI will find
it, but depending on the driver, the OOB size may not be supported.
For instance, since the plat_nand driver uses the nand_base layouts
(as you noticed), you need to at least supply *some* ECC layout that
is valid. Just make sure the ECC strength is high enough for your
device...

Brian



More information about the linux-mtd mailing list