* 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).