Verify Orin NX UART /dev/THS0 , /dev/THS1

Hi,
We use Orin NX on a custom carrier board.
I try validate the UART outputs.
When we worked with JP5.1.3 our hardware team said we need to use /dev/THS0 and /dev/THS1.
Now we moved to JP6.1 (I don’t know if that changed something)

I connect the Orin to my windows host via debug channel and see the debug messages.
I connect the Orin to my windows host via other 2 serial ports and try to
echo “hello” > /dev/ttyTHS0
or
echo “hello” > /dev/ttyTHS1
and see nothing.

dmesg with grep tty:
dmesg_tty.log (1001 Bytes)

dmesg:
dmesg.log (57.6 KB)

dt:

dt.txt (314.0 KB)

Thanks!

try picocom.
apt install picocom

picocom -b 115200 -f n -p n /dev/ttyTHS0
-b: baudrate
-f: flow control (n=none, x=xon/xoff, h=rts/cts)
-p: parity (n=none, e=even,m o=odd)

Exit: Ctrl-a Ctrl-x

I need to write a c/bash program to test these ports (write and read) hence I don’t think picocom will help

Then read this:

Thank you for your help. The thing is that prior to writing a c program I did a quick test using the terminal (echo “hello” > /dev/ttyTHS1) and saw nothing.

The question is if that’s not indicating some error of some kind

You don’t know the current state of the port, so simply writing data to the port may fail. For this reason I instructed you to try picocom. picocom sets the serial port to correct settings and is known to work. If picocom does not work there is something wrong.

Thanks. I’ll try picocom first and update here. Thank you for your patience.

Hi,
Our hardware engineer verified that when we write via /dev/THS2 there is no data on the line.
when we write via /dev/THS1 there is data and we receive it.

from dmesg:

[ 0.000000] Kernel command line: root=PARTUUID=b70b84bc-3aa7-4b5e-867f-8e03fa3076f4 rw rootwait rootfstype=ext4 mminit_loglevel=4 console=ttyTCU0,115200 firmware_class.path=/etc/firmware fbcon=map:0 nospectre_bhb video=efifb:off console=tty0 bl_prof_dataptr=2031616@0x471E10000 bl_prof_ro_ptr=65536@0x471E00000
[ 0.000326] printk: console [tty0] enabled
[ 0.065533] 31d0000.serial: ttyAMA0 at MMIO 0x31d0000 (irq = 117, base_baud = 0) is a SBSA
[ 0.156997] printk: console [ttyTCU0] enabled
[ 3.749236] printk: console [tty0]: printing thread started
[ 3.749702] printk: console [ttyTCU0]: printing thread started
[ 3.837996] 3110000.serial: ttyS0 at MMIO 0x3110000 (irq = 197, base_baud = 4250000) is a Tegra
[ 3.838572] 3100000.serial: ttyTHS1 at MMIO 0x3100000 (irq = 112, base_baud = 0) is a TEGRA_UART
[ 3.839005] 3140000.serial: ttyTHS2 at MMIO 0x3140000 (irq = 113, base_baud = 0) is a TEGRA_UART
[ 10.093448] systemd[1]: Created slice Slice /system/serial-getty.

We see these lines:

[ 3.838572] 3100000.serial: ttyTHS1 at MMIO 0x3100000 (irq = 112, base_baud = 0) is a TEGRA_UART
[ 3.839005] 3140000.serial: ttyTHS2 at MMIO 0x3140000 (irq = 113, base_baud = 0) is a TEGRA_UART

In the following guide we see the serial has to have a different address:

uarta@3100000 = /dev/ttyTHS0 (in JP 5.1.3) = /dev/THS1 in JP6.1
uartb@3110000 = /dev/tyTHS1 (in JP 5.1.3) != /dev/THS2 in JP 6.1 (0x3140000)

In JP 5.1.3 we had /dev/THS0 and /dev/THS1 and everything worked

What is the problem here?

Solved here:

Thanks

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.