diff options
author | Igor Opaniuk <igor.opaniuk@toradex.com> | 2020-04-06 22:22:16 +0300 |
---|---|---|
committer | Igor Opaniuk <igor.opaniuk@toradex.com> | 2020-05-04 21:42:21 +0300 |
commit | 4554a0918af7e74c934a3ad707aba10ef31e111a (patch) | |
tree | 5b595365e64bad1a7d7d5f1225fd92d39c619ac5 /board/toradex/common/tdx-common.c | |
parent | c4731c7ad61e1d4f022bfae14345956b07af47bd (diff) |
toradex: tdx-cfg-block: add support for EEPROM
This 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 provide 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:
cVerdin iMX8MM # cfgblock create carrier -y 0156100010622780
Relates-to: ELB-1402
Signed-off-by: Igor Opaniuk <igor.opaniuk@toradex.com>
Diffstat (limited to 'board/toradex/common/tdx-common.c')
-rw-r--r-- | board/toradex/common/tdx-common.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/board/toradex/common/tdx-common.c b/board/toradex/common/tdx-common.c index b983424fc4..3d825774b7 100644 --- a/board/toradex/common/tdx-common.c +++ b/board/toradex/common/tdx-common.c @@ -18,6 +18,9 @@ static char tdx_serial_str[9]; static char tdx_board_rev_str[6]; +static char tdx_car_serial_str[9]; +static char tdx_car_rev_str[6]; + #ifdef CONFIG_REVISION_TAG u32 get_board_rev(void) { @@ -69,6 +72,7 @@ int show_board_info(void) { unsigned char ethaddr[6]; char* tdx_module_name; + char* tdx_carrier_name; if (read_tdx_cfg_block()) { printf("MISSING TORADEX CONFIG BLOCK\n"); @@ -83,6 +87,7 @@ int show_board_info(void) tdx_module_name = (char *) toradex_modules[tdx_hw_tag.prodid]; } + sprintf(tdx_serial_str, "%08u", tdx_serial); sprintf(tdx_board_rev_str, "V%1d.%1d%c", tdx_hw_tag.ver_major, @@ -95,6 +100,27 @@ int show_board_info(void) tdx_module_name, tdx_board_rev_str, tdx_serial_str); +#ifdef CONFIG_TDX_CFG_BLOCK_EXTRA + if (read_tdx_cfg_block_extra()) { + printf("MISSING TORADEX EXTRA CONFIG BLOCKS\n"); + } else { + tdx_carrier_name = (char *) + toradex_carriers[tdx_car_hw_tag.prodid]; + + sprintf(tdx_car_serial_str, "%08u", tdx_car_serial); + sprintf(tdx_car_rev_str, "V%1d.%1d%c", + tdx_car_hw_tag.ver_major, + tdx_car_hw_tag.ver_minor, + (char)tdx_car_hw_tag.ver_assembly + + 'A'); + + env_set("carrier_serial#", tdx_car_serial_str); + printf("Carrier: Toradex %s %s, Serial# %s\n", + tdx_carrier_name, + tdx_car_rev_str, + tdx_car_serial_str); + } +#endif } /* |