freebsd-src/sys
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
..
alpha Sort. 2000-01-12 02:30:42 +00:00
amd64 Sort. 2000-01-12 02:30:42 +00:00
boot Add device driver support for USB ethernet adapters based on the 2000-01-05 04:27:24 +00:00
cam Widen width of tag && initiator ids to u_int 2000-01-03 08:54:51 +00:00
coda Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 05:07:58 +00:00
compat Return Linux kernel version 2.2.12 by default. This is in line 2000-01-10 13:09:08 +00:00
compile
conf Merge from sys/conf/files.i386 revision 1.296. 2000-01-12 13:43:23 +00:00
contrib We cannot proceed to free the blocks of the file until the dependencies 2000-01-11 06:52:35 +00:00
crypto Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 05:07:58 +00:00
ddb Add a new mechanism, cndbctl(), to tell the console driver that 2000-01-11 14:54:01 +00:00
dev Reintroduce the dc_coal() workaround routine for coalescing outbound 2000-01-12 22:24:05 +00:00
fs remove check now done in vn_isdisk(). 2000-01-10 12:24:36 +00:00
geom Give vn_isdisk() a second argument where it can return a suitable errno. 2000-01-10 12:04:27 +00:00
gnu Give vn_isdisk() a second argument where it can return a suitable errno. 2000-01-10 12:04:27 +00:00
i4b update to isdn4bsd beta release 0.90 1999-12-14 20:54:38 +00:00
i386 Sort. 2000-01-12 02:30:42 +00:00
isa Make the mouse cursor char code configurable via the CONS_MOUSECTL 2000-01-12 12:30:33 +00:00
isofs/cd9660 remove check now done in vn_isdisk(). 2000-01-10 12:24:36 +00:00
kern Seconds to ticks conversion was done at the wrong place. 2000-01-12 17:26:42 +00:00
libkern Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 05:07:58 +00:00
miscfs Give vn_isdisk() a second argument where it can return a suitable errno. 2000-01-10 12:04:27 +00:00
modules Add opt_ukbd.h. 2000-01-12 00:46:08 +00:00
msdosfs Give vn_isdisk() a second argument where it can return a suitable errno. 2000-01-10 12:04:27 +00:00
net Attempt to fix a problem with receiving packets on USB ethernet interfaces. 2000-01-10 23:12:54 +00:00
netatalk Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
netatm Fix a warning (unused variable RCSid) 1999-11-18 08:18:13 +00:00
netgraph Fix a few obscure memory leaks. 2000-01-05 20:36:07 +00:00
netinet MGETHDR() does not initialize m_pkthdr.rcvif, do it here. 2000-01-10 18:46:05 +00:00
netinet6 tcp updates to support IPv6. 2000-01-09 19:17:30 +00:00
netipx Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
netkey Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
netnatm Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
netncp Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
netns Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 04:46:21 +00:00
nfs tcp updates to support IPv6. 2000-01-09 19:17:30 +00:00
nfsclient tcp updates to support IPv6. 2000-01-09 19:17:30 +00:00
nfsserver tcp updates to support IPv6. 2000-01-09 19:17:30 +00:00
ntfs Give vn_isdisk() a second argument where it can return a suitable errno. 2000-01-10 12:04:27 +00:00
nwfs Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 05:07:58 +00:00
pc98 Put on my asbestos suit and move $mach/conf/*.$mach to conf/*.$mach as 2000-01-09 15:29:10 +00:00
pccard Fill in the blanks for some of the Texas Instruments cardbus controllers. 1999-12-31 07:22:24 +00:00
pci Reintroduce the dc_coal() workaround routine for coalescing outbound 2000-01-12 22:24:05 +00:00
posix4 Change #ifdef KERNEL to #ifdef _KERNEL in the public headers. "KERNEL" 1999-12-29 05:07:58 +00:00
powerpc Sync with i386 2000-01-08 16:43:46 +00:00
rpc $Id$ -> $FreeBSD$ 1999-08-27 23:45:13 +00:00
svr4 Removed bogus include of opt_global.h. opt_global.h is automatically 2000-01-09 12:29:45 +00:00
sys Make the mouse cursor char code configurable via the CONS_MOUSECTL 2000-01-12 12:30:33 +00:00
tools Use a seperate -c and -h mode. The vnode_if.c file is compiled only into 1999-12-12 16:43:05 +00:00
ufs The only known cause of this panic is running out of disk space. 2000-01-11 08:27:00 +00:00
vm Give vn_isdisk() a second argument where it can return a suitable errno. 2000-01-10 12:04:27 +00:00
Makefile ${MACHINE} -> ${MACHINE_ARCH} 1999-11-14 13:54:44 +00:00