summaryrefslogtreecommitdiff
path: root/net/net.c
diff options
context:
space:
mode:
authorwdenk <wdenk>2003-08-17 18:55:18 +0000
committerwdenk <wdenk>2003-08-17 18:55:18 +0000
commite0ac62d798ce60ec5d43125d4786e58b0d881836 (patch)
tree3f32c8f29ff9089ef61099b11d81d51039bf2162 /net/net.c
parentae3af05ec986a8ac66dadb5eafe13db2d4a02c5c (diff)
downloadu-boot-imx-e0ac62d798ce60ec5d43125d4786e58b0d881836.zip
u-boot-imx-e0ac62d798ce60ec5d43125d4786e58b0d881836.tar.gz
u-boot-imx-e0ac62d798ce60ec5d43125d4786e58b0d881836.tar.bz2
* Make Ethernet autonegotiation on INCA-IP work for all clock rates;
allow selection of clock frequency as "make" target * Implement memory autosizing code for IceCube boards * Configure network port on INCA-IP for autonegotiation * Fix overflow problem in network timeout code * Patch by Richard Woodruff, 8 Aug 2003: Allow crc32 to be used at address 0x000 (crc32_no_comp, too).
Diffstat (limited to 'net/net.c')
-rw-r--r--net/net.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/net/net.c b/net/net.c
index ce79341..dafcc56 100644
--- a/net/net.c
+++ b/net/net.c
@@ -125,7 +125,8 @@ volatile uchar *NetRxPackets[PKTBUFSRX]; /* Receive packets */
static rxhand_f *packetHandler; /* Current RX packet handler */
static thand_f *timeHandler; /* Current timeout handler */
-static ulong timeValue; /* Current timeout value */
+static ulong timeStart; /* Time base value */
+static ulong timeDelta; /* Current timeout value */
volatile uchar *NetTxPacket = 0; /* THE transmit packet */
static int net_check_prereq (proto_t protocol);
@@ -391,7 +392,7 @@ restart:
* Check for a timeout, and run the timeout handler
* if we have one.
*/
- if (timeHandler && (get_timer(0) > timeValue)) {
+ if (timeHandler && ((get_timer(0) - timeStart) > timeDelta)) {
thand_f *x;
x = timeHandler;
@@ -491,7 +492,8 @@ NetSetTimeout(int iv, thand_f * f)
timeHandler = (thand_f *)0;
} else {
timeHandler = f;
- timeValue = get_timer(0) + iv;
+ timeStart = get_timer(0);
+ timeDelta = iv;
}
}