The env variable "SN" is used to store the serial number on DH electronics SoMs. New SoMs will use the variable "dh_som_serial_number". To ensure compatibility, these env variables are synchronized. This is achieved using callback functions.
Signed-off-by: Christoph Niedermaier <cniederma...@dh-electronics.com> --- Cc: "NXP i.MX U-Boot Team" <uboot-...@nxp.com> Cc: Marek Vasut <ma...@denx.de> Cc: Fabio Estevam <feste...@gmail.com> Cc: Stefano Babic <sba...@denx.de> Cc: Tom Rini <tr...@konsulko.com> Cc: u-b...@dh-electronics.com --- V3: - Add this patch to the series V4: - Remove the recursion prevention from the callback functions => The recursion prevention will be generally solved in the callback function call in a separate patch --- board/dhelectronics/common/dh_common.c | 17 +++++++++++++++++ configs/dhsom.config | 1 + 2 files changed, 18 insertions(+) diff --git a/board/dhelectronics/common/dh_common.c b/board/dhelectronics/common/dh_common.c index 0bf1f2f8c1..4dff5f7b16 100644 --- a/board/dhelectronics/common/dh_common.c +++ b/board/dhelectronics/common/dh_common.c @@ -11,6 +11,23 @@ #include "dh_common.h" +static int on_dh_som_serial_number(const char *name, const char *value, enum env_op op, + int flags) +{ + env_set("SN", value); + return 0; +} + +U_BOOT_ENV_CALLBACK(dh_som_serial_number, on_dh_som_serial_number); + +static int on_SN(const char *name, const char *value, enum env_op op, int flags) +{ + env_set("dh_som_serial_number", value); + return 0; +} + +U_BOOT_ENV_CALLBACK(SN, on_SN); + bool dh_mac_is_in_env(const char *env) { unsigned char enetaddr[6]; diff --git a/configs/dhsom.config b/configs/dhsom.config index fc76632630..380bedaa5d 100644 --- a/configs/dhsom.config +++ b/configs/dhsom.config @@ -49,6 +49,7 @@ CONFIG_CMD_UUID=y CONFIG_CMD_WGET=y CONFIG_CMD_XXD=y CONFIG_CRC32_VERIFY=y +CONFIG_ENV_CALLBACK_LIST_STATIC="dh_som_serial_number:dh_som_serial_number,SN:SN," CONFIG_HASH_VERIFY=y CONFIG_MD5SUM_VERIFY=y CONFIG_SHA1SUM_VERIFY=y -- 2.30.2