This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
Re: Re: XXXX_can_send function -- HELP NEEDED
- From: Gary Thomas <gary at mlbassoc dot com>
- To: mkhoyila at uci dot edu
- Cc: eCos Discussion <ecos-discuss at ecos dot sourceware dot org>
- Date: Thu, 11 Aug 2005 14:46:28 -0600
- Subject: Re: [ECOS] Re: XXXX_can_send function -- HELP NEEDED
- References: <23527.63.87.1.243.1123792838.squirrel@webmail.uci.edu>
On Thu, 2005-08-11 at 13:40 -0700, mkhoyila@uci.edu wrote:
> Hi all and Gary,
>
> I resolved one of my issues that I was seeing unsolicited interrupts. It
> was unrelaed to my ehternet driver.
>
> I still have the issue of XXXX_can_send function being called repeatedly.
> Here is order of events that happen in the begining. I hope by looking at
> these prints out, you might have suggestions where I start looking at.
> Thanks again
> Michael
>
> bcm63xx_start
> bcm63xx_can_send
> bcm63xx_can_send: return 4 txFreeBds
> bcm63xx_can_send
> bcm63xx_can_send: return 4 txFreeBds
> bcm63xx_send: 1 sg's, 42 bytes, KEY 2147982464
>
> This is what it is trying to send out:
> ffffffffffff21012108860180640121012108c0a818000000c0a818
>
> bcm66xx_can_send
> bcm63xx_can_end: return 3 txFreeBds
> bcm63xx_control
> [eth_drv_ioctl] Warning: Driver can't set multi-cast mode
> bcm63xx_start
> bcm63xx_stop
> bcm63xx_control
> [eth_drv_ioctl] Warning: Driver can't set multi-cast mode
> bcm66xx_can_send
> bcm63xx_can_end: return 3 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 3 txFreeBds
> bcm63xx_send: 1 sg's, 42 bytes, KEY 2147982336
>
> This is what it is trying to send out:
> ffffffffffff21012108860180640121012108c0a818000000c0a818
>
> bcm66xx_can_send
> bcm63xx_can_end: return 2 txFreeBds
> bcm63xx_stop
> bcm63xx_start
> bcm63xx_control
> [eth_drv_ioctl] Warning: Driver can't set multi-cast mode
> bcm66xx_can_send
> bcm63xx_can_end: return 2 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 2 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 2 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 2 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 2 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 2 txFreeBds
> bcm63xx_enet_poll_timer
> poll_timer: calling drv_dsr
> bcm63xx_deliver
> __do _deliver
> __rx_poll
> __tx_poll
> __tx_poll: calling tx_done
Why is '__tx_poll' calling 'tx_done' if no packets have ever been sent
out? I noticed that your 'can_send' routine called 'poll' and if this
is the case, you've got a wicked case of infinite recursion.
You should only call 'tx_done' when a packet has been posted to the
hardware and the hardware indicates that it has completed sending it
(or errored out)
> bcm66xx_can_send
> bcm63xx_can_end: return 3 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 3 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 3 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 3 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 3 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 3 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 3 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 3 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 3 txFreeBds
> bcm63xx_enet_poll_timer
> poll_timer: calling drv_dsr
> bcm63xx_deliver
> __do _deliver
> __rx_poll
> __tx_poll
> __tx_poll: calling tx_done
> bcm66xx_can_send
> bcm63xx_can_end: return 4 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 4 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 4 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 4 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 4 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 4 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 4 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 4 txFreeBds
> bcm63xx_enet_poll_timer
> bcm66xx_can_send
> bcm63xx_can_end: return 4 txFreeBds
> bcm66xx_can_send
> bcm63xx_can_end: return 4 txFreeBds
>
>
>
>
--
------------------------------------------------------------
Gary Thomas | Consulting for the
MLB Associates | Embedded world
------------------------------------------------------------
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss