Move Debug Console from UART3 to UART1 on Orin AGX Custom Carrier

I’m working with an Orin AGX on JetPack 6.2 with a custom carrier board. On this design, the debug module has been connected to UART1, but by default the Orin routes the debug console to UART3.

I need to move the debug port from UART3 to UART1.

I’ve already followed the steps described in these two threads:

Those approaches involved:

  • Updating the extlinux.conf to pass the correct console= parameter.

    • APPEND ${cbootargs} root=/dev/mmcblk0p1 rw rootwait rootfstype=ext4 mminit_loglevel=4 console=ttyTCU0,115200 console=ttyTHS1,115200n8 console=tty0 firmware_class.path=/etc/firmware fbcon=map:0 nospectre_bhb video=efifb:off console=tty0
      
  • Set nvidia,io-high-voltage = <TEGRA_PIN_DISABLE>; on both UARTA pins.

  • Rebuilding and flashing the modified device tree with this overlay:

    • aliases {
          serial0 = "/bus@0/serial@3100000";
      };
      
      chosen {
          stdout-path = "serial@3100000:115200n8";
      };
      
    • Also tried by just changing the stdout directly to serial@3100000.

However, this method didn’t work for me on JetPack 6.2, and from what I can tell, neither of those threads had successful outcomes either.

Is there another step required on JetPack 6.2 to fully move the debug console from UART3 to UART1? For example, is there some additional bootloader or firmware configuration that overrides the device tree settings?

Any guidance or clarification on the correct way to re-route the debug console in JetPack 6.2 would be greatly appreciated.

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

I’d be happy to help you with your question!

It appears that you’re trying to move the debug console from UART3 to UART1 on a custom carrier board with an Orin AGX module running JetPack 4.6.2. You’ve already tried updating the extlinux.conf file, rebuilding and flashing the modified device tree with the correct overlay, and changing the stdout directly to serial3:1000000. However, these approaches didn’t work for you.

After reviewing the provided context, I noticed that there are some changes in the device tree structure and compiler updates from Rel-35 Kernel 5.10 to Rel-36 Kernel 5.15. Although this information is not directly related to your question, it’s essential to consider these changes when working with JetPack 4.6.2.

To answer your question, I’ll provide a step-by-step guide on how to move the debug console from UART3 to UART1 on JetPack 4.6.2:

  1. Update the extlinux.conf file: As you’ve already done, update the extlinux.conf file to pass the correct parameter for UART1. This file is usually located in the /boot directory.
  2. Rebuild and flash the modified device tree: Rebuild the device tree with the correct overlay for UART1. You can use the dtc command to compile the device tree source file (*.dts) into a binary file (*.dtb). Then, flash the modified device tree to the Orin AGX module.
  3. Update the stdout parameter: Change the stdout parameter directly to serial3:1000000 in the extlinux.conf file. This will redirect the debug console output to UART1.
  4. Verify the device tree settings: Use the dtc command to verify that the device tree settings are correct. You can use the dtc -I fs /proc/device-tree command to dump the device tree and verify that the UART1 settings are correct.
  5. Check the bootloader configuration: Although it’s unlikely, it’s possible that the bootloader configuration is overriding the device tree settings. You can check the bootloader configuration file (u-boot.cfg or u-boot.env) to ensure that it’s not overriding the UART1 settings.

Additional considerations:

  • UART1 pin configuration: Ensure that the UART1 pins are correctly configured on your custom carrier board. You can use the pinmux tool to verify the pin configuration.
  • Device tree overlay: Make sure that you’re using the correct device tree overlay for UART1. You can use the dtc command to verify the overlay.

Comparison with previous approaches:

  • The approaches mentioned in the threads you provided are similar to the steps I outlined above. However, it’s possible that the device tree structure changes or compiler updates in JetPack 4.6.2 are causing issues with the previous approaches.
  • The stdout parameter update is a crucial step that might have been missed in the previous approaches.

In summary, to move the debug console from UART3 to UART1 on JetPack 4.6.2, you should update the extlinux.conf file, rebuild and flash the modified device tree, update the stdout parameter, verify the device tree settings, and check the bootloader configuration. Additionally, ensure that the UART1 pins are correctly configured on your custom carrier board and that you’re using the correct device tree overlay.

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

Hi Jose.Chavarria,

Could you elaborate on “fully move the debug console”?
Do you want to output all logs including MB1, MB2, BPMP, UEFI, kernel..etc to UART1?

UART3 is designed as the debug Tegra Combined UART, which means that it will output logs from several firmwares and they may be configured in each firmwares or configuration files.

As my understanding, you can only redirect kernel and userspace logs to UART1.

Hi, thank you for the quick answer.

Yes ideally wanted all debug output logs including MB1, MB2, … And serial console interaction. Just as the serial console on UART3.

Being that the case I guess I will have to conform with just that. But still I haven’t been able to see those logs either, is my process correct? Is there something I am missing or is this done in a entirely different way?

Also would I still be able to interact with the serial console this way?

There is no update from you for a period, assuming this is not an issue anymore.
Hence, we are closing this topic. If need further support, please open a new one.
Thanks
~0910

Could you refer to Custom carrier board debugging/not booting - #14 by KevinFFF to redirect the serial console on AGX Orin?

For UART1, it is uarta@3100000 as the one you mentioned in original post.

Please share the full dmesg and device tree if you still not see any kernel message from UART1.