You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
103 lines
3.5 KiB
103 lines
3.5 KiB
# 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. |
|
|
|
config SOC_FLASH_NRF_CUSTOM_CONTEXT |
|
bool "Nordic nRFx flash driver operation custom context" |
|
depends on SOC_COMPATIBLE_NRF |
|
help |
|
Enable pointer to custom context, for drivers that need to store additional data, |
|
not covered by the structure. |
|
|
|
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 |
|
Bluetooth LE 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
|
|
|