3c575-TX and Dell Inspiron 7000 : Tx Ring full, refusing to send buffer

Brian D. Winters brianw@alumni.caltech.edu
Wed Jul 14 21:16:23 1999


I have recently gotten a 3c575 working in my Toshiba 4030CDT.  It
wasn't easy to set up, and there are still some issues I'm not
entirely happy with, but it more or less works.  I have tried it
successfully with both 10 and 100BaseT.  I have used it both with dhcp
and with a static ip.

One thing I have found is that the card does not seem to be
initialized properly under certain circumstances.  Whatever the cause
of the problem, the symptom is that the card seemingly doesn't work if
the card is present at bootup, even though the light comes on and you
get the appropriate beeps.  Inserting the card after bootup and then
calling "cardctl insert" does bring the card up though.  If the card
is present at bootup, running "cardctl eject" and then "cardctl
insert" should make the card usable.

One thing that does not work at all is suspending the card.  When the
system comes back after a suspend the card is not handled properly (or
perhaps it wasn't handled properly before the suspend, I don't know),
and there is no way to fix it because the driver module is wedged with
a reference count of one (so rmmod won't remove it), forcing a reboot.
My solution so far has been to set up suspend/resume to actually shut
down the card before suspend and bring it back up after resuming.  The
way I have achieved this is to modify /etc/pcmcia/network so that
suspend is synonymous with stop, and resume is synonymous with start.

I've also found that the card is not very happy with the way RedHat
does things.  I had much, much, much, much better success by doing a
clean install of pcmcia-cs from sources and setting things in
/etc/pcmcia/network.opts than by using redhat's ifup/ifdown setup.
Because I'm using redhat and the machine isn't actually mine though
(I'm setting it up for a less linux savvy friend), I have since gone
back and tried to make the redhat stuff work, knowing now that it is
at least possible to get the card working.  For reasons that are not
clear to me yet, I have had a lot of trouble getting "cardctl eject"
to work properly when working with the redhat scripts.  For some
reason it seems that dhcpcd shows up as something using the card, and
since the card is in use it won't even try to eject it, even though
trying to eject it calls ifdown which should kill dhcpcd, or something
like that.  Right now I have the automatic suspend on panel close
turned off, and have written a small python app which creates a
"suspend" button that performs an ifdown on the interface before
calling "apm --suspend".  I plan to try tackling this one again at
some point, as I find this solution far from ideal.

I'm sorry if I have been a bit short on some details here and there,
but I've tried so many things along the way that I don't have a clear
enough recollection of the details of what I've kept vs. what didn't
work to write any sort of 3c575 howto at this point.  If you have
specific issues please feel free to ask and I'll see if they ring any
bells.

Brian