freebsd-skq/sys/dev/dc
Bill Paul fda39fd069 Reintroduce the dc_coal() workaround routine for coalescing outbound
packets into a single buffer, and set the DC_TX_COALESCE flag for the
Davicom DM9102 chip. I thought I had escaped this problem, but... This
chip appears to silently corrupt or discard transmitted frames when
using scatter/gather DMA (i.e. DMAing each packet fragment in place
with a separate descriptor). The only way to insure reliable transmission
is to coalesce transmitted packets into a single cluster buffer. (There
may also be an alignment constraint here, but mbuf cluster buffers are
naturally aligned on 2K boundaries, which seems to be good enough.)

The DM9102 driver for Linux written by Davicom also uses this workaround.
Unfortunately, the Davicom datasheet has no errata section describing
this or any other apparently known defect.

Problem noted by: allan_chou@davicom.com.tw
2000-01-12 22:24:05 +00:00
..
dcphy.c Fix some problems reported by Mike Pritchard: 1999-12-13 21:45:13 +00:00
if_dc.c Reintroduce the dc_coal() workaround routine for coalescing outbound 2000-01-12 22:24:05 +00:00
if_dcreg.h Fix some problems reported by Mike Pritchard: 1999-12-13 21:45:13 +00:00
pnphy.c Add the if_dc driver and remove all of the al, ax, dm, pn and mx drivers 1999-12-04 17:41:31 +00:00