How can I restart the CAN interface in Digi Embedded Yocto 1.4 for Connect Core i.MX53 ?

Hi all,

I’m using Digi Embedded Yocto 1.4 for Connect Core i.MX53 and I’m trying to recover a bus off in the can0 interface using the following command:

ip link set can0 type can restart-ms 100

but when I execute it I receive an error message:

root@ccimx53js:~# ip link set can0 type can restart-ms 100
RTNETLINK answers: Operation not supported

I can’t found another alternative for that.
I’m developing an application which every second sent a configuration frame to the bus which doesn’t have a connected node. So that a bus off occurs.
I want to configure the CAN interface in a way it be auto-recovered immediately after a bus off is detected.

I tried ifconfig can0 down/up. It seems to work because I starts to receive frames from the network but the frames sent by my application aren’t seen in the network (although they are seen in the loopback).

I suspect the problem is in FlexCAN driver but I’m not sure. I read some people solved a similar problem updating the kernel version but in my case it is a bit complicated since we are using a specific distribution provided by Digi which only supports kernel version 2.6.35.14.

So my questions are:
is this problem generated by FlexCAN driver? If yes, can I update FlexCAN driver version in my kernel 2.6.35.14?
is there another way to restart the CAN interface?
If the final solution is to update the kernel version I think I should ask in Yocto community.

Thanks for you help!

I haven’t tried it but what if you compile CAN driver as a module and unload and reload it?