]> git.kernelconcepts.de Git - karo-tx-uboot.git/blobdiff - doc/README.enetaddr
dm: Adjust lists_bind_fdt() to return the bound device
[karo-tx-uboot.git] / doc / README.enetaddr
index 94d800a02ae0ff437746030587fbc65a75d49276..1eaeaf9416efb5c76a81a202390f4bf110b11adc 100644 (file)
@@ -32,12 +32,18 @@ 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.
-
-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.
+3. The environment variable will be compared to the driver initialized
+   struct eth_device->enetaddr. If they differ, a warning is printed, and the
+   environment variable will be used unchanged.
+   If the environment variable is not set, it will be initialized from
+   eth_device->enetaddr, and a warning will be printed.
+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)
+
+Previous behavior had the MAC address always being programmed into hardware
+in the device's init() function.
 
 -------
  Usage