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

Subversion Repositories openrisc

[/] [openrisc/] [trunk/] [rtos/] [ecos-3.0/] [packages/] [devs/] [eth/] [intel/] [i82559/] [current/] [ChangeLog] - Blame information for rev 810

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

Line No. Rev Author Line
1 786 skrzyp
2007-06-12  Andrew Lunn  
2
 
3
        * src/if_i82559.c (eth_dsr): Fixed the previous change which broken
4
        linkage under some conditions.
5
 
6
2006-11-23  David Fernandez  
7
 
8
        * src/if_i82559.c Modifications to remove compile warnings.
9
 
10
2005-01-22  Andrew Lunn  
11
 
12
        * src/if_i82559.c Added string.h to remove compiler warnings.
13
 
14
2004-08-12  Jani Monoses 
15
 
16
        * src/if_i82559.c: Fix builing with lwip.
17
 
18
2004-01-15  Jeff Daly  
19
 
20
        * src/if_i82559.c: support for large EEPROMs
21
 
22
2004-01-05  Gary Thomas  
23
 
24
        * src/if_i82559.c: Names of FLASH config types changed.
25
 
26
2003-02-27  Mark Salter  
27
 
28
        * src/if_i82559.c (eth_set_mac_address): Correct writing
29
        of wrong address to EEPROM.
30
 
31
2003-02-22  Mark Salter  
32
 
33
        * src/if_i82559.c: Fix endian issues with EEPROM writing.
34
        Use read-modify-write to set EEPROM mac address. Support
35
        writing to EEPROM the mac address obtained from
36
        CYGHWR_DEVS_ETH_INTEL_I82559_GET_ESA.
37
 
38
2003-02-12  Mark Salter  
39
 
40
        * src/if_i82559.c: Remove restriction preventing combination of
41
        *_GET_ESA and *_HAS_EEPROM.
42
 
43
2003-01-03  Gary Thomas  
44
 
45
        * src/if_i82559.c:
46
        * cdl/intel_i82559_eth_drivers.cdl: Allow finer control over
47
        debug (chatter) by making control booldata.
48
 
49
2002-12-17  Mark Salter  
50
 
51
        * src/if_i82559.c (CYGHWR_DEVS_ETH_INTEL_I82559_ENDIAN_NEUTRAL_IO): New
52
        flag to support systems where PCI IO operations are not affected by
53
        CPU endianess.
54
 
55
2002-10-06  Andrew Lunn  
56
 
57
        * src/if_i82559.c (pci_init_find_82559s): Changed scope of
58
        max_interrupt_handle since its needed in other places.
59
        * src/if_i82559.c (i82559_stop): Corrected wrong name of variable
60
        in a diag_printf function.
61
 
62
2002-07-24  Gary Thomas  
63
 
64
        * src/if_i82559.c (pci_init_find_82559s):
65
        Allow platform to define CYGHWR_DEVS_ETH_INTEL_I82559_USE_MEMORY
66
        which forces use of memory instead of I/O space for device access.
67
 
68
2002-06-14  Gary Thomas  
69
 
70
        * src/if_i82559.c:
71
        Need to include  for proper configuration
72
        of stand-alone (polled) vs. system (interrupt driven) mode.
73
 
74
2002-04-09  Hugo Tyson  
75
 
76
        * src/if_i82559.c (i82559_stop): Free up any pending transmissions
77
        to prevent MBUF store leaks if the calling thread - the one that's
78
        shutting down the interface - priority ends up higher than (or
79
        same as) the network service threads.
80
 
81
2002-03-26  Jonathan Larmour  
82
 
83
        * src/if_i82559.c (wait_for_cmd_done): Don't assert if RUC_ADDR_LOAD
84
        command doesn't clear - on some chips it never does.
85
 
86
2002-03-18  Hugo Tyson  
87
 
88
        * src/if_i82559.c (pci_init_find_82559s): Move allocation of
89
        statistics pointer for each device to here, out of
90
        i82559_start().  It used to leak PCI window store every time the
91
        interface cycled down/up.  [Case 107110]
92
 
93
2002-02-25  Mark Salter  
94
 
95
        * src/if_i82559.c: Don't call PacketRxReady in standalone configuration
96
        unless ready to accept a packet. Limit packet delivery to one packet at
97
        a time in standalone configuration.
98
 
99
2002-02-20  Hugo Tyson  
100
 
101
        * include/i82559_info.h: New fields to record/control multicast
102
        all reception, oversized packet reception and promiscuous mode
103
        neatly.
104
 
105
        * src/if_i82559.c: Initial support for multicast address reception
106
        filtering.
107
        (i82559_restart): New routine to restart the device after fiddling
108
        with its setup - a tail recursion from i82559_start().
109
        (i82559_configure): More generic flags passed in and handled.
110
        (i82559_set_multicast): Routine to pass a set of addresses into
