Re: 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]

 



On 22.03.2021 10:45:40, Pavel Pisa wrote:
> Hello Marc,
> 
> thanks much for the fast reply.
> 
> On Monday 22 of March 2021 09:31:28 Marc Kleine-Budde wrote:
> > On 22.03.2021 09:06:52, Pavel Pisa wrote:
> > > 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....
> >
> > Don't use slcan, just don't.
> 
> Yes, I agree with it and argued it to my colleagues but they are
> so frustrated by more problems in iMX6 and imxRT erratas that they

imxrt, as in the mmu-less µC?

> believe that serial port has highest probability to not been broken.

I can ask my coworker Uwe to tell horror stories about the imx serial
port driver if you want :D
I haven't thought that far, I even don't recommend slcan from the CAN
point of view.

> > - If you want to stick to the SPI, use a mcp2518fd.
> > - If you don't need CAN-FD, attach a stm32f042 or f072 via USB. There is
> >   a open source firmware and Linux drivers.
> 
> They have Microchip PIC32 for power management in the design and quite
> good experience with it, so they can use little more advanced one
> with CAN FD and use it at CAN interface.

I suggest to use a PIC32 with USB and CAN, to get rid of the SPI. The
existing STM32F0x2 firmware can probably be ported to the PIC32 so that
you can re-use the gs-usb driver unter Linux.

> The idea to use SPI connected MCU (in my case NXP LPC) come to my mind
> at LinCAN era when everybody used MCP2515 with horrible single
> register operation overhead. Can you suggest SPI protocol for CAN, CAN
> FD MCU connection as the SocketCAN interface?

Don't do SPI in the first place, use USB.

Back to the SPI:
If you have a full blown ̧̧µC you don't want to access the µC's CAN
controller on the register level, but send/receive complete CAN
messages. We don't have a SPI driver for that, but you can model the SPI
messages like the gs-usb USB messages.

> Is there plan for CAN FD version? Anyway if the problems are caused by
> NXP SPI, then they can creep in still.

The only advantage on sending/receiving full CAN messages over SPI is
that you have less overhead compared to register level access. But the
imx SPI host driver will probably still use a lot of CPU.

> > - If you need CAN-FD, use a more modern stm32. I think some of the "G"
> >   series have CAN-FD. But the firmware and Linux drivers are not
> >   adopted, yet.
> 
> We have solved and mainlined CAN FD on imxRT on NuttX and Microchip
> SAME70 (mainlining to NuttX expected soon) so we can reuse these.

Sounds good. Next step would be to add a gs-usb compatible USB device
driver. There already is a not mainlined gs-usb-fd
(https://github.com/linklayer/gs_usb_fd), but linklayer lost interest in
mainlining it.

> > Expect quite some CPU load for the SPI based CAN controllers, due to the
> > high Linux SPI overhead and the not that optimized imx SPI host driver.
> 
> Yes, I am not fan of these solution (you know our CTU CAN FD effort,
> hopefully headers generator rewrite comes to the table next month),
> but Elektroline company needs industrial range system and could not
> wait for iMX8X with CAN FD controllers at the project start time.

don't use imx8x, use the imx8mp instead.

> > > The setup on 5.7 kernel partially works
> >
> > For the tcan4x5x better use latest v5.12 plus this series:
> > https://lore.kernel.org/linux-can/20210308102427.63916-1-torin@maxiluxsyste
> >ms.com/
> 
> Thanks, we will test that for sure but for production we probably
> need to backport to 5.10 because it has chance for serious LTS
> support from Civil Infrastructure Platform (adding Pavel to CC)
> for standard and even better preempt-RT kernels.

Ok

> > If the SPI DMA makes troubles, deactivate it. I think the tcan4x5x driver
> > uses single tcan4x5x register reads, which results in small SPI
> > transfers, so DMA brings no benefits.
> 
> Yes, we try that. I have some reminiscence form old time that we have
> done some similar tricks on imx53 to make it work in infussion system demo.

regards,
Marc

-- 
Pengutronix e.K.                 | Marc Kleine-Budde           |
Embedded Linux                   | https://www.pengutronix.de  |
Vertretung West/Dortmund         | Phone: +49-231-2826-924     |
Amtsgericht Hildesheim, HRA 2686 | Fax:   +49-5121-206917-5555 |

Attachment: signature.asc
Description: PGP signature


[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