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

Reply via email to