
On Sun, Apr 24, 2011 at 7:50 PM, Wolfgang Denk wd@denx.de wrote:
Dear Michael Spang,
In message 1300391223-11879-3-git-send-email-mspang@csclub.uwaterloo.ca you wrote:
The MVGBE driver either gets the MAC from the environment, or invents one. This allows the driver to leave the existing address alone in case it is initialized before U-Boot starts.
Who or what would be doing that?
The manufacturer's bootloader runs first, and cannot easily be replaced. So U-Boot is loaded second, after the MAC is already set.
while (!eth_getenv_enetaddr(s, dev->enetaddr)) { +#if defined(CONFIG_PRESERVE_LOCAL_MAC)
- port_uc_addr_get(dmvgbe->regs, dmvgbe->dev.enetaddr);
+#else
For consistency, should this not be
port_uc_addr_get(dmvgbe->regs, dev->enetaddr);
?
Yes.
/* Generate Private MAC addr if not set */ dev->enetaddr[0] = 0x02; dev->enetaddr[1] = 0x50; @@ -734,6 +753,7 @@ error1: dev->enetaddr[4] = get_random_hex(); dev->enetaddr[5] = get_random_hex(); #endif +#endif eth_setenv_enetaddr(s, dev->enetaddr); }
And please add documentation for the new CONFIG_PRESERVE_LOCAL_MAC to the README.
Ok I'll add:
CONFIG_PRESERVE_LOCAL_MAC
If no MAC address is set in the environment, then preserve the ethernet interface's current MAC address. Used if the MAC is configured before U-Boot is loaded.
Thanks, Michael