OpenCores
URL https://opencores.org/ocsvn/openrisc/openrisc/trunk

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-3.0/] [packages/] [devs/] [eth/] [mips/] [upd985xx/] [current/] [ChangeLog] - Blame information for rev 791

Go to most recent revision | Details | Compare with Previous | View Log

Line No. Rev Author Line
1 786 skrzyp
2002-06-14  Gary Thomas  
2
 
3
        * src/if_upd985xx.c:
4
        Need to include  for proper configuration
5
        of stand-alone (polled) vs. system (interrupt driven) mode.
6
 
7
2001-09-13  Hugo Tyson  
8
 
9
        * src/if_upd985xx.c (upd985xx_eth_upd985xx_init): Fake an ESA if
10
        we see all ones from the EEPROM as well as all zeros.
11
 
12
2001-08-30  Hugo Tyson  
13
 
14
        * cdl/upd985xx_eth_drivers.cdl: Make the "..._E2ONLY" workaround
15
        option on by default since this is how it will be used - the CPU
16
        load does suffer somewhat if promisc mode is set in the hardware.
17
        This should be unset to allow the workaround for E1 at 100Mbit.
18
 
19
2001-08-30  Hugo Tyson  
20
 
21
        * src/if_upd985xx.c (PacketRxReady): Re-write the manual
22
        implementation of ESA matching for workaround E1E2 when the device
23
        is in promiscuous mode.  It was having problems with the previous
24
        version; this works better.
25
 
26
2001-08-24  Hugo Tyson  
27
 
28
        * cdl/upd985xx_eth_drivers.cdl: Configury for an alternate case
29
        where we workaround hardware bug E2 only, as a subset of the E1E2
30
        complete fix.  Added more description to the options too.
31
 
32
        * src/if_upd985xx.c (eth_upd985xx_configure): Handle an alternate
33
        case where we workaround hardware bug E2 only.  This means leaving
34
        the device in normal mode (unless set to promisc) and doing MAC
35
        address filtering by hand anyway.
36
 
37
2001-08-20  Hugo Tyson  
38
 
39
        * src/if_upd985xx.c: Guard all entrypoints that can mess with
40
        hardware state by "active" check.  If the net is included in an
41
        app, but not used, it is init'd but not started - this can leave a
42
        pending interrupt from RedBoot's use of the network to take us
43
        completely by surprise.  So init() acks and masks the interrupt,
44
        can_send(), recv() and deliver() now demur if not active.
45
        Also some additional STATIC's on entrypoint functions.
46
 
47
2001-08-16  Hugo Tyson  
48
 
49
        * src/if_upd985xx.c (upd985xx_eth_upd985xx_init): If the EEPROM
