Re: [PATCH v3] mtd/nand : workaround for Freescale FCM to support large-page Nand chip
From: LiuShuo <hidden>
Date: 2011-08-19 03:13:32
=E4=BA=8E 2011=E5=B9=B408=E6=9C=8819=E6=97=A5 01:00, Matthieu CASTET =E5=86= =99=E9=81=93:
b35362@freescale.com a =C3=A9crit :quoted
From: Liu Shuo<redacted> Freescale FCM controller has a 2K size limitation of buffer RAM. In or=
der
quoted
to support the Nand flash chip whose page size is larger than 2K bytes=
,
quoted
we divide a page into multi-2K pages for MTD layer driver. In that cas=
e,
quoted
we force to set the page size to 2K bytes. We convert the page address=
of
quoted
MTD layer driver to a real page address in flash chips and a column in=
dex
quoted
in fsl_elbc driver. We can issue any column address by UA instruction =
of
quoted
elbc controller.Why do you need to do that ? When mtd send you a 4k page, why can't you write it by 2*2k pages write=
? 1. It's easy to implement. 2. We don't need to move the data in buffer more times, because we want to use the HW_ECC. In flash chip per Page: ---------------------------------------------------------------- | first data | first oob | second data | second oob | ----------------------------------------------------------------
Even better send the first 2K and then if your controller allow it send=
the
remaining 2K without command/address phase.
The elbc controller don't allow that. I have to send twice Program CMD for writing the whole 4KB data.
Matthieu