Missing /dev/ttyTHS1 for UART0 (uartb) on NVIDIA Jetson Orin NX

Dear NVIDIA Community,

I am trying to use the UART0 (uartb) pins 99 and 101, and upon inspecting the device tree binary (DTB) tegra234-p3701-0000-as-p3767-0000-p3737-0000.dtb, I can see that uartb is enabled:

serial@3110000 {
    status = "okay";
    phandle = <0x2d7>;

However, when I check the system, the expected /dev/ttyTHS1 device file is not present. Here is the relevant dmesg output:

[    0.000000] Kernel command line: root=PARTUUID=6a2bf4ed-e48c-47a3-95e1-264c3407379e rw rootwait rootfstype=ext4 mminit_loglevel=4 console=ttyTCU0,115200 console=ttyAMA0,115200 firmware_class.path=/etc/firmware fbcon=map:0 net.ifnames=0 nv-auto-config
[    0.283145] 31d0000.serial: ttyAMA0 at MMIO 0x31d0000 (irq = 65, base_baud = 0) is a SBSA
[    1.407203] printk: console [ttyAMA0] enabled
[    2.247250] printk: console [ttyTCU0] enabled
[    6.992251] 3100000.serial: ttyTHS0 at MMIO 0x3100000 (irq = 17, base_baud = 0) is a TEGRA_UART
[    7.008605] 3130000.serial: ttyTHS3 at MMIO 0x3130000 (irq = 63, base_baud = 0) is a TEGRA_UART
[    7.024879] 3140000.serial: ttyTHS4 at MMIO 0x3140000 (irq = 64, base_baud = 0) is a TEGRA_UART
[   11.469633] systemd[1]: Created slice system-serial\x2dgetty.slice.

As per the dmesg output, I can observe that ttyAMA0, ttyTCU0, ttyTHS0, ttyTHS3, and ttyTHS4 are enabled, but /dev/ttyTHS1 is missing. This is preventing me from utilizing the UART0 (uartb) functionality on the Jetson Orin NX.

Hi andres_r8,

What’s your current carrier board in use for Orin NX? and the Jetpack verion?

Is there any flash log to make sure which dtb in use?

The carrier board is Xavier NX DevKit. Here is the Flash Log
sdkm-2023-04-05-13-47-37.log (3.5 MB)

Hi andres_r8,

14:50:38.632 - info: NV_L4T_FLASH_JETSON_LINUX_COMP@JETSON_ORIN_NX_TARGETS: Waiting for target to boot-up...
14:50:39.636 - info: NV_L4T_FLASH_JETSON_LINUX_COMP@JETSON_ORIN_NX_TARGETS: Cleaning up...
14:50:39.734 - info: NV_L4T_FLASH_JETSON_LINUX_COMP@JETSON_ORIN_NX_TARGETS: [ Component Install Finished with Error ]

It seems your flash process failed at Step3 due to the board not recognized after boot up and timeout. Usually, you could check the serial console log at this moment.

I found you are using the SDK manager to flash the board (Orin NX+p3509 carrier board). It could only be flashed with script.
Please use Jetpack5.1.1 BSP package with the following flash command.
and connect an NVMe SSD on p3509 carrier board.

sudo ADDITIONAL_DTB_OVERLAY_OPT="BootOrderNvme.dtbo" ./tools/kernel_flash/l4t_initrd_flash.sh --external-device nvme0n1p1 \
-c tools/kernel_flash/flash_l4t_external.xml -p "-c bootloader/t186ref/cfg/flash_t234_qspi.xml" \
--showlogs --network usb0 p3509-a02+p3767-0000 internal

Hi Kevin FF,

Upon examining the log file, I noticed that the dtb file tegra234-p3767-0000-p3768-0000-a0.dtb is being used during the flashing process. According to the JetsonModuleAdaptationAndBringUp document, the dtb file that should be used is tegra234-p3767-0000-p3509-a02.dtb.

I would like to ask why the SDKManager is using a different dtb file than the one mentioned in the document. Is there an updated recommendation, or is this an issue with the SDKManager? Any clarification would be greatly appreciated.

Please note that I have successfully flashed the board using the SDKManager, and the attached log file is from a previously failed attempt.

Just like I mentioned above, Orin NX+p3509 carrier board is not supported to be flashed with SDK Manager. Please use initrd flash script instead.

Do you mean that you flash the Orin NX + p3059 with SDK Manager successfully?
Is that the another board different from the failed one? Please help to provide the flash log.

I’ve successfully flashed the Orin NX + p3059 on the same board. However, I’m encountering an issue during the SDK components installation, as it fails at that step. Despite this, the system still boots successfully.

I’ve successfully resolved the UARTB issue on my Orin NX + p3059 board. I enabled the serial@3110000 by modifying the device tree in the file tegra234-p3767-0000-p3509-a02.dts as follows:

serial@3110000 {
        compatible = "nvidia,tegra194-hsuart";
        iommus = <0x06 0x04>;
        reg = <0x00 0x3110000 0x00 0x10000>;
        reg-shift = <0x02>;
        interrupts = <0x00 0x71 0x04>;
        nvidia,memory-clients = <0x0e>;
        dmas = <0x3f 0x09 0x3f 0x09>;
        dma-names = "rx\0tx";
        clocks = <0x02 0x9c 0x02 0x66>;
        clock-names = "serial\0parent";
        resets = <0x02 0x65>;
        reset-names = "serial";
-       status = "disabled";
+       status = "okay";
        phandle = <0x2f9>;

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