freebsd-skq/sys
yongari a3d06d520a Split common TX/RX descriptor DMA tag to TX and RX DMA tags
respectively and fix all bus_dma(9) issues seen when bounce buffers
are used.
 o Setup frame handling had no bus_dmamap_sync(9) which prevented
   driver from configuring RX filter. Add missing bus_dmamap_sync(9)
   in both dc_setfilt_21143()/dc_setfilt_xircom() and dc_txeof().
 o Use bus_addr_t for DMA segment instead of using u_int32_t.
 o Introduce dc_dma_alloc()/dc_dma_free() functions to allocate/free
   DMA'able memory.
 o Create two DMA descriptor list for each TX/RX lists. This change
   will minimize the size of bounce buffers that would be used in
   each TX/RX path.  Previously driver had to copy both TX/RX lists
   when bounce buffer is active.
 o 21143 data sheet says descriptor list requires 4 bytes alignment.
   Remove PAGE_SIZE alignment restriction and use
   sizeof(struct dc_dec).
 o Setup frame requires 4 bytes alignment.  Remove PAGE_SIZE
   alignment restriction and use sizeof(struct dc_dec).
 o Add missing DMA map unload for both setup frame and TX/RX
   descriptor list.
 o Overhaul RX handling logic such that make driver always allocate
   new RX buffer with dc_newbuf(). Previously driver allowed to
   copy received frame with m_devget(9) after passing the
   descriptor ownership to controller. This can lead to passing
   wrong frame to upper stack.
 o Introduce dc_discard_rxbuf() which will discard received frame
   and reuse loaded DMA map and RX mbuf.
 o Correct several wrong bus_dmamap_sync(9) usage in dc_rxeof and
   dc_txeof. The TX/RX descriptor lists are updated by both driver
   and HW so READ/WRITE semantics should be used.
 o If driver failed to allocate new RX buffer, update if_iqdrops
   counter instead of if_ierrors since driver received the frame
   without errors.
 o Make sure to unload loaded setup frame DMA map in dc_txeof and
   clear the mark of setup frame of the TX descriptor in dc_txeof().
 o Add check for possible TX descriptor overruns in dc_encap() and
   move check for free buffer to caller, dc_start_locked().
 o Swap the loaded DMA map and the last DMA map for multi-segmented
   frames. Since dc_txeof() assumes the last descriptor of the
   frame has the DMA map, driver should swap the first and the last
   DMA map in dc_encap(). Previously driver tried to unload
   not-yet-loaded DMA map such that the loaded DMA map was not
   unloaded at all for multi-segmented frames.
 o Rewrite DC_RXDESC/DC_TXDESC macro to simpler one.
 o Remove definition of ETHER_ALIGN, it's already defined in
   ethernet.h.

With this changes, dc(4) works with bounce buffers and it shall
also fix issues which might have shown in PAE environments.

