Hi Everyone,
I am working on a custom design that is based upon the SabreSD reference design. We are running Android Lollipop on this device. We were previously running Android Kitkat on it and we were using the procedure described in the following to change the MAC address on each of our units.
How do I change the MAC address on a system that is base on the SabreSD reference design?
In the above discussion the imxotp command is used in uboot to blow the appropriate fuses. This command does not appear to be available in the version of uboot that came with Android lollipop (U-Boot 2014.04). How do I change the MAC address without the imxotp command? Alternatively, is there a way to add the imxopt command to uboot in our build?
Thanks for any help.
Jim Pieterick
Solved! Go to Solution.
Hi Everyone,
We don't need to write any new software to program the fuses for the MAC address on the i.MX6. The answer to this question was given to me by Jason Moss:
____________________
James,
Attached is an example of how to blow fuses using the Kernel sysfs driver, or using the memory commands in U-boot.
‘imxotp’ is deprecated in favor of the more generic “fuse” command:
https://community.freescale.com/message/369178
https://boundarydevices.com/fuse-command/
To use the fuse command, you will need to define CONFIG_CMD_FUSE and CONFIG_CMD_OCOTP to include these in the u-boot source. (see ./include/configs/imx6qarm2.h for example).
Thanks,
Jason Moss
Field Applications Engineer (i.MX, Vybrid, Layerscape)
Phone: 1-317-908-5314
Email: jason.moss@nxp.com
______________________
After reading through the links in the above email I found out how to replace the "imxotp" commands from the previous thread with fuse commands:
How do I change the MAC address on a system that is base on the SabreSD reference design?
If I want to program MAC address 10:98:76:54:32:10 into my i.mx6 Android device, as in the above thread,
I enter the following uboot commands:
in Android Kitkat:
imxotp blow --force 23 1098
imxotp blow --force 22 76543210
In Android Lollipop:
fuse prog 4 3 0x1098
fuse prog 4 2 0x76543210
Answer 'y' when asked to verify that this is what you want to do.
JamesPieterick
Hi Everyone,
We don't need to write any new software to program the fuses for the MAC address on the i.MX6. The answer to this question was given to me by Jason Moss:
____________________
James,
Attached is an example of how to blow fuses using the Kernel sysfs driver, or using the memory commands in U-boot.
‘imxotp’ is deprecated in favor of the more generic “fuse” command:
https://community.freescale.com/message/369178
https://boundarydevices.com/fuse-command/
To use the fuse command, you will need to define CONFIG_CMD_FUSE and CONFIG_CMD_OCOTP to include these in the u-boot source. (see ./include/configs/imx6qarm2.h for example).
Thanks,
Jason Moss
Field Applications Engineer (i.MX, Vybrid, Layerscape)
Phone: 1-317-908-5314
Email: jason.moss@nxp.com
______________________
After reading through the links in the above email I found out how to replace the "imxotp" commands from the previous thread with fuse commands:
How do I change the MAC address on a system that is base on the SabreSD reference design?
If I want to program MAC address 10:98:76:54:32:10 into my i.mx6 Android device, as in the above thread,
I enter the following uboot commands:
in Android Kitkat:
imxotp blow --force 23 1098
imxotp blow --force 22 76543210
In Android Lollipop:
fuse prog 4 3 0x1098
fuse prog 4 2 0x76543210
Answer 'y' when asked to verify that this is what you want to do.
JamesPieterick
Hi Jim
one can look at cmd_otp.c :
uboot-imx.git - Freescale i.MX u-boot Tree
or attached bare metal sdk example (in ..sdk/drivers/ocotp)
Best regards
igor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
Igor,
I was hoping for a more specific answer to my question. Referring to a bunch of undocumented code with no explanation of how to use it is not very helpful. Are you saying that there is no facility within Android Lollipop that can be used for programming the MAC address into the processor like there was in Android Kitkat? That seems like a pretty major omission. Am I going to have to build something to work around this omission?
What are you suggesting with the above code? How would you use it?
Thanks,
Jim Pieterick
Hi Jim
uboot code has comments inside, i.e. "help" how to use it.
Attached code can be used for developing own application in any
suitable IDE, for example Eclipse:
https://community.freescale.com/docs/DOC-103736
Description of code is given in attached document
Chapter 25 Configuring the OCOTP Driver.
Best regards
igor