I've posted my first pass webrev for other people to check out:
http://cr.opensolaris.org/~gdamore/hme-x86/
The driver appears to work on my Sun Ultra 20 with a stock QFE card.
Because of the weird way this was packaged previously, there are some
"quirks" in the webrev, so I would really appreciate any scrutiny from
the packaging and install experts.
Of course, there are non-trivial changes to the driver source as well --
the rather complex dvma/dma scheme has been replaced with a much simpler
bcopy in/out from preallocated buffers. Analysis shows this is more
performant on pretty much all supported systems.
Other changes:
* all the debug messaging has been removed... I don't think anyone
relies on it anymore, and dtrace is *so* much better at driver debugging.
* the multi & broadcast checks are more efficient
* the way we get the ethernet addresses on x86 is ... tricky. the
ROM BAR is not mapped by BIOS, but we can find our "sibling" ebus device
(a PCI function on the same PCI logical device) which has the ROM
available through a regular CSR... so we use a trick to map that instead.
* MIF register accesses are endian safe.
* DMA resource allocation only done on attach and detach, not during
hardware reinitialization
At this point, I've done only minimal testing on this, and I've not gone
back and verified that I've not totally horked the SPARC platform. I
don't *think* I have... but....
The reason that I'm sending this out early is to allow others to try
applying these patches, and to allow anyone else to pick up this work in
the event that I'm unable to drive it further.
-- Garrett
_______________________________________________
opensolaris-code mailing list
opensolaris-code@opensolaris.org
http://mail.opensolaris.org/mailman/listinfo/opensolaris-code