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 drivers: flash: stm32 ospi: implement non busy wait polling 2024-03-08 09:39:07 +01:00
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: stm32: configurable write block sizes 2024-03-11 18:57:43 +00:00
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 drivers/flash/Ambiq: Set erase capabilities, depending on SoC 2024-06-04 08:00:46 +02:00
Kconfig.andes drivers/flash: Add explict erase capability with proper values 2024-06-04 08:00:46 +02:00
Kconfig.at45 drivers/flash: Add explict erase capability with proper values 2024-06-04 08:00:46 +02:00
Kconfig.b91 drivers/flash: Add explict erase capability with proper values 2024-06-04 08:00:46 +02:00
Kconfig.cadence_nand drivers/flash: Add explict erase capability with proper values 2024-06-04 08:00:46 +02:00
Kconfig.cadence_qspi_nor drivers/flash: Add explict erase capability with proper values 2024-06-04 08:00:46 +02:00
Kconfig.cc13xx_cc26xx drivers/flash: Add explict erase capability with proper values 2024-06-04 08:00:46 +02:00
Kconfig.cc23x0 drivers: flash: Add support for cc23x0 flash 2025-02-04 11:56:05 +01:00
Kconfig.esp32 drivers/flash: Add explict erase capability with proper values 2024-06-04 08:00:46 +02:00
Kconfig.gd32 drivers/flash: Add explict erase capability with proper values 2024-06-04 08:00:46 +02:00
Kconfig.gecko drivers/flash: Add explict erase capability with proper values 2024-06-04 08:00:46 +02:00
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 drivers/flash: Add explict erase capability with proper values 2024-06-04 08:00:46 +02:00
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 drivers: nrf_qspi_nor: Mark driver with FLASH_HAS_EXPLICIT_ERASE 2024-06-04 08:00:46 +02:00
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 drivers/flash/nrf_mram: Set no explicit erase capability to true 2024-06-04 08:00:46 +02:00
Kconfig.nrf_rram Bluetooth: Rename BLE to Bluetooth (LE) where applicable 2025-02-12 12:24:18 +01:00
Kconfig.numaker drivers/flash: Add explict erase capability with proper values 2024-06-04 08:00:46 +02:00
Kconfig.numaker_rmc drivers: flash: Mark numaker series RMC as no_explicit_erase 2024-06-04 08:00:46 +02:00
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 drivers/flash: Add explict erase capability with proper values 2024-06-04 08:00:46 +02:00
Kconfig.rts5912 driver: flash: add flash driver for rts5912 2025-05-15 11:18:22 +02:00
Kconfig.rv32m1 drivers/flash: Add explict erase capability with proper values 2024-06-04 08:00:46 +02:00
Kconfig.sam drivers/flash: Add explict erase capability with proper values 2024-06-04 08:00:46 +02:00
Kconfig.sam0 drivers/flash: Add explict erase capability with proper values 2024-06-04 08:00:46 +02:00
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 drivers/flash_simulator: Add support for non-erase device 2024-06-04 08:00:46 +02:00
Kconfig.siwx91x drivers: flash: Introduce SiWx91x Flash driver 2025-02-11 22:07:11 +01:00
Kconfig.smartbond drivers/flash: Add explict erase capability with proper values 2024-06-04 08:00:46 +02:00
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 drivers/flash: Add explict erase capability with proper values 2024-06-04 08:00:46 +02:00
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