diff options
author | Patrice Chotard <patrice.chotard@foss.st.com> | 2021-01-20 14:42:02 +0100 |
---|---|---|
committer | Patrice Chotard <patrice.chotard@foss.st.com> | 2021-03-11 16:59:16 +0100 |
commit | e48ec51b43ed0c9a4eb767addb829cef418041c7 (patch) | |
tree | 4375ec914cf5b78c2281503d7f34dad540b06cf1 /drivers/spi | |
parent | 5988575a9006e4171a5a59721a537a51f12fabe6 (diff) | |
download | u-boot-e48ec51b43ed0c9a4eb767addb829cef418041c7.zip u-boot-e48ec51b43ed0c9a4eb767addb829cef418041c7.tar.gz u-boot-e48ec51b43ed0c9a4eb767addb829cef418041c7.tar.bz2 |
spi: stm32_qspi: Add WATCHDOG_RESET in _stm32_qspi_read_fifo()
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.chotard@foss.st.com>
Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>
Diffstat (limited to 'drivers/spi')
-rw-r--r-- | drivers/spi/stm32_qspi.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/spi/stm32_qspi.c b/drivers/spi/stm32_qspi.c index 75e5e84..4acc904 100644 --- a/drivers/spi/stm32_qspi.c +++ b/drivers/spi/stm32_qspi.c @@ -16,6 +16,7 @@ #include <reset.h> #include <spi.h> #include <spi-mem.h> +#include <watchdog.h> #include <dm/device_compat.h> #include <linux/bitops.h> #include <linux/delay.h> @@ -171,6 +172,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) |