Jetpack: 5.1.1
NVIDIA: Orin NX
Carrier board: Seeedstudio A603
Hi all,
According to the A603 datasheet, my carrier board has 3 UARTs:
UART0 for the M2 KEY E, UART1 on the 14PIN W7 connector and UART2 on the 40 PIN W8 connector.
I can use correctly UART2 on Pins 8/10 communicating on /dev/ttyTHS0.
In order to interface a second serial device, I’d like to use the TX/RX on the 14Pin W7 connector.
I tried to dig into the issue and I found multiple threads about it, specially for Xavier NX.
I understood I have to disable the combined-uart in order to use the debug serial as a classic UART.
Following Repurpose Debug UART for 'normal' comms on Xavier NX - #6 by JerryChang I couldn’t flash my ORIN NX succesfully. It goes into timeout when it tries to connect to ssh during the flashing procedure. I guess this is the issued described here.
So I tried to edit the DTB after flashing.
- Added the user to dialout
- I disabled combined-uart’s status
- I set tegra20-uart to serial@c280000 and I set its status to okay
- I updated chosen bootargs to
bootargs = “console=ttyS2,115200 earlycon=uart8250,mmio32,0x0c280000”;
- I disabled nvgetty service
- In extlinux.conf I replaced
APPEND ${cbootargs} root=PARTUUID=7639c47a-8155-4bc3-83d2-99c160e675c9 rw rootwait rootfstype=ext4 mminit_loglevel=4 console=ttyTCU0,115200 console=ttyAMA0,115200 firmware_class.path=/etc/firmware fbcon=map:0 net.ifnames=0
with
APPEND ${cbootargs} root=PARTUUID=7639c47a-8155-4bc3-83d2-99c160e675c9 rw rootwait rootfstype=ext4 mminit_loglevel=4 console=ttyS2,115200n8 console=tty0 firmware_class.path=/etc/firmware fbcon=map:0 net.ifnames=0
After rebooting I don’t see ttyTCU0 anymore and I see ttyS2.
This is dmesg:
nvidia@nvidia-orin:~$ sudo dmesg | grep tty
[sudo] password for nvidia:
[ 0.000000] Kernel command line: root=PARTUUID=7639c47a-8155-4bc3-83d2-99c160e675c9 rw rootwait rootfstype=ext4 mminit_loglevel=4 console=ttyS2,115200n8 console=tty0 firmware_class.path=/etc/firmware fbcon=map:0 net.ifnames=0
[ 0.000830] printk: console [tty0] enabled
[ 0.282189] 31d0000.serial: ttyAMA0 at MMIO 0x31d0000 (irq = 64, base_baud = 0) is a SBSA
[ 3.320748] printk: console [ttyS2] disabled
[ 3.320831] c280000.serial: ttyS2 at MMIO 0xc280000 (irq = 61, base_baud = 114285) is a Tegra
[ 6.779827] printk: console [ttyS2] enabled
[ 6.792509] 3100000.serial: ttyTHS0 at MMIO 0x3100000 (irq = 17, base_baud = 0) is a TEGRA_UART
[ 6.809069] 3130000.serial: ttyTHS3 at MMIO 0x3130000 (irq = 62, base_baud = 0) is a TEGRA_UART
[ 6.825624] 3140000.serial: ttyTHS4 at MMIO 0x3140000 (irq = 63, base_baud = 0) is a TEGRA_UART
[ 9.148888] systemd[1]: Created slice system-serial\x2dgetty.slice.
As test I’m using
sudo minicom -b115200 -D/dev/ttyS2 -H #ORIN
or
sudo minicom -b9600 -D/dev/ttyS2 -H #ORIN
sudo echo -e “uud1\r” > /dev/ttyUSB0 #Host
But I don’t see any bytes on minicom.
I tried to remove console=ttyS2,115200n8 from bootargs.
My new dmesg is:
nvidia@nvidia-orin:~$ sudo dmesg | grep tty
[ 0.000000] Kernel command line: root=PARTUUID=7639c47a-8155-4bc3-83d2-99c160e675c9 rw rootwait rootfstype=ext4 mminit_loglevel=4 console=tty0 firmware_class.path=/etc/firmware fbcon=map:0 net.ifnames=0
[ 0.000839] printk: console [tty0] enabled
[ 0.282433] 31d0000.serial: ttyAMA0 at MMIO 0x31d0000 (irq = 64, base_baud = 0) is a SBSA
[ 3.611531] c280000.serial: ttyS2 at MMIO 0xc280000 (irq = 61, base_baud = 114285) is a Tegra
[ 3.612246] 3100000.serial: ttyTHS0 at MMIO 0x3100000 (irq = 17, base_baud = 0) is a TEGRA_UART
[ 3.612906] 3130000.serial: ttyTHS3 at MMIO 0x3130000 (irq = 62, base_baud = 0) is a TEGRA_UART
[ 3.613522] 3140000.serial: ttyTHS4 at MMIO 0x3140000 (irq = 63, base_baud = 0) is a TEGRA_UART
[ 4.802881] systemd[1]: Created slice system-serial\x2dgetty.slice.
I don’t see any bytes on minicom BUT the opposite is working now:
sudo echo -e “uud1\r” > /dev/ttyS2 #ORIN
sudo minicom -b115200 -D/dev/ttyUSB0 -H #Host
I get 75 75 64 31 0d 0d 0a.
The opposite is not working though and I have no idea why. The wiring is ok between the serial adapter and the Orin (with ttyTHS0 I can send AND receive).
Thank you!
DTS File: kernel_tegra234-p3767-0000-p3509-a02.dts.txt (413.6 KB)