How to change the MAC Address in Android Lollipop

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

How to change the MAC Address in Android Lollipop

Jump to solution
2,946 Views
jamespieterick
Contributor IV

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

Labels (2)
0 Kudos
Reply
1 Solution
1,803 Views
jamespieterick
Contributor IV

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

View solution in original post

0 Kudos
Reply
4 Replies
1,804 Views
jamespieterick
Contributor IV

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

0 Kudos
Reply
1,803 Views
igorpadykov
NXP Employee
NXP Employee

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!

-----------------------------------------------------------------------------------------------------------------------

0 Kudos
Reply
1,803 Views
jamespieterick
Contributor IV

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

0 Kudos
Reply
1,803 Views
igorpadykov
NXP Employee
NXP Employee

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

0 Kudos
Reply