
-----Original Message----- From: u-boot-users-bounces@lists.sourceforge.net [mailto:u-boot-users-bounces@lists.sourceforge.net] On Behalf Of NZG Sent: Thursday, June 08, 2006 17:32 To: u-boot-users@lists.sourceforge.net Subject: [U-Boot-Users] bootloader MAC
On Thursday 08 June 2006 4:40 pm, Wolfgang Denk wrote:
Nobody is talking about about dynamical assignemnt.
It's just that the *Linux* *driver* is responsible to
initialize it,
no matter which boot loader you use and what the boot
loader is doing
or not doing.
In some cases that would amount to dynamic reassignment, such as in the Coldfire fec, which does not provide the typical load from eeprom functionality for it's MAC. It must be assigned by software somewhere, I am of the opinion that the bootloader should do it. Why? Because when we ship a board, we have to program the bootloader into it so customers can load an OS, the MAC goes into a protected region of flash, which it's not likely to be accidentally removed. We buy chunks of MAC addresses and assign them to boards we ship in quantity. I look at the bootloader like the BIOS of a PC without the system calls. It initializes the hardware to a minimal point (you've at least got to turn on the DRAM, an IMHO make sure the MAC is valid) and loads the OS. The OS will probably change with time, but the BIOS/bootloader is less likely too.
On PPC we have the MAC proframmed in FLASH as a u-boot evironment variable. THis is in turn passed to the kernel on th ebd_T struct, and the *Linux* driver initializes the MAC on the ethernety interface when the ethernet driver is initialized.
Do the same. Pass the MAC to the kernel and let the driver init set the MAC to the hardware.