As I know in the Xavier NX,
the ttyTCU0 is belong the UART2(SFIO : UC3).
the ttyTHS0 is belong the UART1(SFIO : UA3).
But which one interface will belong the UART0(SFIO : UB3)? ttyTHS1? ttyTHS4?
Is the UART0 need another configuration for device tree or any other setting??
please check Jetson Xavier NX Product Design Guide, you may refer to [Table 12-7. Jetson Xavier NX UART Pin Descriptions].
please also looking for kernel logs, i.e. $ dmesg | grep THS.
for example,
$ dmesg | grep THS
[ 1.669210] 3100000.serial: ttyTHS0 at MMIO 0x3100000 (irq = 47, base_baud = 0) is a TEGRA_UART
[ 1.670251] 3110000.serial: ttyTHS1 at MMIO 0x3110000 (irq = 48, base_baud = 0) is a TEGRA_UART
[ 1.671169] 3140000.serial: ttyTHS4 at MMIO 0x3140000 (irq = 49, base_baud = 0) is a TEGRA_UART
there’s device tree sources to indicate the mappings,
for example, $L4T_Sources/r32.6.1/Linux_for_Tegra/source/public/hardware/nvidia/soc/t19x/kernel-dts/tegra194-soc/tegra194-soc-uart.dtsi
yes, that’s the correct mappings.
note, it’s software driver to register ttyTHS* as serial interface, you should always check kernel logs for the mappings for confirmation.
thanks
I’ve got few question those need to consult with you.
Since we’ve our carrier board( design with UART0/1 to the RS232/RS422/RS485)
the UART1(ttyTHS0) will show the ubuntu login.
but the UART0(ttyTHS1) will not show the login.
Is there any configuration caused their difference?
Is that possible to enable/disable ubuntu login ( same as the UART1,ttyTHS0)?
Or Is that possible to make the UART same as the generic UART( same as the
UART0,ttyTHS1)?
Is that possible to invert the signal which UART received side?
The UART can have a terminal program run, which is “nvgetty” (see “sudo systemctl status nvgetty.service”). You could then “sudo systemctl disable nvgetty.service”, or “sudo systemctl disable nvgetty.service”. Or temporary, just “sudo systemctl stop nvgetty.service”, or “sudo systemctl start nvgetty.service”. All of this though is only for once Linux runs (the bootloader is separate).
Examine “/etc/systemd/system/nvgetty.service”, and if you see it listing “/etc/systemd/nvgetty.sh”, then consider editing “/etc/systemd/nvgetty.sh”. Beware though that the bootloader itself will still run on the old terminal since the bootloader only runs prior to Linux.