zephyr/drivers/flash
Thomas Altenbach 6aeb12d558 drivers: flash: stm32_qspi: Fix flash not reset when in QPI mode
The reset commands were sent only in SPI mode, causing the device not to
be properly reset when in QPI mode. On the STM32H747I-DISCO boards, this
was causing the driver initialization to fail due to a bad SFDP magic
after flashing the external memory using STM32CubeProgrammer since the
external loader is configuring the flash memory in QPI mode.

The commands are sent in QPI mode first, then in SPI mode:
- If the flash memory was in QPI mode, the two first reset commands are
  processed and after reset, the flash memory is in SPI mode and
  correctly handles the SPI mode reset commands.
- If the flash memory was in SPI mode, for each QPI command the chip
  select signal will be released before the flash memory had the
  opportunity to receive a whole command (1 byte), so the partially
  received commands will be ignored and won't cause any harm. Then, the
  chip is reset by the commands sent in SPI mode.

Signed-off-by: Thomas Altenbach <altenbach.thomas@gmail.com>
2025-07-11 09:41:38 -05:00
..
CMakeLists.txt drivers: mspi: add mspi is25xx0xx device driver 2025-06-18 07:36:26 +02:00
flash_ambiq.c drivers: flash: Add support for Apollo510 flash controller 2025-05-14 09:11:17 +02:00
flash_andes_qspi.c drivers: flash: Wrap driver instances in device API macro 2025-02-12 16:06:25 +01:00
flash_andes_qspi.h
flash_cadence_nand_ll.c
flash_cadence_nand_ll.h
flash_cadence_nand.c drivers: flash: Place API into iterable section 2024-12-02 22:08:48 +00:00
flash_cadence_qspi_nor_ll.c style: drivers: comply with MISRA C:2012 Rule 15.6 2024-09-11 07:40:35 -04:00
flash_cadence_qspi_nor_ll.h
flash_cadence_qspi_nor.c drivers: flash: Place API into iterable section 2024-12-02 22:08:48 +00:00
flash_esp32.c driver: flash: esp32: fix unaligned read 2025-02-24 20:19:47 +00:00
flash_gd32_v1.c
flash_gd32_v2.c
flash_gd32_v3.c
flash_gd32.c drivers: flash: Place API into iterable section 2024-12-02 22:08:48 +00:00
flash_gd32.h
flash_gecko.c drivers: flash: Place API into iterable section 2024-12-02 22:08:48 +00:00
flash_handlers.c drivers/flash: Correct flash_erase userspace handler 2024-12-19 19:55:53 +01:00
flash_ifx_cat1_qspi.c drivers: flash: Place API into iterable section 2024-12-02 22:08:48 +00:00
flash_ifx_cat1.c drivers: flash: Place API into iterable section 2024-12-02 22:08:48 +00:00
flash_ite_it8xxx2.c drivers/flash: Enable flash controller for it51xxx series 2025-04-08 10:48:26 +02:00
flash_max32.c drivers: flash: Place API into iterable section 2024-12-02 22:08:48 +00:00
flash_mcux_flexspi_hyperflash.c drivers: nxp: flexspi: fix hyper flash hang issue 2025-06-26 22:14:38 -05:00
flash_mcux_flexspi_mx25um51345g.c drivers: flash: Align NXP flash drivers on parameter checking 2025-05-30 10:27:26 +02:00
flash_mcux_flexspi_nor.c drivers: flash: flexspi: Add octal mode support for MT35 family 2025-06-26 22:11:04 -05:00
flash_mspi_atxp032.c drivers: mspi: shroud controller specifics and fix potential issue 2025-05-07 10:33:38 +02:00
flash_mspi_emul_device.c drivers: mspi: standarlized transfer priority 2025-05-07 10:33:38 +02:00
flash_mspi_is25xX0xx.c drivers: mspi: add mspi is25xx0xx device driver 2025-06-18 07:36:26 +02:00
flash_mspi_nor_quirks.h drivers: flash: Optimize mspi_nor driver memory 2025-04-22 04:33:05 +02:00
flash_mspi_nor.c drivers: flash_mspi_nor: Omit quad_enable_set() when QER is set to NONE 2025-06-20 16:22:58 +02:00
flash_mspi_nor.h drivers: flash: Optimize mspi_nor driver memory 2025-04-22 04:33:05 +02:00
flash_npcx_fiu_nor.c drivers: flash: npcx: avoid obstruction by eSPI TAF when EC access flash 2025-03-14 05:46:23 +01:00
flash_npcx_fiu_qspi.c drivers: flash: npcx: add setting of low flash device 2025-01-14 17:57:50 +01:00
flash_npcx_fiu_qspi.h drivers: flash: npcx: Fix compile error 2025-01-15 23:05:23 +01:00
flash_nxp_s32_qspi_hyperflash.c drivers: flash: add NXP S32 QSPI HyperFlash driver 2025-01-21 19:26:45 +01:00
flash_nxp_s32_qspi_nor.c drivers: flash_nxp_s32: create common source code 2025-01-21 19:26:45 +01:00
flash_nxp_s32_qspi.c drivers: flash: Align NXP flash drivers on parameter checking 2025-05-30 10:27:26 +02:00
flash_nxp_s32_qspi.h drivers: flash_nxp_s32: create common source code 2025-01-21 19:26:45 +01:00
flash_page_layout.c
flash_priv.h
flash_realtek_rts5912.c driver: flash: Add Set/ Get write protect function 2025-05-28 08:14:27 +02:00
flash_renesas_ra_ospi_b.c drivers: flash: Initial support OSPI flash driver on RA8 boards 2025-06-06 08:41:46 +02:00
flash_renesas_ra_ospi_b.h drivers: flash: Initial support OSPI flash driver on RA8 boards 2025-06-06 08:41:46 +02:00
flash_rpi_pico.c drivers: flash: Place API into iterable section 2024-12-02 22:08:48 +00:00
flash_sam0.c drivers: flash: Place API into iterable section 2024-12-02 22:08:48 +00:00
flash_sam.c drivers: flash: sam: fix flash erase last page 2025-03-10 15:02:16 +01:00
flash_shell.c flash_shell: add shell device filtering 2025-01-29 04:17:47 +01:00
flash_si32.c drivers: flash: Place API into iterable section 2024-12-02 22:08:48 +00:00
flash_simulator_native.c everywhere: replace double words 2024-06-22 05:40:22 -04:00
flash_simulator_native.h
flash_simulator.c drivers: flash: Place API into iterable section 2024-12-02 22:08:48 +00:00
flash_smartbond.c drivers: flash: Place API into iterable section 2024-12-02 22:08:48 +00:00
flash_stm32_ex_op.c drivers: flash: stm32 flash driver common functions 2025-05-06 18:23:14 +02:00
flash_stm32_ospi.c drivers: flash: stm32 ospi driver size and address of the external NOR 2025-06-20 14:41:41 -05:00
flash_stm32_ospi.h
flash_stm32_qspi.c drivers: flash: stm32_qspi: Fix flash not reset when in QPI mode 2025-07-11 09:41:38 -05:00
flash_stm32_xspi.c drivers: flash: stm32 xspi flash driver set the DelayBlock if exists 2025-05-21 17:35:06 +02:00
flash_stm32_xspi.h drivers: flash: stm32 xspi driver supports clock domain config 2025-05-21 17:35:06 +02:00
flash_stm32.c drivers: flash: Fix timeout handling in STM32 flash driver 2025-06-19 14:02:32 +02:00
flash_stm32.h drivers: flash: add stm32u3 devices 2025-06-16 13:59:38 -04:00
flash_stm32f1x.c
flash_stm32f2x.c
flash_stm32f4x.c drivers: flash: stm32: update ex_op API 2024-12-24 13:54:04 +01:00
flash_stm32f7x.c drivers: flash: stm32: add STM32 option bytes extended ops 2024-12-17 11:35:13 +00:00
flash_stm32g0x.c
flash_stm32g4x.c drivers: flash: flash_stm32g4x: Fix STM32G4 unaligned read access 2025-05-16 16:12:10 +02:00
flash_stm32h7x.c drivers: flash: Fix timeout handling in STM32 flash driver 2025-06-19 14:02:32 +02:00
flash_stm32l4x.c flash: stm32l4/g4: force load option bytes after write 2025-01-08 01:29:53 +01:00
flash_stm32l5x.c drivers: stm32: use cache peripheral driver 2025-04-25 11:04:37 +02:00
flash_stm32u3x.c drivers: flash: add stm32u3 devices 2025-06-16 13:59:38 -04:00
flash_stm32wb0x.c drivers: flash: stm32 flash drivers supports the get_size API function 2025-05-06 18:23:36 +02:00
flash_stm32wba_fm.c drivers: flash: STM32WBA flash_stm32wba_fm.c: fix sector erase error 2025-06-24 15:37:41 -05:00
flash_stm32wbax.c drivers: stm32: use cache peripheral driver 2025-04-25 11:04:37 +02:00
flash_stm32wbx.c
flash_util.c drivers: flash_util: Issue error log message when flash_fill write fails 2025-06-25 14:06:07 +02:00
jesd216.c
jesd216.h drivers: flash: spi_nor: use defines for 4byte identifiers 2024-12-03 13:06:41 +01:00
Kconfig drivers: flash: Initial support OSPI flash driver on RA8 boards 2025-06-06 08:41:46 +02:00
Kconfig.ambiq
Kconfig.andes
Kconfig.at45
Kconfig.b91
Kconfig.cadence_nand
Kconfig.cadence_qspi_nor
Kconfig.cc13xx_cc26xx
Kconfig.cc23x0 drivers: flash: Add support for cc23x0 flash 2025-02-04 11:56:05 +01:00
Kconfig.esp32
Kconfig.gd32
Kconfig.gecko
Kconfig.ifx_cat1 drivers: Remove CONFIG_PINCTRL in defconfig files 2024-09-23 18:08:14 -04:00
Kconfig.it8xxx2 drivers/flash: Enable flash controller for it51xxx series 2025-04-08 10:48:26 +02:00
Kconfig.lpc
Kconfig.max32 drivers: flash: Add MAX32xxx flash driver 2024-10-22 20:39:41 +02:00
Kconfig.mcux dts: nxp: Rename nxp,iap-msf1 to nxp,msf1 2024-10-09 18:23:39 +01:00
Kconfig.mspi drivers: mspi: add mspi is25xx0xx device driver 2025-06-18 07:36:26 +02:00
Kconfig.nor drivers: flash: spi_nor: swap depends on and help in Kconfig.nor 2025-02-10 15:57:08 +00:00
Kconfig.nordic_qspi_nor
Kconfig.npcx_fiu drivers: flash: npcx: add setting of low flash device 2025-01-14 17:57:50 +01:00
Kconfig.nrf drivers: flash: nrf: Add possibility to add custom context 2025-03-31 14:33:56 +02:00
Kconfig.nrf_mram
Kconfig.nrf_rram Bluetooth: Rename BLE to Bluetooth (LE) where applicable 2025-02-12 12:24:18 +01:00
Kconfig.numaker
Kconfig.numaker_rmc
Kconfig.nxp_s32 drivers: flash: add NXP S32 QSPI HyperFlash driver 2025-01-21 19:26:45 +01:00
Kconfig.renesas_ra drivers: flash: flash_hp_ra: perform blank check before reading 2025-05-13 07:24:39 +01:00
Kconfig.renesas_ra_ospi drivers: flash: Initial support OSPI flash driver on RA8 boards 2025-06-06 08:41:46 +02:00
Kconfig.rpi_pico
Kconfig.rts5912 driver: flash: add flash driver for rts5912 2025-05-15 11:18:22 +02:00
Kconfig.rv32m1
Kconfig.sam
Kconfig.sam0
Kconfig.si32 drivers: flash: Add Si32 support 2024-08-26 18:51:36 +02:00
Kconfig.silabs drivers: flash: silabs: Add DMA read support 2025-03-07 20:02:26 +01:00
Kconfig.simulator
Kconfig.siwx91x drivers: flash: Introduce SiWx91x Flash driver 2025-02-11 22:07:11 +01:00
Kconfig.smartbond
Kconfig.stm32 drivers: flash: stm32: remove dependeny on XIP for memory map 2025-04-30 16:26:28 +02:00
Kconfig.stm32_ospi drivers : flash: replace dt_nodelabel_has_prop() 2025-02-04 15:01:13 +01:00
Kconfig.stm32_qspi drivers: flash: stm32: add "generic read/write" ex op to QSPI driver 2025-06-18 07:37:00 +02:00
Kconfig.stm32_xspi drivers : flash: replace dt_nodelabel_has_prop()in xspi 2025-02-04 15:01:13 +01:00
Kconfig.xmc4xxx
nrf_qspi_nor.c drivers: flash: nrf_qspi_nor: Handle properly multiple XIP users 2025-06-12 11:45:10 +02:00
soc_flash_b91.c drivers: flash: Place API into iterable section 2024-12-02 22:08:48 +00:00
soc_flash_cc13xx_cc26xx.c drivers: flash: Place API into iterable section 2024-12-02 22:08:48 +00:00
soc_flash_cc23x0.c drivers: flash: Remove VIMS calls for cc23x0 2025-05-21 19:57:28 +02:00
soc_flash_lpc.c drivers: flash: Place API into iterable section 2024-12-02 22:08:48 +00:00
soc_flash_mcux.c drivers/flash: Fix #if condition for is_area_readable for mcux 2025-06-17 16:06:21 +02:00
soc_flash_nrf_mram.c drivers: flash: Place API into iterable section 2024-12-02 22:08:48 +00:00
soc_flash_nrf_rram.c drivers: flash: Place API into iterable section 2024-12-02 22:08:48 +00:00
soc_flash_nrf.c drivers: flash: Place API into iterable section 2024-12-02 22:08:48 +00:00
soc_flash_nrf.h drivers: flash: nrf: Add possibility to add custom context 2025-03-31 14:33:56 +02:00
soc_flash_numaker_rmc.c drivers: flash: Place API into iterable section 2024-12-02 22:08:48 +00:00
soc_flash_numaker.c drivers: flash: Place API into iterable section 2024-12-02 22:08:48 +00:00
soc_flash_renesas_ra_hp_ex_op.c drivers: flash: use negative errno in Renesas RA HP 2025-06-09 08:56:19 +02:00
soc_flash_renesas_ra_hp.c drivers: flash: flash_hp_ra: perform blank check before reading 2025-05-13 07:24:39 +01:00
soc_flash_renesas_ra_hp.h drivers: flash: flash_hp_ra: perform blank check before reading 2025-05-13 07:24:39 +01:00
soc_flash_rv32m1.c drivers: flash: Place API into iterable section 2024-12-02 22:08:48 +00:00
soc_flash_silabs_series2.c drivers: flash: silabs: Add DMA read support 2025-03-07 20:02:26 +01:00
soc_flash_silabs_siwx91x.c drivers: flash: Introduce SiWx91x Flash driver 2025-02-11 22:07:11 +01:00
soc_flash_xmc4xxx.c drivers: flash: Place API into iterable section 2024-12-02 22:08:48 +00:00
spi_flash_at45.c drivers: flash: Place API into iterable section 2024-12-02 22:08:48 +00:00
spi_nor_s28hx512t.h drivers: flash: Initial support OSPI flash driver on RA8 boards 2025-06-06 08:41:46 +02:00
spi_nor.c drivers: flash: spi_nor: Add fast read support 2025-05-13 12:09:06 +02:00
spi_nor.h drivers: flash: flexspi: Add octal mode support for MT35 family 2025-06-26 22:11:04 -05:00