Tegra Combined UART#
The Tegra Combined UART (TCU) is a system that multiplexes debug information from the processors in the CCPLEX cluster with information from other processors.
The multiplexing is accomplished in the Sensor Processing Engine (SPE) for NVIDIA® Jetson™ Orin and the UART Trace Controller (UTC) for NVIDIA® Jetson™ Thor. It involves all of the processors that supply information. The nv_tcu_demuxer
utility runs on a host system and demultiplexes the debug information multiplexed by the TCU.
This diagram shows the relationship of the components for a native target.
nv_tcu_demuxer Utility#
The nv_tcu_demuxer binary is in the following SDK directory:
$ Linux_for_Tegra/tools/demuxer/
To run the binary, run the following command:
$ ./nv_tcu_demuxer <options>
Where <options>
represents any meaningful combination of the following command-line options:
nv_tcu_demuxer
writes a demultiplexed output to a set of consoles with device names in the /dev/pts/<n>
form, where <n>
is an integer. It lists the console’s device names, and the type of output is written to each device on stdout
. Typically, you need to display each console output data stream with an instance of a terminal utility like minicom
.
The following table describes the command-line options recognized by nv_tcu_demuxer
:
Command line option |
Meaning |
---|---|
-h |
Prints a help message that summarizes the command format and options. |
-m <chip> |
Sets the client/tag mapping for |
-i |
Enables the patch for line ending. This allows
some data streams to end lines with |
-u |
Writes the CCPLEX data to one output stream
that will be demultiplexed by |
-d <dev> |
Specifies the device name of the host UART that
receives debug data from the target. Defaults to
|
-r <rate> |
Specifies data rate of the UART in bits/second. Defaults to 115200. |
-s <path> |
Saves output streams to the directory specified by <path>. Each output stream is written to a .txt file whose name represents the source: SCE.txt, SPE.txt, etc. CCPLEX output is written to a single multiplexed file named CCPLEX.txt. |
-l <path> |
Saves the raw output with tags to the log file in
the directory specified by |
-t |
Prefixes the output with a timestamp. |
-p |
Set the timeout for output polling ready status. Defaults to 300 ms. |
Examples#
AGX Orin and Orin Nano#
Use the following example to write your own nv_tcu_demuxer
commands. If you use a different port, replace ttyACM0
with the appropriate name.
$ cd Linux_for_Tegra/tools/demuxer
$ ./nv_tcu_demuxer -d /dev/ttyACM0 &
Here is the output:
/dev/pts/2 RCE
/dev/pts/3 FSI
/dev/pts/4 PSCFW
/dev/pts/5 DCE
/dev/pts/7 BPMP
/dev/pts/8 SCE
/dev/pts/9 SPE
/dev/pts/10 TZ
/dev/pts/11 CCPLEX: 0
You can use minicom to get only the specific console output. To get only SPE logs, run:
$ minicom -D /dev/pts/9
AGX Thor#
Use the following example to write your own nv_tcu_demuxer
commands. If you use a different port, replace ttyACM0
with the appropriate name.
$ cd Linux_for_Tegra/tools/demuxer
$ ./nv_tcu_demuxer -m T264 -d /dev/ttyACM0 &
Here is the output:
/dev/pts/1 RCE
/dev/pts/2 FSI
/dev/pts/3 PSCFW
/dev/pts/4 DCE
/dev/pts/5 BPMP
/dev/pts/6 AON-F1
/dev/pts/7 HPSE
/dev/pts/8 SB
/dev/pts/9 ADSP0
/dev/pts/10 ADSP1
/dev/pts/11 UTC0
/dev/pts/12 UTC1
/dev/pts/13 UTC2
/dev/pts/14 UTC3
/dev/pts/15 CCPLEX: 0
/dev/pts/16 TZ: 0
/dev/pts/17 RAW
You can use minicom to get only the specific console output. To get only FSI logs, run:
$ minicom -D /dev/pts/2