projects
/
oweals
/
u-boot.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge with git://git.kernel.org/pub/scm/boot/u-boot/u-boot.git#mpc83xx
[oweals/u-boot.git]
/
net
/
net.c
diff --git
a/net/net.c
b/net/net.c
index d1a15e2a096d81a07a2e5c8fcb6d8f9240713784..506203761f43bb54d4115f3715b50b807a35b423 100644
(file)
--- a/
net/net.c
+++ b/
net/net.c
@@
-222,8
+222,10
@@
void ArpRequest (void)
(NetOurIP & NetOurSubnetMask)) {
if (NetOurGatewayIP == 0) {
puts ("## Warning: gatewayip needed but not set\n");
(NetOurIP & NetOurSubnetMask)) {
if (NetOurGatewayIP == 0) {
puts ("## Warning: gatewayip needed but not set\n");
+ NetArpWaitReplyIP = NetArpWaitPacketIP;
+ } else {
+ NetArpWaitReplyIP = NetOurGatewayIP;
}
}
- NetArpWaitReplyIP = NetOurGatewayIP;
} else {
NetArpWaitReplyIP = NetArpWaitPacketIP;
}
} else {
NetArpWaitReplyIP = NetArpWaitPacketIP;
}
@@
-461,7
+463,7
@@
restart:
/*
* Echo the inverted link state to the fault LED.
*/
/*
* Echo the inverted link state to the fault LED.
*/
- if(miiphy_link(CFG_FAULT_MII_ADDR)) {
+ if(miiphy_link(
eth_get_dev()->name,
CFG_FAULT_MII_ADDR)) {
status_led_set (STATUS_LED_RED, STATUS_LED_OFF);
} else {
status_led_set (STATUS_LED_RED, STATUS_LED_ON);
status_led_set (STATUS_LED_RED, STATUS_LED_OFF);
} else {
status_led_set (STATUS_LED_RED, STATUS_LED_ON);
@@
-512,7
+514,7
@@
restart:
/*
* Echo the inverted link state to the fault LED.
*/
/*
* Echo the inverted link state to the fault LED.
*/
- if(miiphy_link(CFG_FAULT_MII_ADDR)) {
+ if(miiphy_link(
eth_get_dev()->name,
CFG_FAULT_MII_ADDR)) {
status_led_set (STATUS_LED_RED, STATUS_LED_OFF);
} else {
status_led_set (STATUS_LED_RED, STATUS_LED_ON);
status_led_set (STATUS_LED_RED, STATUS_LED_OFF);
} else {
status_led_set (STATUS_LED_RED, STATUS_LED_ON);
@@
-829,7
+831,10
@@
static ushort CDP_compute_csum(const uchar *buff, ushort len)
}
if (len) {
leftover = (signed short)(*(const signed char *)buff);
}
if (len) {
leftover = (signed short)(*(const signed char *)buff);
- /* * XXX CISCO SUCKS big time! (and blows too) */
+ /* CISCO SUCKS big time! (and blows too):
+ * CDP uses the IP checksum algorithm with a twist;
+ * for the last byte it *sign* extends and sums.
+ */
result = (result & 0xffff0000) | ((result + leftover) & 0x0000ffff);
}
while (result >> 16)
result = (result & 0xffff0000) | ((result + leftover) & 0x0000ffff);
}
while (result >> 16)