98 lines
2.8 KiB
Plaintext
98 lines
2.8 KiB
Plaintext
# 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_EXPLICIT_ERASE
|
|
bool "Program-erase device"
|
|
select FLASH_HAS_EXPLICIT_ERASE
|
|
default y
|
|
help
|
|
Explicit erase (non-erase-on-write) Flash, which is device that requires erase
|
|
to erase-value prior to write as it only allows to change bits from erase-value
|
|
to the opposite.
|
|
|
|
config FLASH_SIMULATOR_RAMLIKE
|
|
bool
|
|
default y if !FLASH_SIMULATOR_EXPLICIT_ERASE
|
|
select FLASH_HAS_NO_EXPLICIT_ERASE
|
|
select FLASH_SIMULATOR_DOUBLE_WRITES
|
|
help
|
|
This is used for setting FLASH_HAS_NO_EXPLICIT_ERASE.
|
|
|
|
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 change value of a bit from erase-value to the
|
|
opposite.
|
|
This option does not impact FLASH_SIMULATOR_RAMLIKE.
|
|
In case when FLASH_SIMULATOR_EXPLICIT_ERASE is selected multiple writes to the same bit
|
|
but only change from erase-value to opposite will be registered.
|
|
|
|
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
|