lkml.org 
[lkml]   [2018]   [Mar]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
SubjectRe: [PATCH v2 1/1] can: ucan: add driver for Theobroma Systems UCAN devices
From
Date
On 14.03.18 10:25, Wolfgang Grandegger wrote:
>> Counting the state changes is one thing but you should also generate
>> error messages for them.
>
> The usual test here is:
>
> $ candump -td -e any,0:0,#FFFFFFFF
>
> should report proper state changes, if you send messages with
>
> 1. no cable connected
> 2. CAN high and low short-circuited
>
> Also downwards if the hardware error is gone and you continue to send
> messages.
Yes, we do, the hardware does it. Testcases:

(1) no cable connected

> root@rk3399-q7:~# candump -td -e any,0:0,#FFFFFFFF | head -n 1000
> (000.000000) can0 178 [0]
> (000.000410) can0 20000030 [8] 00 00 00 00 00 00 08 00 ERRORFRAME
> transceiver-status
> no-acknowledgement-on-tx
> error-counter-tx-rx{{8}{0}}
> (000.000445) can0 20000030 [8] 00 00 00 00 00 00 10 00 ERRORFRAME
> transceiver-status
> no-acknowledgement-on-tx
> error-counter-tx-rx{{16}{0}}
> (000.000425) can0 20000030 [8] 00 00 00 00 00 00 18 00 ERRORFRAME
> transceiver-status
> no-acknowledgement-on-tx
> error-counter-tx-rx{{24}{0}}
> (000.000451) can0 20000030 [8] 00 00 00 00 00 00 20 00 ERRORFRAME
> transceiver-status
> no-acknowledgement-on-tx
> error-counter-tx-rx{{32}{0}}
> (000.000429) can0 20000030 [8] 00 00 00 00 00 00 28 00 ERRORFRAME
> transceiver-status
> no-acknowledgement-on-tx
> error-counter-tx-rx{{40}{0}}
> (000.000448) can0 20000030 [8] 00 00 00 00 00 00 30 00 ERRORFRAME
> transceiver-status
> no-acknowledgement-on-tx
> error-counter-tx-rx{{48}{0}}
> (000.000433) can0 20000030 [8] 00 00 00 00 00 00 38 00 ERRORFRAME
> transceiver-status
> no-acknowledgement-on-tx
> error-counter-tx-rx{{56}{0}}
> (000.000437) can0 20000030 [8] 00 00 00 00 00 00 40 00 ERRORFRAME
> transceiver-status
> no-acknowledgement-on-tx
> error-counter-tx-rx{{64}{0}}
> (000.000443) can0 20000030 [8] 00 00 00 00 00 00 48 00 ERRORFRAME
> transceiver-status
> no-acknowledgement-on-tx
> error-counter-tx-rx{{72}{0}}
> (000.000437) can0 20000030 [8] 00 00 00 00 00 00 50 00 ERRORFRAME
> transceiver-status
> no-acknowledgement-on-tx
> error-counter-tx-rx{{80}{0}}
> (000.000498) can0 20000030 [8] 00 00 00 00 00 00 58 00 ERRORFRAME
> transceiver-status
> no-acknowledgement-on-tx
> error-counter-tx-rx{{88}{0}}
> (000.000394) can0 20000034 [8] 00 0C 00 00 00 00 60 00 ERRORFRAME
> controller-problem{rx-error-warning,tx-error-warning}
> transceiver-status
> no-acknowledgement-on-tx
> error-counter-tx-rx{{96}{0}}
> (000.000433) can0 20000034 [8] 00 0C 00 00 00 00 68 00 ERRORFRAME
> controller-problem{rx-error-warning,tx-error-warning}
> transceiver-status
> no-acknowledgement-on-tx
> error-counter-tx-rx{{104}{0}}
> (000.000437) can0 20000034 [8] 00 0C 00 00 00 00 70 00 ERRORFRAME
> controller-problem{rx-error-warning,tx-error-warning}
> transceiver-status
> no-acknowledgement-on-tx
> error-counter-tx-rx{{112}{0}}
> (000.000443) can0 20000034 [8] 00 0C 00 00 00 00 78 00 ERRORFRAME
> controller-problem{rx-error-warning,tx-error-warning}
> transceiver-status
> no-acknowledgement-on-tx
> error-counter-tx-rx{{120}{0}}
> (000.000444) can0 20000034 [8] 00 3C 00 00 00 00 80 00 ERRORFRAME
> controller-problem{rx-error-warning,tx-error-warning,rx-error-passive,tx-error-passive}
> transceiver-status
> no-acknowledgement-on-tx
> error-counter-tx-rx{{128}{0}}
> (000.000495) can0 20000024 [8] 00 3C 00 00 00 00 80 00 ERRORFRAME
> controller-problem{rx-error-warning,tx-error-warning,rx-error-passive,tx-error-passive}
> no-acknowledgement-on-tx
> error-counter-tx-rx{{128}{0}}

Repeats ad infinitum...


(1b) cable gets connected:

> (000.000883) can0 20000034 [8] 00 3C 00 00 00 00 80 00 ERRORFRAME
> controller-problem{rx-error-warning,tx-error-warning,rx-error-passive,tx-error-passive}
> transceiver-status
> no-acknowledgement-on-tx
> error-counter-tx-rx{{128}{0}}
> (000.000996) can0 20000004 [8] 00 0C 00 00 00 00 7F 00 ERRORFRAME
> controller-problem{rx-error-warning,tx-error-warning}
> error-counter-tx-rx{{127}{0}}


(2) short circuit

> root@rk3399-q7:~# candump -td -e any,0:0,#FFFFFFFF | head -n 1000
> (000.000000) can0 6AB [7] 33 39 62 29 00 F5 31
> (000.000201) can0 20000018 [8] 00 00 08 00 00 00 18 00 ERRORFRAME
> protocol-violation{{tx-dominant-bit-error}{}}
> transceiver-status
> error-counter-tx-rx{{24}{0}}
> (000.000141) can0 2000000C [8] 00 3C 08 00 00 00 88 00 ERRORFRAME
> controller-problem{rx-error-warning,tx-error-warning,rx-error-passive,tx-error-passive}
> protocol-violation{{tx-dominant-bit-error}{}}
> error-counter-tx-rx{{136}{0}}
> (000.000202) can0 2000001C [8] 00 3C 08 00 00 00 90 00 ERRORFRAME
> controller-problem{rx-error-warning,tx-error-warning,rx-error-passive,tx-error-passive}
> protocol-violation{{tx-dominant-bit-error}{}}
> transceiver-status
> error-counter-tx-rx{{144}{0}}
> (000.000174) can0 2000001C [8] 00 3C 08 00 00 00 98 00 ERRORFRAME
> controller-problem{rx-error-warning,tx-error-warning,rx-error-passive,tx-error-passive}
> protocol-violation{{tx-dominant-bit-error}{}}
> transceiver-status
> error-counter-tx-rx{{152}{0}}
> (000.000229) can0 2000001C [8] 00 3C 08 00 00 00 A0 00 ERRORFRAME
> controller-problem{rx-error-warning,tx-error-warning,rx-error-passive,tx-error-passive}
> protocol-violation{{tx-dominant-bit-error}{}}
> transceiver-status
> error-counter-tx-rx{{160}{0}}
> (000.000191) can0 2000001C [8] 00 3C 08 00 00 00 A8 00 ERRORFRAME
> controller-problem{rx-error-warning,tx-error-warning,rx-error-passive,tx-error-passive}
> protocol-violation{{tx-dominant-bit-error}{}}
> transceiver-status
> error-counter-tx-rx{{168}{0}}
> (000.000227) can0 2000001C [8] 00 3C 08 00 00 00 B0 00 ERRORFRAME
> controller-problem{rx-error-warning,tx-error-warning,rx-error-passive,tx-error-passive}
> protocol-violation{{tx-dominant-bit-error}{}}
> transceiver-status
> error-counter-tx-rx{{176}{0}}
> (000.000204) can0 2000001C [8] 00 3C 08 00 00 00 B8 00 ERRORFRAME
> controller-problem{rx-error-warning,tx-error-warning,rx-error-passive,tx-error-passive}
> protocol-violation{{tx-dominant-bit-error}{}}
> transceiver-status
> error-counter-tx-rx{{184}{0}}
> (000.000200) can0 2000001C [8] 00 3C 08 00 00 00 C0 00 ERRORFRAME
> controller-problem{rx-error-warning,tx-error-warning,rx-error-passive,tx-error-passive}
> protocol-violation{{tx-dominant-bit-error}{}}
> transceiver-status
> error-counter-tx-rx{{192}{0}}
> (000.000216) can0 2000001C [8] 00 3C 08 00 00 00 C8 00 ERRORFRAME
> controller-problem{rx-error-warning,tx-error-warning,rx-error-passive,tx-error-passive}
> protocol-violation{{tx-dominant-bit-error}{}}
> transceiver-status
> error-counter-tx-rx{{200}{0}}
> (000.000214) can0 2000001C [8] 00 3C 08 00 00 00 D0 00 ERRORFRAME
> controller-problem{rx-error-warning,tx-error-warning,rx-error-passive,tx-error-passive}
> protocol-violation{{tx-dominant-bit-error}{}}
> transceiver-status
> error-counter-tx-rx{{208}{0}}
> (000.000188) can0 2000001C [8] 00 3C 08 00 00 00 D8 00 ERRORFRAME
> controller-problem{rx-error-warning,tx-error-warning,rx-error-passive,tx-error-passive}
> protocol-violation{{tx-dominant-bit-error}{}}
> transceiver-status
> error-counter-tx-rx{{216}{0}}
> (000.000206) can0 2000001C [8] 00 3C 08 00 00 00 E0 00 ERRORFRAME
> controller-problem{rx-error-warning,tx-error-warning,rx-error-passive,tx-error-passive}
> protocol-violation{{tx-dominant-bit-error}{}}
> transceiver-status
> error-counter-tx-rx{{224}{0}}
> (000.000202) can0 2000001C [8] 00 3C 08 00 00 00 E8 00 ERRORFRAME
> controller-problem{rx-error-warning,tx-error-warning,rx-error-passive,tx-error-passive}
> protocol-violation{{tx-dominant-bit-error}{}}
> transceiver-status
> error-counter-tx-rx{{232}{0}}
> (000.000218) can0 2000001C [8] 00 3C 08 00 00 00 F0 00 ERRORFRAME
> controller-problem{rx-error-warning,tx-error-warning,rx-error-passive,tx-error-passive}
> protocol-violation{{tx-dominant-bit-error}{}}
> transceiver-status
> error-counter-tx-rx{{240}{0}}
> (000.000203) can0 2000001C [8] 00 3C 08 00 00 00 F8 00 ERRORFRAME
> controller-problem{rx-error-warning,tx-error-warning,rx-error-passive,tx-error-passive}
> protocol-violation{{tx-dominant-bit-error}{}}
> transceiver-status
> error-counter-tx-rx{{248}{0}}
> (000.007153) can0 2000004C [8] 00 3C 08 00 00 00 F8 00 ERRORFRAME
> controller-problem{rx-error-warning,tx-error-warning,rx-error-passive,tx-error-passive}
> protocol-violation{{tx-dominant-bit-error}{}}
> bus-off
> error-counter-tx-rx{{248}{0}}

\
 
 \ /
  Last update: 2018-03-14 10:48    [W:0.079 / U:1.020 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site