Unable to enable the flexcan in Android 15 for imx8mp board

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

Unable to enable the flexcan in Android 15 for imx8mp board

217 Views
subash_p
Contributor III

Hi,

I’m trying to enable FlexCAN on my i.MX8MP custom board running Android 15. I checked the pin configuration against my schematic, and it looks correct. However, I don’t see the can0 device in my Android 15 image. I’m using the same device tree source (DTS) and driver file that works in Yocto, where the can0 device is created successfully. But in Android 15, the node doesn’t seem to bring up the interface.

&flexcan1 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_flexcan1>;
status = "okay";
};
 
&flexcan2 {
pinctrl-names = "default";
pinctrl-0 = <&pinctrl_flexcan2>;
status = "okay";
};

pinctrl_flexcan1: flexcan1grp {
fsl,pins = <
MX8MP_IOMUXC_SPDIF_RX__CAN1_RX          0x154
MX8MP_IOMUXC_SPDIF_TX__CAN1_TX          0x154
>;
};
 
pinctrl_flexcan2: flexcan2grp {
fsl,pins = <
MX8MP_IOMUXC_SAI5_MCLK__CAN2_RX         0x154
MX8MP_IOMUXC_SAI5_RXD3__CAN2_TX         0x154
>;
};

Added the below module in imx8mp_gki.fragment file

CONFIG_CAN=y
CONFIG_CAN_FLEXCAN=y

yocto log:

root@imx8mp:~# dmesg | grep can
[ 0.087429] HugeTLB: 0 KiB vmemmap can be freed for a 1.00 GiB page
[ 0.087436] HugeTLB: 0 KiB vmemmap can be freed for a 32.0 MiB page
[ 0.087446] HugeTLB: 0 KiB vmemmap can be freed for a 2.00 MiB page
[ 0.087456] HugeTLB: 0 KiB vmemmap can be freed for a 64.0 KiB page
[ 2.355505] can: controller area network core
[ 2.364708] can: raw protocol
[ 2.367689] can: broadcast manager protocol
[ 2.371886] can: netlink gateway - max_hops=1
[ 4.739488] Hot alarm is canceled. GPU3D clock will return to 64/64


root@imx8mp:~# find / -name "can0"
/proc/sys/net/ipv4/conf/can0
/proc/sys/net/ipv4/neigh/can0
/sys/class/net/can0
/sys/devices/platform/soc@0/30800000.bus/30800000.spba-bus/308c0000.can/net/can0


Android 15 log:
130|ADS_BIM8MJTZ1:/ # ip link set can0 type can bitrate 500000 (and also I tried can 1,2,3,4)
Cannot find device "can0"

Thanks&regards,
Subash P.

0 Kudos
Reply
2 Replies

196 Views
JorgeCas
NXP TechSupport
NXP TechSupport

Hello,

Please note that we do not have exact steps needed to enable CAN since CAN is not supported in our standard Android BSP. Here an example to enable CAN0 in i.MX8MP EVK:

Kernel Configuration Changes:

File: imx8mp_gki.fragment
Location: vendor/nxp-opensource/kernel_imx/arch/arm64/configs/imx8mp_gki.fragment
 
CONFIG_NET=y
CONFIG_CAN=y
CONFIG_CAN_VCAN=y
CONFIG_CAN_RAW=y
CONFIG_CAN_BCM=y
CONFIG_OF=y
CONFIG_CAN_DEV=y
CONFIG_CAN_DEBUG_DEVICES=y
CONFIG_CAN_CALC_BITTIMING=y
CONFIG_CAN_GW=y
CONFIG_CAN_FLEXCAN=y

 Kernel DTS changes:

File: imx8mp-evk.dts

Location: vendor/nxp-opensource/kernel_imx/arch/arm64/boot/dts/freescale/imx8mp-evk.dts
 
&flexcan1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_flexcan1>;
        xceiver-supply = <&reg_can1_stby>;
        status = "okay";
};

