2016-05-21 16:07:28 +00:00
|
|
|
From: =?UTF-8?q?Ezequiel=20Garc=C3=ADa?= <ezequiel@vanguardiasur.com.ar>
|
|
|
|
Date: Wed, 4 Nov 2015 13:13:41 -0300
|
|
|
|
Subject: [PATCH] mtd: pxa3xx_nand: Increase the initial chunk size
|
|
|
|
|
|
|
|
The chunk size represents the size of the data chunks, which
|
|
|
|
is used by the controllers that allow to split transfered data.
|
|
|
|
|
|
|
|
However, the initial chunk size is used in a non-splitted way,
|
|
|
|
during device identification. Therefore, it must be large enough
|
|
|
|
for all the NAND commands issued during device identification.
|
|
|
|
This includes NAND_CMD_PARAM which was recently changed to
|
|
|
|
transfer up to 2048 bytes (for the redundant parameter pages).
|
|
|
|
|
|
|
|
Thus, the initial chunk size should be 2048 as well.
|
|
|
|
|
|
|
|
On Armada 370/XP platforms (NFCv2) booted without the keep-config
|
|
|
|
devicetree property, this commit fixes a timeout on the NAND_CMD_PARAM
|
|
|
|
command:
|
|
|
|
|
|
|
|
[..]
|
|
|
|
pxa3xx-nand f10d0000.nand: This platform can't do DMA on this device
|
|
|
|
pxa3xx-nand f10d0000.nand: Wait time out!!!
|
|
|
|
nand: device found, Manufacturer ID: 0x2c, Chip ID: 0x38
|
|
|
|
nand: Micron MT29F8G08ABABAWP
|
|
|
|
nand: 1024 MiB, SLC, erase size: 512 KiB, page size: 4096, OOB size: 224
|
|
|
|
|
|
|
|
Signed-off-by: Ezequiel Garcia <ezequiel@vanguardiasur.com.ar>
|
|
|
|
Acked-by: Robert Jarzmik <robert.jarzmik@free.fr>
|
|
|
|
Signed-off-by: Brian Norris <computersforpeace@gmail.com>
|
|
|
|
---
|
|
|
|
|
|
|
|
--- a/drivers/mtd/nand/pxa3xx_nand.c
|
|
|
|
+++ b/drivers/mtd/nand/pxa3xx_nand.c
|
2016-05-21 20:16:56 +00:00
|
|
|
@@ -1637,7 +1637,7 @@ static int pxa3xx_nand_scan(struct mtd_i
|
2016-05-21 16:07:28 +00:00
|
|
|
goto KEEP_CONFIG;
|
|
|
|
|
|
|
|
/* Set a default chunk size */
|
|
|
|
- info->chunk_size = 512;
|
|
|
|
+ info->chunk_size = PAGE_CHUNK_SIZE;
|
|
|
|
|
|
|
|
ret = pxa3xx_nand_config_flash(info);
|
|
|
|
if (ret)
|