Re: [PATCH v10 1/1] can: usb: etas_es58X: add support for ETAS ES58X CAN USB interfaces

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

 



On Fri. 15 Jan 2021 at 23:47, Marc Kleine-Budde <mkl@xxxxxxxxxxxxxx> wrote:
> On 1/15/21 2:59 PM, Vincent MAILHOL wrote:
> >>>>> I would just like your opinion on one topic: the tdco is specific
> >>>>> to CAN FD. If we add it, we have two choices:
> >>>>>    1. put it in struct can_bittiming: that will mean that we will
> >>>>>       have an unused field for classical CAN (field bittiming of
> >>>>>       struct can_priv).
> >>>>>    2. put it in struct can_priv (but outside of struct
> >>>>>       can_bittiming): no unused field but less pretty.
> >>>>
> >>>> 3. Deprecate struct can_bittiming as the user space interface
> >>>>     and transfer each member individually via netlink. Extend
> >>>>     the kernel-only can_bittiming by the tdc related
> >>>>     parameters, and add these to the new netlink interface.
> >
> > Wow, didn't see that third option coming!
> >
> > By "extend the kernel-only can_bittiming by the tdc related
> > parameters" do you mean to still use a single struct
> > can_bittiming for classical CAN and CAN FD with the tdc
> > parameters in both (a bit like what I suggested in 1.)?
>
> Let's put it this way, we need 3. in order to implement 1. As we need a stable
> userspace ABI.

I was not familiar enough with the netlink interface to foresee
all those dependencies but thanks to your explanations, now
everything starts to make sense.

> Option 4:
> We can introduce a struct can_bitiming_fd with the first member being the struct
> can_bitiming and add tdc related variables after that. This way we can use the
> same function to calculate the bit timing on both CAN and CAN-FD.

While option 3 is slightly easier, my preference will go to option 4.

> What about future developments?
>
> Does anyone have a clue about CAN-XL? Will we ever see real HW?

Recent news would suggest that CiA will release the CAN XL
specification this year:
https://www.can-cia.org/news/cia-in-action/view/a-bright-future-for-can/2021/1/2/

> Or will
> 10Base-T1 and 100Base-T1 take the market?

My guts tell me that 100Base-T1 will take the market for
autonomous driving (camera, Lidar...) and that CAN(-FD) has still
a bright future for safety critical domains, at least in the next
decade. Will CAN XL find its place or will it meet the same
destiny as flexray? I do not know. But once the specification and
the first hardware are out, we would probably start to implement
it in Socket CAN before knowing if it will win the market :)

Nonetheless, if we follow your idea of transferring each member
individually via netlink, then we will have enough flexibility to
adjust the new kernel only can_bitiming structures to our liking.

> There are also these new transceivers in development that should be better
> suited for "special" bus setups.

Do these require additional bittiming parameters?


Yours sincerely,
Vincent

> 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 |
>



[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