Solved: UART/Serial Port not working after upgradint to Jetpack 6.2.2 (Orin Nano/NX)

Hello,

After upgrading to JetPack 6.2.2 I noticed serial communication on /dev/ttyTHS1 stoped working.

Issue is related dot the Device Tree DMA configuration for this version.

I found the original answer to this issue in the JetPack 6.2.2 release notes here

Solution:

1. Decompile the DTB:

dtc -I dtb -O dts -o temp.dts /boot/dtb/<your_dtb_file>.dtb

2. Remove dma-names and dmas
Using any text editor look for the serial@3100000 entry and remove the DMA lines.

3. Recompile the DTB

dtc -I dts -O dtb -o new.dtb temp.dts

4. Backup old DTB

sudo cp /boot/dtb/<your_dtb_file>.dtb /boot/dtb/<your_dtb_file>.dtb.backup

5. Use the modified DTB

sudo mv new.dtb /boot/dtb/<your_dtb_file>.dtb

6. Add FDT Line
If there is no FDT line in /boot/extlinux/extlinux.conf
Add this line under the LINUX line

FDT /boot/dtb/<your_dtb_file>.dtb

Then reboot and should be solved.

*** Please note that this reply is generated by LLM automatically ***

The issue you’re experiencing with serial communication not working after upgrading to JetPack 6.2.2 on your Jetson Orin Nano device is related to the Device Tree DMA configuration. This problem is specifically mentioned in the JetPack 6.2.2 release notes.

To resolve this issue, you need to modify the Device Tree configuration. Here’s a step-by-step solution:

  1. Open the Device Tree file using a text editor. The exact file path may vary depending on your system configuration, but it’s usually located in the /boot directory or a similar location.

  2. Look for the entry related to the serial communication interface (e.g., uart0, uart1, etc.). The exact entry name may vary depending on your device configuration.

  3. Remove the DMA lines from the entry. If you’re not sure which lines to remove, look for any lines that contain the string “dma” or “dma-names”.

  4. If there is no dma-names line in the entry, add the following line under the compatible line:

    dma-names = "rx", "tx";
    
  5. Save the modified Device Tree file.

  6. Reboot your Jetson Orin Nano device.

After rebooting, your serial communication should be working correctly.

It’s worth noting that this issue is specific to JetPack 6.2.2, and the solution may not be applicable to other versions of JetPack. If you’re experiencing similar issues with other versions, you should refer to the release notes for that specific version for guidance.

In comparison to other Jetson devices, the Jetson Orin Nano has similar Device Tree configurations, but the exact entries and lines may vary. If you’re experiencing similar issues on other Jetson devices, you should follow the same steps, but be sure to modify the correct entries and lines for your specific device.

Additionally, if you’re experiencing issues with other peripherals or interfaces on your Jetson Orin Nano device, you should refer to the JetPack 6.2.2 release notes and the Device Tree documentation for guidance on resolving those issues.

*** Please give the thumbs up if you get answers you like. Or provide feedback to help us improve the answer. ***

Hi Jose_C,

Thanks for your sharing the experience to address the UART issue in Jetpack 6.2.2(r36.5).

It seems the current issue happening for dma-based UART transacition.
Your modification could force UART working in PIO mode to bypass the issue.

Could you also try adding the following line in source/hardware/nvidia/t23x/nv-public/tegra234.dtsi to check if it helps?

		uarta: serial@3100000 {
			compatible = "nvidia,tegra234-uart", "nvidia,tegra20-uart";
			reg = <0x0 0x03100000 0x0 0x10000>;
			interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
			clocks = <&bpmp TEGRA234_CLK_UARTA>;
			resets = <&bpmp TEGRA234_RESET_UARTA>;
			dmas = <&gpcdma 8>, <&gpcdma 8>;
			dma-names = "rx", "tx";
+			iommus = <&smmu_niso0 TEGRA234_SID_GPCDMA>;
			status = "disabled";
		};

I recently updated to 6.2.2 which fixed GPIO but broke UART. Applied this fix this morning and it worked, thank you!

1 Like

Hello Kevin,

I followed your solution and modified the tegra234.dtsifile. After recompiling the kernel OOT modules and using the updated .dtb file on my Jetson module I tested serial communication and is now working correctly.

Thanks!

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