&flexcan2 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_flexcan2>;
        xceiver-supply = <&reg_can2_stby>;
        pinctrl-assert-gpios = <&pca6416 3 GPIO_ACTIVE_HIGH>;
        status = "okay";/* can2 pin conflict with pdm */
};
 
&micfil {
        #sound-dai-cells = <0>;
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_pdm>;
        assigned-clocks = <&clk IMX8MP_CLK_PDM>;
        assigned-clock-parents = <&clk IMX8MP_AUDIO_PLL1_OUT>;
        assigned-clock-rates = <196608000>;
        status = "disabled";
};

U-Boot DTS changes:

File: imx8mp-evk.dts

Location: vendor/nxp-opensource/kernel_imx/arch/arm64/boot/dts/freescale/imx8mp-evk.dts

&flexcan1 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_flexcan1>;
        xceiver-supply = <&reg_can1_stby>;
        status = "okay";
};

&flexcan2 {
        pinctrl-names = "default";
        pinctrl-0 = <&pinctrl_flexcan2>;
        xceiver-supply = <&reg_can2_stby>;
        pinctrl-assert-gpios = <&pca6416 3 GPIO_ACTIVE_HIGH>;
        status = "okay";/* can2 pin conflict with pdm */
};

NOTE: &micfil did not exist in the boot dts file

Result on the imx8mp-evk board after booting:

evk_8mp:/ $ zcat /proc/config.gz | grep 'CONFIG_CAN'                                                                                                                                
CONFIG_CAN=y
CONFIG_CAN_RAW=y
CONFIG_CAN_BCM=y
CONFIG_CAN_GW=y
# CONFIG_CAN_J1939 is not set
# CONFIG_CAN_ISOTP is not set
CONFIG_CAN_DEV=y
CONFIG_CAN_VCAN=y
# CONFIG_CAN_VXCAN is not set
CONFIG_CAN_NETLINK=y
CONFIG_CAN_CALC_BITTIMING=y
CONFIG_CAN_RX_OFFLOAD=y
# CONFIG_CAN_CAN327 is not set
CONFIG_CAN_FLEXCAN=y
# CONFIG_CAN_GRCAN is not set
# CONFIG_CAN_KVASER_PCIEFD is not set
CONFIG_CAN_SLCAN=m
# CONFIG_CAN_XILINXCAN is not set
# CONFIG_CAN_C_CAN is not set
# CONFIG_CAN_CC770 is not set
# CONFIG_CAN_CTUCANFD_PCI is not set
# CONFIG_CAN_CTUCANFD_PLATFORM is not set
# CONFIG_CAN_IFI_CANFD is not set
# CONFIG_CAN_M_CAN is not set
# CONFIG_CAN_PEAK_PCIEFD is not set
# CONFIG_CAN_SJA1000 is not set
# CONFIG_CAN_SOFTING is not set
# CONFIG_CAN_HI311X is not set
# CONFIG_CAN_MCP251X is not set
# CONFIG_CAN_MCP251XFD is not set
# CONFIG_CAN_8DEV_USB is not set
# CONFIG_CAN_EMS_USB is not set
# CONFIG_CAN_ESD_USB is not set
# CONFIG_CAN_ETAS_ES58X is not set
# CONFIG_CAN_GS_USB is not set
# CONFIG_CAN_KVASER_USB is not set
# CONFIG_CAN_MCBA_USB is not set
# CONFIG_CAN_PEAK_USB is not set
# CONFIG_CAN_UCAN is not set
CONFIG_CAN_DEBUG_DEVICES=y

evk_8mp:/ $ zcat /proc/config.gz | grep 'CONFIG_NET='                                                                                                                               
CONFIG_NET=y
 
evk_8mp:/ $ ifconfig -a                                                                                                                                                             
lo        Link encap:UNSPEC  
          inet addr:127.0.0.1  Mask:255.0.0.0 
          inet6 addr: ::1/128 Scope: Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1000 
          RX bytes:0 TX bytes:0 
 