111
        the device; it works out the bitmap et al for us!
112
        (i82559_ioctl): Handle new case arms ETH_DRV_SET_MC_LIST and
113
        ETH_DRV_SET_MC_ALL if defined.  Reset and restart the device,
114
        diddling its status between.
115
 
116
2002-02-19  Mark Salter  
117
 
118
        * src/if_i82559.c (pci_init_find_82559s): Don't use IRQ support if
119
        CYGPKG_IO_ETH_DRIVERS_STAND_ALONE.
120
 
121
2002-01-28  Mark Salter  
122
 
123
        * src/if_i82559.c (pci_init_find_82559s): Removed CYG_ASSERT which
124
        assumed system PCI window exists.
125
 
126
2002-01-10  Jonathan Larmour  
127
 
128
        * src/if_i82559.c (find_82559s_match_func): Add some more compatible PCI
129
        ids.
130
 
131
2002-01-03  Mark Salter  
132
 
133
        * src/if_i82559.c (pci_init_find_82559s): Remove check that
134
        assumes driver owns entire PCI window.
135
 
136
        * cdl/intel_i82559_eth_drivers.cdl: Add
137
        CYGNUM_DEVS_ETH_INTEL_I82559_MAX_TX_DESCRIPTORS and
138
        CYGNUM_DEVS_ETH_INTEL_I82559_MAX_RX_DESCRIPTORS.
139
 
140
2001-11-19  Hugo Tyson  
141
2001-11-19  Anssi Pulkkinen 
142
 
143
        * src/if_i82559.c (TxMachine): The test to see if there is a new
144
        tx to start must also say "go" if the tx queue is full.  Normally,
145
        if the txqueue is full, a tx will be occurring at all times - so
146
        one will complete soon, so the tx queue full flag will soon be
147
        cleared, and this condition will recover.  I suspect a subtle race
148
        which effectively means a new tx is queued and fills the queue in
149
        between two tx's, so no TxDone() follows, causes the hang which we
150
        get without this extra test under high load.  [CASE 106686]
151
 
152
2001-09-20  Gary Thomas  
153
 
154
        * src/if_i82559.c: Add declaration of 'i82559_stop' to quiet warning.
155
 
156
2001-09-13  Hugo Tyson  
157
 
158
        * cdl/intel_i82559_eth_drivers.cdl:
159
        * src/if_i82559.c:
160
        Remove the tickle thread from this driver.  The functionality is
161
        now in the network timeout functionality which handles the
162
        "deliver" calls.  So it's only called if the net is quiet.
163
 
164
2001-09-12  Hugo Tyson  
165
 
166
        * src/if_i82559.c (TxDone): Defensive programming; zero the Tx key
167
        in the global data before making the callback.  This change
168
        appeared useful in our forebear, the EBSA-specific driver.
169
 
170
2001-08-29  Hugo Tyson  
171
 
172
        * cdl/intel_i82559_eth_drivers.cdl: New CDL options called
173
        CYGPKG_DEVS_ETH_INTEL_I82559_TICKLE_THREAD, .._PRIORITY and
174
        .._DELAY to control the thread.  By default this is all disabled
175
        because it is not needed for a real network application which
176
        itself proactively tries to use the net - it's only needed when
177
        the app is totally passive, so the driver otherwise does not get
178
        CPU time at all.
179
 
180
        * src/if_i82559.c (starti82559ticklethread): New code to start a
181
        thread (!) to catch lost interrupts and thus restart jammed
182
        hardware.  It's only possible if KERNEL and NET - RedBoot is
183
        unaffected, and it's not needed for RedBoot 'cos RedBoot polls.
184
        (TxMachine): An assert about the CU idle status sometimes fired;
185
        made the code more conservative wrt timing here.
186
        (comments): more documentation on the possible external configury
187
        by .inl file, described the two TIMEOUT macros that can be set,
188
        and indeed must be to use the tickling thread meaningfully.
189
 
190
2001-08-22  Gary Thomas  
191
 
192
        * src/if_i82559.c:
193
        printf() is no longer a part of RedBoot.  Thus all programs
194
        must use diag_printf() and related functions instead.
195
 
196
2001-06-22  Jesper Skov  
197
 
198
        * src/if_i82559.c (i82559_init): Handle EEPROMS without CRC.
199
 
200
2001-05-16  Jonathan Larmour  
201
 
202
        * src/if_i82559.c (udelay): Use virtual vector rather than assuming
203
        hal_delay_us() exists.
204
 
205
2001-04-09  Hugo Tyson  
206
 
207
        * src/if_i82559.c (pciwindow_mem_alloc): If asked, by
208
        CYGHWR_DEVS_ETH_INTEL_I82559_PCIMEM_DISCONTIGUOUS, check for
209
        breaks in the physical address of PCI window memory, and discard
210
        any block with a break in it, then redo the alloc.  This is for
