[U-Boot] [RFC PATCH v1 1/6] mtd: nand: pxa3xx_nand: Increase initial buffer size

Ezequiel Garcia ezequiel at vanguardiasur.com.ar
Thu Oct 20 14:58:28 CEST 2016


On 20 October 2016 at 01:31, Chris Packham <judge.packham at gmail.com> wrote:
> 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.
>

Hey Chris,

So you are basically picking the commit and commit log from Linux:

http://lists.infradead.org/pipermail/linux-mtd/2015-August/060721.html

Shouldn't you mention that somewhere?

> Cc: Ezequiel Garcia <ezequiel at vanguardiasur.com.ar>
> Signed-off-by: Chris Packham <judge.packham at gmail.com>
> ---
>
>  drivers/mtd/nand/pxa3xx_nand.c | 16 ++++++++++------
>  1 file changed, 10 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/mtd/nand/pxa3xx_nand.c b/drivers/mtd/nand/pxa3xx_nand.c
> index dfe8966b56b6..ea0a6f3778bd 100644
> --- a/drivers/mtd/nand/pxa3xx_nand.c
> +++ b/drivers/mtd/nand/pxa3xx_nand.c
> @@ -26,10 +26,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 */
> @@ -838,14 +841,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:
> @@ -1468,6 +1471,7 @@ KEEP_CONFIG:
>                 host->row_addr_cycles = 3;
>         else
>                 host->row_addr_cycles = 2;
> +

Spurious change. I suggest to drop it.

>         return nand_scan_tail(mtd);
>  }
>
> --
> 2.10.0.479.g7c56b16
>



-- 
Ezequiel García, VanguardiaSur
www.vanguardiasur.com.ar


More information about the U-Boot mailing list