Tested by:	marius
2011-02-19 02:47:10 +00:00
..
amd64 Remove pmap fields that are either unused or not fully implemented. 2011-02-17 15:36:29 +00:00
arm Fix the R_ARM_ABS32 relocation implementation. The memory address 2011-02-17 19:31:21 +00:00
boot Merge binutils 2.17.50 to head. This brings a number of improvements to 2011-02-18 20:54:12 +00:00
bsm
cam In addition to r217444 ignore also ATA status errors on DMA Auto-Activation 2011-01-26 06:57:48 +00:00
cddl Use the preload_fetch_addr() and preload_fetch_size() convenience 2011-02-13 19:46:55 +00:00
compat For realtime signals fill the sigval value. 2011-02-15 21:46:36 +00:00
conf Turn off default generation of userland dot symbols on powerpc64 now that 2011-02-18 21:44:53 +00:00
contrib Merge ACPICA 20110211. 2011-02-12 01:03:15 +00:00
crypto Remove DEBUG sections. 2010-11-27 15:41:44 +00:00
ddb Modify kdb_trap() so that it re-calls the dbbe_trap function as long as 2011-02-18 22:25:11 +00:00
dev Split common TX/RX descriptor DMA tag to TX and RX DMA tags 2011-02-19 02:47:10 +00:00
fs Mfp4 CH=177274,177280,177284-177285,177297,177324-177325 2011-02-16 21:29:13 +00:00
gdb Modify kdb_trap() so that it re-calls the dbbe_trap function as long as 2011-02-18 22:25:11 +00:00
geom Correct a subtle bug in the 'gsched_rr' disk scheduler. 2011-02-14 08:09:02 +00:00
gnu Remove prtactive variable and related printf()s in the vop_inactive 2010-11-19 21:17:34 +00:00
i386 Remove pmap fields that are either unused or not fully implemented. 2011-02-17 15:36:29 +00:00
ia64 Remove pmap fields that are either unused or not fully implemented. 2011-02-17 15:36:29 +00:00
isa bus_add_child: change type of order parameter to u_int 2010-09-10 11:19:03 +00:00
kern Modify kdb_trap() so that it re-calls the dbbe_trap function as long as 2011-02-18 22:25:11 +00:00
kgssapi
libkern Sync: merge r215273 through r215318 from ^/head. 2010-11-14 20:47:30 +00:00
mips Remove pmap fields that are either unused or not fully implemented. 2011-02-17 15:36:29 +00:00
modules cxgbe(4) - NIC driver for Chelsio T4 (Terminator 4) based 10Gb/1Gb adapters. 2011-02-18 08:00:26 +00:00
net Mfp4 CH=177274,177280,177284-177285,177297,177324-177325 2011-02-16 21:29:13 +00:00
net80211 Instead of always returning 0 to a scan request, indicate if there is 2011-01-30 14:05:21 +00:00
netatalk
netgraph Mfp4 CH=177274,177280,177284-177285,177297,177324-177325 2011-02-16 21:29:13 +00:00
netinet Bugfix: Get per vnet sysctl variables and statistics working. 2011-02-18 20:30:58 +00:00
netinet6 Fix bugs related to M_FLOWID: 2011-02-07 15:04:23 +00:00
netipsec Fixed IPsec's HMAC_SHA256-512 support to be RFC4868 compliant. 2011-02-18 09:40:13 +00:00
netipx
netnatm
netncp
netsmb Change some variables from int to size_t. This is more accurate since 2011-01-08 23:06:54 +00:00
nfs Modify the experimental NFSv4 server so that it posts a SIGUSR2 2011-01-14 23:30:35 +00:00
nfsclient Mfp4 CH=177274,177280,177284-177285,177297,177324-177325 2011-02-16 21:29:13 +00:00
nfsserver Unless "cnt" exceeds MAX_COMMIT_COUNT, nfsrv_commit() and nfsvno_fsync() are 2011-02-05 21:21:27 +00:00
nlm sysctl(9) cleanup checkpoint: amd64 GENERIC builds cleanly. 2011-01-12 19:54:19 +00:00
opencrypto Sync: merge r215273 through r215318 from ^/head. 2010-11-14 20:47:30 +00:00
pc98 Based on discussions on the svn-src mailing list, rework r218195: 2011-02-08 00:16:36 +00:00
pci Add initial support for RTL8401E PCIe Fast Ethernet. 2011-02-16 21:59:42 +00:00
powerpc Turn off default generation of userland dot symbols on powerpc64 now that 2011-02-18 21:44:53 +00:00
rpc Mfp4 CH=177274,177280,177284-177285,177297,177324-177325 2011-02-16 21:29:13 +00:00
security Unless "cnt" exceeds MAX_COMMIT_COUNT, nfsrv_commit() and nfsvno_fsync() are 2011-02-05 21:21:27 +00:00
sparc64 Remove pmap fields that are either unused or not fully implemented. 2011-02-17 15:36:29 +00:00
sun4v Remove pmap fields that are either unused or not fully implemented. 2011-02-17 15:36:29 +00:00
sys Turn off default generation of userland dot symbols on powerpc64 now that 2011-02-18 21:44:53 +00:00
teken Use proper bounds checking on VPA. 2010-12-05 10:15:23 +00:00
tools Add an extra comment to the SDT probes definition. This allows us to get 2010-08-22 11:18:57 +00:00
ufs Use the native sector size of the device backing the UFS volume for SU+J 2011-02-12 12:52:12 +00:00
vm Remove pmap fields that are either unused or not fully implemented. 2011-02-17 15:36:29 +00:00
x86 Use a dedicated taskqueue with a thread that runs at a software-interrupt 2011-02-03 13:09:22 +00:00
xdr
xen Fix a few more SYSCTL_PROC() that were missing a CTLFLAG type specifier. 2011-01-19 00:57:58 +00:00
Makefile Add lex and yacc sources to things cscope'd. 2010-11-21 03:58:11 +00:00