211
        targets where smaller SDRAM chips are fitted than the address
212
        width, so they end up with gaps in (physical) memory.
213
 
214
2001-04-09  Hugo Tyson  
215
 
216
        * src/if_i82559.c (i82559_init): Support hardware with only one
217
        serial EEPROM attached to one device, but multiple devices.  This
218
        generally involves moving some decisions for eg. programming
219
        EEPROM or not, optionally from compiletime to runtime.  Improved
220
        the diagnostics a bit also, and fixed some bugs.
221
        (eth_set_mac_address): now takes an arg to say whether we want to
222
        program the EEPROM, or are just setting up the chip.
223
        (i82559_ioctl): This is the only place we set that arg to write
224
        the EEPROM, startup never tries to write EEPROM from any external
225
        source such as configured ESA or RedBoot params.
226
 
227
2001-04-09  Hugo Tyson  
228
 
229
        * src/if_i82559.c (i82559_start): Warnings fixed; unused vars
230
        following previous change.
231
 
232
2001-04-09  Hugo Tyson  
233
 
234
        * src/if_i82559.c (i82559_start): Do not wait for command
235
        completion after the initial DUMPSTATS operation.  The code to
236
        wait was bogus; it was looking at the structure in the wrong way.
237
        In any case, there is no need to wait, the wait_for_cmd_done() in
238
        any following activity is good enough.
239
 
240
2001-03-28  Hugo Tyson  
241
 
242
        * src/if_i82559.c (update_statistics): Fix warning - only declare
243
        op_i82559 if we use it - from previous change.
244
 
245
2001-03-23  Hugo Tyson  
246
 
247
        * src/if_i82559.c (i82559_can_send, i82559_send): Count up and
248
        down entries into these routines, and always say "no" to
249
        can_send() if we are recursing, ie. within_send != 0.  This is a
250
        good idea because it limits stack usage.  The recursion happens
251
        because of the very neccessary polling of rx state within the tx
252
        routines - which can deliver packets up into the stack, which can
253
        trigger a response tx and so on...  Also fixed a harmless bug
254
        where, after polling, the p_i82559 current device state pointer
255
        pointer to the wrong device, if we polled both devs regardless; it
256
        only caused problems with the within_send recursion count.
257
 
258
        * include/i82559_info.h (I82559): Add within_send field.
259
 
260
2001-03-15  Hugo Tyson  
261
 
262
        * src/if_i82559.c (i82559_init): Support external macro
263
        CYGHWR_DEVS_ETH_INTEL_I82559_GET_ESA(...), which if defined, is
264
        used to acquire a MAC address, on the assumption that there is no
265
        EEPROM present.  CYGHWR_DEVS_ETH_INTEL_I82559_HAS_NO_EEPROM
266
        confirms that there is no EEPROM attached to the 82559(s) so we
267
        can omit all that code.  It's in the negative sense because it's
268
        the unusual case.
269
 
270
2001-03-13  Hugo Tyson  
271
 
272
        * src/if_i82559.c (CYGHWR_DEVS_ETH_INTEL_I82559_DEMUX_ALL): Fully
273
        enable "DEMUX_ALL" option; all devices are scanned for
274
        activity/wedging/interrupts at every opportunity.  Multiple
275
        devices on the same interrupts are now supported.
276
 
277
2001-03-12  Hugo Tyson  
278
 
279
        * src/if_i82559.c (i82559_configure): New routine combines actions
280
        of eth_set_promiscuous_mode() and eth_set_config() both of which
281
        disappear.  Thus the device is always configured correctly from
282
        the start.  [from a patch from Martin Buck  
283
        via the EBSA285 driver]
284
        (eth_dsr): Do not call upper layer unless we are in a networked
285
        [non-RedBoot, non-polled] environment.  This is necessary because
286
        we call our own DSR from foreground to unstick after a lost
287
        interrupt.
288
        (find_82559s_match_func): New routine to discover disparate
289
        devices on the PCI bus.  Used in pci_init_find_82559s().
290
        (dump_txcb): Various junk debug functions removed.
291
 
292
2001-03-12  Hugo Tyson  
293
 
294
        * src/if_i82559.c: Some tidying up, and two main additions to the
295
        mechanisms used for managing this nasty entomological device.
296
        (i82559_can_send): [amongst other places] if it is defined, use
297
        CYGHWR_DEVS_ETH_INTEL_I82559_MISSED_INTERRUPT(p_i82559) to detect
298
        that we missed an interrupt - and if so, call the ISR and DSR
299
        directly.  This is necessary for edge-triggered interrupt
300
        controllers being fed by this level-sending device, where an
301
        internal event in the device can keep the line low after the code
302
        thinks that all events have been handled.
303
        (Check82559TxLockupTimeout): This routine runs a timeout (if the
304
        HAL provides a pair of watchdog-like macros) which performs a
