[PATCH RFC] spi: cadence_qspi: Address the comparison failure for 0-8

Bhumkar, Tejas Arvind tejas.arvind.bhumkar at amd.com
Sun Jan 28 06:19:26 CET 2024


[AMD Official Use Only - General]

Please ignore this patch, as I've submitted another one to address this problem.

Thank You,
Tejas
> -----Original Message-----
> From: U-Boot <u-boot-bounces at lists.denx.de> On Behalf Of Tejas Bhumkar
> Sent: Monday, January 22, 2024 4:44 PM
> To: u-boot at lists.denx.de
> Cc: jagan at amarulasolutions.com; sjg at chromium.org; d-gole at ti.com; a-
> nandan at ti.com; Simek, Michal <michal.simek at amd.com>; Abbarapu, Venkatesh
> <venkatesh.abbarapu at amd.com>; git at xilinx.com
> Subject: [PATCH RFC] spi: cadence_qspi: Address the comparison failure for 0-8
>
> Caution: This message originated from an External Source. Use proper caution
> when opening attachments, clicking links, or responding.
>
>
> In the current implementation, the test for data ranging from 0 to 8 bytes is
> encountering failures. This has been confirmed through testing with both ISSI
> (IS25WX256) and Micron (MT35XU02G) Flash in SDR mode exclusively.
>
> Upon analysis, it was observed that utilizing the "SPI_NOR_OCTAL_READ"
> flag and attempting to read less than 8 bytes in STIG mode results in a failure to
> read, leading to a failure in the compare test.
>
> Upon reviewing the Micron OSPI flash data sheet, it was noted that for protocol
> 1-1-8, 8 dummy clock cycles are required. While the current implementation
> achieves this, it still results in a compare test failure.
>
> Therefore, the code has been revised to include DMA read for operations
> involving less than 8 bytes as well.
>
> Fixes: 53f4ef0 ("spi: cadence_qspi: use STIG mode for small reads")
>
> Signed-off-by: Tejas Bhumkar <tejas.arvind.bhumkar at amd.com>
> ---
>  drivers/spi/cadence_qspi.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/spi/cadence_qspi.c b/drivers/spi/cadence_qspi.c index
> dfc74c882d..a6477dbfcf 100644
> --- a/drivers/spi/cadence_qspi.c
> +++ b/drivers/spi/cadence_qspi.c
> @@ -313,7 +313,7 @@ static int cadence_spi_mem_exec_op(struct spi_slave
> *spi,
>                  * which is unsupported on some flash devices during register
>                  * reads, prefer STIG mode for such small reads.
>                  */
> -               if (op->data.nbytes <= CQSPI_STIG_DATA_LEN_MAX)
> +               if (!op->addr.nbytes)
>                         mode = CQSPI_STIG_READ;
>                 else
>                         mode = CQSPI_READ;
> --
> 2.27.0



More information about the U-Boot mailing list