linux-mtd.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* [PATCH 0/3] mtd: rawnand: marvell: add new layout
@ 2018-07-19 15:23 Miquel Raynal
  2018-07-19 15:23 ` [PATCH 1/3] mtd: rawnand: marvell: rework BCH engine failure path Miquel Raynal
                   ` (4 more replies)
  0 siblings, 5 replies; 6+ messages in thread
From: Miquel Raynal @ 2018-07-19 15:23 UTC (permalink / raw)
  To: Boris Brezillon, Richard Weinberger, David Woodhouse,
	Brian Norris, Marek Vasut
  Cc: linux-mtd, Thomas Petazzoni, Antoine Tenart, Gregory Clement,
	Maxime Chevallier, Nadav Haklai, Ofer Heifetz, Miquel Raynal

Hello,

This series is an attempt at supporting a new layout for Marvell NAND
controller: NAND chips using 2kiB pages, requesting at least 8
correctable bits per 512-byte chunks.

While this could have been trivial by the simple addition of this
layout in the marvell_nfc_layout table as described in Marvell (not
public) AN-379, actual testing shown a strange error. With this
layout, one bitflip appears on the second chunk of every erased page
when we read with BCH ECC engine activated.

It has been experimentally checked that using 64 free OOB bytes
instead of 32 in the second chunk cancels this bitflip. However, this
is not a viable solution as the BootROM would not find the ECC bytes
at the right place and would declare bad any block written with this
layout.

The solution found was to re-read in raw mode the whole page instead
of just the ECC bytes when an ECC error occurs to check if the entire
page is empty or not.

Also, with this layout, Bad Block Markers (BBM) are expected to be
within the data area. Prevent any use of the BBM in this case.

The first patch reworks the ECC failure path of the BCH read function,
the second patch adds support for the new layout with the above
problems addressed and the last patch is just an optimization of the
same ECC failure path for the Hamming read function.

Thanks,
Miquèl


Miquel Raynal (3):
  mtd: rawnand: marvell: rework BCH engine failure path
  mtd: rawnand: marvell: support 8b/512B strength for 2kiB pages layout
  mtd: rawnand: marvell: speed-up hamming failure path

 drivers/mtd/nand/raw/marvell_nand.c | 123 +++++++++++++++++++++++-------------
 1 file changed, 79 insertions(+), 44 deletions(-)

-- 
2.14.1

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2018-09-06 20:11 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-07-19 15:23 [PATCH 0/3] mtd: rawnand: marvell: add new layout Miquel Raynal
2018-07-19 15:23 ` [PATCH 1/3] mtd: rawnand: marvell: rework BCH engine failure path Miquel Raynal
2018-07-19 15:23 ` [PATCH 2/3] mtd: rawnand: marvell: support 8b/512B strength for 2kiB pages layout Miquel Raynal
2018-07-19 15:23 ` [PATCH 3/3] mtd: rawnand: marvell: speed-up hamming failure path Miquel Raynal
2018-09-06 12:37 ` [PATCH 0/3] mtd: rawnand: marvell: add new layout Boris Brezillon
2018-09-06 20:10 ` Miquel Raynal

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).