305
        selective reset of the device if it takes too long to transmit.
306
        This happens rarely, but when it happens this is the only way out;
307
        the tx machine is fixated on one tx and never comes out of it.
308
 
309
 
310
        Sadly these two techniques to escape lockup only work if the
311
        driver is called (ie. the stack tries to tx); incoming packets
312
        cannot unwedge a device.  We might need to add a poll from the
313
        stack in future if this causes problems.
314
 
315
        * include/i82559_info.h (I82559): Added two words for managing tx
316
        lockup timeouts since this must be per-device.
317
 
318
2001-03-02  Hugo Tyson  
319
 
320
        * src/if_i82559.c: Remove "Platform specific - defaults provided"
321
        definitions for CYGHWR_INTEL_I82559_PCI_MEM_MAP_BASE/SIZE; all
322
        platforms now provide these.
323
        Added a little further disclaimer to the comment about LE/BE/GE.
324
 
325
2001-03-01  Hugo Tyson  
326
 
327
        * src/if_i82559.c: Global change: what was HAL_READ_UINTxx or
328
        HAL_WRITE_UINTxx are now READMEMxx or WRITEMEMxx - just
329
        convenience macros that do all the volatile casts we want there.
330
        Definitions of INL, INW, INB and OUTL, OUTW, OUTB recast in terms
331
        of HAL_READ_UINTxx or HAL_WRITE_UINTxx so that they will use
332
        proper IO operations on those CISCy mainframes that have a special
333
        way of doing IO.
334
 
335
2001-03-01  Hugo Tyson  
336
 
337
        * src/if_i82559.c: Much more configury added, so that I can use it
338
        with a new target board.  Including, but not limited to:
339
 
340
        o An essay about addressing, big endian, little endian and GIB
341
        endian (sic) and how we treat the various types of access within
342
        this module.  In other words, a lot of comments.
343
 
344
        o CYGNUM_DEVS_ETH_INTEL_I82559_SEPARATE_MUX_INTERRUPT to clarify
345
        that such an interrupt is SEPARATE from any simplex intrs that are
346
        also available.
347
 
348
        o CYGHWR_DEVS_ETH_INTEL_I82559_DEMUX_ALL for hardware where the
