Message ID | 20180926220739.620-10-lukma@denx.de (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | mtd: fsl: quadspi: Fixes for fsl-quadspi.c driver (vybrid HW) | expand |
Hi Lukasz, Le 27/09/2018 à 00:07, Lukasz Majewski a écrit : > The fsl-quadspi.c driver is not supporting SPINOR_OP_RDSFDP (0x5a) > read opcode - in the legacy driver we do read some garbage > data from AHB mapped area and then return on the first check If your controller reads garbage then spi_nor_parse_sfdp() fails and exists on the very first check: signature of the SFDP header. Hence everything should already go on as if the SPI_NOR_SKIP_SFDP flag is set. So this patch doesn't change anything for your controller but prevents other controller from using QSPI protocols like SPI 1-4-4. This patch introduces a regression for other chips. Best regards, Cyrille > (L2376 @ ./mtd/spi-nor/spi-nor.c) > > Signed-off-by: Lukasz Majewski <lukma@denx.de> > --- > drivers/mtd/spi-nor/spi-nor.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c > index 442102be174e..c79b8c33aeeb 100644 > --- a/drivers/mtd/spi-nor/spi-nor.c > +++ b/drivers/mtd/spi-nor/spi-nor.c > @@ -1103,7 +1103,7 @@ static const struct flash_info spi_nor_ids[] = { > { "n25q064", INFO(0x20ba17, 0, 64 * 1024, 128, SECT_4K | SPI_NOR_QUAD_READ) }, > { "n25q064a", INFO(0x20bb17, 0, 64 * 1024, 128, SECT_4K | SPI_NOR_QUAD_READ) }, > { "n25q128a11", INFO(0x20bb18, 0, 64 * 1024, 256, SECT_4K | SPI_NOR_QUAD_READ) }, > - { "n25q128a13", INFO(0x20ba18, 0, 64 * 1024, 256, SECT_4K | SPI_NOR_QUAD_READ | SPI_NOR_DUAL_READ) }, > + { "n25q128a13", INFO(0x20ba18, 0, 64 * 1024, 256, SECT_4K | SPI_NOR_QUAD_READ | SPI_NOR_DUAL_READ | SPI_NOR_SKIP_SFDP) }, > { "n25q256a", INFO(0x20ba19, 0, 64 * 1024, 512, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, > { "n25q256ax1", INFO(0x20bb19, 0, 64 * 1024, 512, SECT_4K | SPI_NOR_QUAD_READ) }, > { "n25q512a", INFO(0x20bb20, 0, 64 * 1024, 1024, SECT_4K | USE_FSR | SPI_NOR_QUAD_READ) }, >
Hi Cyrille, > Hi Lukasz, > > Le 27/09/2018 à 00:07, Lukasz Majewski a écrit : > > The fsl-quadspi.c driver is not supporting SPINOR_OP_RDSFDP (0x5a) > > read opcode - in the legacy driver we do read some garbage > > data from AHB mapped area and then return on the first check > > If your controller reads garbage then spi_nor_parse_sfdp() fails and > exists on the very first check: signature of the SFDP header. Hence > everything should already go on as if the SPI_NOR_SKIP_SFDP flag is > set. Yes, this is the observed behaviour. > > So this patch doesn't change anything for your controller but > prevents other controller from using QSPI protocols like SPI 1-4-4. > > This patch introduces a regression for other chips. As stated in the patch series cover letter - this is to explicitly show problems with qspi on vf610. Thanks for your review. > > Best regards, > > Cyrille > > > (L2376 @ ./mtd/spi-nor/spi-nor.c) > > > > Signed-off-by: Lukasz Majewski <lukma@denx.de> > > --- > > drivers/mtd/spi-nor/spi-nor.c | 2 +- > > 1 file changed, 1 insertion(+), 1 deletion(-) > > > > diff --git a/drivers/mtd/spi-nor/spi-nor.c > > b/drivers/mtd/spi-nor/spi-nor.c index 442102be174e..c79b8c33aeeb > > 100644 --- a/drivers/mtd/spi-nor/spi-nor.c > > +++ b/drivers/mtd/spi-nor/spi-nor.c > > @@ -1103,7 +1103,7 @@ static const struct flash_info spi_nor_ids[] > > = { { "n25q064", INFO(0x20ba17, 0, 64 * 1024, 128, SECT_4K | > > SPI_NOR_QUAD_READ) }, { "n25q064a", INFO(0x20bb17, 0, 64 * > > 1024, 128, SECT_4K | SPI_NOR_QUAD_READ) }, { "n25q128a11", > > INFO(0x20bb18, 0, 64 * 1024, 256, SECT_4K | SPI_NOR_QUAD_READ) }, > > - { "n25q128a13", INFO(0x20ba18, 0, 64 * 1024, 256, > > SECT_4K | SPI_NOR_QUAD_READ | SPI_NOR_DUAL_READ) }, > > + { "n25q128a13", INFO(0x20ba18, 0, 64 * 1024, 256, > > SECT_4K | SPI_NOR_QUAD_READ | SPI_NOR_DUAL_READ | > > SPI_NOR_SKIP_SFDP) }, { "n25q256a", INFO(0x20ba19, 0, 64 * > > 1024, 512, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, > > { "n25q256ax1", INFO(0x20bb19, 0, 64 * 1024, 512, SECT_4K | > > SPI_NOR_QUAD_READ) }, { "n25q512a", INFO(0x20bb20, 0, 64 * 1024, > > 1024, SECT_4K | USE_FSR | SPI_NOR_QUAD_READ) }, Best regards, Lukasz Majewski -- DENX Software Engineering GmbH, Managing Director: Wolfgang Denk HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany Phone: (+49)-8142-66989-10 Fax: (+49)-8142-66989-80 Email: wd@denx.de
diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c index 442102be174e..c79b8c33aeeb 100644 --- a/drivers/mtd/spi-nor/spi-nor.c +++ b/drivers/mtd/spi-nor/spi-nor.c @@ -1103,7 +1103,7 @@ static const struct flash_info spi_nor_ids[] = { { "n25q064", INFO(0x20ba17, 0, 64 * 1024, 128, SECT_4K | SPI_NOR_QUAD_READ) }, { "n25q064a", INFO(0x20bb17, 0, 64 * 1024, 128, SECT_4K | SPI_NOR_QUAD_READ) }, { "n25q128a11", INFO(0x20bb18, 0, 64 * 1024, 256, SECT_4K | SPI_NOR_QUAD_READ) }, - { "n25q128a13", INFO(0x20ba18, 0, 64 * 1024, 256, SECT_4K | SPI_NOR_QUAD_READ | SPI_NOR_DUAL_READ) }, + { "n25q128a13", INFO(0x20ba18, 0, 64 * 1024, 256, SECT_4K | SPI_NOR_QUAD_READ | SPI_NOR_DUAL_READ | SPI_NOR_SKIP_SFDP) }, { "n25q256a", INFO(0x20ba19, 0, 64 * 1024, 512, SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) }, { "n25q256ax1", INFO(0x20bb19, 0, 64 * 1024, 512, SECT_4K | SPI_NOR_QUAD_READ) }, { "n25q512a", INFO(0x20bb20, 0, 64 * 1024, 1024, SECT_4K | USE_FSR | SPI_NOR_QUAD_READ) },
The fsl-quadspi.c driver is not supporting SPINOR_OP_RDSFDP (0x5a) read opcode - in the legacy driver we do read some garbage data from AHB mapped area and then return on the first check (L2376 @ ./mtd/spi-nor/spi-nor.c) Signed-off-by: Lukasz Majewski <lukma@denx.de> --- drivers/mtd/spi-nor/spi-nor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)