CAN Driver#
Overview#
The NVIDIA DRIVE series System on a Chip (SoC) integrates four Controller Area Network (CAN) controllers for automotive applications. These controllers are based on Bosch Time-Triggered Controller Area Network (MTTCAN) technology. On Orin, two of the four CAN controllers are from the Orin CCPLEX and are exported as SocketCAN instances at the Linux system level. The other two are from a dedicated Functional Safety Island (FSI) hardware IP block in the Orin SoC. On Thor, all four CAN controllers are in the FSI, and the FSI CAN interfaces are not visible on Linux systems. Combined with the CAN controllers from the safety MCU (AURIX TC397X B-Step), a total of six CAN controllers are available on the NVIDIA DRIVE AGX Orin Developer Kit (P3710/P3960). For a simplified block diagram of the CAN interfaces on the NVIDIA DRIVE AGX Orin Developer Kit, see Figure 1-2 in the DRIVE AGX Product Brief.
Linux TegraCAN#
Note
Linux TegraCAN is applicable to Orin only.
Linux releases support two instances of NVIDIA Tegra® Controller Area Network (TegraCAN). The CAN controller for Tegra family devices is based on Bosch MTTCAN controller IP.
TegraCAN implements the MTTCAN SocketCAN driver in the Linux kernel to provide two SocketCAN interfaces, CAN0 and CAN1. TegraCAN controls the CCPLEX CAN controller directly through the CPU without IVC involvement. The SocketCAN interface is similar to network interfaces in the Linux kernel. SocketCAN documentation is available in the Linux kernel documentation at:
${NV_WORKSPACE}/drive-linux/kernel/source/oss_src/kernel/Documentation/devicetree/bindings/net/can/
For information about TegraCAN limitations, refer to the NVIDIA DriveOS 7.2.5.0 Release Notes.
FSI CAN#
The NVIDIA DriveOS Linux SDK includes a demo reference version of the FSI binary. The functionality of FSI features, including CAN, is limited. To integrate and build fully functional FSI stacks, including CAN, on the NVIDIA DRIVE AGX Orin platform, contact NVIDIA representatives and refer to the “FSI Integration Guide” topic in the NVIDIA DriveOS Linux SDK Developer Guide.
MCU CAN#
A closed-box MCU AFW FW is released with the NVIDIA DriveOS Linux SDK. For details about CAN commands supported in the MCU AFW FW, see “Using the MCU Console” in the MCU Reference Guide.