[PATCH] spi: cadence_qspi: Disable the DAC mode in indirect read
Begari, Padmarao
Padmarao.Begari at amd.com
Wed Feb 18 11:03:45 CET 2026
[Public]
> From: Venkatesh Yadav Abbarapu <venkatesh.abbarapu at amd.com>
> Sent: Wednesday, April 30, 2025 10:39 AM
> To: u-boot at lists.denx.de; tudor.ambarus at linaro.org; j-humphreys at ti.com;
> marex at denx.de
> Cc: Simek, Michal <michal.simek at amd.com>; jagan at amarulasolutions.com;
> vigneshr at ti.com; u-kumar1 at ti.com; trini at konsulko.com; seanga2 at gmail.com;
> caleb.connolly at linaro.org; sjg at chromium.org; william.zhang at broadcom.com;
> stefan_b at posteo.net; quentin.schulz at cherry.de; Takahiro.Kuwano at infineon.com;
> p-mantena at ti.com; git (AMD-Xilinx) <git at amd.com>
> Subject: [PATCH] spi: cadence_qspi: Disable the DAC mode in indirect read
>
> Hang has been observed on QEMU, as it starts with indac read and fills sram, but
> after dma is triggered, it tries dac read instead (based on priority) which gets blocked.
> Disable the DAC mode in indirect DMA read and enable back for writes as DAC
> mode is used.
>
> Signed-off-by: Venkatesh Yadav Abbarapu <venkatesh.abbarapu at amd.com>
Tested-by: Padmarao Begari <padmarao.begari at amd.com>
Regards
Padmarao
> ---
> drivers/spi/cadence_ospi_versal.c | 7 +++++++
> 1 file changed, 7 insertions(+)
>
> diff --git a/drivers/spi/cadence_ospi_versal.c b/drivers/spi/cadence_ospi_versal.c
> index fbeb0c6a85c..a78a282c543 100644
> --- a/drivers/spi/cadence_ospi_versal.c
> +++ b/drivers/spi/cadence_ospi_versal.c
> @@ -36,6 +36,10 @@ int cadence_qspi_apb_dma_read(struct cadence_spi_priv
> *priv,
> bytes_to_dma = n_rx - rx_rem;
>
> if (bytes_to_dma) {
> + if (priv->use_dac_mode)
> + clrbits_le32(priv->regbase + CQSPI_REG_CONFIG,
> + CQSPI_REG_CONFIG_DIRECT);
> +
> cadence_qspi_apb_enable_linear_mode(false);
> reg = readl(priv->regbase + CQSPI_REG_CONFIG);
> reg |= CQSPI_REG_CONFIG_ENBL_DMA;
> @@ -116,6 +120,9 @@ int cadence_qspi_apb_dma_read(struct cadence_spi_priv
> *priv,
> memcpy(rxbuf, rxbuf + 1, n_rx - 1);
> }
>
> + if (priv->use_dac_mode)
> + cadence_qspi_apb_dac_mode_enable(priv->regbase);
> +
> return 0;
> }
>
> --
> 2.34.1
More information about the U-Boot
mailing list