1 |
27 |
unneback |
2003-02-24 Jonathan Larmour
|
2 |
|
|
|
3 |
|
|
* cdl/eth_drivers.cdl: Add doc link.
|
4 |
|
|
|
5 |
|
|
2003-02-07 Jonathan Larmour
|
6 |
|
|
|
7 |
|
|
* src/net/eth_drv.c: If driver can't set multi-cast, indicate it's
|
8 |
|
|
only a warning.
|
9 |
|
|
|
10 |
|
|
2002-08-14 Gary Thomas
|
11 |
|
|
|
12 |
|
|
* cdl/eth_drivers.cdl: CYGNUM_IO_ETH_DRIVERS_SG_LIST_SIZE
|
13 |
|
|
needs to be global (used by all drivers, not just NET).
|
14 |
|
|
|
15 |
|
|
2002-08-13 Gary Thomas
|
16 |
|
|
|
17 |
|
|
* src/net/eth_drv.c (eth_drv_send): Print a better message
|
18 |
|
|
if the scatter-gather list overflows.
|
19 |
|
|
|
20 |
|
|
* include/eth_drv.h (MAX_ETH_DRV_SG):
|
21 |
|
|
* cdl/eth_drivers.cdl: Add control over size of scatter-gather
|
22 |
|
|
data lists used to pass requests to physical layer. Previous
|
23 |
|
|
value was sometimes too small.
|
24 |
|
|
|
25 |
|
|
2002-07-31 Gary Thomas
|
26 |
|
|
|
27 |
|
|
* src/net/eth_drv.c (eth_drv_start): Fix compile error when
|
28 |
|
|
built with old stack (no multicast) - introduced below.
|
29 |
|
|
|
30 |
|
|
2002-07-26 Gary Thomas
|
31 |
|
|
2002-07-26 Ken Cox
|
32 |
|
|
|
33 |
|
|
* src/net/eth_drv.c (eth_drv_start): Force multicast address
|
34 |
|
|
setup any time chip is reset/reconfigured.
|
35 |
|
|
|
36 |
|
|
2002-05-30 Jonathan Larmour
|
37 |
|
|
|
38 |
|
|
* cdl/eth_drivers.cdl: Provide CYGINT_IO_ETH_INT_SUPPORT_REQUIRED
|
39 |
|
|
interface to indicate if interrupt support is required.
|
40 |
|
|
|
41 |
|
|
2002-05-28 Jonathan Larmour
|
42 |
|
|
|
43 |
|
|
* src/lwip/lw.diff: Remove. Obsolete.
|
44 |
|
|
|
45 |
|
|
2002-05-13 Jesper Skov
|
46 |
|
|
|
47 |
|
|
* cdl/eth_drivers.cdl: Moved the package's header files to
|
48 |
|
|
cyg/io/eth to clean up the include root directory.
|
49 |
|
|
|
50 |
|
|
2002-04-30 Jonathan Larmour
|
51 |
|
|
|
52 |
|
|
* src/lwip/eth_drv.c: Update from Jani Monoses.
|
53 |
|
|
|
54 |
|
|
* cdl/eth_drivers.cdl: Move CYGINT_ISO_STRING_STRFUNCS requirement
|
55 |
|
|
into CYGPKG_IO_ETH_DRIVERS_NET where it belongs.
|
56 |
|
|
Move CYGINT_ISO_STRING_MEMFUNCS requirement into
|
57 |
|
|
CYGPKG_IO_ETH_DRIVERS_STAND_ALONE where it belongs.
|
58 |
|
|
|
59 |
|
|
2002-04-10 Gary Thomas
|
60 |
|
|
|
61 |
|
|
* src/net/eth_drv.c: Only pass mutlicast addresses down to drivers.
|
62 |
|
|
|
63 |
|
|
2002-04-05 Jani Monoses
|
64 |
|
|
|
65 |
|
|
* src/lwip/eth_drv.c: New file. Add eth driver support for lwip.
|
66 |
|
|
* src/lwip/lw.diff: New file. diff against lwip sources.
|
67 |
|
|
* src/lwip/README: New file.
|
68 |
|
|
* cdl/eth_drivers.cdl: Add lwip driver support.
|
69 |
|
|
|
70 |
|
|
2002-03-09 Gary Thomas
|
71 |
|
|
|
72 |
|
|
* src/net/eth_drv.c: Select 'multicast_all' if too many addresses
|
73 |
|
|
are required. Also, ignore any non-multicast addresses.
|
74 |
|
|
|
75 |
|
|
2002-02-22 Hugo Tyson
|
76 |
|
|
|
77 |
|
|
* doc/ethdrv.sgml: New file. SGML-ized the existing driver-doc
|
78 |
|
|
file and brought the information up to date with deliver functions
|
79 |
|
|
and all that.
|
80 |
|
|
|
81 |
|
|
2002-02-18 Gary Thomas
|
82 |
|
|
|
83 |
|
|
* cdl/eth_drivers.cdl:
|
84 |
|
|
Add new interface CYGINT_IO_ETH_MULTICAST which is used to
|
85 |
|
|
insure that drivers support multicast addresses if IPv6 is used.
|
86 |
|
|
|
87 |
|
|
2002-02-15 Gary Thomas
|
88 |
|
|
|
89 |
|
|
* src/net/eth_drv.c:
|
90 |
|
|
* include/eth_drv.h: Add framework for multicast address support.
|
91 |
|
|
|
92 |
|
|
2002-01-30 Hugo Tyson
|
93 |
|
|
|
94 |
|
|
* cdl/eth_drivers.cdl (CYGPKG_IO_ETH_DRIVERS_WARN_FORCE_CONSOLE):
|
95 |
|
|
CDL options removed; control is now from RedBoot.
|
96 |
|
|
|
97 |
|
|
* src/net/eth_drv.c (START_CONSOLE): Changed to use RedBoot
|
98 |
|
|
fconfig items for deciding what console to use for special debug
|
99 |
|
|
messages such as "out of MBUFs" and the like.
|
100 |
|
|
|
101 |
|
|
* src/stand_alone/eth_drv.c (LOCK_APPLICATION_SCHEDULER): New
|
102 |
|
|
macro to do what it says, before passing packets to the app.
|
103 |
|
|
Used in two places: when passing a received packet, and when
|
104 |
|
|
passing a tx completion status back.
|
105 |
|
|
|
106 |
|
|
2002-01-28 Gary Thomas
|
107 |
|
|
|
108 |
|
|
* src/net/eth_drv.c (eth_drv_init): Changes for supporting new
|
109 |
|
|
FreeBSD based stack (minor API changes internal to that stack).
|
110 |
|
|
|
111 |
|
|
2001-12-12 Hugo Tyson
|
112 |
|
|
|
113 |
|
|
* src/net/eth_drv.c (START_CONSOLE,END_CONSOLE): New macros akin
|
114 |
|
|
to those within RedBoot's internal net_io.c, for directing warning
|
115 |
|
|
messages to a serial line if required. All printf's wrapped in
|
116 |
|
|
them for safety.
|
117 |
|
|
|
118 |
|
|
* cdl/eth_drivers.cdl (CYGPKG_IO_ETH_DRIVERS_WARN_FORCE_CONSOLE):
|
119 |
|
|
and ..._NUMBER, new options to direct application warning output
|
120 |
|
|
somewhere useful (less harmful) for when you are debugging over
|
121 |
|
|
the net. Trying to print within a call which occurred from within
|
122 |
|
|
RedBoot itself is such a recursive situation as to be fatal.
|
123 |
|
|
Defaults are disabled, you must choose to set these up if
|
124 |
|
|
you want to debug your app safely over the network.
|
125 |
|
|
|
126 |
|
|
2001-12-12 Hugo Tyson
|
127 |
|
|
|
128 |
|
|
* src/stand_alone/eth_drv.c (DIAG_DUMP_BUF_HDR,DIAG_DUMP_BUF_BDY):
|
129 |
|
|
Separate macros for debug dumps of ethernet header and body.
|
130 |
|
|
(eth_drv_write): Use them.
|
131 |
|
|
(eth_drv_copy_recv): Do not corrupt the static data pointer, so
|
132 |
|
|
that if we are erroneously called twice, at least what we pass is
|
133 |
|
|
a packet, rather than random memory; do not escape to SEGV. Guard
|
134 |
|
|
against NULL sg_list[].buf pointers, in case caller out of MBUFs.
|
135 |
|
|
(eth_drv_recv): Only dump packet if we actually have a buffer.
|
136 |
|
|
Only forward the packet if actually have a buffer.
|
137 |
|
|
|
138 |
|
|
2001-12-04 Richard Sandiford
|
139 |
|
|
|
140 |
|
|
* src/stand_alone/eth_drv.c (eth_drv_read): Check that the return
|
141 |
|
|
buffer is big enough to hold the packet.
|
142 |
|
|
|
143 |
|
|
2001-11-28 Jonathan Larmour
|
144 |
|
|
|
145 |
|
|
* doc/driver_doc: Mention preferences on how the ESA should be set.
|
146 |
|
|
|
147 |
|
|
2001-10-30 Jonathan Larmour
|
148 |
|
|
|
149 |
|
|
* doc/driver_doc: Add description of poll, deliver and int_vector
|
150 |
|
|
driver functions.
|
151 |
|
|
|
152 |
|
|
2001-10-29 Hugo Tyson
|
153 |
|
|
|
154 |
|
|
* src/net/eth_drv.c (eth_drv_tickle_devices): [CASE 106613] Rather
|
155 |
|
|
than calling can_send() in the device driver directly, call our
|
156 |
|
|
own eth_drv_send() function which will also dequeue a waiting
|
157 |
|
|
packet if we find we indeed can_send(). This helps to recover
|
158 |
|
|
from queue full situations within the if_ethersubr layer above.
|
159 |
|
|
This change is belt & braces with a similar call in the code which
|
160 |
|
|
drops a packet if the queue is full, in the main network code in
|
161 |
|
|
net/tcpip/.../src/sys/net/if_ethersubr.c (ether_output); this
|
162 |
|
|
change will recover the situation shortly even if the application
|
163 |
|
|
gives up trying to send because of ENOBUFS.
|
164 |
|
|
|
165 |
|
|
2001-10-18 Jonathan Larmour
|
166 |
|
|
|
167 |
|
|
* cdl/eth_drivers.cdl: Rename CYGSEM_IO_ETH_DRIVERS_DEBUG to
|
168 |
|
|
CYGDBG_IO_ETH_DRIVERS_DEBUG and make it a common option.
|
169 |
|
|
Add separate CYGDBG_IO_ETH_DRIVERS_DEBUG_VERBOSITY config.
|
170 |
|
|
|
171 |
|
|
* include/eth_drv.h: Don't claim BSD if it isn't.
|
172 |
|
|
* include/eth_drv_stats.h: Ditto.
|
173 |
|
|
* include/netdev.h: Ditto.
|
174 |
|
|
* src/net/eth_drv.c: Ditto.
|
175 |
|
|
Also use above CDL options to conditionalize debugging (and the
|
176 |
|
|
verbosity level).
|
177 |
|
|
* src/stand_alone/eth_drv.c: Use above renamed CDL options.
|
178 |
|
|
|
179 |
|
|
2001-10-11 Gary Thomas
|
180 |
|
|
|
181 |
|
|
* src/stand_alone/eth_drv.c (eth_drv_recv):
|
182 |
|
|
Defensive programming - insure valid packet size.
|
183 |
|
|
|
184 |
|
|
2001-10-05 Jonathan Larmour
|
185 |
|
|
|
186 |
|
|
* src/net/eth_drv.c: Add default implementation of min().
|
187 |
|
|
|
188 |
|
|
2001-09-26 Jesper Skov
|
189 |
|
|
|
190 |
|
|
* cdl/eth_drivers.cdl: Require the string functions.
|
191 |
|
|
|
192 |
|
|
* src/stand_alone/eth_drv.c: Fix warnings.
|
193 |
|
|
|
194 |
|
|
2001-09-25 Hugo Tyson
|
195 |
|
|
|
196 |
|
|
* src/net/eth_drv.c (eth_drv_dsr): Assert that the "sc" given to
|
197 |
|
|
eth_drv_dsr() really is a sc from the valid list. This can save a
|
198 |
|
|
few hours debug time of a typo.
|
199 |
|
|
|
200 |
|
|
2001-09-13 Hugo Tyson
|
201 |
|
|
|
202 |
|
|
* src/net/eth_drv.c (eth_drv_tickle_devices): New function to call
|
203 |
|
|
can_send() on all devices to allow them to unstick from a lost
|
204 |
|
|
interrupt or other wedge - it's up to the device to detect this,
|
205 |
|
|
of course, can_send() does not explicitly do this, it's just used
|
206 |
|
|
as an opportunity harmlessly to get control into the device so it
|
207 |
|
|
can examine its world.
|
208 |
|
|
|
209 |
|
|
2001-09-05 Gary Thomas
|
210 |
|
|
|
211 |
|
|
* src/stand_alone/eth_drv.c (eth_drv_init): Don't initialize
|
212 |
|
|
structures if ESA is zero. This is used by low level drivers
|
213 |
|
|
to indicate that a device is present, but can't currently be
|
214 |
|
|
used. The eCos driver handles this case as well.
|
215 |
|
|
|
216 |
|
|
2001-08-31 Hugo Tyson
|
217 |
|
|
2001-08-31 Andrew Lunn
|
218 |
|
|
|
219 |
|
|
* src/net/eth_drv.c (eth_drv_tx_done): Guard against a NULL key
|
220 |
|
|
return - which can be caused by race conditions in the driver,
|
221 |
|
|
this is the neatest fixup. It's good defensive programming
|
222 |
|
|
anyway and ASCOM's tests indicate a benefit for CASE 106059.
|
223 |
|
|
|
224 |
|
|
2001-08-22 Gary Thomas
|
225 |
|
|
|
226 |
|
|
* src/stand_alone/eth_drv.c:
|
227 |
|
|
printf() is no longer a part of RedBoot. Thus all programs
|
228 |
|
|
must use diag_printf() and related functions instead.
|
229 |
|
|
|
230 |
|
|
* cdl/eth_drivers.cdl: Only enable warning/debug modes if RedBoot
|
231 |
|
|
is present as the debug environment (since there are implicit
|
232 |
|
|
dependencies on RedBoot functions).
|
233 |
|
|
|
234 |
|
|
2001-08-20 Jonathan Larmour
|
235 |
|
|
|
236 |
|
|
* src/net/eth_drv.c (eth_drv_send): Move endif location to fix build
|
237 |
|
|
error.
|
238 |
|
|
|
239 |
|
|
2001-08-17 Jonathan Larmour
|
240 |
|
|
|
241 |
|
|
* cdl/eth_drivers.cdl (CYGSEM_IO_ETH_DRIVERS_DEBUG): Now booldata.
|
242 |
|
|
* src/stand_along/eth_drv.c (eth_drv_tx_done): Use different
|
243 |
|
|
value of CYGSEM_IO_ETH_DRIVERS_DEBUG for verbosity.
|
244 |
|
|
|
245 |
|
|
2001-08-14 Gary Thomas
|
246 |
|
|
|
247 |
|
|
* src/stand_alone/eth_drv.c (eth_drv_write):
|
248 |
|
|
(eth_drv_tx_done):
|
249 |
|
|
(eth_drv_read): Better handling of stacking (layering) of drivers.
|
250 |
|
|
RedBoot (stand alone code) is designed to call into the eCos
|
251 |
|
|
stack and these changes make sure that this is done properly
|
252 |
|
|
nested/stacked. These changes also affect the behaviour positively
|
253 |
|
|
for CR 902745-CR.
|
254 |
|
|
|
255 |
|
|
* src/net/eth_drv.c (eth_drv_send): Add locking of driver while
|
256 |
|
|
actual hardware routines are involved. Since the same driver
|
257 |
|
|
can be shared by both eCos and RedBoot, it is imperative that
|
258 |
|
|
additional locking (in the form of locking the scheduler) be
|
259 |
|
|
employed during this window to make sure that the hardware is
|
260 |
|
|
handled in complete, consistent steps. This helps with known
|
261 |
|
|
bug CR 902745-CR.
|
262 |
|
|
|
263 |
|
|
2001-08-09 Hugo Tyson
|
264 |
|
|
|
265 |
|
|
* src/net/eth_drv.c (eth_drv_recv): Add a pair of
|
266 |
|
|
CYGARC_HAL_SAVE_GP()/CYGARC_HAL_RESTORE_GP() on entry and exit;
|
267 |
|
|
this function is intercalled between RedBoot and the application.
|
268 |
|
|
A minor re-org at the ending to accommodate these macros' nesting.
|
269 |
|
|
(eth_drv_tx_done): CYGARC_HAL_SAVE_GP()/CYGARC_HAL_RESTORE_GP().
|
270 |
|
|
|
271 |
|
|
* src/stand_alone/eth_drv.c (eth_drv_tx_done): Add a pair of
|
272 |
|
|
CYGARC_HAL_SAVE_GP()/CYGARC_HAL_RESTORE_GP() on entry and exit;
|
273 |
|
|
this function is intercalled between RedBoot and the application.
|
274 |
|
|
Also make printing message about "tx_done for other key" also
|
275 |
|
|
conditional on net_debug variable - it's commonplace.
|
276 |
|
|
(eth_drv_recv): CYGARC_HAL_SAVE_GP()/CYGARC_HAL_RESTORE_GP().
|
277 |
|
|
(eth_drv_copy_recv): CYGARC_HAL_SAVE_GP()/CYGARC_HAL_RESTORE_GP().
|
278 |
|
|
|
279 |
|
|
2001-07-03 Gary Thomas
|
280 |
|
|
|
281 |
|
|
* src/net/eth_drv.c (eth_drv_recv): Better cleanup when running
|
282 |
|
|
out of mbufs - could have lost mbufs before.
|
283 |
|
|
|
284 |
|
|
2001-06-21 David Woodhouse
|
285 |
|
|
|
286 |
|
|
* src/stand_alone/eth_drv.c: Timeout when waiting for Ethernet
|
287 |
|
|
driver to finish sending packet.
|
288 |
|
|
* src/stand_alone/eth_drv.c: Don't delay if it's ready immediately.
|
289 |
|
|
|
290 |
|
|
2001-06-11 Gary Thomas
|
291 |
|
|
|
292 |
|
|
* cdl/eth_drivers.cdl: Make debug default for RedBoot.
|
293 |
|
|
|
294 |
|
|
2001-05-22 Jonathan Larmour
|
295 |
|
|
|
296 |
|
|
* cdl/eth_drivers.cdl: New option: CYGSEM_IO_ETH_DRIVERS_PASS_PACKETS
|
297 |
|
|
which replaces the static define in...
|
298 |
|
|
* src/stand_alone_eth_drv.c: Rename ETH_DRV_PASS_PACKETS to
|
299 |
|
|
new CDL option above.
|
300 |
|
|
Also, ensure references to start_console/end_console are conditional
|
301 |
|
|
on CYGSEM_IO_ETH_DRIVERS_DEBUG.
|
302 |
|
|
|
303 |
|
|
2001-05-22 Hugo Tyson
|
304 |
|
|
2001-05-22 Sanjay Bisen
|
305 |
|
|
|
306 |
|
|
* src/net/eth_drv.c (eth_drv_recv): Patch from Sanjay at Ascom; it
|
307 |
|
|
leaked one mbuf if you run out of clusters. Fix is simply to
|
308 |
|
|
free m in addition to top.
|
309 |
|
|
|
310 |
|
|
* src/net/eth_drv.c (eth_drv_run_deliveries): Fixed a warning with
|
311 |
|
|
an int cast in HAL_CTRLC_CHECK().
|
312 |
|
|
|
313 |
|
|
2001-03-21 Gary Thomas
|
314 |
|
|
|
315 |
|
|
* cdl/eth_drivers.cdl: Fewer buffers needed in stand-alone mode.
|
316 |
|
|
|
317 |
|
|
2001-03-12 Hugo Tyson
|
318 |
|
|
|
319 |
|
|
* cdl/eth_drivers.cdl: Permit defines for
|
320 |
|
|
CYGPKG_IO_ETH_DRIVERS_STAND_ALONE and CYGPKG_IO_ETH_DRIVERS_NET.
|
321 |
|
|
The generic i82559 driver needs to know, unfortunately; it calls
|
322 |
|
|
its own DSR directly to unblock after a lost interrupt. And you
|
323 |
|
|
mustn't call the DSR under RedBoot == ....STAND_ALONE.
|
324 |
|
|
|
325 |
|
|
2001-01-15 Jesper Skov
|
326 |
|
|
|
327 |
|
|
* src/net/eth_drv.c (eth_drv_init): Do not use enaddr if NULL.
|
328 |
|
|
|
329 |
|
|
2001-01-07 Gary Thomas
|
330 |
|
|
|
331 |
|
|
* cdl/eth_drivers.cdl: Add interface 'CYGPKG_NET_DRIVER_FRAMEWORK'
|
332 |
|
|
to describe interdependencies between network stack and driver
|
333 |
|
|
framework packages.
|
334 |
|
|
|
335 |
|
|
2001-01-04 Gary Thomas
|
336 |
|
|
|
337 |
|
|
* src/net/eth_drv.c (eth_drv_tx_done): Update count of Tx packets.
|
338 |
|
|
|
339 |
|
|
2000-12-11 Gary Thomas
|
340 |
|
|
|
341 |
|
|
* src/net/eth_drv.c (eth_drv_run_deliveries): Support ^C when
|
342 |
|
|
using network based debug channel.
|
343 |
|
|
|
344 |
|
|
2000-12-02 Gary Thomas
|
345 |
|
|
|
346 |
|
|
* src/stand_alone/eth_drv.c (eth_drv_write): Debug: dump packet
|
347 |
|
|
before calling hardware routine for improved usability.
|
348 |
|
|
|
349 |
|
|
2000-10-30 Gary Thomas
|
350 |
|
|
|
351 |
|
|
* include/eth_drv.h: Fix compile error in stand-alone mode.
|
352 |
|
|
|
353 |
|
|
2000-10-17 Hugo Tyson
|
354 |
|
|
2000-10-10 Andrew Lunn
|
355 |
|
|
* cdl/eth_drivers.cdl: Add configury to disable the warnings about
|
356 |
|
|
out of mbufs for receives.
|
357 |
|
|
|
358 |
|
|
* src/net/eth_drv.c: The changes required for the above.
|
359 |
|
|
|
360 |
|
|
2000-09-28 Hugo Tyson
|
361 |
|
|
|
362 |
|
|
* src/net/eth_drv.c (eth_drv_run_deliveries): Remove race
|
363 |
|
|
condition; a chance to deliver could be delayed until "next time"
|
364 |
|
|
if the DSR snuck in just right.
|
365 |
|
|
|
366 |
|
|
2000-09-14 Hugo Tyson
|
367 |
|
|
|
368 |
|
|
* cdl/eth_drivers.cdl: Add configury to control new features. All
|
369 |
|
|
is controlled globally by CYGPKG_IO_ETH_DRIVERS_SIMULATED_FAILURES
|
370 |
|
|
which is by default off, natch.
|
371 |
|
|
|
372 |
|
|
* src/net/eth_drv.c (simulate_fail): Implement simulated failures
|
373 |
|
|
in ethernet packet delivery - independent tx and rx dropping and
|
374 |
|
|
rx packet corruption. Also a "line break" drop-all feature.
|
375 |
|
|
|
376 |
|
|
2000-09-13 Gary Thomas
|
377 |
|
|
|
378 |
|
|
* src/stand_alone/eth_drv.c: Take out noisy dump when out of buffers.
|
379 |
|
|
|
380 |
|
|
2000-09-11 Hugo Tyson
|
381 |
|
|
|
382 |
|
|
* src/stand_alone/eth_drv.c (eth_drv_write): If we timeout waiting
|
383 |
|
|
for the write to complete, do reset the vectors to point to the
|
384 |
|
|
application, rather just a bald "return".
|
385 |
|
|
|
386 |
|
|
2000-09-08 Hugo Tyson
|
387 |
|
|
|
388 |
|
|
* include/netdev.h (NETDEVTAB_ENTRY): Work around feature of new
|
389 |
|
|
version of CYG_HAL_TABLE_ENTRY() whereby no spaces are allowed.
|
390 |
|
|
|
391 |
|
|
2000-09-07 Jonathan Larmour
|
392 |
|
|
|
393 |
|
|
* include/netdev.h (cyg_netdevtab_entry_t): Correct syntax for
|
394 |
|
|
CYG_HAL_TABLE_TYPE
|
395 |
|
|
|
396 |
|
|
2000-09-04 Jonathan Larmour
|
397 |
|
|
|
398 |
|
|
* include/netdev.h (cyg_netdevtab_entry_t): Apply CYG_HAL_TABLE_TYPE
|
399 |
|
|
|
400 |
|
|
2000-09-01 Hugo Tyson
|
401 |
|
|
|
402 |
|
|
* src/stand_alone/eth_drv.c (eth_drv_dsr): New function, never
|
403 |
|
|
called but maybe referenced in stand_alone context, which lets
|
404 |
|
|
redboot work in the new world.
|
405 |
|
|
|
406 |
|
|
2000-09-01 Hugo Tyson
|
407 |
|
|
|
408 |
|
|
* OVERVIEW: This is part of the change to the network stack to
|
409 |
|
|
greatly reduce latencies both of (other) DSRs and of thread
|
410 |
|
|
scheduling. All the work that the network stack *and* individual
|
411 |
|
|
ether drivers used to do in DSRs (including alarm callbacks and
|
412 |
|
|
data copies to/from the device memory) is moved into a "fast
|
413 |
|
|
network thread" instead. It calls a device's "deliver" function
|
414 |
|
|
to do the work that was previously in the DSR. This is a separate
|
415 |
|
|
thread so that it can be set higher priority than application
|
416 |
|
|
threads in order to minimize packet loss (depending on the
|
417 |
|
|
driver), if required (the application threads presumed to be
|
418 |
|
|
higher priority in turn than the network thread). A crucial
|
419 |
|
|
consequence of this is that we are no longer locking against DSRs,
|
420 |
|
|
so a plain mutex can be used rather than the global scheduler
|
421 |
|
|
lock, thus simplifying all the splfoo/splx() style functions.
|
422 |
|
|
|
423 |
|
|
These changes WILL BREAK individual device drivers until they are
|
424 |
|
|
updated AND the standalone logical ether driver in this component,
|
425 |
|
|
until it is updated also.
|
426 |
|
|
|
427 |
|
|
* include/eth_drv.h (ETH_DRV_SC): Add "deliver" entry to struct
|
428 |
|
|
eth_hwr_funs interface record; declare available DSR and flag for
|
429 |
|
|
"needs delivery" in SC status field.
|
430 |
|
|
|
431 |
|
|
* src/net/eth_drv.c (eth_drv_run_deliveries): New function,
|
432 |
|
|
performs callbacks to deliver funcs for all devs that want it.
|
433 |
|
|
(eth_drv_dsr): New function, sets flag in sc and calls up to net
|
434 |
|
|
stack to schedule the fast network thread.
|
435 |
|
|
(eth_drv_send): No need to lock scheduler here.
|
436 |
|
|
|
437 |
|
|
2000-08-29 Gary Thomas
|
438 |
|
|
|
439 |
|
|
* src/stand_alone/eth_drv.c: Use null buffer, (char *)0,
|
440 |
|
|
instead of wasting memory - low level drivers must be designed
|
441 |
|
|
to handle this case.
|
442 |
|
|
|
443 |
|
|
2000-08-28 Gary Thomas
|
444 |
|
|
|
445 |
|
|
* src/stand_alone/eth_drv.c: Use new configuration parameters.
|
446 |
|
|
|
447 |
|
|
* cdl/eth_drivers.cdl: Add new configury to control number of
|
448 |
|
|
internal buffers used by this layer. Also exposed some of the
|
449 |
|
|
debug flags here.
|
450 |
|
|
|
451 |
|
|
2000-08-25 Hugo Tyson
|
452 |
|
|
|
453 |
|
|
* include/eth_drv_stats.h (ether_drv_stats): A little further
|
454 |
|
|
diddling; have a bool to say whether the dot3 info is filled in.
|
455 |
|
|
|
456 |
|
|
2000-08-24 Hugo Tyson
|
457 |
|
|
|
458 |
|
|
* src/net/eth_drv.c (eth_drv_ioctl): Implement ioctl() calls.
|
459 |
|
|
sockio.h numbers SIOCGIFSTATS and SIOCGIFSTATSUD map to
|
460 |
|
|
ETH_DRV_GET_IF_STATS and ETH_DRV_GET_IF_STATS_UD respectively.
|
461 |
|
|
|
462 |
|
|
* include/eth_drv.h (ETH_DRV_GET_IF_STATS_UD): Add new device
|
463 |
|
|
interface ioctl() numbers, to get the struct below filled in.
|
464 |
|
|
Also pull in the definition include file (below).
|
465 |
|
|
|
466 |
|
|
* include/eth_drv_stats.h (ether_drv_stats): New file: Define
|
467 |
|
|
common structure for ether devices to return stats info to higher
|
468 |
|
|
up, via an ioctl() call. SNMP uses this.
|
469 |
|
|
|
470 |
|
|
2000-08-23 Gary Thomas
|
471 |
|
|
|
472 |
|
|
* src/stand_alone/eth_drv.c:
|
473 |
|
|
* include/eth_drv.h: Low level drivers now need to export a
|
474 |
|
|
function which returns the interrupt vector used by that interface.
|
475 |
|
|
This allows outside code to determine this in a portable fashion.
|
476 |
|
|
|
477 |
|
|
2000-08-16 Gary Thomas
|
478 |
|
|
|
479 |
|
|
* src/stand_alone/eth_drv.c:
|
480 |
|
|
* include/eth_drv.h: Clean up warnings (better protyping).
|
481 |
|
|
|
482 |
|
|
* src/stand_alone/eth_drv.c (eth_drv_write): Abandon sending
|
483 |
|
|
packet if device goes not ready for a long time (in some cases,
|
484 |
|
|
this is the only indication that the link is down).
|
485 |
|
|
|
486 |
|
|
2000-08-07 Gary Thomas
|
487 |
|
|
|
488 |
|
|
* src/net/eth_drv.c (eth_drv_recv): Add safety in case this gets
|
489 |
|
|
called [from stand-alone code] while interface is not up.
|
490 |
|
|
|
491 |
|
|
* src/stand_alone/eth_drv.c:
|
492 |
|
|
* include/eth_drv.h: Rework to more fully support mixed stand-alone
|
493 |
|
|
and system (eCos) stacks.
|
494 |
|
|
|
495 |
|
|
2000-08-03 Gary Thomas
|
496 |
|
|
|
497 |
|
|
* cdl/eth_drivers.cdl: Reparent within I/O, not NET. This allows
|
498 |
|
|
for stand-alone use as well as support for other stack implementations.
|
499 |
|
|
|
500 |
|
|
2000-07-28 Hugo Tyson
|
501 |
|
|
|
502 |
|
|
* src/eth_drv.c (eth_drv_recv): Assert that the length we're asked
|
503 |
|
|
to deal with is at least an ether header, and also be defensive in
|
504 |
|
|
any case; discard small packets. [CASE 104206]
|
505 |
|
|
|
506 |
|
|
2000-07-26 Gary Thomas
|
507 |
|
|
|
508 |
|
|
* src/eth_drv.c:
|
509 |
|
|
* include/eth_drv.h: Change interfaces used by hardware layer to
|
510 |
|
|
be "soft" (pointers to functions). This will allow those drivers
|
511 |
|
|
to be shared by applications and the ROM/debug environment.
|
512 |
|
|
|
513 |
|
|
2000-07-15 Gary Thomas
|
514 |
|
|
|
515 |
|
|
* include/eth_drv.h: Add [initial] extensions to let this
|
516 |
|
|
layer work either in an eCos environment or stand-alone.
|
517 |
|
|
|
518 |
|
|
2000-07-11 Gary Thomas
|
519 |
|
|
|
520 |
|
|
* include/eth_drv.h: Add minimal PCMCIA support.
|
521 |
|
|
|
522 |
|
|
* src/eth_drv.c (eth_drv_netdev): New function - used to find the
|
523 |
|
|
ethernet device info for PCMCIA devices.
|
524 |
|
|
|
525 |
|
|
2000-06-23 Hugo Tyson
|
526 |
|
|
|
527 |
|
|
* src/eth_drv.c (eth_drv_send): Do not consume an SG entry for
|
528 |
|
|
zero length data; tolerate overflow of the SG. Before this, pings
|
529 |
|
|
of 6000 bytes crashed the system!
|
530 |
|
|
|
531 |
|
|
You can now set net_debug to 2 to get quieter output; 1 gives the
|
532 |
|
|
whole packet dump as before.
|
533 |
|
|
|
534 |
|
|
* include/eth_drv.h (MAX_ETH_DRV_SG): Make this 16 so that an MTU
|
535 |
|
|
made of all mbufs will not overflow.
|
536 |
|
|
|
537 |
|
|
2000-03-28 Gary Thomas
|
538 |
|
|
|
539 |
|
|
* src/eth_drv.c (eth_drv_recv): Tolerate running out of MBUFs
|
540 |
|
|
instead of "panic"ing.
|
541 |
|
|
|
542 |
|
|
2000-03-08 Gary Thomas
|
543 |
|
|
|
544 |
|
|
* src/eth_drv.c: Add some function [block] comments.
|
545 |
|
|
(eth_drv_send): Use eCos scheduler lock instead of interrupt lock.
|
546 |
|
|
|
547 |
|
|
2000-03-08 Hugo Tyson
|
548 |
|
|
|
549 |
|
|
* doc/driver_doc: Add some clarification about what's called when,
|
550 |
|
|
proofreading results, shorter lines so I can print it nicely.
|
551 |
|
|
|
552 |
|
|
2000-03-06 Gary Thomas
|
553 |
|
|
|
554 |
|
|
* src/eth_drv.c:
|
555 |
|
|
* include/eth_drv.h:
|
556 |
|
|
* doc/driver_doc: Remove generic "priv"ate references.
|
557 |
|
|
|
558 |
|
|
2000-02-29 Gary Thomas
|
559 |
|
|
|
560 |
|
|
* src/eth_drv.c:
|
561 |
|
|
* include/eth_drv.h: New expanded API for hardware drivers.
|
562 |
|
|
|
563 |
|
|
2000-02-18 Gary Thomas
|
564 |
|
|
|
565 |
|
|
* src/eth_drv.c (eth_drv_send): Disable interrupts while initiating
|
566 |
|
|
the buffer send - avoid a possible race.
|
567 |
|
|
|
568 |
|
|
2000-02-08 John Dallaway
|
569 |
|
|
|
570 |
|
|
* cdl/eth_drivers.cdl:
|
571 |
|
|
Reparent under CYGPKG_NET and tidy display strings.
|
572 |
|
|
|
573 |
|
|
//===========================================================================
|
574 |
|
|
//####ECOSGPLCOPYRIGHTBEGIN####
|
575 |
|
|
// -------------------------------------------
|
576 |
|
|
// This file is part of eCos, the Embedded Configurable Operating System.
|
577 |
|
|
// Copyright (C) 1998, 1999, 2000, 2001, 2002 Red Hat, Inc.
|
578 |
|
|
//
|
579 |
|
|
// eCos is free software; you can redistribute it and/or modify it under
|
580 |
|
|
// the terms of the GNU General Public License as published by the Free
|
581 |
|
|
// Software Foundation; either version 2 or (at your option) any later version.
|
582 |
|
|
//
|
583 |
|
|
// eCos is distributed in the hope that it will be useful, but WITHOUT ANY
|
584 |
|
|
// WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
585 |
|
|
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
586 |
|
|
// for more details.
|
587 |
|
|
//
|
588 |
|
|
// You should have received a copy of the GNU General Public License along
|
589 |
|
|
// with eCos; if not, write to the Free Software Foundation, Inc.,
|
590 |
|
|
// 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA.
|
591 |
|
|
//
|
592 |
|
|
// As a special exception, if other files instantiate templates or use macros
|
593 |
|
|
// or inline functions from this file, or you compile this file and link it
|
594 |
|
|
// with other works to produce a work based on this file, this file does not
|
595 |
|
|
// by itself cause the resulting work to be covered by the GNU General Public
|
596 |
|
|
// License. However the source code for this file must still be made available
|
597 |
|
|
// in accordance with section (3) of the GNU General Public License.
|
598 |
|
|
//
|
599 |
|
|
// This exception does not invalidate any other reasons why a work based on
|
600 |
|
|
// this file might be covered by the GNU General Public License.
|
601 |
|
|
//
|
602 |
|
|
// Alternative licenses for eCos may be arranged by contacting Red Hat, Inc.
|
603 |
|
|
// at http://sources.redhat.com/ecos/ecos-license/
|
604 |
|
|
// -------------------------------------------
|
605 |
|
|
//####ECOSGPLCOPYRIGHTEND####
|
606 |
|
|
//===========================================================================
|
607 |
|
|
|
608 |
|
|
|
609 |
|
|
|