Re: [PATCH v5 2/7] can: bittiming: allow TDC{V,O} to be zero and add can_tdc_const::tdc{v,o,f}_min
From: Vincent MAILHOL <hidden>
Date: 2021-08-16 16:04:34
Also in:
linux-can, lkml
Hi Marc, I answered too quickly in one paragraph. On Tue. 17 Aug 2021 at 00:49, Vincent MAILHOL [off-list ref] wrote:
On Mon. 16 Aug 2021 at 22:43, Marc Kleine-Budde [off-list ref] wrote:
...
quoted
Oh, I just noticed: | ip link set dev mcp251xfd0 down; \ | ip link set mcp251xfd0 txqueuelen 10 up type can \ | sample-point 0.8 bitrate 500000 \ | dsample-point 0.8 dbitrate 2000000 fd on \ | tdc-mode manual tdco 11 tdcv 22 followed by: | ip link set dev mcp251xfd0 down; \ | ip link set mcp251xfd0 txqueuelen 10 up type can We stay in manual mode: | Aug 16 15:27:47 rpi4b8 kernel: mcp251xfd spi0.0 mcp251xfd0: mcp251xfd_set_bittiming: tdco=11 tdcv=22 mode=manual | 8: mcp251xfd0: <NOARP,UP,LOWER_UP,ECHO> mtu 72 qdisc pfifo_fast state UP mode DEFAULT group default qlen 10 | link/can promiscuity 0 minmtu 0 maxmtu 0 | can <FD,TDC_AUTO,TDC_MANUAL> state ERROR-ACTIVE (berr-counter tx 0 rx 0) restart-ms 100That's a bug. It should be impossible to have both TDC_AUTO and TDC_MANUAL at the same time.quoted
| bitrate 500000 sample-point 0.800 | tq 25 prop-seg 31 phase-seg1 32 phase-seg2 16 sjw 1 brp 1 | mcp251xfd: tseg1 2..256 tseg2 1..128 sjw 1..128 brp 1..256 brp_inc 1 | dbitrate 2000000 dsample-point 0.800 | dtq 25 dprop-seg 7 dphase-seg1 8 dphase-seg2 4 dsjw 1 dbrp 1 | tdcv 22 tdco 11 | mcp251xfd: dtseg1 1..32 dtseg2 1..16 dsjw 1..16 dbrp 1..256 dbrp_inc 1 | tdcv 0..63 tdco 0..63 | clock 40000000 numtxqueues 1 numrxqueues 1 gso_max_size 65536 gso_max_segs 65535 parentbus spi parentdev spi0.0Sorry, but can I confirm what you did here? You stated that you did those four commands in this order:quoted
| ip link set dev mcp251xfd0 down; \ | ip link set mcp251xfd0 txqueuelen 10 up type can \ | sample-point 0.8 bitrate 500000 \ | dsample-point 0.8 dbitrate 2000000 fd on \ | tdc-mode manual tdco 11 tdcv 22 | ip link set dev mcp251xfd0 down; \ | ip link set mcp251xfd0 txqueuelen 10 up type canSo now, you should be in Classical CAN (fd flag off) but the results of iproute2 shows that FD is on... Is there one missing step?
Please ignore this part. I misread the latest command and thought you were configuring it as classical CAN. You just did a network down / up. I will troubleshoot this tomorrow.
quoted
I have to give "fd on" + the bit timing parameters to go to the full automatic mode again: | Aug 16 15:32:46 rpi4b8 kernel: mcp251xfd spi0.0 mcp251xfd0: mcp251xfd_set_bittiming: tdco=16 tdcv=22 mode=automatic
Yours sincerely, Vincent