Hello,
I'm working on the processor IMX8DQXPRM. I have programmed the MAC Address to the fuses. When i boot the system, uboot complains that MAC Address is not set therefore, using a random address.
Is it right in understanding that the ethaddr variable of Uboot conveys the MAC address to Linux kernel?
Is there some kind of a CONFIG flag that needs to be set so that the Uboot's ethaddr variable reads the address from the fuses?
Is there some change in device tree to be made?
Dear Mr. Abel,
I am using the 4.14.78_1.0.0 Release, and I looked in it to get the answers for your questions.
Yes, the ethaddr variable of U-boot conveys the Mac address to Linux
In case a valid MAC address is programmed through the fuses, Uboot’s ethaddr variable reads it by default from fuses.
Below is the fuse map for MAC address from the reference manual of i.MX8QXP/DXP :
Please note that writing fuses is an irreversible one time operation for all the 32 bits of a FUSE ROW.
No changes need to be done in device tree, as U-boot is the one doing the fixups according to the configuration in : common/fdt_support.c
I have tried to edit the defconfig file and imx8mm_evk.h to add ethaddr and ipaddr... but I can't see them after I input printenv command.I want to read the MAC address from efuse and set the default environment.What should I do ? Can I try to edit a function to read the efuse value and return the MAC address ,and then use run_command("setenv xx:xx:....",0) to make it ?