zephyr/drivers/flash
Andrzej Głąbek 41c33d7f32 drivers: flash: nrf_qspi_nor: Fix writing from unaligned RAM buffers
Flash API states that drivers should support write requests without
any restrictions on location or alignment of the source buffer.
Due to hardware limitations of the QSPI peripheral, the nrf_qspi_nor
driver currently fails to perform a write from a RAM buffer that is
not word-aligned. Fix this by using in such case the same mechanism
that is used when the source buffer is located in the internal flash
(copy data to a buffer located on stack).
Also correct the length parameter for writes from this stack-based
buffer to be the actual data chunk length, not always the size of
the buffer (as for CONFIG_NORDIC_QSPI_NOR_STACK_WRITE_BUFFER_SIZE > 4
this may lead to overwriting of some data located next in the flash).

Signed-off-by: Andrzej Głąbek <andrzej.glabek@nordicsemi.no>
2023-07-13 12:09:02 +02:00
..
CMakeLists.txt drivers: flash: stm32: add stm32wba support 2023-07-11 15:05:05 +02:00
flash_cadence_qspi_nor.c drivers: flash: Add Cadence QSPI NOR Flash Driver 2022-09-01 14:30:59 -04:00
flash_cadence_qspi_nor_ll.c includes: prefer <zephyr/kernel.h> over <zephyr/zephyr.h> 2022-09-05 16:31:47 +02:00
flash_cadence_qspi_nor_ll.h drivers: flash: Add Cadence QSPI NOR Flash Driver 2022-09-01 14:30:59 -04:00
flash_esp32.c drivers: flash: esp32xx: use K_NO_WAIT when in ISR 2023-06-21 16:06:06 -04:00
flash_gd32.c drivers: flash: introduce gd32 fmc driver 2022-09-08 10:13:05 +02:00
flash_gd32.h drivers: flash: introduce gd32 fmc driver 2022-09-08 10:13:05 +02:00
flash_gd32_v1.c drivers/flash/gd32_vX: add missing kernel header 2022-10-17 14:39:39 +09:00
flash_gd32_v2.c drivers/flash/gd32_vX: add missing kernel header 2022-10-17 14:39:39 +09:00
flash_gd32_v3.c drivers/flash/gd32_vX: add missing kernel header 2022-10-17 14:39:39 +09:00
flash_gecko.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
flash_handlers.c drivers: flash: Introduce API function for flash extended operations 2023-03-14 11:17:13 +01:00
flash_ifx_cat1.c drivers: flash: Add Infineon CAT1 Flash driver 2023-05-08 11:16:09 +02:00
flash_ite_it8xxx2.c ITE: soc: chip_chipregs: Access registers using structure method 2022-11-09 10:44:29 +01:00
flash_mcux_flexspi_hyperflash.c drivers: flash: flash_mcux_flexspi_*: copy LUT to ram when updating 2023-05-25 21:37:18 -05:00
flash_mcux_flexspi_mx25um51345g.c drivers: flash: flash_mcux_flexspi_*: copy LUT to ram when updating 2023-05-25 21:37:18 -05:00
flash_mcux_flexspi_nor.c drivers: flash: flash_mcux_flexspi_*: copy LUT to ram when updating 2023-05-25 21:37:18 -05:00
flash_page_layout.c include: add missing errno.h include 2022-10-11 18:05:17 +02:00
flash_priv.h headers: Fix headers across the project 2018-09-17 15:49:26 -04:00
flash_rpi_pico.c device: remove redundant init functions 2023-04-19 10:00:25 +02:00
flash_sam.c barriers: Move __DSB() to the new API 2023-05-24 13:13:57 -04:00
flash_sam0.c drivers: flash: sam0: Resolve write issues in the first row 2022-11-28 10:49:09 +01:00
flash_shell.c shell: fix MISRA 5.7 violations on struct shell 2023-04-14 12:21:08 +02:00
flash_simulator.c flash simulator: Refactor native part so it works with emb libC 2023-07-10 09:50:56 +02:00
flash_simulator_native.c flash simulator: Refactor native part so it works with emb libC 2023-07-10 09:50:56 +02:00
flash_simulator_native.h flash simulator: Refactor native part so it works with emb libC 2023-07-10 09:50:56 +02:00
flash_smartbond.c device: remove redundant init functions 2023-04-19 10:00:25 +02:00
flash_stm32.c drivers: flash: stm32: add stm32wba support 2023-07-11 15:05:05 +02:00
flash_stm32.h drivers: flash: stm32: add stm32wba support 2023-07-11 15:05:05 +02:00
flash_stm32_ex_op.c drivers: flash: Introduce readout protection support for STM32F4 2023-03-28 15:43:16 +00:00
flash_stm32_ospi.c drivers: flash: stm32 ospi: configure ospim io ports 2023-06-21 16:06:00 +02:00
flash_stm32_ospi.h drivers: flash: stm32 ospi driver for the stm32h5x 2023-04-07 08:33:51 +00:00
flash_stm32_qspi.c drivers: flash: stm32 qspi driver with read SFDP ID from quadflash 2023-06-23 10:51:06 +00:00
flash_stm32f1x.c barriers: Move __DSB() to the new API 2023-05-24 13:13:57 -04:00
flash_stm32f2x.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
flash_stm32f4x.c barriers: Move __DSB() to the new API 2023-05-24 13:13:57 -04:00
flash_stm32f7x.c barriers: Move __DSB() to the new API 2023-05-24 13:13:57 -04:00
flash_stm32g0x.c drivers: flash: stm32: allow to overwrite zeros 2022-10-17 10:14:32 +02:00
flash_stm32g4x.c drivers: flash: stm32: allow to overwrite zeros 2022-10-17 10:14:32 +02:00
flash_stm32h7x.c barriers: Move __ISB() to the new API 2023-05-24 13:13:57 -04:00
flash_stm32l4x.c drivers: flash: stm32: allow to overwrite zeros 2022-10-17 10:14:32 +02:00
flash_stm32l5x.c drivers: flash: stm32 flash drivers supports the new stm32h5 serie 2023-03-28 15:07:51 +02:00
flash_stm32wbax.c drivers: flash: stm32: add stm32wba support 2023-07-11 15:05:05 +02:00
flash_stm32wbx.c drivers: flash: stm32: allow to overwrite zeros 2022-10-17 10:14:32 +02:00
jesd216.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
jesd216.h drivers: flash: stm32 ospi driver with read ID from octoflash 2022-11-22 14:26:57 +00:00
Kconfig drivers: flash: Add Infineon CAT1 Flash driver 2023-05-08 11:16:09 +02:00
Kconfig.at45 drivers: flash: spi: Move to using select in Kconfig for SPI bus 2023-02-27 14:35:15 +01:00
Kconfig.b91 drivers: flash: Update drivers to use devicetree Kconfig symbol 2022-07-30 08:27:13 -05:00
Kconfig.cadence_qspi_nor drivers: flash: Add Cadence QSPI NOR Flash Driver 2022-09-01 14:30:59 -04:00
Kconfig.cc13xx_cc26xx drivers: flash: Update drivers to use devicetree Kconfig symbol 2022-07-30 08:27:13 -05:00
Kconfig.esp32 drivers: flash: Update drivers to use devicetree Kconfig symbol 2022-07-30 08:27:13 -05:00
Kconfig.gd32 drivers: flash: introduce gd32 fmc driver 2022-09-08 10:13:05 +02:00
Kconfig.gecko drivers: flash: Update drivers to use devicetree Kconfig symbol 2022-07-30 08:27:13 -05:00
Kconfig.ifx_cat1 drivers: flash: Fix kconfig dependency 2023-05-10 16:49:59 +09:00
Kconfig.it8xxx2 it8xxx2: generalize ILM support 2022-10-21 20:31:47 +02:00
Kconfig.lpc drivers: flash: soc_flash_lpc: enable support for lpc54xxx IAP 2022-08-25 08:26:53 -05:00
Kconfig.mcux boards: arm: rtxxx: moving the instances FLASH_MCUX_FLEXSPI_XIP 2022-12-22 11:07:08 +01:00
Kconfig.nios2_qspi flash: nios2_qspi: Convert driver to be devicetree based 2022-08-12 08:11:42 -04:00
Kconfig.nor drivers: flash: spi: Move to using select in Kconfig for SPI bus 2023-02-27 14:35:15 +01:00
Kconfig.nordic_qspi_nor drivers: flash: nrf_qspi_nor: Fix writing from unaligned RAM buffers 2023-07-13 12:09:02 +02:00
Kconfig.nrf drivers: flash: soc_flash_nrf: Account for ticker in timeout 2022-10-13 16:06:08 +09:00
Kconfig.rpi_pico drivers: flash: Add flash driver for rpi_pico series 2022-11-15 12:12:00 +00:00
Kconfig.rv32m1 drivers: flash: Update drivers to use devicetree Kconfig symbol 2022-07-30 08:27:13 -05:00
Kconfig.sam drivers: flash: Update drivers to use devicetree Kconfig symbol 2022-07-30 08:27:13 -05:00
Kconfig.sam0 soc: atmel: add base support for C2x SOC 2022-11-04 16:03:01 +01:00
Kconfig.simulator drivers: flash: Update drivers to use devicetree Kconfig symbol 2022-07-30 08:27:13 -05:00
Kconfig.smartbond drivers: flash: Add driver for smartbond 2022-08-31 20:32:03 +02:00
Kconfig.stm32 drivers: flash: Add ex ops for STM32 option/control register block 2023-03-28 15:43:16 +00:00
Kconfig.stm32_ospi drivers: flash: stm32 ospi driver for the stm32h5x 2023-04-07 08:33:51 +00:00
Kconfig.stm32_qspi drivers: flash: Update drivers to use devicetree Kconfig symbol 2022-07-30 08:27:13 -05:00
Kconfig.xmc4xxx drivers: flash: Add xmc4xxx flash drivers 2022-10-03 13:56:49 +02:00
nrf_qspi_nor.c drivers: flash: nrf_qspi_nor: Fix writing from unaligned RAM buffers 2023-07-13 12:09:02 +02:00
soc_flash_b91.c include: add missing kernel.h include 2022-10-11 18:05:17 +02:00
soc_flash_cc13xx_cc26xx.c include: add missing zephyr/irq.h include 2022-10-20 22:52:09 +09:00
soc_flash_lpc.c drivers: flash: soc_flash_lpc: enable support for lpc54xxx IAP 2022-08-25 08:26:53 -05:00
soc_flash_mcux.c barriers: Move __ISB() to the new API 2023-05-24 13:13:57 -04:00
soc_flash_nios2_qspi.c flash: nios2_qspi: Convert driver to be devicetree based 2022-08-12 08:11:42 -04:00
soc_flash_nrf.c drivers: nrf5 flash: Fix for simulation 2023-05-08 10:08:35 +02:00
soc_flash_nrf.h drivers: flash: soc_flash_nrf: Account for ticker in timeout 2022-10-13 16:06:08 +09:00
soc_flash_rv32m1.c drivers: migrate includes to <zephyr/...> 2022-05-06 19:58:21 +02:00
soc_flash_xmc4xxx.c drivers: flash: soc_flash_xmc4xxx: Add missing kernel.h header 2022-10-20 15:41:39 +02:00
spi_flash_at45.c drivers: spi_flash_at45: Fix erasing of first two sectors 2023-05-09 12:22:15 +02:00
spi_nor.c drivers: flash: spi_nor: exit DPD in all cases 2023-07-05 14:13:43 +02:00
spi_nor.h drivers: flash: stm32 ospi flash driver waits for full chip erase 2023-05-10 16:50:22 +09:00