[U-Boot] [PATCH 01/19] mtd: nand: pxa3xx_nand: Increase initial buffer size

Stefan Roese sr at denx.de
Wed Sep 19 12:28:54 UTC 2018


On 29.08.2018 10:56, kostap at marvell.com wrote:
> From: Ofer Heifetz <oferh at marvell.com>
> 
> 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.
> 
> This commit is taken from Linux:
> 'commit c16340973fcb64614' ("nand: pxa3xx: Increase initial buffer size")
> 
> Signed-off-by: Chris Packham <judge.packham at gmail.com>
> Signed-off-by: Ofer Heifetz <oferh at marvell.com>
> Reviewed-by: Igal Liberman <igall at marvell.com>
> Cc: Stefan Roese <sr at denx.de>
> Cc: Simon Glass <sjg at chromium.org>
> ---
>   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 9d02fd8..ead5624 100644
> --- a/drivers/mtd/nand/pxa3xx_nand.c
> +++ b/drivers/mtd/nand/pxa3xx_nand.c
> @@ -28,10 +28,13 @@ DECLARE_GLOBAL_DATA_PTR;
>   
>   /*
>    * 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 */
> @@ -842,14 +845,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:
> 

Applied to u-boot-marvell/master

Thanks,
Stefan


More information about the U-Boot mailing list