For those who have been paying attention, I found
the problem with the 3c589 last night. I needed
to add one line to ether589.c. In reset(), it sets
up some parts of an Ether structure. Then when
setting the media type, it calls etherelnk3reset()
indirectly through configASIC. But etherelnk3reset()
bails if the card type isn't set and reset() doesn't
set it. So I added the line

ether->type = type;

after the loop that looks through tcmpcmcia[]. It
seems to be happy now.

I think I'll take a look at the broadcom driver now.
I really want 100BaseT on this machine, and the
built-in interface would be nice. Otherwise, I'll
take a crack at getting the 3c575 to work.