dummy0    Link encap:UNSPEC  
          inet6 addr: fe80::3c3d:8aff:fef2:9f1e/64 Scope: Link
          UP BROADCAST RUNNING NOARP  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:8 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1000 
          RX bytes:0 TX bytes:560 
 
ifb0      Link encap:UNSPEC  
          BROADCAST NOARP  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:32 
          RX bytes:0 TX bytes:0 
 
ifb1      Link encap:UNSPEC  
          BROADCAST NOARP  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:32 
          RX bytes:0 TX bytes:0 
 
tunl0     Link encap:UNSPEC  
          NOARP  MTU:1480  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1000 
          RX bytes:0 TX bytes:0 
 
gre0      Link encap:UNSPEC  
          NOARP  MTU:1476  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1000 
          RX bytes:0 TX bytes:0 
 
gretap0   Link encap:UNSPEC  
          BROADCAST MULTICAST  MTU:1462  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1000 
          RX bytes:0 TX bytes:0 
 
erspan0   Link encap:UNSPEC  
          BROADCAST MULTICAST  MTU:1450  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1000 
          RX bytes:0 TX bytes:0 
 
ip_vti0   Link encap:UNSPEC  
          NOARP  MTU:1480  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1000 
          RX bytes:0 TX bytes:0 
 
ip6_vti0  Link encap:UNSPEC  
          NOARP  MTU:1364  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1000 
          RX bytes:0 TX bytes:0 
 
sit0      Link encap:UNSPEC  
          NOARP  MTU:1480  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1000 
          RX bytes:0 TX bytes:0 
 
ip6tnl0   Link encap:UNSPEC  
          NOARP  MTU:1452  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1000 
          RX bytes:0 TX bytes:0 
 
ip6gre0   Link encap:UNSPEC  
          NOARP  MTU:1448  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1000 
          RX bytes:0 TX bytes:0 
 
can0      Link encap:UNSPEC    Driver flexcan
          NOARP  MTU:16  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:10 
          RX bytes:0 TX bytes:0 
 
wlan0     Link encap:UNSPEC    Driver wlan_pcie
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1000 
          RX bytes:0 TX bytes:0 
 
wlan1     Link encap:UNSPEC    Driver wlan_pcie
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1000 
          RX bytes:0 TX bytes:0 
 
p2p0      Link encap:UNSPEC    Driver wlan_pcie
          BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1000 
          RX bytes:0 TX bytes:0 
 
eth0      Link encap:UNSPEC    Driver fec
          UP BROADCAST MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0 
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 
          collisions:0 txqueuelen:1000 
          RX bytes:0 TX bytes:0 

Best regards.

0 Kudos
Reply

180 Views
subash_p
Contributor III

Hi @JorgeCas 

Kernel Configuration Changes:

File: imx8mp_gki.fragment
Location: vendor/nxp-opensource/kernel_imx/arch/arm64/configs/imx8mp_gki.fragment

CONFIG_NET=y
CONFIG_CAN=y
CONFIG_CAN_VCAN=y
CONFIG_CAN_RAW=y
CONFIG_CAN_BCM=y
CONFIG_OF=y
CONFIG_CAN_DEV=y
CONFIG_CAN_DEBUG_DEVICES=y
CONFIG_CAN_CALC_BITTIMING=y
CONFIG_CAN_GW=y
CONFIG_CAN_FLEXCAN=y


Result on the imx8mp-custom board after booting:

