Hi Patrice

On 1/20/21 2:42 PM, Patrice Chotard wrote:
In case of reading large area and memory-map mode is misconfigured
(memory-map size declared lower than the real size of the memory chip)
watchdog can be triggered.

Add WATCHDOG_RESET() in _stm32_qspi_read_fifo to fix it.

Issue reproduced with stm32mp157c-ev1 board and memory map size set to
1, with following command:
sf read 0xC0000000 0 0x4000000

Signed-off-by: Patrice Chotard <patrice.chot...@foss.st.com>
---

  drivers/spi/stm32_qspi.c | 2 ++
  1 file changed, 2 insertions(+)

diff --git a/drivers/spi/stm32_qspi.c b/drivers/spi/stm32_qspi.c
index 958c394a1a..c3da17f991 100644
--- a/drivers/spi/stm32_qspi.c
+++ b/drivers/spi/stm32_qspi.c
@@ -11,6 +11,7 @@
  #include <clk.h>
  #include <reset.h>
  #include <spi-mem.h>
+#include <watchdog.h>
  #include <linux/iopoll.h>
  #include <linux/ioport.h>
  #include <linux/sizes.h>
@@ -163,6 +164,7 @@ static int _stm32_qspi_wait_cmd(struct stm32_qspi_priv 
*priv,
  static void _stm32_qspi_read_fifo(u8 *val, void __iomem *addr)
  {
        *val = readb(addr);
+       WATCHDOG_RESET();
  }
static void _stm32_qspi_write_fifo(u8 *val, void __iomem *addr)


Reviewed-by: Patrick Delaunay <patrick.delau...@foss.st.com>

Thanks

Patrick

Reply via email to