public inbox for ecos-discuss@sourceware.org
 help / color / mirror / Atom feed
* Re: [ECOS] CS8900: Tx interrupt lost
@ 2001-08-14  4:59 Peter Graf
  0 siblings, 0 replies; 6+ messages in thread
From: Peter Graf @ 2001-08-14  4:59 UTC (permalink / raw)
  To: ecos-discuss

Trenton D. Adams wrote:

>What does that mean exactly?  Maybe 250ms isn't long enough for a
>transmit?
>
>CS8900: Tx interrupt lost

Don't know about your target. Mine is a custom Hitachi SH3.

I had the same problem, if I just rely in Interrupts for Transmission.
On my target, the problem would not disappear if I send shorter packets or
use a longer timeout.

It seems that the interupts are really lost, either due to a hardware problem
of the Cirrus logic chip, or unlucky programming of its registers.

I worked around the problem by polling the device in addition to using the
interrupt.

Peter

^ permalink raw reply	[flat|nested] 6+ messages in thread

* RE: [ECOS] CS8900: Tx interrupt lost
  2001-08-14  9:56 ` Jonathan Larmour
@ 2001-08-14 13:09   ` Trenton D. Adams
  0 siblings, 0 replies; 6+ messages in thread
From: Trenton D. Adams @ 2001-08-14 13:09 UTC (permalink / raw)
  To: 'Jonathan Larmour', 'Todd Malsbary'
  Cc: 'Peter Graf', ecos-discuss

Thanks Todd.

I commented out the following line
//    CS8900_TxCMD = PP_TxCmd_TxStart_5;  // Start more-or-less
immediately

and uncommmented the following line.
    CS8900_TxCMD = PP_TxCmd_TxStart_Full;  // Start only when all data
sent to chip

These came from devs\eth\arm\edb7xxx\current\src\if_edb7xxx.c

It now works.  I think because I'm sending 30K+ in a very short time
that sending immediately was not a good thing.  I had tried breaking up
my message into chunks of 1040 bytes, but that didn't change anything.
Now with the new setting I can send a full 30K+ in one write () command!
I think this was partially caused by the fact that I'm running at
18.432MHz rather than 74.728MHz.

-----Original Message-----
From: ecos-discuss-owner@sources.redhat.com
[ mailto:ecos-discuss-owner@sources.redhat.com ] On Behalf Of Jonathan
Larmour
Sent: Tuesday, August 14, 2001 10:56 AM
To: Todd Malsbary
Cc: Peter Graf; ecos-discuss@sourceware.cygnus.com
Subject: Re: [ECOS] CS8900: Tx interrupt lost


Todd Malsbary wrote:
> 
> i had this problem and i believe it was caused by transmit underruns
> (which come in the form of a buffer event).  having the transmit
> underrun event handler release the buffer instead of the other code
> eliminated having to wait for a timeout.  you can also change the
> transmit command to wait until more bytes have been written to the
> controller before starting packet transmission.

If you think this change would be useful for everyone, could you make a
patch?

Jifl
-- 
Red Hat, Rustat House, Clifton Road, Cambridge, UK. Tel: +44 (1223)
271062
Maybe this world is another planet's Hell -Aldous Huxley ||
Opinions==mine

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [ECOS] CS8900: Tx interrupt lost
  2001-08-14  9:39 Todd Malsbary
@ 2001-08-14  9:56 ` Jonathan Larmour
  2001-08-14 13:09   ` Trenton D. Adams
  0 siblings, 1 reply; 6+ messages in thread
From: Jonathan Larmour @ 2001-08-14  9:56 UTC (permalink / raw)
  To: Todd Malsbary; +Cc: Peter Graf, ecos-discuss

Todd Malsbary wrote:
> 
> i had this problem and i believe it was caused by transmit underruns
> (which come in the form of a buffer event).  having the transmit
> underrun event handler release the buffer instead of the other code
> eliminated having to wait for a timeout.  you can also change the
> transmit command to wait until more bytes have been written to the
> controller before starting packet transmission.

If you think this change would be useful for everyone, could you make a
patch?

Jifl
-- 
Red Hat, Rustat House, Clifton Road, Cambridge, UK. Tel: +44 (1223) 271062
Maybe this world is another planet's Hell -Aldous Huxley || Opinions==mine

^ permalink raw reply	[flat|nested] 6+ messages in thread

* RE: [ECOS] CS8900: Tx interrupt lost
@ 2001-08-14  9:39 Todd Malsbary
  2001-08-14  9:56 ` Jonathan Larmour
  0 siblings, 1 reply; 6+ messages in thread
From: Todd Malsbary @ 2001-08-14  9:39 UTC (permalink / raw)
  To: Peter Graf, ecos-discuss

i had this problem and i believe it was caused by transmit underruns
(which come in the form of a buffer event).  having the transmit
underrun event handler release the buffer instead of the other code
eliminated having to wait for a timeout.  you can also change the
transmit command to wait until more bytes have been written to the
controller before starting packet transmission.

> -----Original Message-----
> From: Peter Graf [ mailto:p.graf@itknet.de ]
> Sent: Tuesday, August 14, 2001 4:50 AM
> To: ecos-discuss@sourceware.cygnus.com
> Subject: Re: [ECOS] CS8900: Tx interrupt lost
> 
> 
> Trenton D. Adams wrote:
> 
> >What does that mean exactly?  Maybe 250ms isn't long enough for a
> >transmit?
> >
> >CS8900: Tx interrupt lost
> 
> Don't know about your target. Mine is a custom Hitachi SH3.
> 
> I had the same problem, if I just rely in Interrupts for Transmission.
> On my target, the problem would not disappear if I send 
> shorter packets or
> use a longer timeout.
> 
> It seems that the interupts are really lost, either due to a 
> hardware problem
> of the Cirrus logic chip, or unlucky programming of its registers.
> 
> I worked around the problem by polling the device in addition 
> to using the
> interrupt.
> 
> Peter
> 
> 

^ permalink raw reply	[flat|nested] 6+ messages in thread

* RE: [ECOS] CS8900: Tx interrupt lost
  2001-08-10 12:50 Trenton D. Adams
@ 2001-08-13 11:37 ` Trenton D. Adams
  0 siblings, 0 replies; 6+ messages in thread
From: Trenton D. Adams @ 2001-08-13 11:37 UTC (permalink / raw)
  To: 'eCos Disuss'

Anyone know what the repercussions of changing this Tx timeout to say
500ms would be?  I would definitely prefer to send my entire structure
of 30K+ in a single call to write ().  I hate breaking up a nice
structure! :)

Would have any affect on anything else in the driver?

-----Original Message-----
From: ecos-discuss-owner@sources.redhat.com
[ mailto:ecos-discuss-owner@sources.redhat.com ] On Behalf Of Trenton D.
Adams
Sent: Friday, August 10, 2001 1:49 PM
To: 'eCos Disuss'
Subject: [ECOS] CS8900: Tx interrupt lost


What does that mean exactly?  Maybe 250ms isn't long enough for a
transmit?

CS8900: Tx interrupt lost

Trenton D. Adams
Extreme Engineering
#17, 6025 - 12 St. SE
Calgary, Alberta, Canada
T2H 2K1

Phone: 403 640 9494 ext-208
Fax: 403 640 9599

http://www.extremeeng.com

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [ECOS] CS8900: Tx interrupt lost
@ 2001-08-10 12:50 Trenton D. Adams
  2001-08-13 11:37 ` Trenton D. Adams
  0 siblings, 1 reply; 6+ messages in thread
From: Trenton D. Adams @ 2001-08-10 12:50 UTC (permalink / raw)
  To: 'eCos Disuss'

What does that mean exactly?  Maybe 250ms isn't long enough for a
transmit?

CS8900: Tx interrupt lost

Trenton D. Adams
Extreme Engineering
#17, 6025 - 12 St. SE
Calgary, Alberta, Canada
T2H 2K1

Phone: 403 640 9494 ext-208
Fax: 403 640 9599

http://www.extremeeng.com

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2001-08-14 13:09 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2001-08-14  4:59 [ECOS] CS8900: Tx interrupt lost Peter Graf
  -- strict thread matches above, loose matches on Subject: below --
2001-08-14  9:39 Todd Malsbary
2001-08-14  9:56 ` Jonathan Larmour
2001-08-14 13:09   ` Trenton D. Adams
2001-08-10 12:50 Trenton D. Adams
2001-08-13 11:37 ` Trenton D. Adams

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).