Marcelo Coelho wrote:
> As an update:
> 
> Whenever i take off the cable from an ethernet card the message:
> 
>> Mar  8 18:04:56 linux kernel: rteth0: Abnormal interrupt, status 00000002.
> 
> appears. So that isn't a problem, just a warning because the lan is down.
> 

Ok, but the transmission error is still unexplained.

> 
> As i'm using 9 cards in 3 different pcs, i'm just post the PCI IDs
> from the problematic pc. When i started using tdma extended
> configuration one pc (with SUSE 9.2) sent some packages to the
> network.
> 
> 
> output from lspci -vv
> 00:08.0 Ethernet controller: D-Link System Inc RTL8139 Ethernet (rev 10)
>         Subsystem: D-Link System Inc DFE-528TX 10/100 Fast Ethernet PCI 
> Adapter
>         Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
> ParErr- Stepping- SERR+ FastB2B-
>         Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium
>> TAbort- <TAbort- <MAbort- >SERR- <PERR-
>         Latency: 64 (8000ns min, 16000ns max)
>         Interrupt: pin A routed to IRQ 11
>         Region 0: I/O ports at e000 [size=256]
>         Region 1: Memory at ff6fac00 (32-bit, non-prefetchable) [size=256]
>         Capabilities: [50] Power Management version 2
>                 Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA
> PME(D0-,D1+,D2+,D3hot+,D3cold+)
>                 Status: D0 PME-Enable- DSel=0 DScale=0 PME-
> 
> 00:09.0 Ethernet controller: D-Link System Inc RTL8139 Ethernet (rev 10)
>         Subsystem: D-Link System Inc DFE-528TX 10/100 Fast Ethernet PCI 
> Adapter
>         Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
> ParErr- Stepping- SERR+ FastB2B-
>         Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium
>> TAbort- <TAbort- <MAbort- >SERR- <PERR-
>         Latency: 64 (8000ns min, 16000ns max)
>         Interrupt: pin A routed to IRQ 10
>         Region 0: I/O ports at ee00 [size=256]
>         Region 1: Memory at ff6fa800 (32-bit, non-prefetchable) [size=256]
>         Capabilities: [50] Power Management version 2
>                 Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA
> PME(D0-,D1+,D2+,D3hot+,D3cold+)
>                 Status: D0 PME-Enable- DSel=0 DScale=0 PME-
> 
> 00:0a.0 Ethernet controller: D-Link System Inc RTL8139 Ethernet (rev 10)
>         Subsystem: D-Link System Inc DFE-528TX 10/100 Fast Ethernet PCI 
> Adapter
>         Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop-
> ParErr- Stepping- SERR+ FastB2B-
>         Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium
>> TAbort- <TAbort- <MAbort- >SERR- <PERR-
>         Latency: 64 (8000ns min, 16000ns max)
>         Interrupt: pin A routed to IRQ 10
>         Region 0: I/O ports at ed00 [size=256]
>         Region 1: Memory at ff6fa400 (32-bit, non-prefetchable) [size=256]
>         Capabilities: [50] Power Management version 2
>                 Flags: PMEClk- DSI- D1+ D2+ AuxCurrent=375mA
> PME(D0-,D1+,D2+,D3hot+,D3cold+)
>                 Status: D0 PME-Enable- DSel=0 DScale=0 PME-
> 
> 
> All the cards are identical, all of them are D-Link.
> 

I've attached a patch which upgrades the rt_8139too TX configuration
according to the latest driver from mainstream kernel. That's the only
major difference I found during a quick scan between the RTnet revision
and this new one. Please give it a try, maybe it improves anything.

Jan

Index: drivers/rt_8139too.c
===================================================================
--- drivers/rt_8139too.c        (revision 959)
+++ drivers/rt_8139too.c        (working copy)
@@ -297,8 +297,14 @@ enum rx_mode_bits {
 
 /* Bits in TxConfig. */
 enum tx_config_bits {
-        TxIFG1 = (1 << 25),        /* Interframe Gap Time */
-        TxIFG0 = (1 << 24),        /* Enabling these bits violates IEEE 802.3 
*/
+
+        /* Interframe Gap Time. Only TxIFG96 doesn't violate IEEE 802.3 */
+        TxIFGShift = 24,
+        TxIFG84 = (0 << TxIFGShift),    /* 8.4us / 840ns (10 / 100Mbps) */
+        TxIFG88 = (1 << TxIFGShift),    /* 8.8us / 880ns (10 / 100Mbps) */
+        TxIFG92 = (2 << TxIFGShift),    /* 9.2us / 920ns (10 / 100Mbps) */
+        TxIFG96 = (3 << TxIFGShift),    /* 9.6us / 960ns (10 / 100Mbps) */
+
         TxLoopBack = (1 << 18) | (1 << 17), /* enable loopback test mode */
         TxCRC = (1 << 16),        /* DISABLE appending CRC to end of Tx 
packets */
         TxClearAbt = (1 << 0),        /* Clear abort (WO) */
@@ -599,7 +605,7 @@ static const unsigned int rtl8139_rx_con
         (RX_DMA_BURST << RxCfgDMAShift);
 
 static const unsigned int rtl8139_tx_config =
-        (TX_DMA_BURST << TxDMAShift) | (TX_RETRY << TxRetryShift);
+        TxIFG96 | (TX_DMA_BURST << TxDMAShift) | (TX_RETRY << TxRetryShift);
 
 
 

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to