# SPDX-License-Identifier: Apache-2.0 config FLASH_NRF_FORCE_ALT bool depends on SOC_COMPATIBLE_NRF help This option can be enabled to force an alternative implementation of the flash driver. menuconfig SOC_FLASH_NRF bool "Nordic Semiconductor nRF flash driver" default y depends on DT_HAS_NORDIC_NRF51_FLASH_CONTROLLER_ENABLED || \ DT_HAS_NORDIC_NRF52_FLASH_CONTROLLER_ENABLED || \ DT_HAS_NORDIC_NRF53_FLASH_CONTROLLER_ENABLED || \ DT_HAS_NORDIC_NRF91_FLASH_CONTROLLER_ENABLED depends on !FLASH_NRF_FORCE_ALT select FLASH_HAS_PAGE_LAYOUT select FLASH_HAS_DRIVER_ENABLED select FLASH_HAS_EXPLICIT_ERASE select NRFX_NVMC select MPU_ALLOW_FLASH_WRITE if ARM_MPU help Enables Nordic Semiconductor nRF flash driver. if SOC_FLASH_NRF choice SOC_FLASH_NRF_RADIO_SYNC_CHOICE prompt "Nordic nRFx flash driver synchronization" default SOC_FLASH_NRF_RADIO_SYNC_TICKER if BT_LL_SW_SPLIT default SOC_FLASH_NRF_RADIO_SYNC_NONE help synchronization between flash memory driver and radio. config SOC_FLASH_NRF_RADIO_SYNC_TICKER bool "Nordic nRFx flash driver synchronized with radio" depends on BT_LL_SW_SPLIT help Enable synchronization between flash memory driver and radio using BLE LL controller ticker API. config SOC_FLASH_NRF_RADIO_SYNC_NONE bool "none" help disable synchronization between flash memory driver and radio. endchoice config SOC_FLASH_NRF_PARTIAL_ERASE bool "Nordic nRFx flash driver partial erase" depends on HAS_HW_NRF_NVMC_PE help Enable partial erase feature. Partial erase is performed in time slices instead of blocking MCU, for the time it is needed to complete operation over given area. This allows interrupting flash erase between operations to perform other task by MCU. This feature may also be used for better syncing flash erase operations, when compiled with SOC_FLASH_NRF_RADIO_SYNC_TICKER, with Bluetooth. config SOC_FLASH_NRF_PARTIAL_ERASE_MS int "Partial erase timeout in MS" depends on SOC_FLASH_NRF_PARTIAL_ERASE default 3 help This is maximum time, in ms, that NVMC will use to erase part of Flash, before stopping to let CPU resume operation. Minimal timeout is 2ms maximum should not exceed half of FLASH_PAGE_ERASE_MAX_TIME_US im ms. config SOC_FLASH_NRF_TIMEOUT_MULTIPLIER int "Multiplier for flash operation timeouts [x0.1]" depends on !SOC_FLASH_NRF_RADIO_SYNC_NONE default 15 if SOC_FLASH_NRF_PARTIAL_ERASE && SOC_FLASH_NRF_RADIO_SYNC_TICKER default 10 help This is a multiplier that will be divided by 10 that is applied to the flash erase and write operations timeout. The base for the multiplication would allow erasing all nRF flash pages in blocking mode. config SOC_FLASH_NRF_UICR bool "Access to UICR" depends on !TRUSTED_EXECUTION_NONSECURE help Enable operations on UICR. Once enabled UICR are written or read as ordinary flash memory. Erase is possible for whole UICR at once. config SOC_FLASH_NRF_EMULATE_ONE_BYTE_WRITE_ACCESS bool "8-bit write block size emulation" help When this option is enabled writing chunks less than minimal write block size parameter (imposed by manufacturer) is possible but operation is more complex and requires basic user knowledge about NVMC controller. endif # SOC_FLASH_NRF