[PATCH 1/3] board: dhelectronics: Move dh_add_item_number_and_serial_to_env() to common code
Patrice CHOTARD
patrice.chotard at foss.st.com
Mon Oct 27 18:12:06 CET 2025
On 10/23/25 23:48, Marek Vasut wrote:
> 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 };
Hi
Reviewed-by: Patrice Chotard <patrice.chotard at foss.st.com>
Thanks
Patrice
More information about the U-Boot
mailing list