mail archive of the barebox mailing list
 help / color / mirror / Atom feed
* [PATCH 0/3 v2] mtd: atmel_nand: add support for 8k page nand
@ 2014-07-17 12:12 Raphael Poggi
  2014-07-17 12:12 ` [PATCH 1/3 v2] mtd: atmel_nand: increase chip_delay Raphael Poggi
                   ` (3 more replies)
  0 siblings, 4 replies; 5+ messages in thread
From: Raphael Poggi @ 2014-07-17 12:12 UTC (permalink / raw)
  To: barebox

This patch series add support for 8k page NAND. This is done by
increasing chip_delay (20us to 40us) and enable PMECC for 8k nand.
A patch also fix bit error correction when using 1024 sector size with pmecc.

Raphaël Poggi (3):
        [PATCH 1/3] mtd: atmel_nand: increase chip_delay
        [PATCH 2/3] mtd: atmel_nand: fix bit error correction
        [PATCH 3/3] mtd: atmel_nand: enable PMECC for 8k page nand

 drivers/mtd/nand/atmel_nand.c |    6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

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

* [PATCH 1/3 v2] mtd: atmel_nand: increase chip_delay
  2014-07-17 12:12 [PATCH 0/3 v2] mtd: atmel_nand: add support for 8k page nand Raphael Poggi
@ 2014-07-17 12:12 ` Raphael Poggi
  2014-07-17 12:12 ` [PATCH 2/3 v2] mtd: atmel_nand: fix bit error correction Raphael Poggi
                   ` (2 subsequent siblings)
  3 siblings, 0 replies; 5+ messages in thread
From: Raphael Poggi @ 2014-07-17 12:12 UTC (permalink / raw)
  To: barebox; +Cc: Raphael Poggi

Some nand like Micron MT29F32G08ABAAAWP need more than 20us.

Signed-off-by: Raphaël Poggi <poggi.raph@gmail.com>
Acked-by: Bo Shen <voice.shen@atmel.com>
---
 drivers/mtd/nand/atmel_nand.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/mtd/nand/atmel_nand.c b/drivers/mtd/nand/atmel_nand.c
index 3161e89..a02f38f 100644
--- a/drivers/mtd/nand/atmel_nand.c
+++ b/drivers/mtd/nand/atmel_nand.c
@@ -1162,7 +1162,7 @@ static int __init atmel_nand_probe(struct device_d *dev)
 		nand_chip->ecc.mode = NAND_ECC_HW;
 	}
 
-	nand_chip->chip_delay = 20;		/* 20us command delay time */
+	nand_chip->chip_delay = 40;		/* 40us command delay time */
 
 	if (IS_ENABLED(CONFIG_NAND_ECC_BCH) &&
 			pdata->ecc_mode == NAND_ECC_SOFT_BCH) {
-- 
1.7.9.5


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

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

* [PATCH 2/3 v2] mtd: atmel_nand: fix bit error correction
  2014-07-17 12:12 [PATCH 0/3 v2] mtd: atmel_nand: add support for 8k page nand Raphael Poggi
  2014-07-17 12:12 ` [PATCH 1/3 v2] mtd: atmel_nand: increase chip_delay Raphael Poggi
