From: Wolfgang Grandegger <wg@grandegger.com>
To: Stephen Marshall <Stephen_Marshall@infosys.com>,
"linux-can@vger.kernel.org" <linux-can@vger.kernel.org>
Cc: Marc Kleine-Budde <mkl@pengutronix.de>
Subject: Re: Hardware Loopback on RT-Socket-CAN Needed
Date: Thu, 17 Dec 2015 19:31:13 +0100 [thread overview]
Message-ID: <5672FF71.3050509@grandegger.com> (raw)
In-Reply-To: <54DCF20AC6227B4FABAC7D71A5A1208F78E90747@BLRKECMBX13.ad.infosys.com>
Hi Stephen,
Am 17.12.2015 um 18:25 schrieb Stephen Marshall:
> Thanks for the quick response Marc and Wolfgang.
>
> What we basically need is a loopback message on the same socket after successful TX Done. We are not going with CAN_RAW_LOOPBACK because we have only one socket.
Well, in Linux it's always active. CAN_RAW_RECV_OWN_MSGS is an extension
of that.
>
> Wolfgang,
> Could you confirm if I need to remove the "if" at https://git.xenomai.org/xenomai-2.6.git/tree/ksrc/drivers/can/rtcan_raw.c#n196 for what I am looking for?
>
> Is this how the code should look like?
>
> while (recv_listener != NULL) {
> dev->rx_count++;
> if (rtcan_accept_msg(frame->can_id, &recv_listener->can_filter)) // removed (dev->tx_socket != recv_listener->sock check)
> {
> recv_listener->match_count++;
> rtcan_rcv_deliver(recv_listener, &dev->tx_skb);
> }
> recv_listener = recv_listener->next;
> }
This is a *HACK* just to prove that it's doing the job. A proper
implementation would include the support and handling of
CAN_RAW_RECV_OWN_MSGS.
> Also, if I do the modification, should we continue to use CAN_CTRLMODE_LOOPBACK?
This does something different. Message loopback in hardware (on the
controller). And it's also hardware dependent.
> Could you give us some reference on how to make the above modification at rtcan_raw.c file and build it? Sorry, a newbie here :)
Well, you already use Xenomai with RTCAN support, I assume. Then make
the modifications and build as usual.
Wolfgang.
> Thanks,
> Stephen Marshall
>
>
> -----Original Message-----
> From: Wolfgang Grandegger [mailto:wg@grandegger.com]
> Sent: Thursday, December 17, 2015 9:04 PM
> To: Stephen Marshall; linux-can@vger.kernel.org
> Cc: Marc Kleine-Budde
> Subject: Re: Hardware Loopback on RT-Socket-CAN Needed
>
> Hello,
>
> for RT-CAN related questions the Xenomai ML is maybe more appropriate.
>
> Am 17.12.2015 um 15:43 schrieb Marc Kleine-Budde:
>> On 12/17/2015 03:13 PM, Stephen Marshall wrote:
>>> I am looking for some information on Loopback functionality for the
>>> RT-Socket-CAN.
>>
>> You mean RT-Socket-CAN as in Xenomai? This is, as far as i know dead.
>
> It's not dead! Just little contributions.
>
>>> In Socket-CAN, we used to test the loopback functionality on own
>>> socket using the flag *CAN_RAW_RECV_OWN_MSGS *using *MSG.CONFIRM*
>>> flag. However in RT-Socket CAN we see that this option has been disabled purposefully.
>
> Can't remember why it was not implemented. I think there was just no use-case,
>
> [snip]
>
>>> We use the SJA1000 CAN Controller and Xenomai 2.6. We tried setting
>>> the SRR (Self Reception Request) bit at driver using
>>> *CAN_CTRLMODE_LOOPBACK*
>>> <http://www.xenomai.org/documentation/xenomai-2.4/html/api/group__rtc
>>> an.html#ga19ec0cc4379e80c32cbd333cf7c145e9>*,
>
> Are you still using Xenommai 2.4?
>
>>> *however it was doing a software loopback where the looped back
>>> message would not have actually gone in the bus. We needed the
>>> CAN_RAW_RECV_OWN_MSGS fix at RT-Socket-CAN, could someone help?
>
> IIRC, on the SJA1000 the hw loopback is redirecting tx messages to the rx unit (in hardware) without sending something out to the bus,
>
> Have a look to:
>
>
> https://git.xenomai.org/xenomai-2.6.git/tree/ksrc/drivers/can/rtcan_raw.c#n196
>
> If you remove the "if" statement I think it already does what you want.
> But maybe I have missed something... it's a long time that I looked to that code.
>
> Wolfgang.
>
> **************** CAUTION - Disclaimer *****************
> This e-mail contains PRIVILEGED AND CONFIDENTIAL INFORMATION intended solely
> for the use of the addressee(s). If you are not the intended recipient, please
> notify the sender by e-mail and delete the original message. Further, you are not
> to copy, disclose, or distribute this e-mail or its contents to any other person and
> any such actions are unlawful. This e-mail may contain viruses. Infosys has taken
> every reasonable precaution to minimize this risk, but is not liable for any damage
> you may sustain as a result of any virus in this e-mail. You should carry out your
> own virus checks before opening the e-mail or attachment. Infosys reserves the
> right to monitor and review the content of all messages sent to or from this e-mail
> address. Messages sent to or from this e-mail address may be stored on the
> Infosys e-mail system.
> ***INFOSYS******** End of Disclaimer ********INFOSYS***
>
prev parent reply other threads:[~2015-12-17 18:31 UTC|newest]
Thread overview: 5+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <54DCF20AC6227B4FABAC7D71A5A1208F78E9068B@BLRKECMBX13.ad.infosys.com>
2015-12-17 14:43 ` Hardware Loopback on RT-Socket-CAN Needed Marc Kleine-Budde
2015-12-17 15:34 ` Wolfgang Grandegger
2015-12-17 15:36 ` Marc Kleine-Budde
2015-12-17 17:25 ` Stephen Marshall
2015-12-17 18:31 ` Wolfgang Grandegger [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=5672FF71.3050509@grandegger.com \
--to=wg@grandegger.com \
--cc=Stephen_Marshall@infosys.com \
--cc=linux-can@vger.kernel.org \
--cc=mkl@pengutronix.de \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.