On 20 October 2016 at 01:31, Chris Packham <judge.pack...@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 <ezequ...@vanguardiasur.com.ar> > Signed-off-by: Chris Packham <judge.pack...@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 _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de http://lists.denx.de/mailman/listinfo/u-boot