I have a Gumstix Overo WaterSTORM COM, running a Linaro setup off an SD card. It is using the smsc911x ethernet driver.

I want to set the first ethernet interface's MAC address on boot, not via /etc/network/interfaces.

I can set u-boots ethaddr environment variable. However, when I do this, I get the following message on boot:

Net:   smc911x-0
Warning: smc911x-0 MAC addresses don't match:
Address in SROM is         00:15:c9:28:fe:08
Address in environment is  fa:fa:fa:11:22:11

Then the SROM address is used.

I want to use the address from the environment (or have the driver read the environment instead of the SROM).

How do I do this? How can I reprogram the EEPROM with an explicitly chosen MAC address?