zephyr/drivers/flash
Patryk Duda 78ce5784eb drivers: flash: Add ex ops for STM32 option/control register block
Introduce flash extended operations that can be used to disable access
to option and control registers until reset. Disabling access to these
registers improves system security, because flash content (or protection
settings) can't be changed even when exploit was found.

On STM32 devices, registers can be locked until reset by writing wrong
key during unlock procedure. It triggers a bus fault, so during the
procedure we need to ignore faults and clear bus fault pending bit.

Please note that option register disabling was implemented for devices
that have OPTCR register (F2, F4, F7 and H7). Implementation on other
devices requires more testing, since documentation is not precise
enough. Disabling control register was implemented for devices that
have CR register.

Signed-off-by: Patryk Duda <pdk@semihalf.com>
2023-03-28 15:43:16 +00:00
..
CMakeLists.txt drivers: flash: Introduce write protection support for STM32F4 2023-03-28 15:43:16 +00: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_cadence_qspi_nor.c drivers: flash: Add Cadence QSPI NOR Flash Driver 2022-09-01 14:30:59 -04:00
flash_esp32.c
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_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_gecko.c
flash_handlers.c drivers: flash: Introduce API function for flash extended operations 2023-03-14 11:17:13 +01: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 includes: prefer <zephyr/kernel.h> over <zephyr/zephyr.h> 2022-09-05 16:31:47 +02:00
flash_mcux_flexspi_mx25um51345g.c include: add missing irq.h include 2022-10-11 18:05:17 +02:00
flash_mcux_flexspi_nor.c include: add missing irq.h include 2022-10-11 18:05:17 +02:00
flash_page_layout.c include: add missing errno.h include 2022-10-11 18:05:17 +02:00
flash_priv.h
flash_rpi_pico.c drivers: flash: bug fix inline function was not inlined 2023-01-10 09:26:37 +01:00
flash_sam0.c drivers: flash: sam0: Resolve write issues in the first row 2022-11-28 10:49:09 +01:00
flash_sam.c
flash_shell.c flash: flash_shell: Fix check_arr size 2023-02-20 19:41:17 +09:00
flash_simulator.c drivers: s/DT_CHILD(DT_DRV_INST(n), ...)/DT_INST_CHILD(n, ...) 2022-09-06 08:45:25 -07:00
flash_smartbond.c drivers: flash: Add driver for smartbond 2022-08-31 20:32:03 +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: bug fix stm32 ospi flash erase 2023-01-26 09:39:59 +00:00
flash_stm32_qspi.c drivers: flash: stm32 qspi Enter 4-Byte Address Mode 2023-02-24 09:13:44 +01:00
flash_stm32.c drivers: flash: Add ex ops for STM32 option/control register block 2023-03-28 15:43:16 +00:00
flash_stm32.h drivers: flash: Add support for defining custom RDP1 byte value 2023-03-28 15:43:16 +00:00
flash_stm32f1x.c drivers: flash: stm32: Use consistent log priorities 2023-01-09 19:19:49 +01:00
flash_stm32f2x.c
flash_stm32f4x.c drivers: flash: Introduce readout protection support for STM32F4 2023-03-28 15:43:16 +00:00
flash_stm32f7x.c
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
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_stm32wbx.c drivers: flash: stm32: allow to overwrite zeros 2022-10-17 10:14:32 +02:00
jesd216.c
jesd216.h drivers: flash: stm32 ospi driver with read ID from octoflash 2022-11-22 14:26:57 +00:00
Kconfig drivers: kconfig: unify menuconfig title strings 2023-03-28 15:06:06 +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
Kconfig.cadence_qspi_nor drivers: flash: Add Cadence QSPI NOR Flash Driver 2022-09-01 14:30:59 -04:00
Kconfig.cc13xx_cc26xx
Kconfig.esp32
Kconfig.gd32 drivers: flash: introduce gd32 fmc driver 2022-09-08 10:13:05 +02:00
Kconfig.gecko
Kconfig.it8xxx2 it8xxx2: generalize ILM support 2022-10-21 20:31:47 +02:00
Kconfig.lpc
Kconfig.mcux boards: arm: rtxxx: moving the instances FLASH_MCUX_FLEXSPI_XIP 2022-12-22 11:07:08 +01:00
Kconfig.nios2_qspi
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
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
Kconfig.sam
Kconfig.sam0 soc: atmel: add base support for C2x SOC 2022-11-04 16:03:01 +01:00
Kconfig.simulator
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 octospi NOR flash with DMA on stm32u5x 2022-11-22 12:00:00 +00:00
Kconfig.stm32_qspi
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: Add runtime PM 2023-03-20 16:29:47 +01: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
soc_flash_mcux.c
soc_flash_nios2_qspi.c
soc_flash_nrf.c all: Fix "#if IS_ENABLED(CONFIG_FOO)" occurrences 2022-12-21 10:09:23 +01: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
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 all: Fix "#if IS_ENABLED(CONFIG_FOO)" occurrences 2022-12-21 10:09:23 +01:00
spi_nor.c drivers: flash: spi_nor: Return EINVAL when erase out of range 2023-02-20 10:54:00 +01:00
spi_nor.h drivers: flash: stm32 qspi Enter 4-Byte Address Mode 2023-02-24 09:13:44 +01:00