349
        the only interrupt is a multiplexed (wire or'd) one.  Plus
350
        associated macros for direct manipulation of interrupt masks and
351
        acknowledgments.
352
 
353
        o Support for external definition from the platform HAL or driver
354
        config module of CYGHWR_INTEL_I82559_PCI_MEM_MAP_BASE and SIZE.
355
        Also CYGHWR_INTEL_I82559_PCI_VIRT_TO_BUS.
356
 
357
        o LE definitions of a few macros that were missing.
358
 
359
        o Separated definitions of structure offsets from BE/LE
360
        definitions of consts within the words.  Offsets vary with GIB
361
        endian, for those CPUs who just flip bits.  No change for BE
362
        machines, needed for LE machines to work.  To enable address-flip
363
        within structures, define CYG_ADDRESSING_IS_GIBENDIAN.
364
 
365
        o Re-org of mux/simplex deliver and isr's for new configuration.
366
 
367
        o Couple of extra debug printouts.
368
 
369
2001-01-26  Jesper Skov  
370
 
371
        * src/if_i82559.c: Added FIXME for promiscuous mode.
372
 
373
2001-01-25  Jesper Skov  
374
 
375
        * src/if_i82559.c: Replace CYGNUM_HAL_INTERRUPT_PCI_IRQ with
376
        CYGNUM_DEVS_ETH_INTEL_I82559_MUX_INTERRUPT which platform .inl
377
        must provide when appropriate. Changed _deliver functions to match
378
        _isr functions.
379
        * include/i82559_info.h: Remove debug hacks.
380
        Fix declaration.
381
 
382
        * src/if_i82559.c: Moved device descriptors into platform header.
383
        Allow individual devices to hardwire ESA. Handle N devices instead
384
        of just 1 or 2.
385
        * include/i82559_info.h: ESA hardwired flag added.
386
        * cdl/intel_i82559_eth_drivers.cdl: Device details moved to
387
        platform CDL.
388
 
389
        * src/if_i82559.c (i82559_start): Poll status after dump command.
390
 
391
2001-01-24  Jesper Skov  
392
 
393
        * src/if_i82559.c: [changes from yesterday] Some more endian
394
        fiddle, and the device coughs out the initial ARP packets.
395
        (wait_for_cmd_done): semantics changed to wait for pending CU
396
        cmds.
397
        (i82559_reset): Cleaned up to spec. Init register bases after
398
        reset.
399
        Fix initialization of hardwired ESA.
400
        Correct configuration command.
401
        Fix rcv len masking.
402
        (eth_set_mac_address): Set driver's ESA as well. Proper check for
403
        completion.
404
        Fix LE structure offsets.
405
        (i82559_start): Call new eth_set_config to enable device. Last
406
        hacks cleaned up.
407
        Remove a few printfs.
408
 
409
2001-01-23  Jesper Skov  
410
 
411
        * src/if_i82559.c: Debug hackery and some endian issues resolved.
412
 
413
2001-01-22  Jesper Skov  
414
 
415
        * src/if_i82559.c: Major changes, getting rid of device structures
416
        in favor of HAL IO accessor macros. Also added endian conversion
417
        macros where required.
418
        * include/i82559_info.h: Change type of device structures to char.
419
 
420
2001-01-19  Jesper Skov  
421
 
422
        * cdl/intel_i82559_eth_drivers.cdl: Hack for just one interface
423
        now.
424
        * src/if_i82559.c: Fix IO functions. Handle EEPROM not being
425
        attached to device.
426
 
427
        * src/if_i82559.c: Use uncached/physical address translation
428
        macros.
429
 
430
2001-01-15  Jesper Skov  
431
 
432
        * src/if_i82559.c: Handle endian differences between controller
433
        and CPU. Leave usdelay to HAL. Hack around PCI-base-at-0
434
        assumption.
435
        Increase SK_DELAY (not that it changed anything, but now it's to
436
        the spec), hardwire static ESA.
437
 
438
2001-01-12  Jesper Skov  
439
 
440
        * src/if_i82559.c (pci_init_find_82559s): Check that device has
441
        been found before accessing it.
442
        (pci_init_find_82559s): Only delay if devices were
443
        found. Recognize 82559ER code as well.
444
 
445
2001-01-10  Jesper Skov  
446
 
447
        * src/if_i82559.c: Minor hacks to get it to build.
448
        * include/i82559_info.h: Same.
449
        * cdl/intel_i82559_eth_drivers.cdl: Same.
450
 
451
2000-12-07  Jesper Skov  
452
 
453
        * cdl/intel_i82559_eth_drivers.cdl: Cloned from the EBSA driver.
454
        * include/i82559_info.h: Same.
455
        * src/if_i82559.c: Same.
456
 
457
2000-11-19  Gary Thomas  
458
 
459
        * src/if_ebsa285.c (pci_init_find_82559s): Intel has at least
460
        two devices equivalent to the 82559.  Support both (0x1229, 0x01030).
461
 
462
2000-10-05  Hugo Tyson  
463
 
464
        * src/if_ebsa285.c: Deal with device interrupts in a nested
465
        fashion - disable/restore is the semantics now, rather than
466
        unconditionally unmasking.  Also go directly to the 21285 PIC's
467
        interrupt control registers to gain atomicity for these.  Poll for
468
        ready received packets when acknowledging an interrupt in the
469
        tranmitting world; a race here could lose an Rx interrupt.  Which
470
        doesn't matter on a busy system, but in quieter times...  there
471
        will always be such a race because of the vague way the i82559's
472
        status bits reflect how it's yanking the interrupt line; you have
473
        to poll until the interrupt is gone before returning else spurious
474
        interrupt failures occur.  The issue is to close the window as
475
        tightly as possible, which this change achieves at a minor cost in
476
        performance - because of the time spent polling when not required.
477
 
478
2000-09-11  Hugo Tyson  
479
 
480
        * src/if_ebsa285.c (i82559_poll): Only diddle the interface we
481
        were asked to.  This is more correct in terms of the intent of the
482
        API, though it shouldn't really be necessary.
483
 
484
2000-09-06  Hugo Tyson  
485
 
486
        * src/if_ebsa285.c (pci_init_find_82559s): Add asserts and an
487
        unconditional check that the PCI window as configured matches the
488
        address and size of the pci_window region from the MLT.  This is
489
        here because at present the MLT and CT cannot intercommunicate
490
        enough.  The separation of the PCI window is needed because
491
        otherwise the malloc heap will eat all memory.  [This is related
492
        to CR 902624-CR, "MLT needs to be configuration aware"]
493
 
494
2000-09-01  Hugo Tyson  
495
 
496
        * OVERVIEW: This is part of the change to the network stack to
497
        greatly reduce latencies both of (other) DSRs and of thread
498
        scheduling.  All the work that the network stack *and* individual
499
        ether drivers used to do in DSRs (including alarm callbacks and
500
        data copies to/from the device memory) is moved into a "fast
501
        network thread" instead.  It calls a device's "deliver" function
502
        to do the work that was previously in the DSR.  This is a separate
503
        thread so that it can be set higher priority than application
504
        threads in order to minimize packet loss (depending on the
505
        driver), if required (the application threads presumed to be
506
        higher priority in turn than the network thread).  A crucial
507
        consequence of this is that we are no longer locking against DSRs,
508
        so a plain mutex can be used rather than the global scheduler
509
        lock, thus simplifying all the splfoo/splx() style functions.
510
 
511
        * src/if_ebsa285.c: Minor: fix the big assert in i82559_send()
512
        which suffered a race condition when called from the fast thread
513
        rather than from a DSR.  Major: Add a "deliver" entry to the
514
        interface record for the "fast thread" implementation of the
515
        network internal comms system.  Provide a pass-up DSR to the
516
        logical ether driver's DSR and appropriate delivery routine(s).
517
        i82559_poll() now calls i82559_deliver() rather than the DSR.  Add
518
        valid data for mux'd DSR to pass on up.
519
 
520
2000-09-01  Hugo Tyson  
521
 
522
        * tests/test_net_realtime.h: Tighten up the latency requirements
523
        by a factor of 5; it all seems happy, so committed.
524
 
525
2000-08-25  Hugo Tyson  
526
 
527
        * src/if_ebsa285.c (i82559_ioctl): A little further diddling; have
528
        a bool to say whether the dot3 info is filled in.
529
 
530
2000-08-24  Hugo Tyson  
531
 
532
        * cdl/ebsa285_eth_drivers.cdl: Do not export a symbol for the
533
        device info file (include/ebsa285_info.h) since nobody needs
534
        (portably) to include it now.
535
 
536
        * src/if_ebsa285.c (i82559_ioctl): Handle new ioctl calls
537
        ETH_DRV_GET_IF_STATS_UD and ETH_DRV_GET_IF_STATS to get loads of
538
        statistical information out.  _UD means update.  The nonUD one can
539
        be used instead mostly, if we find the performance hit too large.
540
        This should allow SNMP (a) to not explode, (b) to get useful info
541
        out of other device implementations than this one.
542
 
543
        * include/ebsa285_info.h: Remove all the macro cruft for feature
544
        detecting of lots of individual statistics; we now just have a
545
        catch-all struct that SNMP uses, defined in the common ether
546
        driver environment.
547
 
548
2000-08-15  Hugo Tyson  
549
 
550
        * src/if_ebsa285.c (PacketRxReady): Put back the check for very
551
        small packets into the driver; the layer above checks for that
552
        (defensive programming) but only *after* asserting that the size
553
        is large enough, to help detect that scenario from other drivers.
554
        I believe we only have struct ether_header available if CYGPKG_NET
555
        but I could be wrong.
556
        [CASE 104353]
557
 
558
2000-08-08  Hugo Tyson  
559
 
560
        * src/if_ebsa285.c (eth_set_promiscuous_mode):
561
        - ccs->config_bytes[18]=0x70;
562
        + ccs->config_bytes[18]=0x72; // Keep the Padding Enable bit
563
        ...otherwise short frame sends don't work in promisc mode.
564
        [CASE 104289]
565
 
566
2000-08-07  Gary Thomas  
567
 
568
        * src/if_ebsa285.c (pciwindow_mem_alloc): Take out very noisy debug.
569
 
570
2000-08-03  Gary Thomas  
571
 
572
        * src/if_ebsa285.c: Changes for stand-alone mode.
573
 
574
        * cdl/ebsa285_eth_drivers.cdl: Ethernet driver package hierarchy changed.
575
        Add option to control number of interfaces.
576
 
577
2000-07-28  Hugo Tyson  
578
 
579
        * src/if_ebsa285.c (PacketRxReady): Do not attempt to forward
580
        short packets; eth_drv.c assumes there is at least a header there.
581
        (i82559_recv): Also be more careful and ASSERTive about -ve buffer
582
        sizes; be more defensive about sglists.  [CASE 104206]
583
 
584
2000-07-26  Gary Thomas  
585
 
586
        * src/if_ebsa285.c: Update for new eth_drv interfaces.
587
 
588
2000-07-18  Hugo Tyson  
589
 
590
        * src/if_ebsa285.c (i82559_poll): Fill in the flesh of this, it
591
        just calls ISR and DSR repeatedly.
592
        (i82559_start): Look in the device record for promiscuous mode
593
        flag; it should be passed though the common layer, but it's not
594
        [yet] - this change from Andrew Lunn/ASCOM.  Also a fix and delay
595
        to the promisc mode code per se.
596
 
597
2000-07-17  Hugo Tyson  
598
 
599
        * src/if_ebsa285.c (i82559_poll): New function, just to fill in
600
        the interface record; not used.
601
 
602
2000-06-27  Hugo Tyson  
603
 
604
        * cdl/ebsa285_eth_drivers.cdl: Add sesquipedalian option
605
        CYGDBG_DEVS_ETH_ARM_EBSA285_KEEP_82559_STATISTICS in (now)
606
        component CYGDBG_DEVS_ETH_ARM_EBSA285_KEEP_STATISTICS to control
607
        keeping (well, harvesting really) the i82559's internal stats.
608
        Reputedly, it doesn't service the net whilst this is happening, so
609
        it could be viewed a bad thing.  Hence the option.
610
 
611
        * include/ebsa285_info.h: Only describe the I82559_COUNTERS
612
        i82559_counters[2]; structs if full stats are to be kept.
613
 
614
        * src/if_ebsa285.c (update_statistics): Only include this if full
615
        stats are to be kept.
616
 
617
2000-06-27  Hugo Tyson  
618
 
619
        * src/if_ebsa285.c (ResetRxRing): Re-do the management of the
620
        RxRing; have an end-of-list flag (EL) in the last entry, and as
621
        you unload filled slots, drag it round after you.
622
 
623
2000-06-14  Hugo Tyson  
624
 
625
        * cdl/ebsa285_eth_drivers.cdl: Add option to control statistics
626
        keeping.
627
 
628
        * include/ebsa285_info.h: Act on it.
629
 
630
2000-06-13  Hugo Tyson  
631
 
632
        * cdl/ebsa285_eth_drivers.cdl: Properly include the new header
633
        file and define symbols to allow client code to get at it without
634
        knowing the particular device driver name.
635
 
636
        * include/ebsa285_info.h: New file: export various statistics
637
        information about the driver for use by monitoring and
638
        network-management systems.  This requires exposing the
639
        (otherwise) internal structures of the driver.
640
 
641
        * src/if_ebsa285.c: remove a lot of structure definitions &c that
642
        are now necessarily in the new header; add a couple of new
643
        routines which provide status and update statistics from the
644
        device into memory; tidy up control of whether stats-keeping is
645
        enabled.
646
 
647
2000-06-06  Hugo Tyson  
648
 
649
        * cdl/ebsa285_eth_drivers.cdl (define_proc): Add #define of
650
        CYGDAT_DEVS_ETH_DESCRIPTION in the config file for information.
651
 
652
2000-05-12  Hugo Tyson  
653
 
654
        * tests/test_net_realtime.h (tnr_print_activity): New routine to
655
        check the system is working, tidied up the API.  It works!
656
 
657
2000-05-11  Hugo Tyson  
658
 
659
        * cdl/ebsa285_eth_drivers.cdl: Added export of the test header
660
        below, and config opts for controlling EEPROM writing and all the
661
        status chatter as the device starts up.
662
 
663
        * src/if_ebsa285.c: Reworked the code for reading and setting the
664
        EEPROM that holds the MAC address.  This is very ugly, but now
665
        more reliable.  Also tidied up printing cruft with neater
666
        configury, and made it an option (for safety) whether it's
667
        possible to write the EEPROM at all.
668
 
669
        * tests/test_net_realtime.h: New file - it is intended to be used
670
        by networking tests to verify that latency is not compromised by
671
        the stack and driver.  It's very platform specific, hence the
672
        location in here.  This is a preliminary version only.
673
 
674
2000-04-27  Hugo Tyson  
675
 
676
        * src/if_ebsa285.c: A serious re-write.  This cuts out a lot of
677
        code from the old version and improves the performance greatly.
678
 
679
        The cruft was mainly doing lots of explicit event communication
680
        between the ISR and DSR, when in fact all the state needed is
681
        present in the tx/rx rings.  So both ISRs and DSRs regard their
682
        call as an opportunity to progress everything they can, rather
683
        than only dealing with one interrupt cause at a time; the
684
        connection between them is now rather looser.
685
 
686
        Interrups can now be re-enabled after the ISR (in other words they
687
        are not masked in the ISR), no need to wait for the DSR, but in
688
        consequence some DSR code must mask/unmask intrs as it works.
689
 
690
        The 82559 appears to be a little slow in reacting to commands and
691
        state changes, so some interrupts were being lost - or persisting
692
        beyond their desired life - so there's some kinda polling code to
693
        deal with that also.  We also rely on the foreground to kind of
694
        poll in the same way, in the send/can_send calls - we know the
695
        stack will re-try if necessary, though this is rare.
696
 
697
        The driver now works (albeit at much reduced performance) with as
698
        few as 6 rx and tx buffers - in other words the "queue full/out of
699
        rx buffers" states have been tested and all is well.  It works
700
        generally fine with 8 buffers of each kind.
701
 
702
        The mux ISR and DSR are now rather more polled than the old
703
        versions; we just try to do things with both devices (if active)
704
        by simply calling each unitary ISR/DSR respectively.
705
 
706
        I also re-ordered some of the code, moving utilities to the end of
707
        the file and grouping together Tx and Rx machines a bit better.
708
 
709
2000-04-13  Hugo Tyson  
710
 
711
        * src/if_ebsa285.c: Attribution to Ron Spence, Pacific Softworks
712
        added as a contributor.
713
 
714
2000-04-07  Hugo Tyson  
715
 
716
        * ecos.db: Re-organize device packages.  This is a massive change
717
        involving deleting all the sources for serial and ethernet drivers
718
        from where they used to live in
719
            packages/io/serial/current/src/ARCH/PLATFORM.[ch]
720
            packages/net/drivers/eth/PLATFORM/current/src/...
721
        and reinstating them in
722
            packages/devs/serial/ARCH/PLATFORM/current/src/...
723
            packages/devs/eth/ARCH/PLATFORM/current/src/...
724
 
725
        All these new packages are properly defined in ecos.db, and are
726
        all of type "hardware" so that a "target" can grab them.
727
 
728
        This directory layout is descriptive of the devices we have right
729
        now, arch and platform are separate levels just to make it easier
730
        to navigate in the filesystem and similar to the HAL structure in
731
        the filesystem.
732
 
733
        It is *not* prescriptive of future work; for example, the mythical
734
        common highly-portable 16550 serial driver which works on many
735
        targets would be called "devs/serial/s16550/current", or a serial
736
        device for a particular board (cogent springs to mind) that can
737
        work with different CPUs fitted is "devs/serial/cogent/current".
738
 
739
        Changelogs have been preserved and replicated over all the new
740
        packages, so that no history is lost.
741
 
742
        The contents of individual source files are unchanged; they build
743
        in just the same emvironment except for a very few cases where the
744
        config file name changed in this movement.
745
 
746
        Targets in ecos.db have been redefined to bring in all relevant
747
        hardware packages including net and serial drivers (but the newly
748
        included packages are only active if their desired parent is
749
        available.)
750
 
751
        The names of CDL options (and their #defines of course) stay the
752
        same for the serial drivers, for backward compatibility.
753
 
754
        * templates/*/current.ect: these have had CYGPKG_IO_SERIAL added
755
        rather than it being in (almost) all target definitions.
756
 
757
2000-03-29  Hugo Tyson  
758
 
759
        * src/if_ebsa285.c (i82559_recv): Be happy with NULLs in the
760
        SGlist; it means the caller is out of memory so drop the packet on
761
        the floor.  Also remove a completely redundant test.
762
 
763
2000-03-06  Hugo Tyson  
764
 
765
        * src/if_ebsa285.c (i82559_can_send): Update net driver to new
766
        interface style.  This is incomplete wrt promiscuous mode, but
767
        that's probably about all.
768
 
769
2000-02-14  Gary Thomas  
770
 
771
        * cdl/ebsa285_eth_drivers.cdl: Update CDL to indicate multiple
772
        interface support.
773
 
774
2000-02-14  Hugo Tyson  
775
 
776
        * src/if_ebsa285.c (pci_init_find_82559s): Tidy comments somewhat
777
        and set debug and stats collecting defines to most friendly
778
        settings.
779
 
780
2000-02-10  Hugo Tyson  
781
 
782
        * src/if_ebsa285.c (PacketRxReady): Fix bug; current descriptor
783
        was not being write back for the callback to use.  Hence asserts
784
        on state of rfd were firing in busy times - that leading rfd had
785
        already been drained.
786
 
787
        Also rationalized meaning of DEBUG printy symbols a bit - it's now
788
        chatty during startup/foreground manipulations but not in any
789
        performance related activities ie. rx or tx.
790
 
791
2000-02-09  John Dallaway  
792
 
793
        * cdl/ebsa285_eth_drivers.cdl:
794
 
795
        Reparent under CYGPKG_NET_ETH_DRIVERS and tidy display strings.
796
 
797
2000-02-08  Hugo Tyson  
798
 
799
        * src/if_ebsa285.c: New File.
800
        * cdl/ebsa285_eth_drivers.cdl: New File.
801
 
802
        Initial Checkin of EBSA285 Ethernet driver.
803
 
804
        It's one monolithic file at present, and should be split up into a
805
        more generic Intel 82559 driver plus platform-specific parts (PCI
806
        et al) plus eCos/Red-Hat-BSD-stack parts.
807
 
808
//===========================================================================
809
// ####GPLCOPYRIGHTBEGIN####
810
// -------------------------------------------
811
// This file is part of eCos, the Embedded Configurable Operating System.
812
// Copyright (C) 1998, 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
813
//
814
// This program is free software; you can redistribute it and/or modify
815
// it under the terms of the GNU General Public License as published by
816
// the Free Software Foundation; either version 2 or (at your option) any
817
// later version.
818
//
819
// This program is distributed in the hope that it will be useful, but
820
// WITHOUT ANY WARRANTY; without even the implied warranty of
821
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
822
// General Public License for more details.
823
//
824
// You should have received a copy of the GNU General Public License
825
// along with this program; if not, write to the
826
// Free Software Foundation, Inc., 51 Franklin Street,
827
// Fifth Floor, Boston, MA  02110-1301, USA.
828
// -------------------------------------------
829
// ####GPLCOPYRIGHTEND####
830
//===========================================================================
831
 
832
 
833
 

powered by: WebSVN 2.1.0

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