@ 2014-07-17 12:12 ` Raphael Poggi
  2014-07-17 12:12 ` [PATCH 3/3 v2] mtd: atmel_nand: enable PMECC for 8k page nand Raphael Poggi
  2014-07-18  5:35 ` [PATCH 0/3 v2] mtd: atmel_nand: add support " Sascha Hauer
  3 siblings, 0 replies; 5+ messages in thread
From: Raphael Poggi @ 2014-07-17 12:12 UTC (permalink / raw)
  To: barebox; +Cc: Raphael Poggi

When pmecc uses a 1024 sector size to correct bit error, the gf dimension
must be 14.

So this commit chooses the right degree for different sector size (512 or 1024).

Signed-off-by: Raphaël Poggi <poggi.raph@gmail.com>
---
 drivers/mtd/nand/atmel_nand.c |    3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/mtd/nand/atmel_nand.c b/drivers/mtd/nand/atmel_nand.c
index a02f38f..1ce7d4d 100644
--- a/drivers/mtd/nand/atmel_nand.c
+++ b/drivers/mtd/nand/atmel_nand.c
@@ -796,7 +796,8 @@ static int __init atmel_pmecc_nand_init_params(struct device_d *dev,
 	switch (mtd->writesize) {
 	case 2048:
 	case 4096:
-		host->pmecc_degree = PMECC_GF_DIMENSION_13;
+		host->pmecc_degree = (sector_size == 512) ?
+					PMECC_GF_DIMENSION_13 : PMECC_GF_DIMENSION_14;
 		host->pmecc_cw_len = (1 << host->pmecc_degree) - 1;
 		host->pmecc_sector_number = mtd->writesize / sector_size;
 		host->pmecc_bytes_per_sector = pmecc_get_ecc_bytes(
-- 
1.7.9.5


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

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

* [PATCH 3/3 v2] mtd: atmel_nand: enable PMECC for 8k page nand
  2014-07-17 12:12 [PATCH 0/3 v2] mtd: atmel_nand: add support for 8k page nand Raphael Poggi
  2014-07-17 12:12 ` [PATCH 1/3 v2] mtd: atmel_nand: increase chip_delay Raphael Poggi
  2014-07-17 12:12 ` [PATCH 2/3 v2] mtd: atmel_nand: fix bit error correction Raphael Poggi
@ 2014-07-17 12:12 ` Raphael Poggi
  2014-07-18  5:35 ` [PATCH 0/3 v2] mtd: atmel_nand: add support " Sascha Hauer
  3 siblings, 0 replies; 5+ messages in thread
From: Raphael Poggi @ 2014-07-17 12:12 UTC (permalink / raw)
  To: barebox; +Cc: Raphael Poggi

Enable the PMECC to support 8k page.

Signed-off-by: Raphaël Poggi <poggi.raph@gmail.com>
Acked-by: Bo Shen <voice.shen@atmel.com>
---
 drivers/mtd/nand/atmel_nand.c |    1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/mtd/nand/atmel_nand.c b/drivers/mtd/nand/atmel_nand.c
index 1ce7d4d..337e225 100644
--- a/drivers/mtd/nand/atmel_nand.c
+++ b/drivers/mtd/nand/atmel_nand.c
@@ -796,6 +796,7 @@ static int __init atmel_pmecc_nand_init_params(struct device_d *dev,
 	switch (mtd->writesize) {
 	case 2048:
 	case 4096:
+	case 8192:
 		host->pmecc_degree = (sector_size == 512) ?
 					PMECC_GF_DIMENSION_13 : PMECC_GF_DIMENSION_14;
 		host->pmecc_cw_len = (1 << host->pmecc_degree) - 1;
-- 
1.7.9.5


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

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

* Re: [PATCH 0/3 v2] mtd: atmel_nand: add support for 8k page nand
  2014-07-17 12:12 [PATCH 0/3 v2] mtd: atmel_nand: add support for 8k page nand Raphael Poggi
                   ` (2 preceding siblings ...)
  2014-07-17 12:12 ` [PATCH 3/3 v2] mtd: atmel_nand: enable PMECC for 8k page nand Raphael Poggi
@ 2014-07-18  5:35 ` Sascha Hauer
  3 siblings, 0 replies; 5+ messages in thread
From: Sascha Hauer @ 2014-07-18  5:35 UTC (permalink / raw)
  To: Raphael Poggi; +Cc: barebox

On Thu, Jul 17, 2014 at 02:12:18PM +0200, Raphael Poggi wrote:
> This patch series add support for 8k page NAND. This is done by
> increasing chip_delay (20us to 40us) and enable PMECC for 8k nand.
> A patch also fix bit error correction when using 1024 sector size with pmecc.
> 
> Raphaël Poggi (3):
>         [PATCH 1/3] mtd: atmel_nand: increase chip_delay
>         [PATCH 2/3] mtd: atmel_nand: fix bit error correction
>         [PATCH 3/3] mtd: atmel_nand: enable PMECC for 8k page nand

Applied, thanks

Sascha


-- 
Pengutronix e.K.                           |                             |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

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

end of thread, other threads:[~2014-07-18  5:36 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-07-17 12:12 [PATCH 0/3 v2] mtd: atmel_nand: add support for 8k page nand Raphael Poggi
2014-07-17 12:12 ` [PATCH 1/3 v2] mtd: atmel_nand: increase chip_delay Raphael Poggi
2014-07-17 12:12 ` [PATCH 2/3 v2] mtd: atmel_nand: fix bit error correction Raphael Poggi
2014-07-17 12:12 ` [PATCH 3/3 v2] mtd: atmel_nand: enable PMECC for 8k page nand Raphael Poggi
2014-07-18  5:35 ` [PATCH 0/3 v2] mtd: atmel_nand: add support " Sascha Hauer

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox