[realtek] Flow control question
Kelvin Proctor
k.proctor@student.unsw.edu.au
Fri Sep 27 20:03:00 2002
Mr Becker,
> With this approach you will have to add it to an init script.
Should I hook this into the init scripts before the interface is brought up
or not? Otherwise I was just planning to throw it in rc.local.
> It's changing the advertised capabilities that the transceiver sends.
> The rtl8139 allows direct access to the transceiver management as
> normal registers, that's why I was able to read the settings.
I've just download the 8139B data sheet. I assume the above should be
setting the "Auto-negotiation Advertisement Register" at 0066h-0067h. (I've
now found out what the `magic` numbers are :)
I'm a little confused with a few of the offsets I'm seeing in the register
dump etc...
[root@devel rtl8139]# ./mii-diag eth0 -A 0x1e1
Setting the media capability advertisement register of PHY #32 to 0x01e1.
Basic registers of MII PHY #32: 1100 782d 0000 0000 05e1 4441 0001 0000.
The autonegotiated capability is 0040.
The autonegotiated media type is 10baseT-FD.
Basic mode control register 0x1100: Auto-negotiation enabled.
You have link beat, and everything is working OK.
Your link partner advertised 4441: Flow-control 10baseT-FD, w/ 802.3X flow
control.
End of basic transceiver information.
[root@devel rtl8139]# ./rtl8139-diag eth0 -a
rtl8139-diag.c:v2.10 9/18/2002 Donald Becker (becker@scyld.com)
http://www.scyld.com/diag/index.html
Index #1: Found a RealTek RTL8139 adapter at 0x6100.
RealTek chip registers at 0x6100
0x000: 044f3000 0000daae ffffffff ffffffff 00002000 00002000 00002000
00002000
0x020: 01748010 01748610 01748c10 01749210 01740000 01000000 0000fff0
00000000
0x040: 78000000 00000000 8fb5c01c 00000000 004f1000 00000000 0080e188
00100000
0x060: 1100000f 05e1782d 00014441 00000000 00000004 000f77c0 58fab388
ad38d843.
Realtek station address 00:30:4f:04:ae:da, chip type 'rtl8139B'.
Receiver configuration: Reception disabled
Rx FIFO threshold 16 bytes, maximum burst 16 bytes, 8KB ring
Transmitter disabled with normal settings, maximum burst 16 bytes.
Tx entry #0 status 00002000 incomplete, 0 bytes.
Tx entry #1 status 00002000 incomplete, 0 bytes.
Tx entry #2 status 00002000 incomplete, 0 bytes.
Tx entry #3 status 00002000 incomplete, 0 bytes.
Flow control: Tx enabled Rx disabled.
The chip configuration is 0x10 0x4f, MII full-duplex mode.
No interrupt sources are pending.
[root@devel rtl8139]#
>From the mii-diag output it is stating that the link partner advertised
4441. From the above register dump this appears to be at offset
0x06A-0x06B. This is different from the datasheet that indicates this
should be at 0x068-0x069.
I'm seeing the same for the basic mode control register that appears to be
at 0x060-0x061 based on the register dump, but the datasheet says it's at
0x062-0x063.
The datasheet I'm looking at comes from the realtek.com.tw site at
ftp://152.104.125.40/cn/nic/rtl8139abcd8130810xseries/8139b24.pdf. Do I
have the right datasheet?
In the above dump offset 0x062-0x063 contains 0x05e1, which appears to be
the old advertisement value, indicating that the call to `./mii-diag eth0 -A
0x1e1` did not work. I also tried bringing the interface down, calling
mii-diag and bringing it up again. This all gives that same result.
Is there something I need to do to activate the new values?
I've also confirmed that I'm actually using the new driver based on the
following line from lsmod
> rtl8139 12496 1
Thanks again for your help.
Regards,
Kelvin Proctor