Skip to content
Snippets Groups Projects
Commit abb274b1 authored by Tobias Kahlki's avatar Tobias Kahlki Committed by Jonas Höppner
Browse files

[CMD][EEPROM] Add first draft of EEPROM Manager commands

parent 284d792f
No related branches found
No related tags found
No related merge requests found
...@@ -2367,5 +2367,15 @@ config CMD_SECO_SYSDATA ...@@ -2367,5 +2367,15 @@ config CMD_SECO_SYSDATA
help help
No help for this option No help for this option
config CMD_SECO_EEPROM_MANAGER
bool "Enable SECO EEPROM Manager commands"
depends on SECO_EEPROM_MANAGER
default y
help
The SECO EEPROM Manager can be used to save/load device specific
data in a dedicated I2C EEPROM. It uses a pre-defined
data-structure with CRC calculation.
endmenu endmenu
...@@ -25,6 +25,7 @@ obj-$(CONFIG_SECO_ENV_MANAGER) += seco_config_lib.o seco_config_imx8.o ...@@ -25,6 +25,7 @@ obj-$(CONFIG_SECO_ENV_MANAGER) += seco_config_lib.o seco_config_imx8.o
endif endif
obj-$(CONFIG_CMD_SECO_SYSDATA) += sysdata.o obj-$(CONFIG_CMD_SECO_SYSDATA) += sysdata.o
obj-$(CONFIG_CMD_SECO_EEPROM_MANAGER) += seco_eeprom_manager.o
# command # command
obj-$(CONFIG_CMD_ACPI) += acpi.o obj-$(CONFIG_CMD_ACPI) += acpi.o
......
// SPDX-License-Identifier: GPL-2.0+
/*
* (C) Copyright 2024 SECO
*
* Tobias Kahlki <tobias.kahlki@seco.com>
*/
#include <common.h>
#include <command.h>
#include <stdlib.h>
#include <errno.h>
#include "../board/seco/common/seco_eeprom_manager.h"
#define DEBUG 1
/*
* Command Functions
*/
static void do_seco_eeprom_manager_get(int argc, char *const *argv[])
{
unsigned long i2c_bus = 0, i2c_addr = 0, value = 0;
char *end = NULL;
errno = 0;
value = simple_strtoul(argv[2], &end, 0);
value = simple_strtoul(argv[3], &end, 0);
seco_eeprom_init(i2c_bus, i2c_addr);
seco_eeprom_print_all();
}
static void do_seco_eeprom_manager_set(int argc, char *const *argv[])
{
/* @TODO */
}
static int do_seco_eeprom_manager(struct cmd_tbl *cmdtp, int flag, int argc, char *const argv[])
{
#if DEBUG
for(int i = 0; i < argc; ++i)
printf("argv[%d]: %s", i, argv[i]);
#endif
if (argc < 3)
return CMD_RET_USAGE;
if (!strcmp(argv[1], "get"))
do_seco_eeprom_manager_get(argc, &argv);
else if (!strcmp(argv[1], "set"))
do_seco_eeprom_manager_set(argc, &argv);
else
return CMD_RET_USAGE;
return 0;
}
#define CMD_DESC "SECO EEPROM Manager"
#define CMD_HELP "get <I2C_BUS> <I2C_ADDR> <UID>\n" \
" set <I2C_BUS> <I2C_ADDR> <UID> <VALUE>\n" \
U_BOOT_CMD(
seco_eeprom_manager, 3, 0, do_seco_eeprom_manager,
CMD_DESC,
CMD_HELP
);
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please to comment