Serial port communication issue on NVIDIA Drive AGX Orin

DRIVE OS Version: 6.0.10

Hardware: Nvidia Drive AGX Orin (p3710)

Linux: Ubuntu 20.04.6 LTS

Kernel version: 5.15.122-rt-tegra (KERNEL_CONFIG: standard)

Issue Description:

I tried to test the serial port on the NVIDIA Drive AGX Orin. According to the documentation, the P8 and P9 (uart5 and uart7) connectors can be used for this purpose (pins 2–3). However, I’m unable to communicate with the Orin.

Could you please check what could be causing this issue?

Details:

Device-tree:

@tegra-ubuntu:~$ ll /proc/device-tree/ | grep serial
drwxr-xr-x.   2 root root   0 Apr 24  2024 serial@3100000/
drwxr-xr-x.   2 root root   0 Apr 24  2024 serial@3110000/
drwxr-xr-x.   2 root root   0 Apr 24  2024 serial@3130000/
drwxr-xr-x.   2 root root   0 Apr 24  2024 serial@3140000/
drwxr-xr-x.   2 root root   0 Apr 24  2024 serial@3150000/
drwxr-xr-x.   2 root root   0 Apr 24  2024 serial@3170000/
drwxr-xr-x.   2 root root   0 Apr 24  2024 serial@31d0000/
drwxr-xr-x.   2 root root   0 Apr 24  2024 serial@c270000/
drwxr-xr-x.   2 root root   0 Apr 24  2024 serial@c280000/

Dmesg, serial-releated things:

[    0.044340] Serial: AMBA PL011 UART driver
[    0.147140] tegra-pmc c360000.pmc: there is not valid maps for state default
[    0.149944] Serial: 8250/16550 driver, 4 ports, IRQ sharing enabled
[    0.150898] printk: console [ttyS2] disabled
[    0.150920] c280000.serial: ttyS2 at MMIO 0xc280000 (irq = 90, base_baud = 25500000) is a Tegra
[    0.150974] printk: console [ttyS2] enabled
[    0.151384] SuperH (H)SCI(F) driver initialized
[    0.151672] msm_serial: driver initialized
[    0.152411] arm-smmu 12000000.iommu: probing hardware configuration...
[    0.152413] arm-smmu 12000000.iommu: SMMUv2 with:
[    0.152421] arm-smmu 12000000.iommu: 	stage 1 translation
[    0.152425] arm-smmu 12000000.iommu: 	50 context banks (0 stage-2 only)
[    0.152430] arm-smmu 12000000.iommu: 	Supported page sizes: 0x60211000
[    0.152431] arm-smmu 12000000.iommu: 	Stage-1: 48-bit VA -> 48-bit IPA
[    0.154012] arm-smmu 8000000.iommu: probing hardware configuration...
[    0.154013] arm-smmu 8000000.iommu: SMMUv2 with:
[    0.154018] arm-smmu 8000000.iommu: 	stage 1 translation
[    0.154021] arm-smmu 8000000.iommu: 	50 context banks (0 stage-2 only)
[    0.154025] arm-smmu 8000000.iommu: 	Supported page sizes: 0x60211000
[    0.154026] arm-smmu 8000000.iommu: 	Stage-1: 48-bit VA -> 48-bit IPA
[    0.161628] loop: module loaded
[    0.162136] megasas: 07.717.02.00-rc1
[    0.164983] tun: Universal TUN/TAP device driver, 1.6
[    1.399060] tegra186-emc 120000.external-memory-controller: MRQ_BWMGR_INT not present
[    1.399729] tegra-gpcdma 2600000.gpcdma: Adding to iommu group 4
[    1.400599] tegra-gpcdma 2600000.gpcdma: GPC DMA driver register 26 channels
[    1.401134] serial-tegra 3110000.serial: Adding to iommu group 4
[    1.401156] serial-tegra 3110000.serial: RX in PIO mode
[    1.401157] serial-tegra 3110000.serial: TX in PIO mode
[    1.401183] 3110000.serial: ttyTHS1 at MMIO 0x3110000 (irq = 89, base_baud = 0) is a TEGRA_UART
[    1.401779] tegra-i2c 3160000.i2c: Adding to iommu group 4

Kernel config(I use the default standard settings.):

/proc/config.gz | grep PL011
CONFIG_SERIAL_AMBA_PL011=y
CONFIG_SERIAL_AMBA_PL011_CONSOLE=y

Does that mean you connected your host to orin via P8/P9 and trying to establish communication? Could you share connection picture?

This is the wiring configuration we used. A gender changer was added to allow connection to our device, and the same setup was applied on the P8 connector.

I also attempted to connect to the P8/P9 port using an RS232-to-USB serial converter

and configured /dev/ttyTHS1 on the Orin using the following command:

sudo stty -F /dev/ttyTHS1 115200

speed 115200 baud; rows 0; columns 0; line = 0;
intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>;
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z; rprnt = ^R;
werase = ^W; lnext = ^V; discard = ^O; min = 1; time = 0;
-parenb -parodd -cmspar cs8 hupcl -cstopb cread clocal -crtscts
-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff
-iuclc -ixany -imaxbel -iutf8
opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0
isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt
echoctl echoke -flusho -extproc

I additionally enabled hardware flow control on this port; however, this did not resolve the issue. During testing, I attempted to transmit data over the serial interface using the following command:

echo "test" > /dev/ttyTHS1

On my laptop, I am monitoring an open picocom session and waiting for a response.

sudo picocom -b 115200 /dev/ttyUSB0

No data is observed on the connected device, and serial communication does not appear to function.

The UART communication ports disabled by default on DevZone release.