mirror of
https://xff.cz/git/u-boot/
synced 2025-09-01 16:52:14 +02:00
Program net device MAC addresses after initializing
Add a new function to the eth_device struct for programming a network controller's hardware address. After all network devices have been initialized and the proper MAC address for each has been determined, make a device driver call to program the address into the device. Only device instances with valid unicast addresses will be programmed. Signed-off-by: Ben Warren <biggerbadderben@gmail.com> Acked-by: Detlev Zundel <dzu@denx.de> Tested-by: Prafulla Wadaskar <prafulla@marvell.com> Tested-by: Heiko Schocher <hs@denx.de> Tested-by: Thomas Chou <thomas@wytron.com.tw>
This commit is contained in:
@@ -33,11 +33,13 @@ Correct flow of setting up the MAC address (summarized):
|
||||
1. Read from hardware in initialize() function
|
||||
2. Read from environment in net/eth.c after initialize()
|
||||
3. Give priority to the value in the environment if a conflict
|
||||
4. Program hardware in the device's init() function.
|
||||
4. Program the address into hardware if the following conditions are met:
|
||||
a) The relevant driver has a 'write_addr' function
|
||||
b) The user hasn't set an 'ethmacskip' environment variable
|
||||
c) The address is valid (unicast, not all-zeros)
|
||||
|
||||
If somebody wants to subvert the design philosophy, this can be done
|
||||
in the board-specific board_eth_init() function by calling eth_init()
|
||||
after all the NICs have been registered.
|
||||
Previous behavior had the MAC address always being programmed into hardware
|
||||
in the device's init() function.
|
||||
|
||||
-------
|
||||
Usage
|
||||
|
Reference in New Issue
Block a user