zephyr/drivers/flash
Peter A. Bigot 3d8125a47c drivers: flash: nrfx_qspi_nor: fix semaphore errors
The code generally invoked qspi_wait_for_completion() within a locked
region without verifying that an operation was successfully initiated.
This caused a deadlock whenever the operation failed, e.g. because the
data buffer was not 4-byte aligned.  Update that function to take the
result of the operation and either wait for completion or release the
lock, depending on its value.

Also uniformly use the correct type for Nordic HAL error values, and
refactor the erase module so that the correct values are displayed in
the diagnostic when something goes wrong.

Also check the alignment requirements for the flash address and
transfer size, which are highly constrained on this device.  This
driver also requires 4-byte aligned data buffer; this is checked in
the Nordic HAL.

Signed-off-by: Peter A. Bigot <pab@pabigot.com>
2020-04-20 15:41:35 +02:00
..
CMakeLists.txt
flash_gecko.c
flash_handlers.c
flash_page_layout.c
flash_priv.h
flash_sam.c
flash_sam0.c
flash_shell.c
flash_simulator.c
flash_stm32.c
flash_stm32.h
flash_stm32f1x.c
flash_stm32f3x.c
flash_stm32f4x.c
flash_stm32f7x.c
flash_stm32f0x.c
flash_stm32g4x.c
flash_stm32g0x.c
flash_stm32l4x.c
flash_stm32wbx.c
Kconfig
Kconfig.gecko
Kconfig.mcux
Kconfig.nios2_qspi
Kconfig.nor
Kconfig.nordic_qspi_nor
Kconfig.nrf
Kconfig.rv32m1
Kconfig.sam
Kconfig.sam0
Kconfig.simulator
Kconfig.stm32
Kconfig.w25qxxdv
nrf_qspi_nor.c
soc_flash_mcux.c
soc_flash_nios2_qspi.c
soc_flash_nrf.c
soc_flash_rv32m1.c
spi_flash_w25qxxdv_defs.h
spi_flash_w25qxxdv.c
spi_flash_w25qxxdv.h
spi_nor.c
spi_nor.h