
On 2/14/08, David Hawkins dwh@ovro.caltech.edu wrote:
Jon Smirl wrote:
I'm new to working on low level code like u-boot. Something I don't understand is why things like the Ethernet address are stored in eeprom instead of flash. Is this something to do with how boards are manufactured? From a high level perspective it doesn't seem to matter if eeprom or flash is used.
I think you'll find varied implementations.
For example, on the MPC8349EA-MDS-PB boards, the MAC addresses are stored in U-Boot environment variables and they're written on the CPU heatsink base.
If you erase the Flash, then poof, gone are your MAC addresses. When you Flash a new version of U-Boot you need to set the IP addresses and save the environment to the Flash.
I would imagine some designers prefer saving these type of parameters to an EEPROM, independent of the application (bootloader, kernel, filesystem, etc) flash. This would cut down on the support calls from customers who erase their flash and forget their MAC addresses (or can't see the MAC labels if the units are installed).
How are the MAC addresses assigned? So if I order ten Ethernet chips from Digikey will they come with something from the manufacturer indicating which MAC addresses to use? Or do I need to register as a vendor and get my own block of addresses?
So, as the designer, its up to you. But keep in mind that you want to make it hard for a customer to screw up, so a separate EEPROM could be a good choice.
Cheers, Dave