AnsweredAssumed Answered

IM8QM socketCAN access on yocto linux?

Question asked by Georg Lutz on Jan 15, 2020
Latest reply on Jan 31, 2020 by Georg Lutz

Hi all,

 

I try to access the socket can interfaces with a BSP >= L4.14.98_2.0.0.

 

I have an IMX8QM MEK board. When I boot the included SD card I can see socket CAN interfaces as well as the enabled device tree nodes:

 

root@imx8qmmek:~# ifconfig -s -a
Iface   MTU Met   RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
can0         16 0         0      0      0 0             0      0      0      0 O
can1         16 0         0      0      0 0             0      0      0      0 O
can2         16 0         0      0      0 0             0      0      0      0 O
eth0       1500 0        99      0      0 0           105      0      0      0 BMdRU
lo        65536 0        90      0      0 0            90      0      0      0 LRU
root@imx8qmmek:~# cat /sys/firmware/devicetree/base/can\@5a8d0000/compatible
fsl,imx8qm-flexcanfsl,imx6q-flexcan
root@imx8qmmek:~# cat /sys/firmware/devicetree/base/can\@5a8d0000/status
okay
root@imx8qmmek:~# cat /sys/firmware/devicetree/base/can\@5a8e0000/status
okay
root@imx8qmmek:~# cat /sys/firmware/devicetree/base/can\@5a8f0000/status
okay

But the BSP version is rather old:

root@imx8qmmek:~# cat /etc/version
20181016062726

 

E.g. with the image fsl-image-validation-imx-imx8qmmek.sdcard from BSP version L4.14.98_2.0.0 (https://www.nxp.com/webapp/Download?colCode=L4.14.98_2.0.0_MX8QM&appType=license) there is no socket CAN interface:

 

root@imx8qmmek:~# ifconfig -s -a
Iface   MTU Met   RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0       1500 0       254      0      0 0           239      0      0      0 BMdRU
lo        65536 0       170      0      0 0           170      0      0      0 LRU

In fact the flexcan interfaces are disabled in the device tree:

 

$ cat /sys/firmware/devicetree/base/can\@5a8d0000/compatible
fsl,imx8qm-flexcanfsl,imx6q-flexcan
cat /sys/firmware/devicetree/base/can\@5a8d0000/status
disabled
$ cat /sys/firmware/devicetree/base/can\@5a8e0000/status
disabled
$ cat /sys/firmware/devicetree/base/can\@5a8f0000/status
disabled

 

So how can I bring CAN back to the A cores?

 

Regards
  Georg

Outcomes