Thomas Gleixner | ec8f24b | 2019-05-19 13:07:45 +0100 | [diff] [blame] | 1 | # SPDX-License-Identifier: GPL-2.0-only |
Oliver Hartkopp | 0d66548 | 2007-11-16 15:52:17 -0800 | [diff] [blame] | 2 | # |
| 3 | # Controller Area Network (CAN) network layer core configuration |
| 4 | # |
| 5 | |
| 6 | menuconfig CAN |
Oliver Hartkopp | 0d66548 | 2007-11-16 15:52:17 -0800 | [diff] [blame] | 7 | tristate "CAN bus subsystem support" |
Masahiro Yamada | a7f7f62 | 2020-06-14 01:50:22 +0900 | [diff] [blame] | 8 | help |
Oliver Hartkopp | 0d66548 | 2007-11-16 15:52:17 -0800 | [diff] [blame] | 9 | Controller Area Network (CAN) is a slow (up to 1Mbit/s) serial |
Robert P. J. Day | 26bca9f | 2019-06-12 11:48:56 -0400 | [diff] [blame] | 10 | communications protocol. Development of the CAN bus started in |
| 11 | 1983 at Robert Bosch GmbH, and the protocol was officially |
| 12 | released in 1986. The CAN bus was originally mainly for automotive, |
| 13 | but is now widely used in marine (NMEA2000), industrial, and medical |
| 14 | applications. More information on the CAN network protocol family |
| 15 | PF_CAN is contained in <Documentation/networking/can.rst>. |
Oliver Hartkopp | 0d66548 | 2007-11-16 15:52:17 -0800 | [diff] [blame] | 16 | |
| 17 | If you want CAN support you should say Y here and also to the |
| 18 | specific driver for your controller(s) below. |
Oliver Hartkopp | c18ce10 | 2007-11-16 15:53:09 -0800 | [diff] [blame] | 19 | |
Marc Kleine-Budde | 7713683 | 2012-07-20 21:00:00 +0200 | [diff] [blame] | 20 | if CAN |
| 21 | |
Oliver Hartkopp | c18ce10 | 2007-11-16 15:53:09 -0800 | [diff] [blame] | 22 | config CAN_RAW |
| 23 | tristate "Raw CAN Protocol (raw access with CAN-ID filtering)" |
Marc Kleine-Budde | f66b030 | 2012-07-20 21:22:27 +0200 | [diff] [blame] | 24 | default y |
Masahiro Yamada | a7f7f62 | 2020-06-14 01:50:22 +0900 | [diff] [blame] | 25 | help |
Oliver Hartkopp | c18ce10 | 2007-11-16 15:53:09 -0800 | [diff] [blame] | 26 | The raw CAN protocol option offers access to the CAN bus via |
| 27 | the BSD socket API. You probably want to use the raw socket in |
| 28 | most cases where no higher level protocol is being used. The raw |
| 29 | socket has several filter options e.g. ID masking / error frames. |
| 30 | To receive/send raw CAN messages, use AF_CAN with protocol CAN_RAW. |
Oliver Hartkopp | ffd980f | 2007-11-16 15:53:52 -0800 | [diff] [blame] | 31 | |
| 32 | config CAN_BCM |
| 33 | tristate "Broadcast Manager CAN Protocol (with content filtering)" |
Marc Kleine-Budde | f66b030 | 2012-07-20 21:22:27 +0200 | [diff] [blame] | 34 | default y |
Masahiro Yamada | a7f7f62 | 2020-06-14 01:50:22 +0900 | [diff] [blame] | 35 | help |
Oliver Hartkopp | ffd980f | 2007-11-16 15:53:52 -0800 | [diff] [blame] | 36 | The Broadcast Manager offers content filtering, timeout monitoring, |
| 37 | sending of RTR frames, and cyclic CAN messages without permanent user |
| 38 | interaction. The BCM can be 'programmed' via the BSD socket API and |
| 39 | informs you on demand e.g. only on content updates / timeouts. |
| 40 | You probably want to use the bcm socket in most cases where cyclic |
| 41 | CAN messages are used on the bus (e.g. in automotive environments). |
| 42 | To use the Broadcast Manager, use AF_CAN with protocol CAN_BCM. |
Oliver Hartkopp | ccb2963 | 2007-11-16 15:56:08 -0800 | [diff] [blame] | 43 | |
Oliver Hartkopp | c1aabdf | 2011-09-01 04:23:23 +0000 | [diff] [blame] | 44 | config CAN_GW |
| 45 | tristate "CAN Gateway/Router (with netlink configuration)" |
Marc Kleine-Budde | f66b030 | 2012-07-20 21:22:27 +0200 | [diff] [blame] | 46 | default y |
Masahiro Yamada | a7f7f62 | 2020-06-14 01:50:22 +0900 | [diff] [blame] | 47 | help |
Oliver Hartkopp | c1aabdf | 2011-09-01 04:23:23 +0000 | [diff] [blame] | 48 | The CAN Gateway/Router is used to route (and modify) CAN frames. |
| 49 | It is based on the PF_CAN core infrastructure for msg filtering and |
| 50 | msg sending and can optionally modify routed CAN frames on the fly. |
| 51 | CAN frames can be routed between CAN network interfaces (one hop). |
| 52 | They can be modified with AND/OR/XOR/SET operations as configured |
| 53 | by the netlink configuration interface known e.g. from iptables. |
Oliver Hartkopp | ccb2963 | 2007-11-16 15:56:08 -0800 | [diff] [blame] | 54 | |
The j1939 authors | 9d71dd0 | 2018-10-08 11:48:36 +0200 | [diff] [blame] | 55 | source "net/can/j1939/Kconfig" |
| 56 | |
Oliver Hartkopp | e057dd3 | 2020-09-28 22:04:04 +0200 | [diff] [blame] | 57 | config CAN_ISOTP |
| 58 | tristate "ISO 15765-2:2016 CAN transport protocol" |
Oliver Hartkopp | e057dd3 | 2020-09-28 22:04:04 +0200 | [diff] [blame] | 59 | help |
| 60 | CAN Transport Protocols offer support for segmented Point-to-Point |
| 61 | communication between CAN nodes via two defined CAN Identifiers. |
| 62 | As CAN frames can only transport a small amount of data bytes |
| 63 | (max. 8 bytes for 'classic' CAN and max. 64 bytes for CAN FD) this |
Geert Uytterhoeven | 5a7de24 | 2020-10-13 16:13:41 +0200 | [diff] [blame] | 64 | segmentation is needed to transport longer Protocol Data Units (PDU) |
| 65 | as needed e.g. for vehicle diagnosis (UDS, ISO 14229) or IP-over-CAN |
| 66 | traffic. |
Oliver Hartkopp | e057dd3 | 2020-09-28 22:04:04 +0200 | [diff] [blame] | 67 | This protocol driver implements data transfers according to |
| 68 | ISO 15765-2:2016 for 'classic' CAN and CAN FD frame types. |
Oliver Hartkopp | ac911bf | 2020-10-12 09:43:53 +0200 | [diff] [blame] | 69 | If you want to perform automotive vehicle diagnostic services (UDS), |
| 70 | say 'y'. |
Oliver Hartkopp | e057dd3 | 2020-09-28 22:04:04 +0200 | [diff] [blame] | 71 | |
Oliver Hartkopp | ccb2963 | 2007-11-16 15:56:08 -0800 | [diff] [blame] | 72 | source "drivers/net/can/Kconfig" |
Marc Kleine-Budde | 7713683 | 2012-07-20 21:00:00 +0200 | [diff] [blame] | 73 | |
| 74 | endif |