diff options
author | wdenk <wdenk> | 2003-08-17 18:55:18 +0000 |
---|---|---|
committer | wdenk <wdenk> | 2003-08-17 18:55:18 +0000 |
commit | e0ac62d798ce60ec5d43125d4786e58b0d881836 (patch) | |
tree | 3f32c8f29ff9089ef61099b11d81d51039bf2162 /net/net.c | |
parent | ae3af05ec986a8ac66dadb5eafe13db2d4a02c5c (diff) | |
download | u-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.c | 8 |
1 files changed, 5 insertions, 3 deletions
@@ -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; } } |