Topics

EEPROMs as first-class devices in Zephyr


Henrik Brix Andersen
 

Hi all,

I have submitted and RFC for adding an EEPROM API to Zephyr RTOS here:
https://github.com/zephyrproject-rtos/zephyr/pull/19972

The idea behind this is a simple, byte-oriented API for EEPROM devices.

I have been implementing drivers for generic SPI EEPROMs (AT25xxx compatible) and I2C EEPROMs (AT24xxx compatible) under the Zephyr flash API, but it just doesn't feel right.

The EEPROM drivers need to implement the full flash API (What to do on erase? NO-OP? Write 0xFF to "erased" bytes thus affecting lifetime negatively? Something else?) and this type of devices generally aren't fit as backends for the various subsystems in Zephyr currently supporting the flash API as backend (e.g. the settings subsystem) due to assumptions about page layout and erase.

I would like to hear any comments and/or suggestions on how to approach integrating EEPROM devices in as first-class devices in Zephyr.

Comments and ideas are most welcome. Please submit them as comments to the Github issue in order to keep the conversation there.

Best regards,
Brix
--
Henrik Brix Andersen