
This series introduces support for EEPROM as a storage for the main Toradex config block and additional config blocks on extra EEPROM chips (on carrier board or video adapters).
To enable EEPROM as a storage for the main config block: TDX_HAVE_EEPROM=y.
For additional EEPROMs please enable this Kconfig symbol: TDX_CFG_BLOCK_EXTRA=y.
Information about existing EEPROM chips is provided via Device Tree using aliases.
You can also write configuration for the carrier board using create_carrier subcommand for cfgblock. Example:
Verdin iMX8MM # cfgblock create_carrier Supported carrier boards: UNKNOWN CARRIER = [0] Verdin Carrier Board = [1] Choose your carrier board (provide ID): 1 Enter carrier board version (e.g. V1.1B): V1.0A Enter carrier board serial number: 10622780
Also with barcode: Verdin iMX8MM # cfgblock create carrier -y 0156100010622780
Igor Opaniuk (7): toradex: tdx-cfg-block: add EEPROM read/store wrappers toradex: tdx-cfg-block: add carrier boards and display adapters toradex: tdx-cfg-block: add support for EEPROM toradex: tdx-cfg-clock: add migration routine from PID8 toradex: tdx-cfg-block: add carrier board info printing ARM: dts: imx8mm-verdin: eeprom nodes adjustments verdin-imx8mm: add EEPROM support for carrier board
arch/arm/dts/imx8mm-verdin.dts | 22 +- board/toradex/common/Kconfig | 18 ++ board/toradex/common/Makefile | 1 + board/toradex/common/tdx-cfg-block.c | 402 +++++++++++++++++++++++++++++++---- board/toradex/common/tdx-cfg-block.h | 16 ++ board/toradex/common/tdx-common.c | 28 +++ board/toradex/common/tdx-eeprom.c | 90 ++++++++ board/toradex/common/tdx-eeprom.h | 14 ++ board/toradex/verdin-imx8mm/Kconfig | 6 + configs/verdin-imx8mm_defconfig | 1 + 10 files changed, 551 insertions(+), 47 deletions(-) create mode 100644 board/toradex/common/tdx-eeprom.c create mode 100644 board/toradex/common/tdx-eeprom.h