RE: Flow control question
"Kelvin Proctor" <[email protected]> Sat, 28 Sep 2002 10:10:17 +1000
| Newsgroups | gmane.linux.drivers.realtek.devel |
|---|---|
| Message-ID | <[email protected]> |
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 ([email protected]) 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