[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20140327132109.06258526@ipc1.ka-ro>
Date: Thu, 27 Mar 2014 13:21:09 +0100
From: Lothar Waßmann <LW@...O-electronics.de>
To: Huang Shijie <b32955@...escale.com>
Cc: Fabio Estevam <fabio.estevam@...escale.com>,
Mark Rutland <mark.rutland@....com>,
Shawn Guo <shawn.guo@...aro.org>,
Russell King <linux@....linux.org.uk>,
Pawel Moll <pawel.moll@....com>, Arnd Bergmann <arnd@...db.de>,
Ian Campbell <ijc+devicetree@...lion.org.uk>,
Artem Bityutskiy <artem.bityutskiy@...ux.intel.com>,
<linux-doc@...r.kernel.org>, <linux-kernel@...r.kernel.org>,
<devicetree@...r.kernel.org>, Rob Herring <robh+dt@...nel.org>,
<linux-mtd@...ts.infradead.org>,
<linux-arm-kernel@...ts.infradead.org>,
Rob Landley <rob@...dley.net>,
Kumar Gala <galak@...eaurora.org>,
Brian Norris <computersforpeace@...il.com>,
David Woodhouse <dwmw2@...radead.org>,
Sascha Hauer <kernel@...gutronix.de>,
Shawn Guo <shawn.guo@...escale.com>
Subject: Re: [PATCHv2 1/1] mtd: gpmi: make blockmark swapping optional
Hi,
Huang Shijie wrote:
> > > Please see "Figure 12-13" in the 12.12.1.12:
> > > "In order to preserve the BI (bad block information), flash updater
> > > or gang programmer
> > > applications need to swap Bad Block Information (BI) data to byte 0 of
> > > metadata area for
> > > every page before programming NAND Flash. ROM when loading firmware,
> > > copies back
> > > the value at metadata[0] to BI offset in page data. The following figure
> > > shows how the
> > > factory bad block marker is preserved."
> > >
> > The inspection of the BB markers is only a fallback for the case that
> > there is no DBBT. From the same chapter that you quoted above:
> > | ROM uses DBBT to skip any bad block that falls within firmware data
> > | on NAND Flash device.
> > | If the address of DBBT Search Area in FCB is 0, ROM will rely on
> > | factory marked bad block markers to find out if a block is good or bad.
> >
> > Thus, even the boot ROM of i.MX28 can well live without blockmark
> > swapping.
>
> Assume that there is a NAND block "A", and the A consist of 256 pages.
> the uboot is burned to the "A", can occupy 6 pages:
>
> -----------------------------------------------------------------------------
> | page 0 | page 1 | page 2 | page 3 | page 4 | page 5 | ... | ... | page 255 |
> -----------------------------------------------------------------------------
>
> \-------------------------------------- ------------------------------------/
> V
> "A"
>
> The DBBT is used to track if "A" is bad or not.
> Assume we know that "A" is a good block, ROM then need to read out the uboot.
> When the ROM needs to read out the 6 pages one by one. And each time the ROM read
> the page, it should do the swapping for this page.
>
> In this case, the ROM will do the swapping six times.
>
> Please read the sector again, you will see the "every page" in it:
> --------------------------------------------------------------------
> "In order to preserve the BI (bad block information), flash updater
> or gang programmer applications need to swap Bad Block Information (BI) data to byte 0 of
> metadata area for every page before programming NAND Flash. ROM when loading firmware,
> copies back
> --------------------------------------------------------------------
>
I can assure you that the >100.000 i.MX28 based modules, that we sold
up to now boot from NAND just fine without any block mark swapping in
the U-Boot pages.
Lothar Waßmann
--
___________________________________________________________
Ka-Ro electronics GmbH | Pascalstraße 22 | D - 52076 Aachen
Phone: +49 2408 1402-0 | Fax: +49 2408 1402-10
Geschäftsführer: Matthias Kaussen
Handelsregistereintrag: Amtsgericht Aachen, HRB 4996
www.karo-electronics.de | info@...o-electronics.de
___________________________________________________________
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists