Re: [PATCH v2] can: ctucanfd: fix SSP_SRC in cases when bit-rate is higher than 1 MBit.
From: Vincent Mailhol <mailhol@kernel.org>
Date: 2026-01-05 20:27:16
Also in:
linux-can
Le 05/01/2026 à 12:16, Pavel Pisa a écrit :
From: Ondrej Ille <ondrej.ille@gmail.com> The Secondary Sample Point Source field has been set to an incorrect value by some mistake in the past 0b01 - SSP_SRC_NO_SSP - SSP is not used. for data bitrates above 1 MBit/s. The correct/default value already used for lower bitrates is
Where does this 1 MBit/s threshold come from? Is this an empirical value?
The check is normally done on the data BRP. For example we had some
problems on the mcp251xfd, c.f. commit 5e1663810e11 ("can: mcp251xfd:
fix TDC setting for low data bit rates").
Can you use the TDC framework? Not only would you get a correct
calculation for when to activate/deactivate TDC, you will also have the
netlink reporting (refer to the above commit for an example).
0b00 - SSP_SRC_MEAS_N_OFFSET - SSP position = TRV_DELAY
(Measured Transmitter delay) + SSP_OFFSET.
The related configuration register structure is described
in section 3.1.46 SSP_CFG of the CTU CAN FD
IP CORE Datasheet.
The analysis leading to the proper configuration
is described in section 2.8.3 Secondary sampling point
of the datasheet.
The change has been tested on AMD/Xilinx Zynq
with the next CTU CN FD IP core versions:
- 2.6 aka master in the "integration with Zynq-7000 system" test
6.12.43-rt12+ #1 SMP PREEMPT_RT kernel with CTU CAN FD git
driver (change already included in the driver repo)
- older 2.5 snapshot with mainline kernels with this patch
applied locally in the multiple CAN latency tester nightly runs
6.18.0-rc4-rt3-dut #1 SMP PREEMPT_RT
6.19.0-rc3-dut
The logs, the datasheet and sources are available at
https://canbus.pages.fel.cvut.cz/
Signed-off-by: Ondrej Ille <ondrej.ille@gmail.com>
Signed-off-by: Pavel Pisa <redacted>Yours sincerely, Vincent Mailhol