Re: [PATCH 6/6] net: can: flexcan: use CAN FD frames for Tx/Rx

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 07/31/2018 09:38 AM, Pankaj Bansal wrote:
> 
>> -----Original Message-----
>> From: Marc Kleine-Budde [mailto:mkl@xxxxxxxxxxxxxx]
>> Sent: Tuesday, July 31, 2018 12:44 PM
>> To: Pankaj Bansal <pankaj.bansal@xxxxxxx>; linux-can@xxxxxxxxxxxxxxx
>> Subject: Re: [PATCH 6/6] net: can: flexcan: use CAN FD frames for Tx/Rx
>>
>> On 07/31/2018 08:00 AM, Pankaj Bansal wrote:
>>>> -----Original Message-----
>>>> From: Marc Kleine-Budde [mailto:mkl@xxxxxxxxxxxxxx]
>>>> Sent: Monday, July 30, 2018 8:16 PM
>>>> To: Pankaj Bansal <pankaj.bansal@xxxxxxx>; linux-can@xxxxxxxxxxxxxxx
>>>> Subject: Re: [PATCH 6/6] net: can: flexcan: use CAN FD frames for
>>>> Tx/Rx
>>>>
>>>> On 07/30/2018 06:07 PM, Pankaj Bansal wrote:
>>>>> Use can FD frames for Tx/Rx operations. This would be needed in
>>>>> upcoming SOC LX2160A, which supports CAN FD protocol
>>>>
>>>> Have you tested this with a CAN-2.0 compatible controller? Does the
>>>> userspace still work as expected if you pass CAN_RAW a CAN-FD frames
>>>> which only carries CAN-2.0? See
>>>> https://elixir.bootlin.com/linux/latest/source/net/can/raw.c#L811
>>>
>>> I have tested this using cangen command to generate CAN 2.0 frames, in
>> LS1021A-TWR board.
>>
>> Yes....
>>
>>> # ip link set can0 up type can bitrate 125000 [  103.699095] IPv6:
>>> ADDRCONF(NETDEV_CHANGE): can0: link becomes ready # ip link set
>> can1
>>> up type can bitrate 125000 [  107.832078] IPv6:
>>> ADDRCONF(NETDEV_CHANGE): can1: link becomes ready # candump can0
>> & #
>>> candump can1 &
>>
>> ... but candump will switch the socket into CAN-FD mode. Your code will
>> however break existing userspace applications that do not switch on CAN-
>> FD mode. Maybe we should add a cmd-line parameter to candump do
>> disable CAN-FD mode.
> 
> There is an option in ip command to turn the FD mode on.
> -> ip link set can0 up type can bitrate 125000 dbitrate 250000 fd on
> 
> I thought this command configures the CAN interface in FD mode. And normal command
> -> ip link set can0 up type can bitrate 125000
> configures CAN interface In CAN 2.0 mode.

Yes - If your driver supports this "ip" command. But your patches switch
the driver into CAN-FD mode unconditionally.

> Is there any test steps that I can follow to test if these changes
> will break existing applications or not?

Yes - don't let candump switch on CAN-FD mode:

-------->8-------->8-------->8-------->8-------->8-------->8-------->8-------->8-------->8--------
diff --git a/candump.c b/candump.c
index f98d1c3d378c..331320a7a696 100644
--- a/candump.c
+++ b/candump.c
@@ -535,8 +535,10 @@ int main(int argc, char **argv)
 
                } /* if (nptr) */
 
+#if 0
                /* try to switch the socket into CAN FD mode */
                setsockopt(s[i], SOL_CAN_RAW, CAN_RAW_FD_FRAMES, &canfd_on, sizeof(canfd_on));
+#endif
 
                if (rcvbuf_size) {
 
-------->8-------->8-------->8-------->8-------->8-------->8-------->8-------->8-------->8--------

Marc

-- 
Pengutronix e.K.                  | Marc Kleine-Budde           |
Industrial Linux Solutions        | Phone: +49-231-2826-924     |
Vertretung West/Dortmund          | Fax:   +49-5121-206917-5555 |
Amtsgericht Hildesheim, HRA 2686  | http://www.pengutronix.de   |

Attachment: signature.asc
Description: OpenPGP digital signature


[Index of Archives]     [Automotive Discussions]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]     [CAN Bus]

  Powered by Linux