Rock pi 4c ,can0 not working!

I get a rock pi 4c ,i want to use the can0 to communicate with another stm32 board by MCP2515.
I change /boot/hw_intfc.conf ,like this:

Hardware Interface Config

Note: Belows hardware interfaces configuration and dt overlsys are only for kernel 4.4.
Use command ‘uname -r’ to check current kernel version.

For more details, check https://wiki.radxa.com/Rockpi4/hardware/devtree_overlays.

Set “on” to enable the optional hardware interfaces while set “off” to disable.

intfc:pwm0=off
intfc:pwm1=off
intfc:uart2=off
intfc:uart4=off
intfc:spi1=on
intfc:spi2=off
intfc:i2c2=off
intfc:i2c6=off
intfc:i2c7=off

Devicetree Overlay Enable, uncomment to enable .dtbo under /boot/overlays/.

EEPROM on I2C2

#intfc:dtoverlay=at24c02

Serial console on UART2

intfc:dtoverlay=console-on-ttyS2

Serial console on UART4

#intfc:dtoverlay=console-on-ttyS4

Dummy spi device on SPI1 for test. Need set: intfc:spi1=on

#intfc:dtoverlay=devspi1

Dummy spi device on SPI2 for test. Need set: intfc:spi2=on

#intfc:dtoverlay=devspi2

PCIE running on GEN2 mode

#intfc:dtoverlay=pcie-gen2

ALLNET 4duino B10/B11 two-coloe-led module on 40-pin Header Pin#35 and Pin#36

#intfc:dtoverlay=two-color-led

waveshare 3.5inch lcd (B v2) on SPI1. Need set: intfc:uart4=off intfc:spi1=on

#intfc:dtoverlay=spi1-waveshare35b-v2

waveshare 3.5inch lcd © on SPI1. Need set: intfc:uart4=off intfc:spi1=on

#intfc:dtoverlay=spi1-waveshare35c

spi flash on SPI1. Need set: intfc:uart4=off intfc:spi1=on

intfc:dtoverlay=spi1-flash

hifiberry-dac

#intfc:dtoverlay=hifiberry-dac

hifiberry-dacplus on I2C7. Need set: intfc:i2c7=on

enable raspberry pi official 7 inch LCD support

#intfc:dtoverlay=raspberrypi-7-inch-lcd

enable gt9xx touchpanel

#intfc:dtoverlay=gt9xx

setting cpu frequency over-2GHz

#intfc:dtoverlay=cpufreq

Add imx219 camera module support. Need disabled ov5647 camera module.

#intfc:dtoverlay=imx219

Add ov5647 camera module support. Need disabled imx219 camera module.

#intfc:dtoverlay=ov5647

Add w1 on GPIO4_D6 to support devices such as DS18B20.

#intfc:dtoverlay=w1-gpio4-30

can function of waveshare rs485 can hat on SPI1. Need set: intfc:uart4=off intfc:spi1=on

intfc:dtoverlay=spi1-mcp2515-can0

enable rk3399-rock-pi-4c-plus-radxa-10p1inch-display

#intfc:dtoverlay=rk3399-rock-pi-4c-plus-radxa-10p1inch-display

Change USB3_0 node mode to host

#intfc:dtoverlay=rk3399-usb-host

but it did not work. I tested by can-utils:

$ sudo ip link set can0 down
$ sudo ip link set can0 type can bitrate 500000 loopback off
$ sudo ip link set can0 up
$ sudo cansend can0 123#11223344