cat /proc/config.gz | grep 'CONFIG_CAN' <
CONFIG_CAN=m
CONFIG_CAN_RAW=m
CONFIG_CAN_BCM=m
CONFIG_CAN_GW=m
# CONFIG_CAN_J1939 is not set
# CONFIG_CAN_ISOTP is not set
CONFIG_CAN_DEV=m
CONFIG_CAN_VCAN=m
# CONFIG_CAN_VXCAN is not set
CONFIG_CAN_NETLINK=y
CONFIG_CAN_CALC_BITTIMING=y
CONFIG_CAN_RX_OFFLOAD=y
# CONFIG_CAN_CAN327 is not set
# CONFIG_CAN_FLEXCAN is not set
# CONFIG_CAN_GRCAN is not set
# CONFIG_CAN_KVASER_PCIEFD is not set
CONFIG_CAN_SLCAN=m
# CONFIG_CAN_XILINXCAN is not set
# CONFIG_CAN_C_CAN is not set
# CONFIG_CAN_CC770 is not set
# CONFIG_CAN_CTUCANFD_PCI is not set
# CONFIG_CAN_CTUCANFD_PLATFORM is not set
# CONFIG_CAN_IFI_CANFD is not set
# CONFIG_CAN_M_CAN is not set
# CONFIG_CAN_PEAK_PCIEFD is not set
# CONFIG_CAN_SJA1000 is not set
# CONFIG_CAN_SOFTING is not set
# CONFIG_CAN_HI311X is not set
# CONFIG_CAN_MCP251X is not set
# CONFIG_CAN_MCP251XFD is not set
# CONFIG_CAN_8DEV_USB is not set
# CONFIG_CAN_EMS_USB is not set
# CONFIG_CAN_ESD_USB is not set
# CONFIG_CAN_ETAS_ES58X is not set
# CONFIG_CAN_F81604 is not set
# CONFIG_CAN_GS_USB is not set
# CONFIG_CAN_KVASER_USB is not set
# CONFIG_CAN_MCBA_USB is not set
# CONFIG_CAN_PEAK_USB is not set
# CONFIG_CAN_UCAN is not set
# CONFIG_CAN_DEBUG_DEVICES is not set


The modules mentioned below are automatically changed to loadable modules, but I set them as built-in modules in the imx8mp_gki.fragment file.

CONFIG_CAN_DEV=m
CONFIG_CAN_VCAN=m
CONFIG_CAN=m
CONFIG_CAN_RAW=m
CONFIG_CAN_BCM=m
CONFIG_CAN_GW=m


Android Log after adding your changes :

custom_8mp:/ # ifconfig -a
lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
inet6 addr: ::1/128 Scope: Host
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 TX bytes:0

dummy0 Link encap:Ethernet HWaddr c2:1b:37:aa:d6:7d
inet6 addr: fe80::c01b:37ff:feaa:d67d/64 Scope: Link
UP BROADCAST RUNNING NOARP MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:5 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 TX bytes:350

ifb0 Link encap:Ethernet HWaddr f6:51:b8:17:72:be
BROADCAST NOARP MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:32
RX bytes:0 TX bytes:0

ifb1 Link encap:Ethernet HWaddr b6:89:71:03:c1:99
BROADCAST NOARP MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:32
RX bytes:0 TX bytes:0

tunl0 Link encap:UNSPEC
NOARP MTU:1480 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 TX bytes:0

gre0 Link encap:UNSPEC
NOARP MTU:1476 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 TX bytes:0

gretap0 Link encap:Ethernet HWaddr 00:00:00:00:00:00
BROADCAST MULTICAST MTU:1462 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 TX bytes:0

erspan0 Link encap:Ethernet HWaddr 00:00:00:00:00:00
BROADCAST MULTICAST MTU:1450 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 TX bytes:0

ip_vti0 Link encap:UNSPEC
NOARP MTU:1480 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 TX bytes:0

ip6_vti0 Link encap:UNSPEC
NOARP MTU:1364 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 TX bytes:0

sit0 Link encap:IPv6-in-IPv4
NOARP MTU:1480 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 TX bytes:0

ip6tnl0 Link encap:UNSPEC
NOARP MTU:1452 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 TX bytes:0

ip6gre0 Link encap:UNSPEC
NOARP MTU:1448 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 TX bytes:0

eth0 Link encap:Ethernet HWaddr b6:50:05:8d:8d:a1 Driver fec
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 TX bytes:0

eth1 Link encap:Ethernet HWaddr 72:d8:7d:3f:31:b4 Driver imx-dwmac
UP BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 TX bytes:0
Interrupt:230


Thanks & Regards,
Subash P.

0 Kudos
Reply