Always allocate bwi(4) ring descriptors below the 1GB boundary to give 30bit
authorstsp <stsp@openbsd.org>
Sun, 20 Jul 2014 11:59:12 +0000 (11:59 +0000)
committerstsp <stsp@openbsd.org>
Sun, 20 Jul 2014 11:59:12 +0000 (11:59 +0000)
commit9efa409c2b47a497849e954a701e9710b5040aa1
tree29eb44b2bfd48e75fd712cf54e7e9012f01d0bfe
parent8d3d9fe75e72ecb99d3d62391fc4b12702c69db7
Always allocate bwi(4) ring descriptors below the 1GB boundary to give 30bit
devices a chance to work. Use bounce buffers for mbufs on 30bit devices.

This fixes "intr fatal TX/RX" errors that render the internal wifi on many
macppc machines unusable. However, packet loss problems remain. In my testing
the device works fine sometimes, but experiences packet loss rates of up
to 80% at other times. Still, this is a step forward.

Helpful hints from claudio@ and dlg@
Tested on macppc by mpi@ and myself
"go ahead" kettenis@, ok mpi@
sys/dev/ic/bwi.c
sys/dev/ic/bwivar.h