Here is modified sk(4) that makes use of bus_dma(9). It was lightly
tested on sparc64(SMP)/i386(SMP).
Changes from stock sk(4)
- MPSAFE. No more recursive lock requiried.
- bus_dma(9) conversion. I think it should work on all architectures.
But testing on systems with > 4Gb was not performed due to lack
of hardware resources.
- optimized Rx handler for each normal and jumbo frames. Stock sk(4)
used jumbo frame management code to handle normal sized frames. As
the handler needs an additional lock to protect jumbo frame
management structure from races, the stock driver actually used
two lock operations for each received packet. The new driver uses
single lock operation for normal frame.(Jumbo frame needs two lock
operations as before.)
- Tx TCP/Rx IP checksum offload support. According to the data sheet
of SK-NET GENESIS the hardware supports Rx IP/TCP/UDP offerload.
But I couldn't make it work on my Yukon hardware. So Rx TCP/UDP was
disabled at the moment.
- Other minor changes(callout(9) conversion, fix bugs etc.)
You can get latest sk(4) driver from the following URL.
Or big diffs against HEAD.
I'd like to hear any success/failure reports. If you have a NIC that
is supported by sk(4) please give it a try and let me know the result.