From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 10310 invoked by alias); 16 Oct 2003 13:13:02 -0000 Mailing-List: contact ecos-discuss-help@sources.redhat.com; run by ezmlm Precedence: bulk List-Subscribe: List-Archive: List-Post: List-Help: , Sender: ecos-discuss-owner@sources.redhat.com Received: (qmail 10172 invoked from network); 16 Oct 2003 13:13:00 -0000 Received: from unknown (HELO wawnet.biz) (217.57.220.31) by sources.redhat.com with SMTP; 16 Oct 2003 13:13:00 -0000 Received: (qmail 21524 invoked by uid 0); 16 Oct 2003 14:05:13 -0000 Received: from unknown (HELO llandrews) (192.168.2.253) by 192.168.2.1 with SMTP; 16 Oct 2003 14:05:13 -0000 Message-ID: <004501c393e7$d28c3bc0$1800a8c0@llandrews> From: "Andrea Scian" To: Date: Thu, 16 Oct 2003 13:13:00 -0000 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-8859-1" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4522.1200 Subject: [ECOS] Socket problem with smsc LAN91C96 X-SW-Source: 2003-10/txt/msg00303.txt.bz2 Hi all! I have a problem while running eCos on an ARM7TDMI (S3C44B0) based board with a SMSC LAN91C96 ethernet controller. While the whole TCP/IP stack works fine (I'm using OpenBSD at the moment) I have a problem when I call the socket "connect" function after a hardware reset. This is what happen to me: inside a thread, after calling init_all_network_interfaces(), I create a socket (AF_INET, SOCK_STREAM) and call connect() to a LAN server. When connect() is called after a HW reset it waits a long time (more or less it's 4 seconds) before send the first TCP/IP packet, after that it all works good. This happen only after a HW reset, because when, later, I need to restart the system (I just set the program counter to start from the first location, so behaving like a reset exception) it doesn't wait, that is the connect() end only a few millis after it's called and the connection is full working. Please note that the "reset exception" caused a reset of the whole board (micro, ram, ethernet controller...) If, after a HW reset, I wait that 4 second somewhere else (even with a dumb "for" cicle inside cyg_user_start() before starting the scheduler) the "connect" call doesn't stop and I get the connection without wait! It's not so bad, the application works good both times, but I'm having problem when I have to do a HW reset or when the power goes down because of that 4 second that slow down the whole application. I'm I doing something wrong or what? Has anybody had this kind of problem before? Any clue about what is happening? Thank you in advance! -- Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos and search the list archive: http://sources.redhat.com/ml/ecos-discuss