linuxppc-dev.lists.ozlabs.org archive mirror
 help / color / mirror / Atom feed
From: Scott Wood <scottwood@freescale.com>
To: LiuShuo <b35362@freescale.com>
Cc: Artem.Bityutskiy@nokia.com, dedekind1@gmail.com,
	linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org,
	shuo.liu@freescale.com, linux-mtd@lists.infradead.org,
	akpm@linux-foundation.org, dwmw2@infradead.org
Subject: Re: [PATCH 3/3] mtd/nand : workaround for Freescale FCM to support large-page Nand chip
Date: Wed, 14 Dec 2011 14:53:20 -0600	[thread overview]
Message-ID: <4EE90CC0.8040807@freescale.com> (raw)
In-Reply-To: <4EE81ADD.6090104@freescale.com>

On 12/13/2011 09:41 PM, LiuShuo wrote:
> =E4=BA=8E 2011=E5=B9=B412=E6=9C=8813=E6=97=A5 05:09, Artem Bityutskiy =E5=
=86=99=E9=81=93:
>> On Tue, 2011-12-06 at 18:09 -0600, Scott Wood wrote:
>>> On 12/03/2011 10:31 PM, shuo.liu@freescale.com wrote:
>>>> From: Liu Shuo<shuo.liu@freescale.com>
>>>>
>>>> Freescale FCM controller has a 2K size limitation of buffer RAM. In
>>>> order
>>>> to support the Nand flash chip whose page size is larger than 2K byt=
es,
>>>> we read/write 2k data repeatedly by issuing FIR_OP_RB/FIR_OP_WB and
>>>> save
>>>> them to a large buffer.
>>>>
>>>> Signed-off-by: Liu Shuo<shuo.liu@freescale.com>
>>>> ---
>>>> v3:
>>>>      -remove page_size of struct fsl_elbc_mtd.
>>>>      -do a oob write by NAND_CMD_RNDIN.
>>>>
>>>>   drivers/mtd/nand/fsl_elbc_nand.c |  243
>>>> ++++++++++++++++++++++++++++++++++----
>>>>   1 files changed, 218 insertions(+), 25 deletions(-)
>>> What is the plan for bad block marker migration.
> I think we can use a special bbt pattern to indicate whether migration
> has been done.
> (we needn't to define another marker)
>=20
> Do the migration our chip->scan_bbt as follow :
>=20
> /*
>  * this pattern indicate that the bad block information has been migrat=
ed,
>  * if this isn't found, we do the migration.
>  */
> static u8 migrated_bbt_pattern[] =3D {'M', 'b', 'b', 't', '0' };
>=20
> static int fsl_elbc_bbt(struct mtd_info *mtd)
> {
>         if (!check_migrated_bbt_pattern())
>             bad_block_info_migtrate();
>=20
>          nand_default_bbt(mtd); /* default function in nand_bbt.c */
> }

Hmm.  This is OK as long as the bad block table never gets erased (which
could happen if a user wants it reconstructed, such as if buggy software
makes a mess of it on a developer's board).  If it gets erased, we'll
end up migrating again -- and the place that factory bad block markers
would have been in is now data, so all blocks that have been written to
will show up as bad unless they happen to have 0xff at the right place.

How about a marker that is compatible with the bbt, so the same block
can be used in production (where scrubbing the bbt should never happen),
but that does not have to imply that the block is a bbt (so a developer
that might want to erase the bbt can set the mark elsewhere, preferably
just before the bbt)?

Or have two versions of the marker, one that is also a bbt marker and
one that is not.

When scanning the bbt, the driver would look for one of these markers
from the end of the chip backward.  If not found, it concludes the chip
is unmigrated.  In U-Boot, this would trigger a migration (or a message
to run a migration command).  In Linux (and U-Boot if migration is a
separate command that has not been run) an unmigrated flash could be
read-only, with the possible exception of raw accesses if needed to
support an external migration tool.

-Scott

  reply	other threads:[~2011-12-14 20:53 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-12-04  4:31 [PATCH 1/3] mtd/nand : use elbc_fcm_ctrl->oob to set FPAR_MS bit of FPAR shuo.liu
2011-12-04  4:31 ` [PATCH 2/3] mtd/nand : set correct length to FBCR for a non-full-page write shuo.liu
2011-12-04  4:31 ` [PATCH 3/3] mtd/nand : workaround for Freescale FCM to support large-page Nand chip shuo.liu
2011-12-05  6:47   ` Artem Bityutskiy
2011-12-05 19:46     ` Scott Wood
2011-12-06 11:49       ` Artem Bityutskiy
2011-12-06 11:49   ` Artem Bityutskiy
2011-12-07  0:09   ` Scott Wood
2011-12-07  3:55     ` LiuShuo
2011-12-07 19:11       ` Scott Wood
2011-12-08 10:44         ` LiuShuo
2011-12-08 18:43           ` Scott Wood
2011-12-12 21:09     ` Artem Bityutskiy
2011-12-12 21:15       ` Scott Wood
2011-12-12 21:19         ` Artem Bityutskiy
2011-12-12 21:30           ` Scott Wood
2011-12-13  2:46             ` LiuShuo
2011-12-14  8:41               ` LiuShuo
2011-12-14 20:15                 ` Scott Wood
2011-12-15  4:59                   ` Li Yang
2011-12-15 17:32                     ` Scott Wood
2011-12-16  2:44                   ` LiuShuo
2011-12-16 17:59                     ` Scott Wood
2011-12-19 11:05                       ` Li Yang
2011-12-19 16:47                         ` Scott Wood
2011-12-20  9:08                           ` Li Yang
2011-12-20 19:48                             ` Scott Wood
2011-12-17 14:35             ` Artem Bityutskiy
2011-12-19 18:38               ` Scott Wood
2011-12-19 18:42                 ` Scott Wood
2011-12-14  3:41       ` LiuShuo
2011-12-14 20:53         ` Scott Wood [this message]
2011-12-05  6:50 ` [PATCH 1/3] mtd/nand : use elbc_fcm_ctrl->oob to set FPAR_MS bit of FPAR Artem Bityutskiy
  -- strict thread matches above, loose matches on Subject: below --
2011-11-24  0:41 b35362
2011-11-24  0:41 ` [PATCH 3/3] mtd/nand : workaround for Freescale FCM to support large-page Nand chip b35362
2011-11-24  7:37   ` Li Yang-R58472
2011-11-28 17:20     ` Scott Wood
2011-11-24  7:41   ` Artem Bityutskiy
2011-11-24  7:49     ` Li Yang-R58472
2011-11-24  8:16       ` Artem Bityutskiy
2011-11-24 10:02         ` LiuShuo
2011-11-24 11:07           ` Artem Bityutskiy
2011-11-28 21:48   ` Scott Wood
2011-11-28 21:49     ` Scott Wood

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4EE90CC0.8040807@freescale.com \
    --to=scottwood@freescale.com \
    --cc=Artem.Bityutskiy@nokia.com \
    --cc=akpm@linux-foundation.org \
    --cc=b35362@freescale.com \
    --cc=dedekind1@gmail.com \
    --cc=dwmw2@infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=linuxppc-dev@lists.ozlabs.org \
    --cc=shuo.liu@freescale.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).