2025-10-04 1:51 AM
Dear ST Team,
We have recently completed production on our custom STM32MP255-based hardware. During validation, we encountered an issue with the Ethernet MAC address handling.
We have successfully programmed the MAC addresses into OTP (via the NVMEM interface), and confirmed the values are correctly stored in the fuses (words 247–249). However, both U-Boot and Linux are not retrieving the MAC addresses from OTP automatically. Instead, we observe errors such as:
Loading Environment from MMC... OK
In: serial
Out: serial
Err: serial
Net:
Error: eth2@482d0000 address not set.
Error: eth1@482c0000 address not set.
Error: eth2@482d0000 address not set.
No ethernet found.
Card did not respond to voltage select! : -110
No EFI system partition
No EFI system partition
Failed to persist EFI variables
Error: eth2@482d0000 address not set.
Error: eth1@482c0000 address not set.
Hit any key to stop autoboot: 0
STM32MP> fuse read 0 247
Reading bank 0:
Word 0x000000f7: cd641f8c
STM32MP> fuse read 0 248
Reading bank 0:
Word 0x000000f8: 1f8c0270
STM32MP> fuse read 0 249
Reading bank 0:
Word 0x000000f9: 0370cd64
STM32MP>
Solved! Go to Solution.
2025-10-06 11:19 PM
Hello @asadullah4571 ,
This first point concerning the swith case is indeed really strange, certainly a miss. Can you try to patch and add your own case for CPU_STM32MP255Xxx (I do not know your exact revision). I think this is a miss on our side.
Kind regards,
Erwan.
2025-10-06 8:35 AM
Hello @asadullah4571 ,
Could you please add a log trace in the following U-Boot file: arch/arm/mach-stm32mp/soc.c in function setup_mac_address(..)
The idea would just be to ensure that you are passing through it, and check what are the results got from this function.
Kind regards,
Erwan.
2025-10-06 10:18 PM - edited 2025-10-06 10:41 PM
Hi @Erwan SZYMANSKI
I made the changes on the function setup_mac_address(..), then i got the log trace. if any changes required for logs please let me know , will do changes. and there is more thing that inside the int get_eth_nb(void)" there is no information about the SOC "stm32mp255 series " here is content
here is the logs and changes
setup_mac_address: entering setup_mac_address()
setup_mac_address: detected 0 ethernet interfaces
Net:
Error: eth2@482d0000 address not set.
Error: eth1@482c0000 address not set.
Error: eth2@482d0000 address not set.
No ethernet found.
Card did not respond to voltage select! : -110
No EFI system partition
No EFI system partition
Failed to persist EFI variables
Error: eth2@482d0000 address not set.
Error: eth1@482c0000 address not set.
Hit any key to stop autoboot: 0
Boot over usb0!
DFU alt info setting: done
2025-10-06 11:19 PM
Hello @asadullah4571 ,
This first point concerning the swith case is indeed really strange, certainly a miss. Can you try to patch and add your own case for CPU_STM32MP255Xxx (I do not know your exact revision). I think this is a miss on our side.
Kind regards,
Erwan.
2025-10-06 11:49 PM
Hi @Erwan SZYMANSKI
Thanks for the quick reply,
I already did from my side. and i got the Proper result.
Here i attached the Patch file, and it is works well.
setup_mac_address: entering setup_mac_address()
setup_mac_address: detected 2 ethernet interfaces
setup_mac_address: nb_otp=3 (max=8)
setup_mac_address: misc_read() success, dumping raw otp values:
otp[0] = 0xXXXX
otp[1] = 0xXXXX
otp[2] = 0xXXXX
setup_mac_address: candidate MAC for eth0 = XX:XX:XX:XX:XX:XX
setup_mac_address: successfully set eth0 MAC to XX:XX:XX:XX:XX:XX
setup_mac_address: candidate MAC for eth1 = XX:XX:XX:XX:XX:XX
setup_mac_address: successfully set eth1 MAC to XX:XX:XX:XX:XX:XX
setup_mac_address: finished successfully
Net: eth1: eth1@482c0000, eth0: eth2@482d0000
Card did not respond to voltage select! : -110
No EFI system partition
No EFI system partition
Failed to persist EFI variables
Hit any key to stop autoboot: 0
STM32MP>
Thanks again @Erwan SZYMANSKI .
2025-10-06 11:52 PM
Hi @asadullah4571 ,
Thanks a lot for this quick test. We will correct this on our side for the upstream version.
Kind regards,
Erwan.