rock@rockpi-4cplus:~$ dmesg| grep ‘can|mcp|spi’
[ 0.240712] of_get_named_gpiod_flags: can’t parse ‘gpio’ property of node ‘/vcc5v0-sys[0]’
[ 0.242671] of_get_named_gpiod_flags: can’t parse ‘gpio’ property of node ‘/vcc-phy-regulator[0]’
[ 0.247673] rk_iommu ff650800.iommu: can’t get sclk
[ 0.248366] rk_iommu ff660480.iommu: can’t get sclk
[ 0.248994] rk_iommu ff8f3f00.iommu: can’t get sclk
[ 0.249597] rk_iommu ff903f00.iommu: can’t get sclk
[ 0.250189] rk_iommu ff914000.iommu: can’t get sclk
[ 0.250794] rk_iommu ff924000.iommu: can’t get sclk
[ 1.047234] rockchip-spi ff1d0000.spi: no high_speed pinctrl state
[ 1.048282] rockchip-spi ff1d0000.spi: chipselect 0 already in use
[ 1.048831] spi_master spi1: spi_device register error /spi@ff1d0000/spi-flash@0
[ 1.049502] spi_master spi1: Failed to create SPI device for /spi@ff1d0000/spi-flash@0
[ 1.053932] rk_gmac-dwmac fe300000.ethernet: cannot get clock clk_mac_speed
[ 1.226975] of_get_named_gpiod_flags: can’t parse ‘dvs-gpios’ property of node ‘/i2c@ff3c0000/pmic@20[0]’
[ 1.227009] of_get_named_gpiod_flags: can’t parse ‘dvs-gpio’ property of node ‘/i2c@ff3c0000/pmic@20[0]’
[ 1.227620] of_get_named_gpiod_flags: can’t parse ‘dvs-gpios’ property of node ‘/i2c@ff3c0000/pmic@20[1]’
[ 1.227633] of_get_named_gpiod_flags: can’t parse ‘dvs-gpio’ property of node ‘/i2c@ff3c0000/pmic@20[1]’
[ 1.290228] of_get_named_gpiod_flags: can’t parse ‘vsirq-gpios’ property of node ‘/rkisp1@ff910000[0]’
[ 1.290241] of_get_named_gpiod_flags: can’t parse ‘vsirq-gpio’ property of node ‘/rkisp1@ff910000[0]’
[ 1.353021] of_get_named_gpiod_flags: can’t parse ‘wp-gpios’ property of node ‘/dwmmc@fe310000[0]’
[ 1.353035] of_get_named_gpiod_flags: can’t parse ‘wp-gpio’ property of node ‘/dwmmc@fe310000[0]’
[ 1.358121] of_get_named_gpiod_flags: can’t parse ‘cd-gpios’ property of node ‘/dwmmc@fe320000[0]’
[ 1.358135] of_get_named_gpiod_flags: can’t parse ‘cd-gpio’ property of node ‘/dwmmc@fe320000[0]’
[ 1.358199] of_get_named_gpiod_flags: can’t parse ‘wp-gpios’ property of node ‘/dwmmc@fe320000[0]’
[ 1.358212] of_get_named_gpiod_flags: can’t parse ‘wp-gpio’ property of node ‘/dwmmc@fe320000[0]’
[ 1.389503] of_get_named_gpiod_flags: can’t parse ‘wp-gpios’ property of node ‘/sdhci@fe330000[0]’
[ 1.389513] of_get_named_gpiod_flags: can’t parse ‘wp-gpio’ property of node ‘/sdhci@fe330000[0]’
[ 1.429852] of_get_named_gpiod_flags: can’t parse ‘vbus-5v-gpios’ property of node ‘/virtual-pd0[0]’
[ 1.429860] of_get_named_gpiod_flags: can’t parse ‘vbus-5v-gpio’ property of node ‘/virtual-pd0[0]’
[ 1.429899] of_get_named_gpiod_flags: can’t parse ‘hdmi-5v-gpios’ property of node ‘/virtual-pd0[0]’
[ 1.429906] of_get_named_gpiod_flags: can’t parse ‘hdmi-5v-gpio’ property of node ‘/virtual-pd0[0]’
[ 1.438042] of_get_named_gpiod_flags: can’t parse ‘hp-ctl-gpios’ property of node ‘/i2c@ff3c0000/pmic@20/codec[0]’
[ 1.438063] of_get_named_gpiod_flags: can’t parse ‘hp-ctl-gpio’ property of node ‘/i2c@ff3c0000/pmic@20/codec[0]’
[ 1.438156] of_get_named_gpiod_flags: can’t parse ‘spk-ctl-gpios’ property of node ‘/i2c@ff3c0000/pmic@20/codec[0]’
[ 1.438175] of_get_named_gpiod_flags: can’t parse ‘spk-ctl-gpio’ property of node ‘/i2c@ff3c0000/pmic@20/codec[0]’
[ 1.452126] of_get_named_gpiod_flags: can’t parse ‘WIFI,poweren_gpio’ property of node ‘/wireless-wlan[0]’
[ 1.452135] of_get_named_gpiod_flags: can’t parse ‘WIFI,vbat_gpio’ property of node ‘/wireless-wlan[0]’
[ 1.452142] of_get_named_gpiod_flags: can’t parse ‘WIFI,reset_gpio’ property of node ‘/wireless-wlan[0]’
[ 1.456051] of_get_named_gpiod_flags: can’t parse ‘BT,power_gpio’ property of node ‘/wireless-bluetooth[0]’
[ 1.750723] of_get_named_gpiod_flags: can’t parse ‘wp-gpios’ property of node ‘/dwmmc@fe310000[0]’
[ 1.750749] of_get_named_gpiod_flags: can’t parse ‘wp-gpio’ property of node ‘/dwmmc@fe310000[0]’
[ 1.779354] of_get_named_gpiod_flags: can’t parse ‘simple-audio-card,hp-det-gpio’ property of node ‘/hdmi-codec[0]’
[ 1.779366] of_get_named_gpiod_flags: can’t parse ‘simple-audio-card,mic-det-gpio’ property of node ‘/hdmi-codec[0]’
[ 1.783145] of_get_named_gpiod_flags: can’t parse ‘simple-audio-card,hp-det-gpio’ property of node ‘/rk809-sound[0]’
[ 1.783161] of_get_named_gpiod_flags: can’t parse ‘simple-audio-card,mic-det-gpio’ property of node ‘/rk809-sound[0]’
[ 1.816880] of_get_named_gpiod_flags: can’t parse ‘hook_gpio’ property of node ‘/rk-headset[0]’
[ 2.000566] mmc2:mmc host rescan start!
[ 4.800192] mcp251x spi1.0: Looking up vdd-supply from device tree
[ 4.800207] mcp251x spi1.0: Looking up vdd-supply property in node /spi@ff1d0000/mcp2515@0 failed
[ 4.800237] mcp251x spi1.0: Looking up xceiver-supply from device tree
[ 4.800244] mcp251x spi1.0: Looking up xceiver-supply property in node /spi@ff1d0000/mcp2515@0 failed
[ 4.820882] mcp251x spi1.0: CANCTRL 0x87
rock@rockpi-4cplus:~$
rock@rockpi-4cplus:~$ dmesg | grep mcp
[ 4.800192] mcp251x spi1.0: Looking up vdd-supply from device tree
[ 4.800207] mcp251x spi1.0: Looking up vdd-supply property in node /spi@ff1d0000/mcp2515@0 failed
[ 4.800237] mcp251x spi1.0: Looking up xceiver-supply from device tree
[ 4.800244] mcp251x spi1.0: Looking up xceiver-supply property in node /spi@ff1d0000/mcp2515@0 failed
[ 4.820882] mcp251x spi1.0: CANCTRL 0x87
rock@rockpi-4cplus:~$
rock@rockpi-4cplus:~$
rock@rockpi-4cplus:~$
rock@rockpi-4cplus:~$
rock@rockpi-4cplus:~$ sudo ip link set can0 down
[sudo] password for rock:
rock@rockpi-4cplus:~$ sudo ip link set can0 type can bitrate 500000 dbitrate 500000 loopback off fd on
RTNETLINK answers: Operation not supported
rock@rockpi-4cplus:~$ sudo ip link set can0 type can bitrate 500000 dbitrate 500000 loopback off
RTNETLINK answers: Operation not supported
rock@rockpi-4cplus:~$ sudo ip link set can0 type can bitrate 500000 loopback off
rock@rockpi-4cplus:~$ sudo ip link set can0 up
rock@rockpi-4cplus:~$ ifconfig
can0: flags=193<UP,RUNNING,NOARP> mtu 16
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 10 (UNSPEC)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.11 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 240e:3b5:cda:5760:2d0c:77b5:acf8:69cf prefixlen 64 scopeid 0x0
inet6 240e:3b5:cda:5760:e872:ef97:8c91:3fb7 prefixlen 64 scopeid 0x0
inet6 fe80::8c74:93e9:848c:1de1 prefixlen 64 scopeid 0x20
ether ea:3f:f8:66:16:b9 txqueuelen 1000 (Ethernet)
RX packets 1157 bytes 167800 (167.8 KB)
RX errors 0 dropped 162 overruns 0 frame 0
TX packets 502 bytes 64529 (64.5 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 24

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1 (Local Loopback)
RX packets 68 bytes 6052 (6.0 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 68 bytes 6052 (6.0 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

wlan0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether e8:fb:1c:34:9f:f5 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

rock@rockpi-4cplus:~$ ifconfig
can0: flags=193<UP,RUNNING,NOARP> mtu 16
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 10 (UNSPEC)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.11 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 240e:3b5:cda:5760:2d0c:77b5:acf8:69cf prefixlen 64 scopeid 0x0
inet6 240e:3b5:cda:5760:e872:ef97:8c91:3fb7 prefixlen 64 scopeid 0x0
inet6 fe80::8c74:93e9:848c:1de1 prefixlen 64 scopeid 0x20
ether ea:3f:f8:66:16:b9 txqueuelen 1000 (Ethernet)
RX packets 1265 bytes 180874 (180.8 KB)
RX errors 0 dropped 178 overruns 0 frame 0
TX packets 545 bytes 69351 (69.3 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 24

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1 (Local Loopback)
RX packets 68 bytes 6052 (6.0 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 68 bytes 6052 (6.0 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

wlan0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether e8:fb:1c:34:9f:f5 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

rock@rockpi-4cplus:~$ sudo cansend can0 123#11223344
rock@rockpi-4cplus:~$ ifconfig
can0: flags=193<UP,RUNNING,NOARP> mtu 16
unspec 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00 txqueuelen 10 (UNSPEC)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.1.11 netmask 255.255.255.0 broadcast 192.168.1.255
inet6 240e:3b5:cda:5760:2d0c:77b5:acf8:69cf prefixlen 64 scopeid 0x0
inet6 240e:3b5:cda:5760:e872:ef97:8c91:3fb7 prefixlen 64 scopeid 0x0
inet6 fe80::8c74:93e9:848c:1de1 prefixlen 64 scopeid 0x20
ether ea:3f:f8:66:16:b9 txqueuelen 1000 (Ethernet)
RX packets 1511 bytes 219323 (219.3 KB)
RX errors 0 dropped 237 overruns 0 frame 0
TX packets 585 bytes 74871 (74.8 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 24

lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1 (Local Loopback)
RX packets 68 bytes 6052 (6.0 KB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 68 bytes 6052 (6.0 KB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

wlan0: flags=4099<UP,BROADCAST,MULTICAST> mtu 1500
ether e8:fb:1c:34:9f:f5 txqueuelen 1000 (Ethernet)
RX packets 0 bytes 0 (0.0 B)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 0 bytes 0 (0.0 B)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0

so maybe I should configure other configs?

Dear Masterpaul,
I have the same problem with can0, did you solve the problem?