[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Ethernet controller hangs?




Hi again!


The network cable from runs to a RJ45/BNC converter.
I have verified that unplugging / replugging the BNC connection
does not alleviate the problem, but unplugging / replugging the
RJ45 connection does.

I managed to get a capture of the last few seconds before a
failure, and on that occasion the box tried to send four 8-kilobyte
frames (not exactly 8192 bytes, but roughly 8 kB), then one frame
of 1698 bytes and then it stopped.

Let's not go into the details of why I'm trying to send bloated frames.
That's a software error (at least I think so), but I need the Ethernet
controller to work even under that kind of punishment.

It's only the sender that stops, the receiver contiunes to work just fine.
I handle all network errors in the same way:
    I read R_REC_COUNTERS to clear congestion.
    I set the clr_error bit to clr in R_NETWORK_TR_CTRL.
I always do both, regardless of which error occurred.
However, I have enabled only the underrun and excessive_col
interrupts.  I know that underrun stops the receiver.  Does overrun
stop the transmitter?

Does the transmitter restart itself when it detects a link?
That would explain a thing or two.

Are there any other interrupts I need to enable?  I'm not interested
in error counters, I just need the transmitter to stay up.

Many thanks,


/Uffe Sjöstedt
SaabTech Systems AB
ulf.sjostedt@xxxxxxx.se





                                                                                                                          
                      Mikael Starvik                                                                                      
                      <starvik@xxxxxxx.se>,  
                      m>                       dev-etrax <dev-etrax@xxxxxxx.com>                                             
                      Sent by:                 cc:                                                                        
                      owner-dev-etrax@         Subject: RE: Ethernet controller hangs?                                    
                      axis.com                                                                                            
                                                                                                                          
                                                                                                                          
                      2003-01-29 07:47                                                                                    
                                                                                                                          
                                                                                                                          




>Now my question is: is it possible that the Ethernet controller has
>partially hung (sending part) and is reset when the cable is plugged
>back in?

Which transceiver do you use? I have never seen any problems with
broadcom transceivers but I have seen other transceivers hang.

How is your DMA descriptors set up and how do you handle overrun,
excessive collission etc? The receiver will stop if there are
no place to put data and needs to be restarted if that happens.
But I can't think of any case where it would matter to
renegotiate with the transceiver

>Is it possible that the RS422 controller has partially hung (receiving
>part) and is reset when the Ethernet cable is plugged back in?

That seams unlikely.

/Mikael

-----Original Message-----
From: owner-dev-etrax@xxxxxxx.com]On">mailto:owner-dev-etrax@xxxxxxx.com]On
Behalf Of ulf.sjostedt@xxxxxxx.se
Sent: Tuesday, January 28, 2003 4:44 PM
To: dev-etrax
Subject: Ethernet controller hangs?


Hi everyone!

Remember me?
I'm the guy with two OS-less Device Server Platforms passing
data from one LAN to another on a 422 link.

I've got this problem.
Everything runs fine most of the time, but every once in a while
the communication fails.  In one direction.

I've got two machines, labelled "Inside" and "Outside":

LAN1 ---- "Inside" -- 422 -- "Outside" ---- LAN2

What happens is that the data going from LAN2 to LAN1
suddenly stops flowing, but at the same time the data going
from LAN1 to LAN2 continues as normal.
In other words, the software hasn't hung.

If I disconnect the "Inside" LAN1 connection and then reconnect
it, normal function resumes, ie. data flows in both directions.
The software does not check the Ethernet controller status and
does not handle any negotiations for link speed or anything
like that, so it is not affected by the unplugging / replugging.

Now my question is: is it possible that the Ethernet controller has
partially hung (sending part) and is reset when the cable is plugged
back in?

Is it possible that the RS422 controller has partially hung (receiving
part) and is reset when the Ethernet cable is plugged back in?

I realise that it is still by no means impossible for this to be a software
error, but I thought I'd explore this avenue as well.


Thanx,

/Uffe Sjöstedt
SaabTech Systems AB
ulf.sjostedt@xxxxxxx.se