50
        contains nothing (or isn't fitted?) fake an ESA so we can get
51
        RedBoot going on the board without special configury.
52
 
53
2001-08-16  Hugo Tyson  
54
 
55
        * src/if_upd985xx.c (eth_upd985xx_configure): Use smaller numbers
56
        for the Tx Fill Threshold [TX_FLTH] and DMA Tx Burst Size [DTBS]
57
        because the hardware is even more broken than first throught -
58
        this is new information on fault E4.  I also tagged this with the
59
        name of the option we would use if this were cdl controlled - but
60
        since it's just setup I see no need to change it, so no CDL.
61
 
62
2001-08-16  Hugo Tyson  
63
 
64
        * src/if_upd985xx.c (TxDone): Since it still wedged occasionally,
65
        with an "out of rx buffers" status but nothing else, this is a
66
        much simplified workaround for bug E8.  If we see the suspect
67
        transmit status, simply reset the whole subsystem there and then.
68
        This leaves it in far more of a known state.  It's neater anyway.
69
 
70
2001-08-15  Hugo Tyson  
71
 
72
        * src/if_upd985xx.c (eth_upd985xx_send): Small hacks to recover
73
        from various wedged states with bogus or unexpected ETH_ISR
74
        values...  0x80000000: We detect this in the deliver routine and
75
        totally reset the system.  "out of rx buffers" with no "good rx":
76
        we unmask and check for all these RX interrupts, not just "good
77
        rx".  Also PacketRxReady() shortcuts to resetting the receive
78
        engine when it sees the problem.  I suspect these might be caused
79
        by the E8 workaround below, perhaps introducing some race
80
        condition with turning off the receiver just when it rx'd - and of
81
        course E1E2 means it receives far more packets.
82
 
83
2001-08-07  Hugo Tyson  
84
 
85
        * src/if_upd985xx.c: Workaround various bugs in the hardware;
86
        these workarounds are conditionally compiled via CDL options named
87
        CYGOPT_DEVS_ETH_MIPS_UPD985XX_HARDWARE_BUGS_xxx in general; 'xxx'
88
        is the reference for the mis-feature.  All are enabled by default.
89
 
90
        To summarize:
91
        (eth_upd985xx_reset): xxx=S1: insert reads between writes to the
92
        device to avoid a possible deadlock; macro FLUSH_WRITES().
93
        (PacketRxReady): xxx=E1E2: we set the device in promiscuous mode
94
        always, and implement ESA matching in code.  The cost is small.
95
        If promisc mode is set by the stack, we pass all packets.
96
        (eth_upd985xx_send): xxx=E3: we copy any transmit that uses 3 or
97
        more SGs into a static contiguous buffer and transmit from that
98
        thus using only one buffer descriptor.
99
        (eth_upd985xx_send):
100
        (TxDone): xxx=E8: we make a note that a tx ended badly and when
101
        starting the next tx, we disable and reset the transmitter.
102
 
103
        * cdl/upd985xx_eth_drivers.cdl: New subcomponent for controlling
104
        these workarounds: CYGPKG_DEVS_ETH_MIPS_UPD985XX_HARDWARE_BUGS.
105
        "Workarounds for Ethernet Hardware bugs"
106
 
107
2001-07-16  Hugo Tyson  
108
 
109
        * src/if_upd985xx.c (PacketRxReady): Test for, rather than assert,
110
        packet size in range.  The hardware can report a tiny packet as
111
        AOK, with no bad in the status, despite the doc's reassurances.
112
 
113
2001-07-13  Hugo Tyson  
114
 
115
        * cdl/upd985xx_eth_drivers.cdl: Turn off the startup chatter.
116
 
117
2001-07-13  Hugo Tyson  
118
 
119
        * src/if_upd985xx.c (TxDone): Test a few more bits for tx
120
        complete; it turns out you can get tx underruns when the CPU us
121
        heavily loaded, as in the tcp_echo tests with high load.
122
 
123
2001-07-13  Hugo Tyson  
124
 
125
        * src/if_upd985xx.c (eth_upd985xx_send): Use HAL_DCACHE_STORE()
126
        rather than syncing the whole of cache every sglist entry(=mbuf).
127
        Turns out the cache op must be cache line aligned to work on the
128
        4120, boo, unlike other MIPS and unlike the doc, even.
129
 
130
2001-07-12  Hugo Tyson  
131
 
132
        * cdl/upd985xx_eth_drivers.cdl (CYGPKG_DEVS_ETH_MIPS_UPD985XX_ETH0):
133
        Whole new section to address configuring the source of the MAC
134
        address.  Also allows configury of the device's name ("eth0") for
135
        cohabitation with additional devices.
136
 
137
        * src/if_upd985xx.c (upd985xx_eth_upd985xx_init): Pick up the ESA
138
        from EEPROM if it's available, also support a fixed ESA from CDL
139
        configuration land.  A few minor changes to the structure
140
        initialization to accommodate this; also pick up the interrupt
141
        vector from struct init.
142
        (eth_set_mac_address): New routine available via the ioctl()
143
        entry, for use when neither a fixed nor EEPROM address is
144
        available.
145
 
146
2001-07-12  Hugo Tyson  
147
 
148
        * src/if_upd985xx.c (NUM_RXBUFS): Reduce NUM_RXBUFS to 8; IME
149
        fewer results in lost rx's in typical systems.  Enlarge rx buffers
150
        slightly, to accommodate oversize VLAN packets.  128 bytes extra
151
        should be enough.  Implemented eth_upd985xx_configure() selection
152
        of promiscuous mode and allow oversize packets - up to the allowed
153
        oversize.  Otherwise we would get confused if a packet ate more
154
        than 1 rx buffer.
155
 
156
2001-07-12  Hugo Tyson  
157
 
158
        * src/if_upd985xx.c: Tidy up debug print defaults; make functions
159
        static; add a few extra statistics to the device object; pass a
160
        p_eth_upd985xx around more consistently for if we switch to
161
        multiple devices in future; comment out mii_write(); handle
162
        stopping the device with a tx pending; remove some commented-out
163
        templates copied from another driver; and fill in SNMP statistics.
164
        In other words, many minor changes.
165
 
166
2001-07-11  Hugo Tyson  
167
 
168
        * src/if_upd985xx.c (PacketRxReady): Recover from running out of
169
        receive buffers.  All very dodgy, but it seems to work.
170
        Additional efforts are also made to reset the device, having
171
        realized how hard it is to re-initialize the receive engine once
172
        it has been awakened.
173
 
174
2001-07-11  Hugo Tyson  
175
 
176
        * src/if_upd985xx.c: Efficient Rx now essentially working, with a
177
        simple circular buffer, always linked into a ring, and one entry
178
        of which is always NULL,NULL to bring the rx machinery to a halt.
179
        If it reaches thus far the rx mechanism seems to jam; will deal
180
        with that next.
181
 
182
2001-07-09  Hugo Tyson  
183
 
184
        * src/if_upd985xx.c: Rejigged version of the rx buffer system;
185
        still not working properly, still not a good match for the
186
        hardware's elusive semantics.  Committed anyway, to keep it around
187
        for reference.
188
        (eth_upd985xx_status): Also removed all the cruft about
189
        renegotiating line status; it's not needed.
190
 
191
2001-07-06  Hugo Tyson  
192
 
193
        * include/upd985xx_eth.h (ETH_MADR_PHY_DEVICE_PHYS_ADDRESS):
194
        Change name of PHY address symbol to generic not SEEQ.
195
        Comment out the non-standard symbols for useful bits that the
196
        previous PHY device supported.
197
 
198
        * src/if_upd985xx.c (eth_upd985xx_reset): If there is a valid ESA
199
        in the MAC already, run with it - it would have come from the
200
        not-fitted serial EEPROM, via some different registers.
201
        (upd985xx_eth_upd985xx_init): Moved the call to reset about to
202
        accommodate this.
203
        (eth_upd985xx_status): Omit renegotiation of link properties and
204
        use the intersection of the capabilities bits to report what
205
        speed, duplex, we are running at.  More portable.
206
        (mii_write):
207
        (mii_read): Change name of PHY address symbol to generic not SEEQ
208
        'cos the board has changed.
209
 
210
2001-07-06  Hugo Tyson  
211
 
212
        * ChangeLog:
213
        * cdl/upd985xx_eth_drivers.cdl:
214
        * include/upd985xx_eth.h:
215
        * src/if_upd985xx.c:
216
        New files.  Initial checkin of limping along version of
217
        NEC upd985xx ethernet driver.
218
 
219
        Limitations:
220
        ESA is hard coded.
221
        It talks to the PHY just to make sure - helped with debug anyway.
222
        No SNMP data exported.
223
        No ioctl() for promiscuous mode or VLAN mode.
224
        Only one TX at once.
225
        Only one RX buffer, so no RX until serviced.
226
        It seems to loose interrupts - inevitably, for an eth device - and
227
        there's no "catchup" defense against this yet.
228
 
229
        It's oriented to the "old" (already) board - so the particular PHY
230
        and GPIO layout.
231
 
232
//===========================================================================
233
// ####GPLCOPYRIGHTBEGIN####
234
// -------------------------------------------
235
// This file is part of eCos, the Embedded Configurable Operating System.
236
// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
237
//
238
// This program is free software; you can redistribute it and/or modify
239
// it under the terms of the GNU General Public License as published by
240
// the Free Software Foundation; either version 2 or (at your option) any
241
// later version.
242
//
243
// This program is distributed in the hope that it will be useful, but
244
// WITHOUT ANY WARRANTY; without even the implied warranty of
245
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
246
// General Public License for more details.
247
//
248
// You should have received a copy of the GNU General Public License
249
// along with this program; if not, write to the
250
// Free Software Foundation, Inc., 51 Franklin Street,
251
// Fifth Floor, Boston, MA  02110-1301, USA.
252
// -------------------------------------------
253
// ####GPLCOPYRIGHTEND####
254
//===========================================================================

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.