diff options
author | wdenk <wdenk> | 2004-03-14 15:06:13 +0000 |
---|---|---|
committer | wdenk <wdenk> | 2004-03-14 15:06:13 +0000 |
commit | 3d3befa754fedb320f779320ac0ab11deb0a6275 (patch) | |
tree | e017681961bbc93b2145f929fe95c8e2f47a1726 /net | |
parent | 4d13cbad1c81ad7901151fec381bae8c30f4338a (diff) | |
download | u-boot-imx-3d3befa754fedb320f779320ac0ab11deb0a6275.zip u-boot-imx-3d3befa754fedb320f779320ac0ab11deb0a6275.tar.gz u-boot-imx-3d3befa754fedb320f779320ac0ab11deb0a6275.tar.bz2 |
* Patch by Philippe Robin, 09 Mar 2004:
Added ARM Integrator AP, CP and Versatile PB926EJ-S Reference
Platform support.
* Patch by Masami Komiya, 08 Mar 2004:
Don't overwrite server IP address or boot file name
when the boot server does not return values
* Patch by listmember@orkun.us, 5 Mar 2004:
Removed compile time restriction on CFG_I2C_SPEED for DS1338 RTC
Diffstat (limited to 'net')
-rw-r--r-- | net/bootp.c | 9 | ||||
-rw-r--r-- | net/net.c | 7 |
2 files changed, 11 insertions, 5 deletions
diff --git a/net/bootp.c b/net/bootp.c index b760b88..9eae34f 100644 --- a/net/bootp.c +++ b/net/bootp.c @@ -117,10 +117,15 @@ static int BootpCheckPkt(uchar *pkt, unsigned dest, unsigned src, unsigned len) */ static void BootpCopyNetParams(Bootp_t *bp) { + IPaddr_t tmp_ip; + NetCopyIP(&NetOurIP, &bp->bp_yiaddr); - NetCopyIP(&NetServerIP, &bp->bp_siaddr); + NetCopyIP(&tmp_ip, &bp->bp_siaddr); + if (tmp_ip != 0) + NetCopyIP(&NetServerIP, &bp->bp_siaddr); memcpy (NetServerEther, ((Ethernet_t *)NetRxPkt)->et_src, 6); - copy_filename (BootFile, bp->bp_file, sizeof(BootFile)); + if (strlen(bp->bp_file) > 0) + copy_filename (BootFile, bp->bp_file, sizeof(BootFile)); debug ("Bootfile: %s\n", BootFile); @@ -323,7 +323,7 @@ restart: * IP addr assigned to us by the BOOTP / RARP server */ NetOurIP = 0; - NetServerIP = 0; + NetServerIP = getenv_IPaddr ("serverip"); break; default: break; @@ -354,7 +354,7 @@ restart: case DHCP: /* Start with a clean slate... */ NetOurIP = 0; - NetServerIP = 0; + NetServerIP = getenv_IPaddr ("serverip"); DhcpRequest(); /* Basically same as BOOTP */ break; #endif /* CFG_CMD_DHCP */ @@ -832,7 +832,8 @@ NetReceive(volatile uchar * pkt, int len) printf("invalid RARP header\n"); } else { NetCopyIP(&NetOurIP, &arp->ar_data[16]); - NetCopyIP(&NetServerIP, &arp->ar_data[ 6]); + if (NetServerIP == 0) + NetCopyIP(&NetServerIP, &arp->ar_data[ 6]); memcpy (NetServerEther, &arp->ar_data[ 0], 6); (*packetHandler)(0,0,0,0); |