Orin NANO UART1 (ttyTHS0) functionality not working

Hello,

I’m using the R35.3.1 code base, and we have our own custom board with UART1 connected to RS232 with Orin NANO Module, but after flashing the OS, I noticed that UART1 doesn’t output any logs. I also observed the same issue with the Jetson Orin NANO development kit (Pin8 & Pin10). I’ve tried reconfiguring the pinmux, but it had no effect. However, when I use the Xavier NX module on our custom board with the corresponding R35.3.1 code, UART1 works fine.

Here are my configuration results on Orin NANO:


image

Could you please let me know what other modifications are needed to make UART1 function properly?

Thank you.

Hi PCP_Michael,

You could refer to the following thread for UART usage for Orin NX/Nano.
OrinNX : How to check UART is working? - #3 by KevinFFF

Do you mean the debug UART?
If yes, it seems uartc@c280000 is the right one for debug message output.

Hi @KevinFFF

Thank you for your reply. I would like to use UARTA(uarta@3100000) as the log output port(RS232), and the pinmux configuration (As mentioned in my previous commit) seems to be correct. I also see the presence of the /dev/ttyTHS0 node in the Orin NANO. However, when I use PuTTY on my local computer to view the log, I notice that there is no message output.
The uartc@c280000 is work fine. Could you please advise on any additional modifications that may be required?

Thank you.

Do you want to use /dev/THS0 to check the log output from Orin Nano?
(i.e. you want to use it the same function as /dev/ttyTCU0?)

Could you help to provide the result of the following command?

$sudo busybox devmem 0x024300a8 //UART1_TX
$sudo busybox devmem 0x024300a0 //UART1_RX
$sudo busybox devmem 0x02430098 //UART1_RTS
$sudo busybox devmem 0x02430090 //UART1_CTS

Please also help to provide current full serial console log for further check.

Hi @KevinFFF

Yes, I would like to make /dev/ttyTHS0 (UARTA as RS232) function the same way as /dev/ttyTCU0. If I change the module to Xavier NX and flash with corresponding R35.3.1 code. The UARTA is work fine on our customer board.

The information that you want as below:
image

And the attached file is kernel log.
Thanks
kernel.log (68.4 KB)

Have you tried to add /dev/ttyTHS0 to kernel cmdline the same as /dev/ttyTCU0?

Could you help to run the following command to set pinmux for UART1_RTS/UART1_CTS?

$sudo busybox devmem 0x02430098 w 0x400 //UART1_RTS
$sudo busybox devmem 0x02430090 w 0x458 //UART1_CTS

Hi @KevinFFF

I have previously tried adding “console=ttyTHS0,115200” to the kernel command line, but it still doesn’t show any logs on UARTA. I compared the kernel command line with Xavier NX and noticed that it doesn’t include this parameter either, so I eventually removed it.

I have also just tried the commands you provided, but UARTA still doesn’t respond.

Thanks.

Do you mean that both /dev/ttyTHS0 and /dev/ttyTCU0 output serial console log if you are using Xavier NX on your custom board?

Could you help to provide current pinmux spreadsheet for further check?

Have you checked if there’s any log output from /dev/ttyAMA0 for Orin Nano?

Hi @KevinFFF

Yes, when I plugged the Xavier NX module into our custom board, /dev/ttyTCU0 and /dev/ttyTHS0 were both functional. However, /dev/ttyTHS0 could only be used after entering the Ubuntu system. As shown in the image below, the left side is /dev/ttyTCU0, and the right side is /dev/ttyTHS0.

I sorry that I don’t have the pinmux spreadsheet. I hope that we have the same base. So I just downloaded the R35.3.1 OS from the official website and flashed it onto the corresponding devices separately. Additionally, since we don’t need to use /dev/ttyAMA0, I didn’t check it.

Thanks.

I am curious, are you trying to use “/dev/ttyTHS0” during boot stages prior to Linux running?

Hi @linuxdev

Thanks for your reply, because I hope that the uarta on Orin NANO to have the same functionality as the uarta on Xavier NX. Even if it cannot print logs during the boot stage like uartc.

I saw that the pinmux and device tree configurations are correct on Orin NANO, so I don’t understand why it is not working.

Thanks.

/dev/ttyAMA0 should be the second debug UART, which seems what you want. Could you help to check if there’s any message output from here for Orin Nano?

Since you are using the custom board, Is that custom board not designed by you so that you don’t have pinmux spreadsheet?

Hi @KevinFFF
Our custom board designer said that he referred to the P3768-A04 circuit diagram, and he didn’t prepare a pinmux spreadsheet specifically for me.

I think that /dev/ttyAMA0 corresponds to uarti rather than uartb, but I don’t know which port in the Orin NANO corresponds to /dev/ttyAMA0. Please tell me how to check it.

Thanks.

Hi all,

I noticed an interesting phenomenon: if I disable the pinmux for uarti and change “/dev/ttyAMA0” to “/dev/ttyTHS0” in the kernel command line, uarta will output some logs during the boot process as shown in the below:

** WARNING: Test Key is used. **
L4TLauncher: Attempting Direct Boot
EFI stub: Booting Linux Kernel…
EFI stub: Using DTB from configuration table
EFI stub: Loaded initrd from LINUX_EFI_INITRD_MEDIA_GUID device path
EFI stub: Exiting boot services and installing virtual address map…

However, once it enters the Ubuntu system, uarta becomes unusable.

Thanks.

You could refer to the following for /dev/ttyAMA0 and /dev/ttyTHS0.

UART2 => UART5(PY05, PY06)            : uarti@31d0000        - /dev/ttyAMA0 => SBMA
UART1 => UART1(PR02, PR03, PR04, PR05): uarta@3100000 (serial0) - /dev/ttyTHS0 

Do you have Orin Nano devkit could be verified too?

Hi @KevinFFF

I couldn’t find PY05 and PY06 in the Orin NANO pinmux table that download from official website, please see below:

But I could find them in the AGX Orin pinmux. please see below:

Does this mean that Orin NANO does not have pinouts labeled as PY05 and PY06?

I have an Orin NANO devkit. Alternatively, could you please tell me where those two pins are located?

Thanks.

Sorry, what I showed you is for AGX Orin.
There’s no PY.05, PY.06 for Orin NX/Nano.

/dev/ttyTHS0 is used for normal UART, it don’t have the log output.
May I know what’s the use case for you want to have two log output?

Hi @KevinFFF

We previously used NANO/Xavier NX, but due to the client’s requirement for more powerful AI computing, we switched to Orin NANO. They need the RS232 UART (/dev/ttyTHS0) to connect their devices. However, The RS232 UART pins were capable of outputting messages and accepting commands on our custom board with Xavier NX/NANO, but after changing to Orin NANO, this UART port is no longer working. Please help me resolve this issue, thanks.

Do you mean that your Xavier NX an Orin Nano using the same carrier board?
If yes, it seems the design of your custom carrier board similar as the p3509 devkit.

Does they need debug message output from /dev/ttyTHS0 of the board to their device? Why not just use /dev/ttyTCU0 instead of /dev/ttyTHS0 for debug message output?

Hi @KevinFFF

Sorry,I don’t know the specific details, but I do know that this port is connected to a device, possibly an alarm system. From the pinmux configuration, it does seem like these pins can be used for UART functionality. However, I’m currently unable to perform any operations on this port. I have also checked the relevant settings and everything seem to be fine. I couldn’t find the root cause, so I come here to seek your assistance. Thanks.