Well, /dev/random seems to be working now. I tracked down one crasher, and went to see why FreeBSD had not been effected by it. Turns out they were, and that a fix had been placed in the repository several hours before I had figured it out. I took their fix instead of mine, becuase I feel it is best to keep in synch where possible. Most of the changes I had to make are to make is SMP safe on ppc, some of the atomicity assumptions they make are not right for the platform, though should work just fine on Intel.
The wavelan card is now probing, attaching, and starting to activate the chips when it crashes. At first I thought I had my interrupts misconfigured... Now I am thinking I need to modify the accessor macros. What I really need to do is setup a two machine debug setup and poke the hardware enough to see what the heck it looks like under OS X (are the bridges doing endian swapping, etc). I think I coould hash it all between the code and my head, but poking is just so much simpler. Maybe this weekend. Once I get these two down I can get back to the elevator code, softupdates, and I have few other ideas ;-)