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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox