]> git.karo-electronics.de Git - karo-tx-uboot.git/blobdiff - net/bootp.c
dm: eth: Add support for ethprime env var
[karo-tx-uboot.git] / net / bootp.c
index d4c86cf1794e7d78feafc837195f41a596a7dd6d..5e835a31ad786ada52102b23907777d662046f3f 100644 (file)
@@ -17,7 +17,7 @@
 #ifdef CONFIG_STATUS_LED
 #include <status_led.h>
 #endif
-#ifdef CONFIG_BOOTP_RANDOM_DELAY
+#if defined(CONFIG_BOOTP_RANDOM_DELAY) || defined(CONFIG_BOOTP_RANDOM_ID)
 #include "net_rand.h"
 #endif
 
@@ -145,8 +145,6 @@ static void BootpCopyNetParams(struct Bootp_t *bp)
        if (tmp_ip != 0)
                NetCopyIP(&NetServerIP, &bp->bp_siaddr);
        memcpy(NetServerEther, ((struct ethernet_hdr *)NetRxPacket)->et_src, 6);
-#endif
-       NetCopyIP(&NetOurIP, &bp->bp_yiaddr);
        if (strlen(bp->bp_file) > 0)
                copy_filename(BootFile, bp->bp_file, sizeof(BootFile));
 
@@ -158,6 +156,8 @@ static void BootpCopyNetParams(struct Bootp_t *bp)
         */
        if (*BootFile)
                setenv("bootfile", BootFile);
+#endif
+       NetCopyIP(&NetOurIP, &bp->bp_yiaddr);
 }
 
 static int truncate_sz(const char *name, int maxlen, int curlen)
@@ -725,6 +725,9 @@ BootpRequest(void)
         *      Bootp ID is the lower 4 bytes of our ethernet address
         *      plus the current time in ms.
         */
+#ifdef CONFIG_BOOTP_RANDOM_ID
+       BootpID = rand();
+#else
        BootpID = ((ulong)NetOurEther[2] << 24)
                | ((ulong)NetOurEther[3] << 16)
                | ((ulong)NetOurEther[4] << 8)
@@ -732,6 +735,7 @@ BootpRequest(void)
        BootpID += get_timer(0);
        BootpID = htonl(BootpID);
        bootp_add_id(BootpID);
+#endif
        NetCopyLong(&bp->bp_id, &BootpID);
 
        /*