Linksys Ether(not so)fast 10/100 Card
Nicholas Jenkins
Nicholas.S.Jenkins@cdc.com
Tue Mar 2 13:04:24 1999
My two-cents' worth is below...but I think you may need to
contact Mr. Becker to get the definitive answer.
>
> I tried using v .90q of the tulip driver (I'm using the release
> version .90
> now) but it actually seems to slow down the Linksys card. I
> guess what I'm
> asking: is playing with the registers like people are doing for
> the card bus
> card the way to try to improve performance?
While I have only a single ethernet card to work with, I believe that
the simple answer to this would be yes. I say this, because not long
ago, I was having a difficulty similar to yours with my Cardbus card.
Therefore, I looked over all the code. The only code related *AT ALL*
to performance was the csr0 setting. So, if there is another way,
Mr. Becker's probably the only person who'll be able to answer that
question; but it would stand to reason that if there were another way
that he would have included that in his code.
> If so what do the various
> register values correspond to?
Directly from lines 64-75 of tulip.c:
/*
Set the bus performance register.
Typical: Set 16 longword cache alignment, no burst limit.
Cache alignment bits 15:14 Burst length 13:8
0000 No alignment 0x00000000 unlimited 0800 8 longwords
4000 8 longwords 0100 1 longword 1000 16 longwords
8000 16 longwords 0200 2 longwords 2000 32 longwords
C000 32 longwords 0400 4 longwords
Warning: many older 486 systems are broken and require setting 0x00A04800
8 longword cache alignment, 8 longword burst.
ToDo: Non-Intel setting could be better.
*/
In short, the way to read this is:
1) start with "csr0=0x00A00000"
2) choose an appropriate cache alignment - say, for instance "C000" - 32
longwords
(the largest cache alignment apparently available)
3) choose an appropriate burst limit - say, for instance "0000" - unlimited
(the largest burst limit available), or "2000" - 32 longwords, to match
your choice for cache alignment.
4) "Or" them all together -> "csr0 = 0x00A00000 | 0xC000 | 0x0000" or
"csr0 = 0x00A00000 | 0xC000 | 0x2000", which is typically shortened to:
"csr0 = 0x00A00000 | 0xE000" in postings.
BTW, although I don't know what all the options are in csr0 (write Mr.
Becker),
it seems that the two "base" csr0 values to start with are "0x00A00000" and
"0x01A00000". And, from what it appears for postings (and personal
experience),
0x01A00000 you want to stay away from if you are using a Linksys card.
More than likely, if you go into /etc/pcmcia/config.opts and add a line for
your
Linksys card, with "csr0=0x00A0C000", you'll get the best performance
possible.
> Thanks in advance for any help,
> David Churchill
>
>
I just hope this was. I didn't respond for several hours after I saw your
post,
as I thought someone more knowledgeable than myself might respond. However,
as no
one has, I thought I would try to help as best I could.
-NICK