|  | # Flash simulator config | 
|  |  | 
|  | # Copyright (c) 2018 Nordic Semiconductor ASA | 
|  | # SPDX-License-Identifier: Apache-2.0 | 
|  |  | 
|  | menuconfig FLASH_SIMULATOR | 
|  | bool "Flash simulator" | 
|  | default y | 
|  | depends on DT_HAS_ZEPHYR_SIM_FLASH_ENABLED | 
|  | select FLASH_HAS_PAGE_LAYOUT | 
|  | select FLASH_HAS_DRIVER_ENABLED | 
|  | help | 
|  | Enable the flash simulator. | 
|  |  | 
|  | if FLASH_SIMULATOR | 
|  |  | 
|  | config FLASH_SIMULATOR_UNALIGNED_READ | 
|  | bool "Allow read access to be unaligned" | 
|  | default y | 
|  | help | 
|  | If selected, the reading operation does not check if access is aligned. | 
|  | Disable this option only if you want to simulate | 
|  | a specific FLASH interface that requires aligned read access. | 
|  |  | 
|  | config FLASH_SIMULATOR_DOUBLE_WRITES | 
|  | bool "Allow program units to be programmed more than once" | 
|  | help | 
|  | If selected, writing to a non-erased program unit will succeed, otherwise, it will return an error. | 
|  | Keep in mind that write operations can only pull bits to zero, regardless. | 
|  |  | 
|  | config FLASH_SIMULATOR_SIMULATE_TIMING | 
|  | bool "Hardware timing simulation" | 
|  |  | 
|  | if FLASH_SIMULATOR_SIMULATE_TIMING | 
|  |  | 
|  | config FLASH_SIMULATOR_MIN_READ_TIME_US | 
|  | int "Minimum read time (µS)" | 
|  | default 2 | 
|  | range 1 1000000 | 
|  |  | 
|  | config FLASH_SIMULATOR_MIN_WRITE_TIME_US | 
|  | int "Minimum write time (µS)" | 
|  | default 100 | 
|  | range 1 1000000 | 
|  |  | 
|  | config FLASH_SIMULATOR_MIN_ERASE_TIME_US | 
|  | int "Minimum erase time (µS)" | 
|  | default 2000 | 
|  | range 1 1000000 | 
|  |  | 
|  | endif | 
|  |  | 
|  | config FLASH_SIMULATOR_STATS | 
|  | bool "flash operations statistic" | 
|  | default y | 
|  | select STATS | 
|  | select STATS_NAMES | 
|  | help | 
|  | Gather statistic measurement for flash simulator operations using the | 
|  | statistic subsystem. | 
|  |  | 
|  | config FLASH_SIMULATOR_STAT_PAGE_COUNT | 
|  | int "Pages under statistic" | 
|  | depends on FLASH_SIMULATOR_STATS | 
|  | range 1 256 | 
|  | default 256 | 
|  | help | 
|  | Only up to this number of beginning pages will be tracked | 
|  | while catching dedicated flash operations and thresholds. | 
|  | This number is not automatic because implementation uses | 
|  | UNTIL_REPEAT() macro, which is limited to take explicitly | 
|  | number of iterations. | 
|  | This is why it's not possible to calculate the number of pages with | 
|  | preprocessor using DT properties. | 
|  |  | 
|  | endif # FLASH_SIMULATOR |