Configuration to use UART1 (J21) as "normal" Serial Port

Hi all,
I need a few serial port on Jetson TX1 and I do not want to use FTDI converter.

I’m currently using UART3 on J17 without problems and I would like to disable the console output on UART1 (Pin 8 and Pin 10 on J21) to use it to communicate with my devices.

Which is the file to modify to enable this feature?

Thank you

I am unsure of what to edit or change, but beware that u-boot itself uses that port, and so during boot stage you may get serial port interaction unless you modify u-boot (otherwise the port would need to be disconnected during u-boot stages). The kernel command line does some configuration via the “APPEND” key/value pair in “/boot/extlinux/extlinux.conf”, but the firmware files would also need modification…the kernel APPEND part sets up port settings, but does not determine other aspects of pinmux which may need to change.

Using fast serial devices on USB by FTDI converter is a source of problems… another USART should be really useful.

Hi Myzhar,

I didn’t make by my own but from what I read linuxdev gave you great leads.

For me to change the function (TK1 based experience, I don’t know if the flow is exactly the same for TX1) :
-download & extract driver packages + rootfs + kernel package from download section on your host.
-convert the .dtb to .dts with the compiler dtc (tegra210-jetson-tx1-p2597-2180-a01-devkit.dtb file)
-play around with the modification you need to disable the unwanted UART and enable the one desired for example.
-convert back the new .dts to .dtb with the same name for ease of use (backup the old one is worthy I guess :) ).
DTC is in /Linux_for_Tegra/kernel/linux-headers-3.10.67-gcdddc52/scripts/dtc/.
DTB tegra210-jetson-tx1-p2597-2180-a01-devkit.dtb included in /Linux_for_Tegra/bootloder
-search the options related to your modification in the .config at the root kernel and modify it(/Linux_for_Tegra/kernel).
-flash your new BSP with (available at the root of L4T ie /Linux_for_Tegra/)

PS: to disable the console UART, maybe you need to delete it from extlinux.conf.emmc file in /Linux_for_Tegra/bootloader/t210ref/p2371-2180-devkit and other work I miss…

Good luck and let us know about your results ;)

I want to use UART3 on J17 of TX1 as general purpose.

So Can anyone tell how to enable this ? and if already enable how to use this?

This is the output of dmesg | grep tty

root@tegra-ubuntu:/home/ubuntu# dmesg | grep tty
[    0.000000] Kernel command line: fbcon=map:0 console=tty0 console=ttyS0,115200n8 androidboot.modem=none androidboot.serialno=P2180A00P00940c003fd tegraid= ddr_die=2048M@2048M ddr_die=2048M@4096M section=256M memtype=0 vpr_resize usb_port_owner_info=0 lane_owner_info=0 emc_max_dvfs=0 touch_id=0@63 video=tegrafb no_console_suspend=1 debug_uartport=lsport,0 earlyprintk=uart8250-32bit,0x70006000 maxcpus=4 usbcore.old_scheme_first=1 lp0_vec=0x1000@0xff2bf000 nvdumper_reserved=0xff23f000 core_edp_mv=1125 core_edp_ma=4000 gpt android.kerneltype=normal androidboot.touch_vendor_id=0 androidboot.touch_panel_id=63 androidboot.touch_feature=0 androidboot.bootreason=pmc:software_reset,pmic:0x0 root=/dev/mmcblk0p1 rw rootwait
[    0.000000] console [tty0] enabled
[    5.774369] 70006000.serial: ttyS0 at MMIO 0x70006000 (irq = 68) is a Tegra
[    5.781033] console [ttyS0] enabled, bootconsole disabled
[    5.792248] 70006040.serial: ttyTHS1 at MMIO 0x70006040 (irq = 69) is a SERIAL_TEGRA
[    5.801791] 70006200.serial: ttyTHS2 at MMIO 0x70006200 (irq = 78) is a SERIAL_TEGRA
[    5.815603] 70006300.serial: ttyTHS3 at MMIO 0x70006300 (irq = 122) is a SERIAL_TEGRA

So i need to use ttyTHS1/2/3 right?

You can use “/dev/ttyTHS2” (J17) already, I just don’t know what else might want to use this. If you don’t use the camera you may be able to use J17 without any updates…I suggest just try it and you’ll know if it does the job.