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), it but involves all of the processors that supply information. nv_tcu_demuxer is a utility that 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.

../../_images/TegraCombinedUART.png

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 <chip>. Default: T234

-i

Enables the patch for line ending. This allows some data streams to end lines with <lf> (Linux style) and others to end lines with <cr><lf> (Windows style). Disabling the patch impairs the usability of the nv_tcu_demuxer output and is not recommended

-u

Writes the CCPLEX data to one output stream that will be demultiplexed by uart_muxer.

-d <dev>

Specifies the device name of the host UART that receives debug data from the target. Defaults to /dev/ttyUSB3.

-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 <path>.

-t

Prefixes the output with a timestamp.

Example

Use the following example to write your own nv_tcu_demuxer commands:

$ 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