This is the mail archive of the ecos-discuss@sources.redhat.com mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: socket times out, but not with printf


On Sat, Sep 06, 2003 at 08:06:35AM -0700, mailsagr@yahoo.com wrote:
> 
> thanks Andrew, for the mail.
> 
> i turned on Asserts now. and when i boot up this is
> what it gives me:
> [cyg_net_init] Init: mbinit(0x00000000)
> [cyg_net_init] Init: cyg_net_init_devs(0x00000000)
> Init device 'i82559_eth0'
> ASSERT FAIL: <1>intr.cxx[619]static void
> Cyg_Interrupt::mask_interrupt() Invalid vector
> ASSERT FAIL: intr.cxx            [ 619] static void
> Cyg_Interrupt::mask_interrupt()
>                                  Invalid vector
> 
> Earlier, before turning on asserts, after the 230KB
> limit this is what i have observed on ethereal. The
> tcp client on eCos keeps sending tcp pkts with payload
> = 0 bytes. it keeps on sending these pkts with the
> same sequence no. hoping to get ACKs from the server.
> The server sees these SEQ pkts and sends the
> approprite ACK. However eCos client never seems to see
> these ACKs so it continues to send the same SEQ nos
> again and again for a long time. In the mean time the
> select call on the client times out.
> 
> For some reason(probably due to the bogus intr vector)
> the client tcp stack doesnt seems to be receiving data
> from driver after this initial read of 230 KB. And the
> printf seems to be doing something that makes it work.
> The printf is actually printing to my telnet session.
> And Redboot is taking care of that. 

That explains a lot. Redboot does polled IO on the ethernet
driver. When it sends/receives something it will also flush out any
packets waiting to the sent/received but have not yet raised an
interrupt. Now the assert suggests the interrupt setup code is wrong
for your platform, so the i82559 is not causing any interrupts.....

Debug that assert failure. See what vector its trying to use and
compare it with what it should be using. My guess something is wrong
with the PCI information.... You might also want to run the test
program pci1 and see what it says.

     Andrew

-- 
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]