summaryrefslogtreecommitdiff
path: root/board
diff options
context:
space:
mode:
authorMarek Vasut <[email protected]>2025-10-23 23:48:24 +0200
committerTom Rini <[email protected]>2025-11-17 10:45:11 -0600
commitc5c5d8a4f847e22f6c6b22e6d4ff9abfd2509b00 (patch)
tree81eb2889fcffd16b35239263fedc4ac9c6a9c708 /board
parentda9e7637df05c62d59fcfdb2c72bfd92bd7da92b (diff)
board: dhelectronics: Move dh_add_item_number_and_serial_to_env() to common code
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 <[email protected]> Reviewed-by: Patrice Chotard <[email protected]>
Diffstat (limited to 'board')
-rw-r--r--board/dhelectronics/common/dh_common.c37
-rw-r--r--board/dhelectronics/common/dh_common.h9
-rw-r--r--board/dhelectronics/dh_imx8mp/imx8mp_dhcom_pdk2.c37
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 };