[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 Nov 17 08:09:48 CET 2025
On 10/27/25 18:12, Patrice CHOTARD wrote:
>
>
> 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
Applied to u-boot-stm32/master
Thanks
Patrice
More information about the U-Boot
mailing list