[PATCH 1/3] board: dhelectronics: Move dh_add_item_number_and_serial_to_env() to common code

Marek Vasut marek.vasut at mailbox.org
Thu Oct 23 23:48:24 CEST 2025


Move dh_add_item_number_and_serial_to_env() to common code, so it
can be used by both STM32MP13xx and iMX8MP DHSOM. No functional
change.

Signed-off-by: Marek Vasut <marek.vasut at mailbox.org>
---
Cc: Patrice Chotard <patrice.chotard at foss.st.com>
Cc: Patrick Delaunay <patrick.delaunay at foss.st.com>
Cc: Tom Rini <trini at konsulko.com>
Cc: u-boot at dh-electronics.com
Cc: u-boot at lists.denx.de
Cc: uboot-stm32 at st-md-mailman.stormreply.com
---
 board/dhelectronics/common/dh_common.c        | 37 +++++++++++++++++++
 board/dhelectronics/common/dh_common.h        |  9 +++++
 .../dh_imx8mp/imx8mp_dhcom_pdk2.c             | 37 -------------------
 3 files changed, 46 insertions(+), 37 deletions(-)

diff --git a/board/dhelectronics/common/dh_common.c b/board/dhelectronics/common/dh_common.c
index 6101ecc7ebc..e7ee23aa8ce 100644
--- a/board/dhelectronics/common/dh_common.c
+++ b/board/dhelectronics/common/dh_common.c
@@ -246,3 +246,40 @@ __weak int dh_setup_mac_address(struct eeprom_id_page *eip)
 	printf("%s: Unable to set mac address!\n", __func__);
 	return -ENXIO;
 }
+
+void dh_add_item_number_and_serial_to_env(struct eeprom_id_page *eip)
+{
+	char *item_number_env;
+	char item_number[8];	/* String with 7 characters + string termination */
+	char *serial_env;
+	char serial[10];	/* String with 9 characters + string termination */
+	int ret;
+
+	ret = dh_get_value_from_eeprom_buffer(DH_ITEM_NUMBER, item_number, sizeof(item_number),
+					      eip);
+	if (ret) {
+		printf("%s: Unable to get DHSOM item number from EEPROM ID page! ret = %d\n",
+		       __func__, ret);
+	} else {
+		item_number_env = env_get("dh_som_item_number");
+		if (!item_number_env)
+			env_set("dh_som_item_number", item_number);
+		else if (strcmp(item_number_env, item_number))
+			printf("Warning: Environment dh_som_item_number differs from EEPROM ID page value (%s != %s)\n",
+			       item_number_env, item_number);
+	}
+
+	ret = dh_get_value_from_eeprom_buffer(DH_SERIAL_NUMBER, serial, sizeof(serial),
+					      eip);
+	if (ret) {
+		printf("%s: Unable to get DHSOM serial number from EEPROM ID page! ret = %d\n",
+		       __func__, ret);
+	} else {
+		serial_env = env_get("dh_som_serial_number");
+		if (!serial_env)
+			env_set("dh_som_serial_number", serial);
+		else if (strcmp(serial_env, serial))
+			printf("Warning: Environment dh_som_serial_number differs from EEPROM ID page value (%s != %s)\n",
+			       serial_env, serial);
+	}
+}
diff --git a/board/dhelectronics/common/dh_common.h b/board/dhelectronics/common/dh_common.h
index c4693c60618..b4f31bdb88e 100644
--- a/board/dhelectronics/common/dh_common.h
+++ b/board/dhelectronics/common/dh_common.h
@@ -107,7 +107,16 @@ int dh_get_value_from_eeprom_buffer(enum eip_request_values request, u8 *data, i
 
 /*
  * dh_setup_mac_address - Try to get MAC address from various locations and write it to env
+ * @eip: ID EEPROM buffer
  *
  * Return: 0 if OK, other value on error
  */
 int dh_setup_mac_address(struct eeprom_id_page *eip);
+
+/*
+ * dh_add_item_number_and_serial_to_env - Try to get DH IDs from WLP write them to env
+ * @eip: ID EEPROM buffer
+ *
+ * Return: 0 if OK, other value on error
+ */
+void dh_add_item_number_and_serial_to_env(struct eeprom_id_page *eip);
diff --git a/board/dhelectronics/dh_imx8mp/imx8mp_dhcom_pdk2.c b/board/dhelectronics/dh_imx8mp/imx8mp_dhcom_pdk2.c
index 3a890c5920c..5c35a5bf447 100644
--- a/board/dhelectronics/dh_imx8mp/imx8mp_dhcom_pdk2.c
+++ b/board/dhelectronics/dh_imx8mp/imx8mp_dhcom_pdk2.c
@@ -116,43 +116,6 @@ int dh_setup_mac_address(struct eeprom_id_page *eip)
 	return ret;
 }
 
-void dh_add_item_number_and_serial_to_env(struct eeprom_id_page *eip)
-{
-	char *item_number_env;
-	char item_number[8];	/* String with 7 characters + string termination */
-	char *serial_env;
-	char serial[10];	/* String with 9 characters + string termination */
-	int ret;
-
-	ret = dh_get_value_from_eeprom_buffer(DH_ITEM_NUMBER, item_number, sizeof(item_number),
-					      eip);
-	if (ret) {
-		printf("%s: Unable to get DHSOM item number from EEPROM ID page! ret = %d\n",
-		       __func__, ret);
-	} else {
-		item_number_env = env_get("dh_som_item_number");
-		if (!item_number_env)
-			env_set("dh_som_item_number", item_number);
-		else if (strcmp(item_number_env, item_number))
-			printf("Warning: Environment dh_som_item_number differs from EEPROM ID page value (%s != %s)\n",
-			       item_number_env, item_number);
-	}
-
-	ret = dh_get_value_from_eeprom_buffer(DH_SERIAL_NUMBER, serial, sizeof(serial),
-					      eip);
-	if (ret) {
-		printf("%s: Unable to get DHSOM serial number from EEPROM ID page! ret = %d\n",
-		       __func__, ret);
-	} else {
-		serial_env = env_get("dh_som_serial_number");
-		if (!serial_env)
-			env_set("dh_som_serial_number", serial);
-		else if (strcmp(serial_env, serial))
-			printf("Warning: Environment dh_som_serial_number differs from EEPROM ID page value (%s != %s)\n",
-			       serial_env, serial);
-	}
-}
-
 int board_late_init(void)
 {
 	u8 eeprom_buffer[DH_EEPROM_ID_PAGE_MAX_SIZE] = { 0 };
-- 
2.51.0



More information about the U-Boot mailing list