nand: pxa3xx: Increase initial buffer size

Linux-MTD Mailing List linux-mtd at lists.infradead.org
Tue Sep 1 14:59:03 PDT 2015


Gitweb:     http://git.infradead.org/?p=mtd-2.6.git;a=commit;h=c16340973fcb6461474a9f811f7f3ff2f946b24c
Commit:     c16340973fcb6461474a9f811f7f3ff2f946b24c
Parent:     ddb2c42b677eb2883e532f0928e445fc205d0019
Author:     Ezequiel Garcia <ezequiel at vanguardiasur.com.ar>
AuthorDate: Mon Aug 3 11:31:26 2015 -0300
Committer:  Brian Norris <computersforpeace at gmail.com>
CommitDate: Fri Aug 14 11:22:54 2015 -0700

    nand: pxa3xx: Increase initial buffer size
    
    The initial buffer is used for the initial commands used to detect
    a flash device (STATUS, READID and PARAM).
    
    ONFI param page is 256 bytes, and there are three redundant copies
    to be read. JEDEC param page is 512 bytes, and there are also three
    redundant copies to be read. Hence this buffer should be at least
    512 x 3. This commits rounds the buffer size to 2048.
    
    Signed-off-by: Ezequiel Garcia <ezequiel at vanguardiasur.com.ar>
    Signed-off-by: Brian Norris <computersforpeace at gmail.com>
---
 drivers/mtd/nand/pxa3xx_nand.c | 15 +++++++++------
 1 file changed, 9 insertions(+), 6 deletions(-)

diff --git a/drivers/mtd/nand/pxa3xx_nand.c b/drivers/mtd/nand/pxa3xx_nand.c
index 1259cc5..9d973cd 100644
--- a/drivers/mtd/nand/pxa3xx_nand.c
+++ b/drivers/mtd/nand/pxa3xx_nand.c
@@ -45,10 +45,13 @@
 
 /*
  * Define a buffer size for the initial command that detects the flash device:
- * STATUS, READID and PARAM. The largest of these is the PARAM command,
- * needing 256 bytes.
+ * STATUS, READID and PARAM.
+ * ONFI param page is 256 bytes, and there are three redundant copies
+ * to be read. JEDEC param page is 512 bytes, and there are also three
+ * redundant copies to be read.
+ * Hence this buffer should be at least 512 x 3. Let's pick 2048.
  */
-#define INIT_BUFFER_SIZE	256
+#define INIT_BUFFER_SIZE	2048
 
 /* registers and bit definitions */
 #define NDCR		(0x00) /* Control register */
@@ -899,14 +902,14 @@ static int prepare_set_command(struct pxa3xx_nand_info *info, int command,
 		break;
 
 	case NAND_CMD_PARAM:
-		info->buf_count = 256;
+		info->buf_count = INIT_BUFFER_SIZE;
 		info->ndcb0 |= NDCB0_CMD_TYPE(0)
 				| NDCB0_ADDR_CYC(1)
 				| NDCB0_LEN_OVRD
 				| command;
 		info->ndcb1 = (column & 0xFF);
-		info->ndcb3 = 256;
-		info->data_size = 256;
+		info->ndcb3 = INIT_BUFFER_SIZE;
+		info->data_size = INIT_BUFFER_SIZE;
 		break;
 
 	case NAND_CMD_READID:



More information about the linux-mtd-cvs mailing list