CAN interface failing to load properly on boot 1 time in 12 (Jessie 8.2)

Hi,

I’ve got a system running on a beaglebone black built around Jessie 8.2 and it’s been pointed out that sometimes the CAN 2 interface doesn’t work. After testing I’ve discovered that it fails about 1 boot out of every 12. Everything appears OK and the CAN interface (called from PythonCan) seems to initialise correctly but I never receive any CAN messages.

The only difference I can see when the system boots is this - when everything’s OK I get this in the log:

root@beaglebone:~# dmesg --ctime | grep can
[Fri May 20 10:54:40 2016] pinctrl-single 44e10800.pinmux: pin 44e108c0.0 already requested by 481aa000.serial; cannot claim for 0-0070
[Fri May 20 10:55:11 2016] pinctrl-single 44e10800.pinmux: pin 44e10978.0 already requested by 4819c000.i2c; cannot claim for 481cc000.can
[Fri May 20 10:55:11 2016] pinctrl-single 44e10800.pinmux: pin-94 (481cc000.can) status -22
[Fri May 20 10:55:11 2016] pinctrl-single 44e10800.pinmux: could not request pin 94 (44e10978.0) from group dcan0_pins_s0 on device pinctrl-single
[Fri May 20 10:55:11 2016] c_can_platform 481cc000.can: Error applying setting, reverse things back
[Fri May 20 10:55:11 2016] c_can_platform 481cc000.can: c_can_platform device registered (regs=fa1cc000, irq=195)
[Fri May 20 10:55:11 2016] c_can_platform 481d0000.can: c_can_platform device registered (regs=fa1d0000, irq=196)
[Fri May 20 10:55:16 2016] c_can_platform 481d0000.can can1: setting BTR=1c05 BRPE=0000
[Fri May 20 10:55:16 2016] IPv6: ADDRCONF(NETDEV_CHANGE): can1: link becomes ready
[Fri May 20 10:55:16 2016] can: controller area network core (rev 20120528 abi 9)
[Fri May 20 10:55:16 2016] can: raw protocol (rev 20120528)

Whenever the CAN fails I get this instead:

dmesg --ctime | grep can
[Fri May 20 09:37:33 2016] pinctrl-single 44e10800.pinmux: pin 44e108c0.0 already requested by 481aa000.serial; cannot claim for 0-0070
[Fri May 20 09:38:01 2016] pinctrl-single 44e10800.pinmux: pin 44e10978.0 already requested by 4819c000.i2c; cannot claim for 481cc000.can
[Fri May 20 09:38:01 2016] c_can_platform 481d0000.can: c_can_platform device registered (regs=fa1d0000, irq=196)
[Fri May 20 09:38:01 2016] pinctrl-single 44e10800.pinmux: pin-94 (481cc000.can) status -22
[Fri May 20 09:38:01 2016] pinctrl-single 44e10800.pinmux: could not request pin 94 (44e10978.0) from group dcan0_pins_s0 on device pinctrl-single
[Fri May 20 09:38:01 2016] c_can_platform 481cc000.can: Error applying setting, reverse things back
[Fri May 20 09:38:01 2016] c_can_platform 481cc000.can: c_can_platform device registered (regs=fa1cc000, irq=195)
[Fri May 20 09:38:04 2016] c_can_platform 481cc000.can can1: setting BTR=1c05 BRPE=0000
[Fri May 20 09:38:04 2016] IPv6: ADDRCONF(NETDEV_CHANGE): can1: link becomes ready
[Fri May 20 09:38:05 2016] can: controller area network core (rev 20120528 abi 9)
[Fri May 20 09:38:05 2016] can: raw protocol (rev 20120528)
root@beaglebone:~#

Every line seems to be exactly the same except that the can interface on irq 196 is loaded after the one on irq 195. Is this a known issue or anything or is there any way I can delay the load of the CAN interface in the hope that fixes it?

Many thanks,

Ben.

I too have had intermittent failures of the CAN interface. Please help.