Bump the default values for these to the values used by FreeBSD,
and also adjust ti_init_rx_ring_jumbo() to use the same constant
that FreeBSD uses. Yes, this consumes more kernel memory.
The effect of this is that you can use jumbo frames in a back-to-back
setup with TCP windows up to about 250KB and get ~930Mbit/s throughput,
while we were earlier limited to around 3-400Mbit/s, and trying to push
above that mark by widening the TCP window caused
ti0: jumbo buffer allocation failed
messages to be logged and a corresponding stall in the traffic.
As we turn the chip to big-endian mode on big-endian systems, we should
never byte-swap the data read/written from/to registers. Tested on sparc64.
Finally fix kern/13341 by Jason R. Thorpe (really, the hard work of putting
bus_dmamap_sync() calls at the right places has been done my Jason mid-2001 :)
1.39:
Have if_ti stop "hiding" the softc pointer in the buffer region. Rather,
use the available void * passed to the free routine and pass the softc
pointer through there.
1.33:
Add support for the Netgear GA620T copper gigabit card.
1.32:
Tweak probe message so that 1000baseSX and 1000baseT cards are
explicitly identified.
1.31:
Update the Tigon driver to support 1000baseTX gigE over copper AceNIC
cards. This basically involves switching to the 12.4.13 firmware, plus
a couple of minor tweaks to the driver.
NetBSD changes:
get rid of ti_inuse, the mbuf ref counting code should call ti_free() when
needed.
Use hardware 802.1q support.
todo:
-IPv6
-clean up jumbo buffer allocation - NetBSD provides an opaque argument
to the free function, thus doesn't need the hack done here
-deal correctly with the mapping of the shared memory