This driver emulates a EEPROM device in flash. Reworked implementation with modified flash layout. The emulation represents the EEPROM in flash as a region that is a direct map of the eeprom data followed by a region where changes to the eeprom data is stored. Changes are written as address-data combinations. The size of such a combination is determined by the flash write block size and the size of the eeprom (required address space), with a minimum of 4 byte. The eeprom page needs to be a multiple of the flash page. Multiple eeprom pages is also so supported and increases the number of writes that can be performed. The eeprom size, pagesize and the flash partition used for the eeprom are defined in the dts. The flash partition should allow at least two eeprom pages. For fast read access a rambuffer can be enabled for the eeprom (by setting the option rambuf in the dts). Signed-off-by: Laczen JMS <laczenjms@gmail.com>
91 lines
1.9 KiB
Plaintext
91 lines
1.9 KiB
Plaintext
# EEPROM driver configuration options
|
|
|
|
# Copyright (c) 2019 Vestas Wind Systems A/S
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
menuconfig EEPROM
|
|
bool "EEPROM hardware support"
|
|
help
|
|
Enable support for EEPROM hardware.
|
|
|
|
if EEPROM
|
|
|
|
module = EEPROM
|
|
module-str = eeprom
|
|
source "subsys/logging/Kconfig.template.log_config"
|
|
|
|
config EEPROM_SHELL
|
|
bool "Enable EEPROM shell"
|
|
default y
|
|
depends on SHELL
|
|
help
|
|
Enable the EEPROM shell with EEPROM related commands.
|
|
|
|
config EEPROM_SHELL_BUFFER_SIZE
|
|
int "EEPROM shell buffer size"
|
|
default 256
|
|
depends on EEPROM_SHELL
|
|
help
|
|
Size of the buffer used for EEPROM read/write commands in
|
|
the EEPROM shell.
|
|
|
|
config EEPROM_AT2X
|
|
bool
|
|
help
|
|
Enable support for Atmel AT2x (and compatible) I2C/SPI
|
|
EEPROMs.
|
|
|
|
config EEPROM_AT24
|
|
bool "Atmel AT24 (and compatible) I2C EEPROM support"
|
|
depends on I2C
|
|
select EEPROM_AT2X
|
|
help
|
|
Enable support for Atmel AT24 (and compatible) I2C EEPROMs.
|
|
|
|
config EEPROM_AT25
|
|
bool "Atmel AT25 (and compatible) SPI EEPROM support"
|
|
depends on SPI
|
|
select EEPROM_AT2X
|
|
help
|
|
Enable support for Atmel AT25 (and compatible) SPI EEPROMs.
|
|
|
|
config EEPROM_AT2X_INIT_PRIORITY
|
|
int "AT2X EEPROM init priority"
|
|
default 75
|
|
depends on EEPROM_AT2X
|
|
|
|
source "drivers/eeprom/Kconfig.lpc11u6x"
|
|
source "drivers/eeprom/Kconfig.stm32"
|
|
source "drivers/eeprom/Kconfig.eeprom_emu"
|
|
|
|
config EEPROM_SIMULATOR
|
|
bool "Simulated EEPROM driver"
|
|
select STATS
|
|
select STATS_NAMES
|
|
help
|
|
Enable Simulated EEPROM driver.
|
|
|
|
config EEPROM_SIMULATOR_SIMULATE_TIMING
|
|
bool "Enable hardware timing simulation"
|
|
depends on EEPROM_SIMULATOR
|
|
help
|
|
Enable Simulated hardware timing.
|
|
|
|
if EEPROM_SIMULATOR_SIMULATE_TIMING
|
|
|
|
config EEPROM_SIMULATOR_MIN_READ_TIME_US
|
|
int
|
|
prompt "Minimum read time (µS)"
|
|
default 2
|
|
range 1 1000000
|
|
|
|
config EEPROM_SIMULATOR_MIN_WRITE_TIME_US
|
|
int
|
|
prompt "Minimum write time (µS)"
|
|
default 100
|
|
range 1 1000000
|
|
|
|
endif # EEPROM_SIMULATOR_SIMULATE_TIMING
|
|
|
|
endif # EEPROM
|