cvs commit: src/sys/dev/ti if_ti.c if_tireg.h
scottl at FreeBSD.org
Tue Dec 13 16:03:48 PST 2005
scottl 2005-12-14 00:03:41 UTC
FreeBSD src repository
sys/dev/ti if_ti.c if_tireg.h
Fix the Tigon I/II driver to support 64-bit DMA. In the process, convert it
to use busdma. Unlike most of the other drivers, but similar to the
if_em driver, pre-allocate the dmamaps at init time instead of allocating
them on the fly when descriptors need to be filled. This isn't ideal right
now because a map is allocated for every descriptor slot in the tx, rx, mini,
and jumbo rings (which is a lot!) in order to simplify the bookkeeping, even
though the driver might support filling only a subset of those slots.
Luckily, maps are typically NULL on i386 and amd64, so the cost isn't
very high. It could be an issue with sparc64, but the driver isn't endian
clean either, and that is a much bigger problem to solve first.
Note that jumbo frame support is under-tested, and I'm not even sure if
it till really works correctly given the evil VM magic that is does.
The changes here attempt to preserve the existing semanitcs.
Thanks to Martin Nillson for contributing the Netgear card for this work.
MFC-After: 3 weeks
Revision Changes Path
1.117 +321 -86 src/sys/dev/ti/if_ti.c
1.34 +26 -13 src/sys/dev/ti/if_tireg.h
More information about the cvs-src