CAN FD controllers (M-CAN tcan4x5x as well as Microchip mcp251xfd) fails on iMX6 eCSPI interface

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hello everybody,

my colleague at Elektroline.cz works on design of iMX6
based system with CAN FD support realized by tcan4x5x
chip connected to eCSPI. It seems that there are problems
with eCSPI DMA stucks and other troubles. When the same
chip (or even Microchip's mcp251xfd) is connected to
other (less industry sound platforms) as Allwinner etc...
drivers seems to work reliably, but tests on iMX6 results
in failures. They consider fast redesign to slCAN connected
second Microchip MCU to resolve critical problem for the
project now....

The setup on 5.7 kernel partially wrks

Linux RAPTOR 5.7.8 #2 SMP Fri Oct 30 18:55:02 CET 2020 armv7l GNU/Linux

&ecspi1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_raptor_ecspi1>;
	cs-gpios = <&gpio2 30 0> ;
	status = "okay";

	tcan4550: tcan4x5x@0 {
		compatible = "ti,tcan4x5x";
		reg = <0>;
		#address-cells = <1>;
		#size-cells = <1>;
		spi-max-frequency = <16000000>;
		bosch,mram-cfg = <0x0 0 0 32 0 0 1 1>;
		interrupt-parent = <&gpio5>;
		interrupts = <4 GPIO_ACTIVE_LOW>;
		device-wake-gpios = <&gpio2 16 GPIO_ACTIVE_LOW>;
	};
};

Transmit test

cangen can1 -g 5 -I 123 -n100
OK
cangen can1 -g 3 -I 123 -n100
write: No buffer space available
[  857.829179] tcan4x5x spi0.0 can1: hard_xmit called while tx busy
[  857.836124] tcan4x5x spi0.0 can1: hard_xmit called while tx busy
[  857.842537] tcan4x5x spi0.0 can1: hard_xmit called while tx busy
[  857.852634] NOHZ: local_softirq_pending 08
[  857.862952] NOHZ: local_softirq_pending 08

Receive test
cangen can0 -g 5 -I 123 -n100
OK
cangen can0 -g 3 -I 123 -n100
[ 1161.348615] tcan4x5x spi0.0 can1: msg lost in rxf0
[ 1161.355672] tcan4x5x spi0.0 can1: msg lost in rxf0
[ 1161.362845] tcan4x5x spi0.0 can1: msg lost in rxf0
[ 1161.369976] tcan4x5x spi0.0 can1: msg lost in rxf0
[ 1161.377074] tcan4x5x spi0.0 can1: msg lost in rxf0
[ 1161.384021] tcan4x5x spi0.0 can1: msg lost in rxf0
[ 1161.391211] tcan4x5x spi0.0 can1: msg lost in rxf0
[ 1161.398338] tcan4x5x spi0.0 can1: msg lost in rxf0
[ 1161.405299] tcan4x5x spi0.0 can1: msg lost in rxf0
[ 1161.412445] tcan4x5x spi0.0 can1: msg lost in rxf0
[ 1161.419680] tcan4x5x spi0.0 can1: msg lost in rxf0
...

the 5.10 RT (preffered) and non-RT seems to be completely broken 

Linux RAPTOR 5.10.19 #6 SMP Tue Mar 9 13:29:28 CET 2021 armv7l GNU/Linux

&ecspi1 {
	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_raptor_ecspi1>;
	cs-gpios = <&gpio2 30 0> ;
	status = "okay";

	tcan4550: tcan4x5x@0 {
		compatible = "ti,tcan4x5x";
		reg = <0>;
		#address-cells = <1>;
		#size-cells = <1>;
		spi-max-frequency = <16000000>;
		bosch,mram-cfg = <0x0 0 0 32 0 0 1 1>;
		interrupt-parent = <&gpio5>;
		interrupts = <4 GPIO_ACTIVE_LOW>;
		device-wake-gpios = <&gpio2 16 GPIO_ACTIVE_LOW>;
	};
};

Transmit test, only one message transmited.

cangen can1 -g 100 -I 123 -n100
write: No buffer space available

candump can0
  can0  123   [8]  06 56 C6 01 AF E3 B6 4A

Receive test no messages received

[  332.449605] tcan4x5x spi0.0 can1: msg lost in rxf0

We can rebuild kernel, test patches, try to investgate what happens.

All suggestions what to test and what can be cause welcomed.

Thanks in advance,

                Pavel
-- 
                Pavel Pisa
    phone:      +420 603531357
    e-mail:     pisa@xxxxxxxxxxxxxxxx
    Department of Control Engineering FEE CVUT
    Karlovo namesti 13, 121 35, Prague 2
    university: http://dce.fel.cvut.cz/
    company:    https://www.pikron.com/
    personal:   http://cmp.felk.cvut.cz/~pisa
    projects:   https://www.openhub.net/accounts/ppisa
    CAN related:http://canbus.pages.fel.cvut.cz/




[Index of Archives]     [Automotive Discussions]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Security]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [eCos]     [Asterisk Internet PBX]     [Linux API]     [CAN Bus]

  Powered by Linux