zephyr/drivers/eeprom/Kconfig
Laczen JMS 232272cff8 drivers: eeprom: EEPROM emulation in flash memory
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>
2021-02-19 14:06:15 +01:00

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