On Fri. 15 Jan 2021 at 23:47, Marc Kleine-Budde [off-list ref] wrote:
On 1/15/21 2:59 PM, Vincent MAILHOL wrote:
quoted
quoted
quoted
quoted
quoted
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 |